private AtomDObject createRuleDObject(final Node node) { if (!node.isLiteral()) { final ATermAppl name = node2term(node); if (!ATermUtils.isPrimitive(name)) { addUnsupportedFeature("Cannot create rule _data variable out of " + node); return null; } return new AtomDVariable(name.toString()); } else return new AtomDConstant(node2term(node)); }
/** * {@inheritDoc} */ @Override public void visit(final AtomDVariable variable) { _term = ATermUtils.makeVar(variable.getName()); }
private AtomDObject createRuleDObject(final Node node) { if (!node.isLiteral()) { final ATermAppl name = node2term(node); if (!ATermUtils.isPrimitive(name)) { addUnsupportedFeature("Cannot create rule _data variable out of " + node); return null; } return new AtomDVariable(name.toString()); } else return new AtomDConstant(node2term(node)); }
/** * {@inheritDoc} */ @Override public void visit(final AtomDVariable variable) { _term = ATermUtils.makeVar(variable.getName()); }
@Override public void visit(final SWRLVariable var) { _swrlDObject = new AtomDVariable(var.getIRI().toString()); _swrlIObject = new AtomIVariable(var.getIRI().toString()); }
private AtomDObject createRuleDObject(final Node node) { if (!node.isLiteral()) { final ATermAppl name = node2term(node); if (!ATermUtils.isPrimitive(name)) { addUnsupportedFeature("Cannot create rule _data variable out of " + node); return null; } return new AtomDVariable(name.toString()); } else return new AtomDConstant(node2term(node)); }
@Override public void visit(final SWRLVariable var) { _swrlDObject = new AtomDVariable(var.getIRI().toString()); _swrlIObject = new AtomIVariable(var.getIRI().toString()); }
@Override public void visit(final SWRLVariable var) { _swrlDObject = new AtomDVariable(var.getIRI().toString()); _swrlIObject = new AtomIVariable(var.getIRI().toString()); }
if (isDatatypeProperty(property)) final AtomDVariable z = new AtomDVariable("z" + varId); body.add(new DatavaluedPropertyAtom(property, x, z)); body.add(new DatavaluedPropertyAtom(property, y, z));
if (isDatatypeProperty(property)) final AtomDVariable z = new AtomDVariable("z" + varId); body.add(new DatavaluedPropertyAtom(property, x, z)); body.add(new DatavaluedPropertyAtom(property, y, z));
private static AtomDObject convertAtomDObject(final ATermAppl t) { if (ATermUtils.isVar(t)) return new AtomDVariable(((ATermAppl) t.getArgument(0)).getName()); else if (ATermUtils.isLiteral(t)) return new AtomDConstant(t); throw new InternalReasonerException("Unrecognized term: " + t); }
private static AtomDObject convertAtomDObject(final ATermAppl t) { if (ATermUtils.isVar(t)) return new AtomDVariable(((ATermAppl) t.getArgument(0)).getName()); else if (ATermUtils.isLiteral(t)) return new AtomDConstant(t); throw new InternalReasonerException("Unrecognized term: " + t); }
if (_kb.isDatatypeProperty(p)) final AtomDObject newVar = new AtomDVariable("var" + varCount); final RuleAtom atom = new DatavaluedPropertyAtom(p, var, newVar); atoms.add(atom);
if (_kb.isDatatypeProperty(p)) final AtomDObject newVar = new AtomDVariable("var" + varCount); final RuleAtom atom = new DatavaluedPropertyAtom(p, var, newVar); atoms.add(atom);
if (_kb.isDatatypeProperty(p)) final AtomDObject newVar = new AtomDVariable("var" + varCount); final RuleAtom atom = new DatavaluedPropertyAtom(p, var, newVar); atoms.add(atom);
if (_kb.isDatatypeProperty(p)) final AtomDObject newVar = new AtomDVariable("var" + varCount); final RuleAtom atom = new DatavaluedPropertyAtom(p, var, newVar); atoms.add(atom);
private void nonTrivialBuiltInTest() { final ATermAppl d1 = literal("1", Datatypes.INT), d2 = literal("2", Datatypes.INT), d12 = literal("3", Datatypes.INTEGER), i = term("i"), p = term("p"), q = term("q"), r = term("r"); _kb.addDatatypeProperty(p); _kb.addDatatypeProperty(q); _kb.addDatatypeProperty(r); _kb.addIndividual(i); _kb.addSubClass(TOP, hasValue(p, d1)); _kb.addSubClass(TOP, hasValue(q, d2)); final AtomIVariable x = new AtomIVariable("x"); final AtomDVariable z1 = new AtomDVariable("z1"); final AtomDVariable z2 = new AtomDVariable("z2"); final AtomDVariable z3 = new AtomDVariable("z3"); final List<RuleAtom> body = new ArrayList<>(); body.add(new DatavaluedPropertyAtom(p, x, z1)); body.add(new DatavaluedPropertyAtom(q, x, z2)); body.add(new BuiltInAtom(SWRLB + "add", z3, z1, z2)); final List<RuleAtom> head = new ArrayList<>(); head.add(new DatavaluedPropertyAtom(r, x, z3)); _kb.addRule(new Rule(head, body)); _kb.realize(); assertTrue(_kb.hasPropertyValue(i, r, d12)); }
@Test public void testTokenizeBinding() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final AtomDConstant data = new AtomDConstant(literal("hi;bye;foo;bar")); final AtomDVariable x = new AtomDVariable("x"); final AtomDConstant semicolan = new AtomDConstant(literal(";")); final Collection<AtomVariable> emptyCollection = Collections.emptySet(); final Collection<AtomVariable> xSingleton = Collections.singleton((AtomVariable) x); final BuiltInAtom oneVarAtom = new BuiltInAtom(Namespaces.SWRLB + "tokenize", x, data, semicolan); final BindingHelper sharedVarHelper = StringOperators.tokenize.createHelper(oneVarAtom); assertTrue(sharedVarHelper.getBindableVars(emptyCollection).equals(xSingleton)); final VariableBinding emptyBinding = new VariableBinding(kb.getABox()); sharedVarHelper.rebind(emptyBinding); final VariableBinding fillBinding = new VariableBinding(kb.getABox()); final List<String> expected = Arrays.asList(new String[] { "hi", "bye", "foo", "bar" }); final List<String> tokens = new ArrayList<>(); while (sharedVarHelper.selectNextBinding()) { sharedVarHelper.setCurrentBinding(fillBinding); final String token = ATermUtils.getLiteralValue(fillBinding.get(x).getTerm()); tokens.add(token); } assertEquals("String tokenizer returned unexpected sequence of tokens", expected, tokens); }
@Test public void testTokenizeSharedFailure() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final AtomDConstant data = new AtomDConstant(literal("hi;bye;foo;bar")); final AtomDVariable x = new AtomDVariable("x"); final AtomDConstant semicolan = new AtomDConstant(literal(";")); final Collection<AtomVariable> emptyCollection = Collections.emptySet(); final Collection<AtomVariable> xSingleton = Collections.singleton((AtomVariable) x); final BuiltInAtom sharedVarAtom = new BuiltInAtom(Namespaces.SWRLB + "tokenize", x, x, semicolan); final BindingHelper sharedVarHelper = StringOperators.tokenize.createHelper(sharedVarAtom); assertTrue(sharedVarHelper.getBindableVars(emptyCollection).isEmpty()); assertTrue(sharedVarHelper.getBindableVars(xSingleton).isEmpty()); final VariableBinding xdataBinding = new VariableBinding(kb.getABox()); xdataBinding.set(x, data.getValue()); sharedVarHelper.rebind(xdataBinding); assertFalse(sharedVarHelper.selectNextBinding()); }
@Test public void testTokenizeBindingEmpty() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final AtomDConstant data = new AtomDConstant(literal("hi;bye;foo;bar")); final AtomDVariable x = new AtomDVariable("x"); final AtomDConstant comma = new AtomDConstant(literal(",")); final Collection<AtomVariable> emptyCollection = Collections.emptySet(); final Collection<AtomVariable> xSingleton = Collections.singleton((AtomVariable) x); final BuiltInAtom oneVarAtom = new BuiltInAtom(Namespaces.SWRLB + "tokenize", x, data, comma); final BindingHelper sharedVarHelper = StringOperators.tokenize.createHelper(oneVarAtom); assertTrue(sharedVarHelper.getBindableVars(emptyCollection).equals(xSingleton)); final VariableBinding emptyBinding = new VariableBinding(kb.getABox()); sharedVarHelper.rebind(emptyBinding); final VariableBinding fillBinding = new VariableBinding(kb.getABox()); final List<String> expected = Collections.singletonList(ATermUtils.getLiteralValue(data.getValue())); final List<String> tokens = new ArrayList<>(); while (sharedVarHelper.selectNextBinding()) { sharedVarHelper.setCurrentBinding(fillBinding); final String token = ATermUtils.getLiteralValue(fillBinding.get(x).getTerm()); tokens.add(token); } assertEquals("String tokenizer returned unexpected sequence of tokens", expected, tokens); }