在SPARQL中查找超类并按距离排序

时间:2015-07-24 15:10:42

标签: sparql

我找到了一个类型的所有超类,以及的所有超类类型,依此类推。我使用+运算符执行此操作:

SELECT ?superclass WHERE{
    <myType> <superclassPredicate>+ ?superclass
}

我希望以合理的顺序恢复这些超类(例如,最具体到最不具体)。有没有办法保证这个?我熟悉ORDER BY,但我不知道该怎么做。

换句话说:我可以跟踪有多少&#34;跳跃&#34;是由+运算符?

修改

它似乎确实是这样做的(至少在我的实现中),但我想知道是否总是如此。

1 个答案:

答案 0 :(得分:0)

你可以采用@Joshua Taylor的答案here的以下部分,按照中间的班级数进行排序:

prefix : <http://example.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

select ?class where { 
  :Win7 rdfs:subClassOf* ?mid .
  ?mid rdfs:subClassOf* ?class .
}
group by ?class
order by count(?mid)

(@ Joshua Taylor)