private String datatypeSparqlFilter(Iterable<OWLDatatype> dts) { return Joiner.on(" || ").join( StreamSupport.stream(dts.spliterator(), false) .map(input -> "DATATYPE(?o) = <" + input.toStringID() + ">") .collect(Collectors.toList()) ); }
private String render(OWLLiteral literal){ return "\"" + literal.getLiteral() + "\"^^<" + literal.getDatatype().toStringID() + ">"; }
@Override public SortedSet<OWLIndividual> getTrueDatatypeMembersImpl(OWLDataProperty datatypeProperty) { SortedSet<OWLIndividual> members = new TreeSet<>(); String query = String.format("SELECT ?ind WHERE {" + "?ind <%s> ?o." + " FILTER(isLiteral(?o) && DATATYPE(?o) = <%s> && ?o = %s)}", datatypeProperty.toStringID(), XSD.BOOLEAN.toStringID(), "\"true\"^^<" + XSD.BOOLEAN.toStringID() + ">"); ResultSet rs = executeSelectQuery(query); while(rs.hasNext()){ QuerySolution qs = rs.next(); members.add(df.getOWLNamedIndividual(IRI.create(qs.getResource("ind").getURI()))); } return members; }
@Override public SortedSet<OWLIndividual> getFalseDatatypeMembersImpl(OWLDataProperty datatypeProperty) { SortedSet<OWLIndividual> members = new TreeSet<>(); String query = String.format("SELECT ?ind WHERE {" + "?ind <%s> ?o." + " FILTER(isLiteral(?o) && DATATYPE(?o) = <%s> && ?o = %s)}", datatypeProperty.toStringID(), XSD.BOOLEAN.toStringID(), "\"false\"^^<"+XSD.BOOLEAN.toStringID() + ">"); ResultSet rs = executeSelectQuery(query); while(rs.hasNext()){ QuerySolution qs = rs.next(); members.add(df.getOWLNamedIndividual(IRI.create(qs.getResource("ind").getURI()))); } return members; }
case LENGTH: break; case MAX_EXCLUSIVE: sparql += "FILTER(" + variables.peek() + " < " + "\"" + value.getLiteral() + "\"^^<" + value.getDatatype().toStringID() + ">)"; break; case MAX_INCLUSIVE: sparql += "FILTER(" + variables.peek() + " <= " + "\"" + value.getLiteral() + "\"^^<" + value.getDatatype().toStringID() + ">)"; break; case MAX_LENGTH: break; case MIN_EXCLUSIVE: sparql += "FILTER(" + variables.peek() + " > " + "\"" + value.getLiteral() + "\"^^<" + value.getDatatype().toStringID() + ">)"; break; case MIN_INCLUSIVE: sparql += "FILTER(" + variables.peek() + " >= " + "\"" + value.getLiteral() + "\"^^<" + value.getDatatype().toStringID() + ">)"; break; case MIN_LENGTH:
query += "?p rdfs:range <" + range.asOWLDatatype().toStringID() + "> .";
/** * Converts an OWL API literal into a JENA API literal. * @param lit the OWL API literal * @return the JENA API literal */ public static LiteralLabel getLiteral(OWLLiteral lit){ OWLDatatype owlDatatype = lit.getDatatype(); RDFDatatype datatype; if(Namespaces.XSD.inNamespace(owlDatatype.getIRI())){ datatype = new XSDDatatype(owlDatatype.getIRI().getRemainder().get()); } else { datatype = new BaseDatatype(lit.getDatatype().toStringID()); } if(lit.hasLang()) { return LiteralLabelFactory.create(lit.getLiteral(), lit.getLang()); } else { return LiteralLabelFactory.create(lit.getLiteral(), datatype); } }
PROPERTY_OVERLAP_WITH_RANGE_QUERY.setIri("range", range.asOWLDatatype().toStringID()); query = PROPERTY_OVERLAP_WITH_RANGE_QUERY.toString(); } else {