【问题标题】:Output all parents under a particular root输出特定根目录下的所有父母
【发布时间】:2014-10-06 19:22:29
【问题描述】:

我有一个从根到叶长度不同的结构。我希望将它们输出到列表中。我也希望所有的父母和祖父母都在 market_segment 之下。最大深度为 5 级,如何将结果绑定到仅 Market_segment 而不转到 Market_segment 的父级。如果路径短于 5,则当前此查询将返回 Market_Segment 的父级。

PREFIX mdy: <http://www.owl-ontologies.com/mdys.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?node ?parent ?gparent ?ggparent ?gggparent ?ggggparent
       WHERE {
                 ?node rdfs:subClassOf* mdy:Market_Segment                 
                   OPTIONAL {?node rdfs:subClassOf ?parent.
                    OPTIONAL {?parent rdfs:subClassOf ?gparent.
                    OPTIONAL {?gparent rdfs:subClassOf ?ggparent.
                    OPTIONAL {?ggparent rdfs:subClassOf ?gggparent.
                    OPTIONAL {?gggparent rdfs:subClassOf ?ggggparent.
                     }}}}}
}

【问题讨论】:

标签: rdf sparql semantic-web owl


【解决方案1】:

使用反向属性路径:

PREFIX mdy: <http://www.owl-ontologies.com/mdys.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?node ?parent
   WHERE {
             ?node ^rdfs:subClassOf* mdy:Market_Segment  .
             ?node ^rdfs:subClassOf ?parent         
}

另请参阅 http://www.w3.org/TR/sparql11-query/#propertypaths

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多