使用耶拿(Jena)解析OWLS文档(RDF)时遇到问题。

该文档是OWLS Grounding,有我感兴趣的一段代码:

<grounding:WsdlAtomicProcessGrounding rdf:ID="wsdl_Grounding">
 <grounding:owlsProcess rdf:resource="process"/>
  <grounding:wsdlOperation>
   <grounding:WsdlOperationRef>
     <grounding:portType rdf:datatype="&xsd;#anyURI">&WSDL;#operationPort</grounding:portType>
     <grounding:operation rdf:datatype="&xsd;#anyURI">&WSDL;#operationPort</grounding:operation>
   </grounding:WsdlOperationRef>
  </grounding:wsdlOperation>
  ...(the OWLS Grounding continues)


我想获取“ portType”值,但是如果尝试使用下一个SPARQL代码,则没有任何结果。

PREFIX grounding: "http://www.daml.org/services/owl-s/1.2/Grounding.owl"
SELECT ?x y?
WHERE  {
           ?x grounding:hasAtomicProcessGrounding/grounding:wsdlOperation/grounding:WsdlOperationRef/grounding:portType ?y
       };


我建立的所有查询均有效,但这种查询具有链接的属性,
就我而言,链接的属性是; wsdlOperation,WsdlOperationRef和portType。

提前致谢 ;)

最佳答案

您需要确保使用的是SPARQL 1.1语法。缺省值为SPARQL 1.0,它不支持属性路径。使用接受com.hp.hpl.jena.query.Syntax参数并传递syntaxSPARQL_11常量的API调用。

09-26 14:03