sparql:如何获取个人的所有数据属性断言

Sad*_*ddy -1 rdf sparql

我有这样的本体论

<rdf:Description rdf:about="http://www.semanticweb.org/li/ontologies/159702/fcd#W21">
    <prop:dm rdf:datatype="http://www.w3.org/2001/XMLSchema#double">99.87</prop:dm>
    <prop:den rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.86</prop:den>
    <prop:p rdf:datatype="http://www.w3.org/2001/XMLSchema#double">20.0</prop:p>
    <prop:glus rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.1</prop:glus>
    <prop:k rdf:datatype="http://www.w3.org/2001/XMLSchema#double">300.0</prop:k>
    <rdf:type rdf:resource="http://www.semanticweb.org/li/ontologies/159702/fcd#Food"/>
    <prop:enerc_kcal rdf:datatype="http://www.w3.org/2001/XMLSchema#double">398.24</prop:enerc_kcal>
<rdf>
Run Code Online (Sandbox Code Playgroud)

基本上它描述了一个人(W21)有数据属性断言(dm,den,p,glus,k和enerc_kcal).

如何返回个人使用sparql的所有数据属性.我建立的查询只返回一堆"NamedIndividual"

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
SELECT ?x 
WHERE {  my:W21 rdf:type ?x}
Run Code Online (Sandbox Code Playgroud)

对此有何帮助?

Jos*_*lor 5

您的查询,

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
SELECT ?x 
WHERE {  my:W21 rdf:type ?x}
Run Code Online (Sandbox Code Playgroud)

要求rdf:type财产的价值.在您显示的数据中,只有其中一个,那就是owl:NamedIndividual.如果你想要所有属性的值,你可以使用类似的东西

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
SELECT ?p ?o  
WHERE {  my:W21 ?p ?o }
Run Code Online (Sandbox Code Playgroud)

现在,在问题标题中,您已经询问了数据属性,但我不确定您是否要求"作为属性对象的数据",或者您是否真的询问OWL DatatypeProperties哪个有文字,但没有资源,作为价值观.如果这是你想要的,你可以使用:

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
PREFIX owl:     <http://www.w3.org/2002/07/owl#>
SELECT ?p ?o  
WHERE {  my:W21 ?p ?o . ?p a owl:DatatypeProperty }
Run Code Online (Sandbox Code Playgroud)

获取实际声明为数据类型属性的所有属性值.但是,如果您没有属性声明,则可能只想要提供文字对象:

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
PREFIX owl:     <http://www.w3.org/2002/07/owl#>
SELECT ?p ?o  
WHERE {  my:W21 ?p ?o . filter isLiteral(?o) }
Run Code Online (Sandbox Code Playgroud)