public AxiomConverter(final KnowledgeBase kb, final Graph g) { _kb = kb; _graph = g; _converter = new ConceptConverter(_graph); }
public Node convert(final ATerm term) { return convert(term, null); }
@Override public void visitAnd(final ATermAppl term) { visitList((ATermList) term.getArgument(0)); createClassExpression(OWL.intersectionOf); }
@Override public void visitNot(final ATermAppl term) { visit((ATermAppl) term.getArgument(0)); createClassExpression(OWL.complementOf); }
@Override public void visitOneOf(final ATermAppl term) { final ATermList list = (ATermList) term.getArgument(0); visitList(list); if (list.isEmpty() || !ATermUtils.isLiteral((ATermAppl) ((ATermAppl) list.getFirst()).getArgument(0))) createClassExpression(OWL.oneOf); else createDataExpression(OWL.oneOf); }
private void convertNary(final ATermAppl axiom, final Resource type, final Property p) { final Node n = NodeFactory.createBlankNode(); TripleAdder.add(_graph, n, RDF.type, type); final ATermList concepts = (ATermList) axiom.getArgument(0); _converter.visitList(concepts); TripleAdder.add(_graph, n, p, _converter.getResult()); }
private Node createQualifiedRestriction(final ATermAppl term, final Property restrType) { final Node restr = createRestriction(term, restrType); final Node qual = convert(term.getArgument(2)); if (!ATermUtils.isTop((ATermAppl) term.getArgument(2))) TripleAdder.add(_graph, restr, OWL2.onClass, qual); _obj = restr; return restr; }
@Override public void visitList(final ATermList list) { if (list.isEmpty()) _obj = RDF.nil.asNode(); else { final Node rdfList = NodeFactory.createBlankNode(); final Node first = convert(list.getFirst()); TripleAdder.add(_graph, rdfList, RDF.first, first); visitList(list.getNext()); TripleAdder.add(_graph, rdfList, RDF.rest, _obj); _obj = rdfList; } }
public Node convert(final ATerm term, final Node s) { final Node prevSubj = _subj; _subj = s; _obj = null; if (term instanceof ATermAppl) visit((ATermAppl) term); else if (term instanceof ATermInt) _obj = NodeFactory.createLiteral(term.toString(), null, XSDDatatype.XSDnonNegativeInteger); else if (term instanceof ATermList) visitList((ATermList) term); else throw new IllegalArgumentException(term.toString()); _subj = prevSubj; return _obj; }
@Override public void visitHasValue(final ATermAppl term) { createRestriction(term, OWL.hasValue); }
@Override public void visitCard(final ATermAppl term) { createQualifiedRestriction(term, OWL.cardinality); }
private void createClassExpression(final Property p) { createExpression(p); }
@Override public void visitValue(final ATermAppl term) { visit((ATermAppl) term.getArgument(0)); }
@Override public void visitOneOf(final ATermAppl term) { final ATermList list = (ATermList) term.getArgument(0); visitList(list); if (list.isEmpty() || !ATermUtils.isLiteral((ATermAppl) ((ATermAppl) list.getFirst()).getArgument(0))) createClassExpression(OWL.oneOf); else createDataExpression(OWL.oneOf); }
private void convertNary(final ATermAppl axiom, final Resource type, final Property p) { final Node n = NodeFactory.createBlankNode(); TripleAdder.add(_graph, n, RDF.type, type); final ATermList concepts = (ATermList) axiom.getArgument(0); _converter.visitList(concepts); TripleAdder.add(_graph, n, p, _converter.getResult()); }
@Override public void visitNot(final ATermAppl term) { visit((ATermAppl) term.getArgument(0)); createClassExpression(OWL.complementOf); }
private Node createQualifiedRestriction(final ATermAppl term, final Property restrType) { final Node restr = createRestriction(term, restrType); final Node qual = convert(term.getArgument(2)); if (!ATermUtils.isTop((ATermAppl) term.getArgument(2))) TripleAdder.add(_graph, restr, OWL2.onClass, qual); _obj = restr; return restr; }
@Override public void visitList(final ATermList list) { if (list.isEmpty()) _obj = RDF.nil.asNode(); else { final Node rdfList = NodeFactory.createBlankNode(); final Node first = convert(list.getFirst()); TripleAdder.add(_graph, rdfList, RDF.first, first); visitList(list.getNext()); TripleAdder.add(_graph, rdfList, RDF.rest, _obj); _obj = rdfList; } }
public Node convert(final ATerm term, final Node s) { final Node prevSubj = _subj; _subj = s; _obj = null; if (term instanceof ATermAppl) visit((ATermAppl) term); else if (term instanceof ATermInt) _obj = NodeFactory.createLiteral(term.toString(), null, XSDDatatype.XSDnonNegativeInteger); else if (term instanceof ATermList) visitList((ATermList) term); else throw new IllegalArgumentException(term.toString()); _subj = prevSubj; return _obj; }
@Override public void visitAll(final ATermAppl term) { createRestriction(term, OWL.allValuesFrom); }