我的猫头鹰档案是
....
<filePeakHour rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>16</filePeakHour>
...
我想创建在FilePeakHour为16的情况下退出SUBJECT的查询。
为此,当我在Protege SparqlPlugin中运行以下查询时,它运行正常
SELECT ?x
WHERE { ?x <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#filePeakHour>"16"^^xsd:int }
但是当我将其转换为耶拿格式时
String queryString =
"SELECT ?x WHERE { ?x <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#filePeakHour>\"16\"^^xsd:int }";
它返回错误:
Exception in thread "main" com.hp.hpl.jena.query.QueryParseException: Line 1, column 121: Unresolved prefixed name: xsd:int
at com.hp.hpl.jena.sparql.lang.ParserBase.throwParseException(ParserBase.java:661)
at com.hp.hpl.jena.sparql.lang.ParserBase.resolvePName(ParserBase.java:274)
at com.hp.hpl.jena.sparql.lang.sparql_11.SPARQLParser11.PrefixedName(SPARQLParser11.java:4888)
at com.hp.hpl.jena.sparql.lang.sparql_11.SPARQLParser11.iri(SPARQLParser11.java:4872)
at com.hp.hpl.jena.sparql.lang.sparql_11.SPARQLParser11.RDFLiteral(SPARQLParser11.java:4704)
如何从Jena中的owl文件中检索xsd:int值
答案 0 :(得分:2)
阅读异常消息,您似乎应该在查询中定义前缀:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?x
WHERE { ?x <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#filePeakHour> "16"^^xsd:int }
您可能会使用的其他常见命名空间及其IRIS可以在1.2.1 Namespaces的SPARQL Query Language for RDF中找到。 query validator at sparql.org还包括一堆。在prefix.cc也有可搜索的RDF常用前缀列表。