我正在尝试形成SPARQL查询,它将从RDF下面的给定Java类中提供域名和方法名称 . 例如
选择DomainNames,MethodName,其中JavaClass ='MyJavaClass' . 这只是一个伪查询 . 我需要帮助在SPARQL中形成类似的查询 . 谢谢 .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:DOL="http://www.MyOnt.com/something/v1#"
xmlns:DC="http://purl.org/dc/dcmitype/"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<rdf:Description rdf:about="http://www.MyOnt.com/something/data/MyJavaClass">
<DOL:belongsTo>
<rdf:Description rdf:about="http://www.MyOnt.com/something/data/MyDomain">
<DOL:domainName>MyDomainValue2</DOL:domainName>
<DOL:domainName>MyDomainValue</DOL:domainName>
</rdf:Description>
</DOL:belongsTo>
<DOL:hasMethod>
<rdf:Description rdf:about="http://www.MyOnt.com/something/data/MyMethod">
<DOL:returnType>MethodReturnType</DOL:returnType>
</rdf:Description>
</DOL:hasMethod>
<foaf:name>MyJavaClass</foaf:name>
</rdf:Description>
</rdf:RDF>
1 回答
通常,如果您首先将数据放入Turtle(其语法与SPARQL非常相似),则通常更容易理解SPARQL查询的外观 . 以下是您在Turtle中的数据:
一旦你正在寻找域和方法,你需要使用 union (假设你想将域和方法绑定为不同的变量) .
如果您愿意将域和方法绑定到同一个变量,则可以使用交替属性路径来选择域或方法:
作为另一种选择,您可以使用 values 块来指定要遵循的属性( hasMethod 或 belongsTo ),在这种情况下,您也可以选择该属性,以便了解您拥有的值类型: