【问题标题】:SPARQL query - Class and subclass give a class name and namespaceSPARQL 查询 - 类和子类给出类名和命名空间
【发布时间】:2016-04-19 01:55:03
【问题描述】:

在给定类名和命名空间的情况下,如何使用 SPARQL 查询从 RDF 数据源中获取所有类属性及其子类的属性?

【问题讨论】:

  • 当您说您想要“类属性”时,您是指个人(类的实例)及其属性吗?当你想要子类时,你是否也想要传递子类(A => B,B => C,所以你想要 A => C)?您能否提供您正在查询的 RDF 图的示例?

标签: rdf semantic-web sparql owl ontology


【解决方案1】:

您是否尝试执行递归 SPARQL 查询?换句话说,选择给定的个人及其所有属性。如果属性的对象是另一个个体,则选择其属性,依此类推。

我不相信 SPARQL 支持这一点。

天真的方法是做这样的事情(假设您指的是个人而不是班级,这实际上符合您的要求,但不处理下一个“级别”的三元组)。

CONSTRUCT {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
} WHERE {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
}

请注意,如果?o2 是任何语句的主题,则此查询不会返回它们。

【讨论】:

    【解决方案2】:

    this怎么样:

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    SELECT ?subClass ?predicate 
    WHERE {
       ?subClass rdfs:subClassOf <http://dbpedia.org/ontology/Work> .
       ?predicate rdfs:domain ?subClass
    }
    

    尝试使用 SPARQL 工具,例如 DBPedia's SNORQL interface

    【讨论】:

      猜你喜欢
      • 2020-05-02
      • 2022-12-31
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      相关资源
      最近更新 更多