sparql DESCRIBE查询以获取有关链接对象的数据

时间:2014-09-03 20:00:48

标签: rdf sparql owl rdfs

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

书的属性

Book -Id -name -authoredBy

Person -id -firstName -LastName -designation

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

DESCRIBE?书 哪里 {    ?预订rdf:Book;

}

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

我希望看到属于作者的所有谓词(即它的名字,姓氏)。是否可以修改上述DESCRIBE查询以实现此目的?

1 个答案:

答案 0 :(得分:4)

  

使用DESCRIBE

属于Book的所有属性

属性不属于"属于"事情。 OWL不是面向对象的编程语言。


但是,您当然可以获得书籍及其作者的属性和价值。 describe 查询的特定结果取决于实现。尽管您使用的实施方案可以为您提供一定的结果,但并不能保证其他实施方案能够为您提供这些结果。使用构造查询更安全。在你的情况下,听起来像你想要的

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 一样)。您应该为自己的类使用一些其他命名空间。