Jena如何检索对整数(xsd:int)value-Sparql的语句

时间:2014-07-27 19:49:36

标签: java rdf sparql jena owl

我的猫头鹰档案是

 ....
<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值

1 个答案:

答案 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 NamespacesSPARQL Query Language for RDF中找到。 query validator at sparql.org还包括一堆。在prefix.cc也有可搜索的RDF常用前缀列表。