Rdf 输出特定根目录下的所有父目录

Rdf 输出特定根目录下的所有父目录,rdf,sparql,semantic-web,owl,Rdf,Sparql,Semantic Web,Owl,我有一个结构,从根到叶有不同的长度。我希望将它们输出到一个列表中。我也希望所有的父母和祖父母都能进入市场。最大深度为5级,如何将结果仅绑定到Market_segment,而不转到Market_segment的父级。当前,如果路径短于5,则此查询将返回Market_段的父级 PREFIX mdy: <http://www.owl-ontologies.com/mdys.owl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema

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

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.
                     }}}}}
}

使用反向属性路径:

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         
}
另见

您是要做还是要帮忙?它们是相似的问题。您不会很容易得到不同的变量?parent、gparent等,但您可以得到每个节点的深度。