对rdf:resource的SPARQL查询

时间:2013-04-30 19:04:24

标签: rdf sparql semantic-web jena owl

假设我想以标准状态'gas'检索周期表中所有元素的名称。以下是我认为的.owl文件的相关部分......

<owl:Class rdf:ID='StandardState'>
    <owl:oneOf rdf:parseType='Collection'>
        <StandardState rdf:ID='state_unknown'/>
        <StandardState rdf:ID='gas'/>
        <StandardState rdf:ID='solid'/>
        <StandardState rdf:ID='liquid'/>
    </owl:oneOf>
</owl:Class>

...包含Element StandardState的{​​{1}}商家信息的示例,当然还有更多,但格式相同......

'gas'

我知道如何查询我最终想要的内容是否链接到XSD原语,如<Element rdf:ID="He"> <name rdf:datatype="&xsd;string">helium</name> <symbol rdf:datatype="&xsd;string">He</symbol> <atomicNumber rdf:datatype="&xsd;integer">2</atomicNumber> <atomicWeight rdf:datatype="&xsd;float">4.002602</atomicWeight> <group rdf:resource="#group_18"/> <period rdf:resource="#period_1"/> <block rdf:resource="#p-block"/> <standardState rdf:resource="#gas"/> <color rdf:datatype="&xsd;string">colourless</color> <classification rdf:resource="#Non-metallic"/> <casRegistryID rdf:datatype="&xsd;string">7440-59-7</casRegistryID> </Element> ,但当我查询的是^^xsd:string时,我对如何继续进行。

1 个答案:

答案 0 :(得分:4)

您查询非文字的方式与查询文字的方式相同:通过编写图形模式来匹配它们。在这种情况下,您可以执行以下操作:

PREFIX ex: <http://www.example.org/periodic-table#>
SELECT ?element 
WHERE { 
  ?element ex:standardState ex:gas .
}