public static String[] sortedSet2StringListRoles(Set<OWLObjectProperty> s){ String[] ret=new String[s.size()]; Iterator<OWLObjectProperty> i=s.iterator(); int a=0; while (i.hasNext()){ ret[a++]=i.next().toStringID(); } Arrays.sort(ret); return ret; }
@Override protected String buildApplicablePropertiesValuesQuery(OWLClassExpression domain, Collection<? extends OWLObjectProperty> objectProperties) { String domQuery = converter.convert("?dom", domain); String props = objectProperties.stream().map(op -> "<" + op.toStringID() + ">").collect(Collectors.joining(" ")); // String prop1 = converter.convert("?p", objectProperties.iterator().next()); String query = "SELECT DISTINCT ?p WHERE { " + "" + domQuery + " ?dom ?p ?o . \n" + "" + " }" + "" + " VALUES ?p { \n" + props + " }"; return query; }
protected String buildApplicablePropertiesValuesQuery(OWLClassExpression domain, Collection<? extends OWLObjectProperty> objectProperties) { String domQuery = converter.convert("?dom", domain); String props = objectProperties.stream().map(op -> "<" + op.toStringID() + ">").collect(Collectors.joining(" ")); // String prop1 = converter.convert("?p", objectProperties.iterator().next()); String query = "SELECT DISTINCT ?p WHERE { " + "" + domQuery + " ?dom ?p ?o . \n" + "" + " VALUES ?p { \n" + props + " } \n" + "" + " }"; return query; }
@Override public void setEntityToDescribe(OWLObjectProperty entityToDescribe) { super.setEntityToDescribe(entityToDescribe); DISTINCT_OBJECTS_COUNT_QUERY.setIri("p", entityToDescribe.toStringID()); OBJECTS_OF_TYPE_COUNT_QUERY.setIri("p", entityToDescribe.toStringID()); OBJECTS_OF_TYPE_WITH_INFERENCE_COUNT_QUERY.setIri("p", entityToDescribe.toStringID()); OBJECTS_OF_TYPE_COUNT_BATCHED_QUERY.setIri("p", entityToDescribe.toStringID()); OBJECTS_OF_TYPE_WITH_INFERENCE_COUNT_BATCHED_QUERY.setIri("p", entityToDescribe.toStringID()); }
@Override public void setEntityToDescribe(OWLObjectProperty entityToDescribe) { super.setEntityToDescribe(entityToDescribe); DISTINCT_SUBJECTS_COUNT_QUERY.setIri("p", entityToDescribe.toStringID()); SUBJECTS_OF_TYPE_COUNT_QUERY.setIri("p", entityToDescribe.toStringID()); SUBJECTS_OF_TYPE_WITH_INFERENCE_COUNT_QUERY.setIri("p", entityToDescribe.toStringID()); SUBJECTS_OF_TYPE_COUNT_BATCHED_QUERY.setIri("p", entityToDescribe.toStringID()); SUBJECTS_OF_TYPE_WITH_INFERENCE_COUNT_BATCHED_QUERY.setIri("p", entityToDescribe.toStringID()); }
@Override public void setEntityToDescribe(OWLObjectProperty entityToDescribe) { super.setEntityToDescribe(entityToDescribe); GIVEN_PROPERTY_OVERLAP_QUERY.setIri("p", entityToDescribe.toStringID()); PROPERTY_OVERLAP_QUERY.setIri("p", entityToDescribe.toStringID()); PROPERTY_OVERLAP_WITH_RANGE_QUERY.setIri("p", entityToDescribe.toStringID()); }
@Override public void setEntityToDescribe(OWLObjectProperty entityToDescribe) { super.setEntityToDescribe(entityToDescribe); QUERY.setIri("p", entityToDescribe.toStringID()); }
public boolean isInverseFunctional(OWLObjectProperty property){ String query = "ASK {<" + property.toStringID() + "> a <" + OWL.InverseFunctionalProperty.getURI() + ">}"; return executeAskQuery(query); }
public boolean isIrreflexive(OWLObjectProperty property){ String query = "ASK {<" + property.toStringID() + "> a <" + OWL2.IrreflexiveProperty.getURI() + ">}"; return executeAskQuery(query); }
public boolean isAsymmetric(OWLObjectProperty property){ String query = "ASK {<" + property.toStringID() + "> a <" + OWL2.AsymmetricProperty.getURI() + ">}"; return executeAskQuery(query); }
public boolean isSymmetric(OWLObjectProperty property){ String query = "ASK {<" + property.toStringID() + "> a <" + OWL2.SymmetricProperty.getURI() + ">}"; return executeAskQuery(query); }
public boolean isTransitive(OWLObjectProperty property){ String query = "ASK {<" + property.toStringID() + "> a <" + OWL2.TransitiveProperty.getURI() + ">}"; return executeAskQuery(query); }
public boolean isFunctional(OWLObjectProperty property){ String query = "ASK {<" + property.toStringID() + "> a <" + OWL.FunctionalProperty.getURI() + ">}"; return executeAskQuery(query); }
public SortedSet<OWLObjectProperty> getInverseObjectProperties(OWLObjectProperty property){ SortedSet<OWLObjectProperty> inverseObjectProperties = new TreeSet<>(); String query = "SELECT ?p WHERE {" + "{<%p> <%ax> ?p.} UNION {?p <%ax> <%p>}}".replace("%p", property.toStringID()).replace("%ax", OWL.inverseOf.getURI()); ResultSet rs = executeSelectQuery(query); QuerySolution qs; while(rs.hasNext()){ qs = rs.next(); inverseObjectProperties.add(df.getOWLObjectProperty(IRI.create(qs.getResource("p").getURI()))); } return inverseObjectProperties; }
public int getPropertyCount(OWLObjectProperty property){ String query = String.format("SELECT (COUNT(*) AS ?cnt) WHERE {?s <%s> ?o.}", property.toStringID()); ResultSet rs = executeSelectQuery(query); int cnt = rs.next().get(rs.getResultVars().get(0)).asLiteral().getInt(); return cnt; }
public int getObjectCountForProperty(OWLObjectProperty p, long timeout, TimeUnit timeoutUnits){ int cnt = -1; String query = String.format( "SELECT (COUNT(DISTINCT ?o) AS ?cnt) WHERE {?s <%s> ?o.}", p.toStringID()); ResultSet rs = executeSelectQuery(query, timeout, timeoutUnits); if(rs.hasNext()){ cnt = rs.next().getLiteral("cnt").getInt(); } return cnt; }
public int getObjectCountForProperty(OWLObjectProperty p){ int cnt = -1; String query = String.format( "SELECT (COUNT(DISTINCT ?o) AS ?cnt) WHERE {?s <%s> ?o.}", p.toStringID()); ResultSet rs = executeSelectQuery(query); if(rs.hasNext()){ cnt = rs.next().getLiteral("cnt").getInt(); } return cnt; }
@Override public Set<OWLIndividual> getRelatedIndividualsImpl(OWLIndividual individual, OWLObjectProperty objectProperty) { Set<OWLIndividual> individuals = new HashSet<>(); String query = String.format("SELECT ?ind WHERE {<%s> <%s> ?ind, FILTER(isIRI(?ind))}", individual.toStringID(), objectProperty.toStringID()); ResultSet rs = executeSelectQuery(query); while(rs.hasNext()){ QuerySolution qs = rs.next(); individuals.add(df.getOWLNamedIndividual(IRI.create(qs.getResource("ind").getURI()))); } return individuals; }
@Override public void visit(OWLObjectHasValue expr) { QueryTree<String> tree = stack.peek(); tree.addChild(new QueryTreeImpl<>(expr.getFiller().asOWLNamedIndividual().toStringID(), NodeType.RESOURCE, id++), expr.getProperty().asOWLObjectProperty().toStringID()); }
protected int getPopularity() { POPULARITY_COUNT_QUERY.setIri("p", entityToDescribe.toStringID()); String query = POPULARITY_COUNT_QUERY.toString(); ResultSet rs = executeSelectQuery(query); int popularity = rs.next().getLiteral("cnt").getInt(); return popularity; }