如何在 SPARQL 中获取 class 的数据属性和 2 class 之间的对象属性

How to get data properties of class and object properties between 2 class in SPARQL

我有一个ontologytourism.owl(格式rdf/xml)。有一些class(旅游、城市、酒店...)。在游览 class 中,我有一个数据 属性 "hasDate",游览 class 使用 "hasCity" 对象 属性 与城市 class 连接. 例如:TourA hasDate“01-01-2001”和 TourA hasCity London。

  1. 如何获取“01-01-2001”(数据属性值)?
  2. 如何获取2class之间的对象属性? (例如:Tour class 和 City class,结果是 hasCity)?

感谢您的帮助!

非常简单。通常在 SPARQL 中,如果您知道两个概念之间的关系,您可以直接询问:

Which two concepts have this specific property?

属性 是对象 属性 还是数据类型 属性 并不重要。例如,假设在你的 ontology 中 URI 是 http://www.co-ode.org/test.owl# 并且你想提取 hasDate,那么你只需要写:

PREFIX : <http://www.co-ode.org/test.owl#>
SELECT ?subject ?object
    WHERE { ?subject :hasDate ?object }

如果你想得到一个对象属性 hasCity,那么你只需写:

    PREFIX : <http://www.co-ode.org/test.owl#>
    SELECT ?subject ?object
            WHERE { ?subject :hasCity ?object }