public static String[] sortedSet2StringListConcepts(Set<OWLClass> s){ String[] ret=new String[s.size()]; Iterator<OWLClass> i=s.iterator(); int a=0; while (i.hasNext()){ ret[a++]=i.next().toStringID(); } Arrays.sort(ret); return ret; }
private Multiset<OWLClass> filterByNamespace(Multiset<OWLClass> classes){ if(namespace != null){ return Multisets.filter(classes, input -> input.toStringID().startsWith(namespace)); } return classes; }
private static boolean containsErrorNamedClasses(OWLOntology ontology){ for (OWLClass cls : ontology.getClassesInSignature()) { if(cls.toStringID().startsWith("http://org.semanticweb.owlapi/error#")){ return true; } } return false; } }
private static boolean containsErrorNamedClasses(OWLOntology ontology){ for (OWLClass cls : ontology.getClassesInSignature()) { if(cls.toStringID().startsWith("http://org.semanticweb.owlapi/error#")){ return true; } } return false; } }
private static boolean containsErrorNamedClasses(OWLOntology ontology){ for (OWLClass cls : ontology.getClassesInSignature()) { if(cls.toStringID().startsWith("http://org.semanticweb.owlapi/error#")){ return true; } } return false; }
@Override public void setEntityToDescribe(OWLClass entityToDescribe) { super.setEntityToDescribe(entityToDescribe); posExamplesQueryTemplate.setIri("cls", entityToDescribe.toStringID()); negExamplesQueryTemplate.setIri("cls", entityToDescribe.toStringID()); existingAxiomsTemplate.setIri("cls", entityToDescribe.toStringID()); CLASS_OVERLAP_QUERY.setIri("cls", entityToDescribe.toStringID()); GIVEN_CLASS_OVERLAP_QUERY.setIri("cls", entityToDescribe.toStringID()); }
public boolean isSuperClassOf(OWLClass sup, OWLClass sub, boolean direct) { String query = direct ? SPARQLQueryUtils.SELECT_SUPERCLASS_OF_QUERY : SPARQLQueryUtils.SELECT_SUPERCLASS_OF_QUERY_RDFS; query = String.format(query, sub.toStringID()); ResultSet rs = executeSelectQuery(query); SortedSet<OWLClass> superClasses = asOWLEntities(EntityType.CLASS, rs, "var1"); return superClasses.contains(sup); }
/** * Returns a set of sibling classes, i.e. classes that are on the same level * in the class hierarchy. * @param cls the OWL class * @return the sibling classes */ public Set<OWLClass> getSiblingClasses(OWLClass cls) { String query = SPARQLQueryUtils.SELECT_SIBLING_CLASSES_QUERY.replace("%s", cls.toStringID()); ResultSet rs = executeSelectQuery(query); Set<OWLClass> siblings = asOWLEntities(EntityType.CLASS, rs, "var1"); return siblings; }
@NotNull @Override protected String buildMeaningfulClassesQuery(OWLClassExpression index, SortedSet<OWLClassExpression> targetClasses) { String query = "SELECT DISTINCT ?concept WHERE {"; query += converter.convert("?ind", index); query += "?ind a ?concept . "; query += "}"; query += "VALUES ?concept {" + targetClasses.stream().map(ce -> "<" + ce.asOWLClass().toStringID() + ">").collect(Collectors.joining(" ")) + "}"; return query; }
protected String buildMeaningfulClassesQuery(OWLClassExpression index, SortedSet<OWLClassExpression> targetClasses) { String query = "SELECT DISTINCT ?concept WHERE {"; query += converter.convert("?ind", index); query += "?ind a ?concept . "; query += "VALUES ?concept {" + targetClasses.stream().map(ce -> "<" + ce.asOWLClass().toStringID() + ">").collect(Collectors.joining(" ")) + "}"; query += "}"; return query; }
@Override public boolean isSuperClassOfImpl(OWLClassExpression superClass, OWLClassExpression subClass) { if(subClass.isAnonymous() || superClass.isAnonymous()){ // throw new IllegalArgumentException("Only named classes are supported."); return false; } String query = String.format("ASK {<%s> <%s> <%s>.}", ((OWLClass)subClass).toStringID(), RDFS.subClassOf.getURI(), ((OWLClass)superClass).toStringID()); boolean superClassOf = executeAskQuery(query); return superClassOf; }
@Override public boolean isEquivalentClassImpl(OWLClassExpression class1, OWLClassExpression class2) { if(class1.isAnonymous() || class2.isAnonymous()){ // throw new IllegalArgumentException("Only named classes are supported."); return false; } String query = String.format("ASK {<%s> <%s> <%s>.}", ((OWLClass)class1).toStringID(), OWL.equivalentClass.getURI(), ((OWLClass)class2).toStringID()); boolean equivalentClass = executeAskQuery(query); return equivalentClass; }
@Override public void visit(OWLClass cls) { stack.peek().addChild(new QueryTreeImpl<>(cls.toStringID(), NodeType.RESOURCE, id++), RDF.type.getURI()); }
private Set<OWLIndividual> computePosExamples(OWLClass cls) { List<OWLIndividual> posExamples = new ArrayList<>(); String query = String.format("SELECT ?s WHERE {?s a <%s>}", cls.toStringID()); try(QueryExecution qe = qef.createQueryExecution(query)) { ResultSet rs = qe.execSelect(); while(rs.hasNext()) { QuerySolution qs = rs.next(); posExamples.add(new OWLNamedIndividualImpl(IRI.create(qs.getResource("s").getURI()))); } } Collections.shuffle(posExamples, rnd); return new TreeSet<>(posExamples.subList(0, Math.min(posExamples.size(), maxNrOfPosExamples))); }
@Override protected void learnAxioms() { logger.info("Pattern: " + pattern); //get the maximum modal depth in the pattern axioms int modalDepth = MaximumModalDepthDetector.getMaxModalDepth(pattern);modalDepth++; logger.info("Modal depth: " + modalDepth); //extract fragment Model fragment = fragmentExtractor.extractFragment(cls, modalDepth); //try to find instantiation of the pattern with confidence above threshold Set<OWLAxiom> instantiations = applyPattern(pattern, dataFactory.getOWLClass(IRI.create(cls.toStringID())), fragment); for (OWLAxiom instantiation : instantiations) { System.out.println(instantiation); } }
public Set<NamedClass> getAllClasses() { Set<NamedClass> classes = new TreeSet<NamedClass>(); String query = "PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT ?c WHERE {?c a owl:Class} LIMIT 1000"; ResultSet q = queryable.query(query); while (q.hasNext()) { QuerySolution qs = q.next(); if(qs.getResource("c").isURIResource()){ classes.add(new NamedClass(qs.getResource("c").getURI())); } } //remove trivial classes classes.remove(new NamedClass(OWL.Nothing.toStringID())); classes.remove(new NamedClass(OWL.Thing.toStringID())); return classes; }
public int getIndividualsCount(OWLClass cls){ String query = String.format("SELECT (COUNT(?s) AS ?cnt) WHERE {?s a <%s>.}", cls.toStringID()); ResultSet rs = executeSelectQuery(query); int cnt = rs.next().get(rs.getResultVars().get(0)).asLiteral().getInt(); return cnt; }
public Set<OWLObjectProperty> getObjectPropertiesWithDomain(OWLClass domain) { Set<OWLObjectProperty> properties = new TreeSet<>(); String query = "SELECT ?p WHERE {?p <http://www.w3.org/2000/01/rdf-schema#domain> <" + domain.toStringID() + ">.}"; ResultSet rs = executeSelectQuery(query); QuerySolution qs; while(rs.hasNext()){ qs = rs.next(); properties.add(df.getOWLObjectProperty(IRI.create(qs.getResource("p").getURI()))); } return properties; }
public Set<OWLObjectProperty> getObjectProperties(OWLClass cls) { Set<OWLObjectProperty> properties = new TreeSet<>(); String query = "SELECT DISTINCT ?p WHERE {?s a <" + cls.toStringID() + ">. ?s ?p ?o}"; ResultSet rs = executeSelectQuery(query); QuerySolution qs; while(rs.hasNext()){ qs = rs.next(); properties.add(df.getOWLObjectProperty(IRI.create(qs.getResource("p").getURI()))); } return properties; }
protected Set<OWLClassAssertionAxiom> getExamples(ParameterizedSparqlString queryTemplate, EvaluatedAxiom<OWLSubClassOfAxiom> evAxiom) { OWLSubClassOfAxiom axiom = evAxiom.getAxiom(); queryTemplate.setIri("cls1", axiom.getSubClass().asOWLClass().toStringID()); queryTemplate.setIri("cls2", axiom.getSuperClass().asOWLClass().toStringID()); Set<OWLClassAssertionAxiom> examples = new TreeSet<>(); ResultSet rs = executeSelectQuery(queryTemplate.toString()); while (rs.hasNext()) { QuerySolution qs = rs.next(); OWLIndividual subject = df.getOWLNamedIndividual(IRI.create(qs.getResource("s").getURI())); examples.add(df.getOWLClassAssertionAxiom(axiom.getSuperClass(), subject)); } return examples; }