【问题标题】:sparql DESCRIBE query to get data about linked objectssparql DESCRIBE 查询以获取有关链接对象的数据
【发布时间】:2014-09-03 20:00:47
【问题描述】:

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

书的属性

Book -Id -name -authoredBy

Person -id -firstName -LastName -designation

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

描述 ?book 在哪里 { ?book a rdf:Book ;

}

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

我想查看所有属于作者的谓词(即它的名字、姓氏)。可以修改上面的 DESCRIBE 查询来实现这个吗?

【问题讨论】:

    标签: rdf sparql owl rdfs


    【解决方案1】:

    所有属于 Book 的属性都使用 DESCRIBE

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


    但是,您当然可以获得书籍及其作者的属性和值。 describe 查询的特定结果取决于实现。即使您正在使用的实现会给您某些结果,但不能保证其他实现会给您带来这样的结果。使用 construct 查询更安全。在你的情况下,听起来你想要

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

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多