Rdf sparql描述获取链接对象数据的查询

Rdf sparql描述获取链接对象数据的查询,rdf,sparql,owl,rdfs,Rdf,Sparql,Owl,Rdfs,我已经为书籍定义了一个rdf类。 另一个用于描述人的rdf类。 Book类包含authoredBy字段,该字段将Book实例链接到people实例 书的性质 书 -身份证 -名字 -作者 人 -身份证 -名字 -姓氏 -名称 为了检索书籍属性,我使用以下sparql查询 DESCRIBE ?book WHERE { ?book a rdf:Book ; } 描述?书 哪里 { ?预订rdf:预订 } 我能够使用descripe检索属于Book的所有属性,即谓词、主语和宾语。但是,当涉及a

我已经为书籍定义了一个rdf类。 另一个用于描述人的rdf类。 Book类包含authoredBy字段,该字段将Book实例链接到people实例

书的性质

书
-身份证
-名字
-作者

人
-身份证
-名字
-姓氏
-名称

为了检索书籍属性,我使用以下sparql查询

DESCRIBE ?book WHERE { ?book a rdf:Book ;

}
描述?书 哪里 { ?预订rdf:预订

}

我能够使用descripe检索属于Book的所有属性,即谓词、主语和宾语。但是,当涉及authoredBy字段时,上面的查询只返回作者的URI

我也希望看到属于author的所有谓词(即它的firstname、lastname)。是否可以修改上述查询以实现此目的

所有属于书的属性都使用描述

属性不属于事物。OWL不是一种面向对象的编程语言


然而,你当然可以得到书籍及其作者的属性和价值。描述查询的特定结果取决于实现。即使您正在使用的实现为您提供了某些结果,也不能保证其他实现会为您提供这些结果。使用构造查询更安全。在你的情况下,听起来像是你想要的

construct where { 
  ?book a ex:Book ;
        ?p ?o ;
        ex:authoredBy* ?author .
  ?author ?ap ?ao .
}
这将返回关于所有书籍及其作者的所有三元组的图表


我使用以下sparql查询

DESCRIBE ?book WHERE { ?book a rdf:Book ;

}
请注意,您确实不应该在RDF名称空间中定义自己的术语(例如,RDF:Book)。您应该为自己的类使用其他名称空间

所有属于书的属性都使用描述

属性不属于事物。OWL不是一种面向对象的编程语言


然而,你当然可以得到书籍及其作者的属性和价值。描述查询的特定结果取决于实现。即使您正在使用的实现为您提供了某些结果,也不能保证其他实现会为您提供这些结果。使用构造查询更安全。在你的情况下,听起来像是你想要的

construct where { 
  ?book a ex:Book ;
        ?p ?o ;
        ex:authoredBy* ?author .
  ?author ?ap ?ao .
}
这将返回关于所有书籍及其作者的所有三元组的图表


我使用以下sparql查询

DESCRIBE ?book WHERE { ?book a rdf:Book ;

}
请注意,您确实不应该在RDF名称空间中定义自己的术语(例如,RDF:Book)。您应该为自己的类使用其他名称空间