/** * Return a map from property nodes to a list of RDFDatatype objects * which have been declared as the range of that property. */ protected HashMap<Node, List<RDFDatatype>> getDTRange() { if (dtRange == null) { dtRange = new HashMap<>(); for (Iterator<Triple> i = find(null, RDFS.range.asNode(), null); i.hasNext(); ) { Triple triple = i.next(); Node prop = triple.getSubject(); Node rangeValue = triple.getObject(); if (rangeValue.isURI()) { RDFDatatype dt = TypeMapper.getInstance().getTypeByName(rangeValue.getURI()); if (dt != null) { List<RDFDatatype> range = dtRange.get(prop); if (range == null) { range = new ArrayList<>(); dtRange.put(prop, range); } range.add(dt); } } } } return dtRange; }
/** * Return a map from property nodes to a list of RDFDatatype objects * which have been declared as the range of that property. */ protected HashMap<Node, List<RDFDatatype>> getDTRange() { if (dtRange == null) { dtRange = new HashMap<>(); for (Iterator<Triple> i = find(null, RDFS.range.asNode(), null); i.hasNext(); ) { Triple triple = i.next(); Node prop = triple.getSubject(); Node rangeValue = triple.getObject(); if (rangeValue.isURI()) { RDFDatatype dt = TypeMapper.getInstance().getTypeByName(rangeValue.getURI()); if (dt != null) { List<RDFDatatype> range = dtRange.get(prop); if (range == null) { range = new ArrayList<>(); dtRange.put(prop, range); } range.add(dt); } } } } return dtRange; }
public JSLiteral literal(String value, Object langOrDatatype) { if(langOrDatatype instanceof JSNamedNode) { return new JSLiteral(NodeFactory.createLiteral(value, TypeMapper.getInstance().getTypeByName(((JSNamedNode)langOrDatatype).getValue()))); } else if(langOrDatatype instanceof String) { return new JSLiteral(NodeFactory.createLiteral(value, (String)langOrDatatype)); } else { throw new IllegalArgumentException("Invalid type of langOrDatatype argument"); } }
public JSLiteral literal(String value, Object langOrDatatype) { if(langOrDatatype instanceof JSNamedNode) { return new JSLiteral(NodeFactory.createLiteral(value, TypeMapper.getInstance().getTypeByName(((JSNamedNode)langOrDatatype).getValue()))); } else if(langOrDatatype instanceof String) { return new JSLiteral(NodeFactory.createLiteral(value, (String)langOrDatatype)); } else { throw new IllegalArgumentException("Invalid type of langOrDatatype argument"); } }
continue; return typeMapper.getTypeByName(propValueType.toString());
static public Node makeGraphLiteral(final ATermAppl literal) { Node node; final String lexicalValue = ((ATermAppl) literal.getArgument(0)).getName(); final ATermAppl lang = (ATermAppl) literal.getArgument(1); final ATermAppl datatype = (ATermAppl) literal.getArgument(2); if (datatype.equals(ATermUtils.PLAIN_LITERAL_DATATYPE)) { if (lang.equals(ATermUtils.EMPTY)) node = NodeFactory.createLiteral(lexicalValue); else node = NodeFactory.createLiteral(lexicalValue, lang.getName(), false); } else if (datatype.equals(Datatypes.XML_LITERAL)) node = NodeFactory.createLiteral(lexicalValue, "", true); else { final RDFDatatype type = TypeMapper.getInstance().getTypeByName(datatype.getName()); node = NodeFactory.createLiteral(lexicalValue, "", type); } return node; }
static public Node makeGraphLiteral(final ATermAppl literal) { Node node; final String lexicalValue = ((ATermAppl) literal.getArgument(0)).getName(); final ATermAppl lang = (ATermAppl) literal.getArgument(1); final ATermAppl datatype = (ATermAppl) literal.getArgument(2); if (datatype.equals(ATermUtils.PLAIN_LITERAL_DATATYPE)) { if (lang.equals(ATermUtils.EMPTY)) node = NodeFactory.createLiteral(lexicalValue); else node = NodeFactory.createLiteral(lexicalValue, lang.getName(), false); } else if (datatype.equals(Datatypes.XML_LITERAL)) node = NodeFactory.createLiteral(lexicalValue, "", true); else { final RDFDatatype type = TypeMapper.getInstance().getTypeByName(datatype.getName()); node = NodeFactory.createLiteral(lexicalValue, "", type); } return node; }
static public Node makeGraphLiteral(final ATermAppl literal) { Node node; final String lexicalValue = ((ATermAppl) literal.getArgument(0)).getName(); final ATermAppl lang = (ATermAppl) literal.getArgument(1); final ATermAppl datatype = (ATermAppl) literal.getArgument(2); if (datatype.equals(ATermUtils.PLAIN_LITERAL_DATATYPE)) { if (lang.equals(ATermUtils.EMPTY)) node = NodeFactory.createLiteral(lexicalValue); else node = NodeFactory.createLiteral(lexicalValue, lang.getName(), false); } else if (datatype.equals(Datatypes.XML_LITERAL)) node = NodeFactory.createLiteral(lexicalValue, "", true); else { final RDFDatatype type = TypeMapper.getInstance().getTypeByName(datatype.getName()); node = NodeFactory.createLiteral(lexicalValue, "", type); } return node; }
RDFDatatype dataTypeFromShape = typeMapper.getTypeByName(propValueType.toString());
public void testRDFLangString_1() { // Registration RDFDatatype dt = TypeMapper.getInstance().getTypeByName(RDF.langString.getURI()) ; assertEquals(RDF.dtLangString, dt) ; assertTrue(RDF.dtLangString == dt) ; }
public void testRDFLangString_1() { // Registration RDFDatatype dt = TypeMapper.getInstance().getTypeByName(RDF.langString.getURI()) ; assertEquals(RDF.dtLangString, dt) ; assertTrue(RDF.dtLangString == dt) ; }
@Test public void testDatapropertyRange() { final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(_base + "datataype_range.owl"); model.prepare(); final Iterator<?> i = model.listDatatypeProperties(); while (i.hasNext()) { final DatatypeProperty p = (DatatypeProperty) i.next(); final Iterator<?> j = p.listRange(); while (j.hasNext()) { final Resource range = (Resource) j.next(); assertTrue(TypeMapper.getInstance().getTypeByName(range.getURI()) != null); } } }
/** * TODO: Somehow we also need to get a warning on upcasts * * @param source * @param targetTypeName * @return */ public static NodeValue cast(TypeMapper typeMapper, NodeValue source, String targetTypeName) throws CastException { // Get the corresponding TypeMapper java class of the targetType RDFDatatype targetType = typeMapper.getTypeByName(targetTypeName); if(targetType == null) { throw new CastException(); } Class<?> targetClass = targetType.getJavaClass(); if(targetClass == null) { throw new CastException(); } Object value = NodeValueUtilsSparqlify.getValue(source); Object targetValue = Caster.tryCast(value, targetClass); String targetForm = targetType.unparse(targetValue); Node node = NodeFactory.createLiteral(targetForm, targetType); NodeValue result = NodeValue.makeNode(node); return result; }
@Override protected NodeValue exec(Node literalNode, Node datatypeNode, FunctionEnv env) { if(literalNode == null || !literalNode.isLiteral()) { throw new ExprEvalException(); } String lex = literalNode.getLiteralLexicalForm(); if(!datatypeNode.isURI()) { throw new ExprEvalException(); } RDFDatatype datatype = TypeMapper.getInstance().getTypeByName(datatypeNode.getURI()); if(datatype == null) { return NodeValue.TRUE; } else { boolean valid = datatype.isValid(lex); return NodeValue.makeBoolean(valid); } } }
@Override protected NodeValue exec(Node literalNode, Node datatypeNode, FunctionEnv env) { if(literalNode == null || !literalNode.isLiteral()) { throw new ExprEvalException(); } String lex = literalNode.getLiteralLexicalForm(); if(!datatypeNode.isURI()) { throw new ExprEvalException(); } RDFDatatype datatype = TypeMapper.getInstance().getTypeByName(datatypeNode.getURI()); if(datatype == null) { return NodeValue.TRUE; } else { boolean valid = datatype.isValid(lex); return NodeValue.makeBoolean(valid); } } }
@Test public void testDuplicateLiterals() { final String ns = "http://www.example.org/test#"; final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); final DatatypeProperty dp = model.createDatatypeProperty(ns + "dp"); final OntClass C = model.createClass(ns + "C"); final Individual a = model.createIndividual(ns + "a", C); final Literal one = model.createTypedLiteral("1", TypeMapper.getInstance().getTypeByName(XSD.positiveInteger.getURI())); a.addProperty(dp, one); model.prepare(); final Literal oneDecimal = model.createTypedLiteral("1", TypeMapper.getInstance().getTypeByName(XSD.decimal.getURI())); assertIteratorValues(a.listPropertyValues(dp), new Literal[] { one }); assertTrue(a.hasProperty(dp, oneDecimal)); }
final Individual b = model.createIndividual(ns + "b", C); final Literal one = model.createTypedLiteral("1", TypeMapper.getInstance().getTypeByName(XSD.positiveInteger.getURI())); a.addProperty(dp, one); final Literal two = model.createTypedLiteral("2", TypeMapper.getInstance().getTypeByName(XSD.positiveInteger.getURI())); b.addProperty(dp, two);
final Individual a = model.createIndividual(ns + "a", C); final Literal one = model.createTypedLiteral("1", TypeMapper.getInstance().getTypeByName(XSD.positiveInteger.getURI())); a.addProperty(dp, one);