/** * @return all object properties with its domains. */ public Map<OWLObjectProperty, OWLClassExpression> getObjectPropertyDomains() { Map<OWLObjectProperty, OWLClassExpression> result = new HashMap<>(); for (OWLObjectProperty op : getObjectProperties()) { OWLClassExpression domain = getDomain(op); result.put(op, domain); } return result; }
/** * @return all data properties with its domains. */ public Map<OWLDataProperty, OWLClassExpression> getDataPropertyDomains() { Map<OWLDataProperty, OWLClassExpression> result = new HashMap<>(); for (OWLDataProperty dp : getDatatypeProperties()) { OWLClassExpression domain = getDomain(dp); result.put(dp, domain); } return result; }
types.add(reasoner.getRange(OwlApiJenaUtils.asOWLEntity(edge, EntityType.OBJECT_PROPERTY))); } else { types.add(reasoner.getDomain(OwlApiJenaUtils.asOWLEntity(edge, EntityType.OBJECT_PROPERTY))); Node inEdge = tree.getEdgeToParent(); if(inEdge instanceof NodeInv) { types.add(reasoner.getDomain(OwlApiJenaUtils.asOWLEntity(inEdge, EntityType.OBJECT_PROPERTY))); } else { types.add(reasoner.getRange(OwlApiJenaUtils.asOWLEntity(inEdge, EntityType.OBJECT_PROPERTY)));
public static RDFResourceTree materializePropertyDomains(RDFResourceTree tree, AbstractReasonerComponent reasoner) { RDFResourceTree newTree = new RDFResourceTree(tree.getData()); Consumer<OWLClass> addTypeChild = (cls) -> newTree.addChild(new RDFResourceTree(OwlApiJenaUtils.asNode(cls)), RDF.type.asNode()); tree.getEdges().forEach(edge -> { List<RDFResourceTree> children = tree.getChildren(edge); // add existing children children.forEach(child -> { RDFResourceTree newChild = materializePropertyDomains(child, reasoner); newTree.addChild(newChild, edge); }); // add the rdf:type statements for the property domain(s) OWLClassExpression dom = reasoner.getDomain(OwlApiJenaUtils.asOWLEntity(edge, EntityType.OBJECT_PROPERTY)); if(!dom.isAnonymous() && !dom.isOWLThing()) { addTypeChild.accept(dom.asOWLClass()); } else { if(dom.getClassExpressionType() == ClassExpressionType.OBJECT_INTERSECTION_OF) { dom.getNestedClassExpressions().stream() .filter(ce -> !ce.isAnonymous()) .map(OWLClassExpression::asOWLClass) .forEach(addTypeChild); } } }); return newTree; }
filler = rs.getDomain(pe.getNamedProperty()); } else if(filler.isAnonymous()){ filler = replaceRange(filler, rs);