繁体   English   中英

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

[英]sparql: How to get all data property assertions of anindividual

我有这样的本体

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

基本上,它描述具有数据属性声明(dm,den,p,glus,k和enerc_kcal)的个人(W21)。

如何使用sparql返回个人拥有的所有数据属性。 我建立的查询只是返回一堆“ NamedIndividual”

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
SELECT ?x 
WHERE {  my:W21 rdf:type ?x}

有什么帮助吗?

您的查询,

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
SELECT ?x 
WHERE {  my:W21 rdf:type ?x}

询问rdf:type属性的值。 在显示的数据中,只有一个,即owl:NamedIndividual 如果您想要所有属性的值,则可以使用类似

PREFIX my: <http://www.semanticweb.org/li/ontologies/159702/fcd#>
SELECT ?p ?o  
WHERE {  my:W21 ?p ?o }

现在,在问题标题中,您已经询问了数据属性 ,但是我不确定您是否要询问“作为属性对象的数据”,或者实际上是在询问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 }

获取实际上声明为数据类型属性的所有属性值。 但是,如果没有属性声明,则可能只想询问文字对象:

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) }

我不知道我是否正确理解了这个问题,但是:

SELECT DISTINCT * WHERE { ?s ?p ?o }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM