Sparql查询:不止一次获取所有引用引用文本的文本

时间:2014-04-26 17:59:59

标签: sparql

我正在尝试查询我的数据集,以便我可以找到由不同文本部分引用的所有引用不止一次,但我的查询无法正常工作。

我在考虑这样的事情,但我不确定我做得对不对。非常感谢帮助。

SELECT ?s
WHERE {
       ?s a <http://scta.info/quotation> .
       ?s scta-rel:quotedBy ?section .
       FILTER (?section > 1) .
  }
LIMIT 1000

以下是不止一次引用的每种报价类型的信息类型的示例。请注意,此条目由3个不同的文本引用。

Property    Value
dc:title     Omnia per ipsum facta sunt, et sine ipso factum est nihil, quod factum est;
scta-rel:quotedBy   http://scta.info/items/lectio131
scta-rel:quotedBy   http://scta.info/items/lectio109
scta-rel:quotedBy   http://scta.info/items/lectio133
scta-terms:fromBiblicalBook http://scta.info/works/io
scta-terms:citation  io1_3
scta-terms:fromBiblicalChapter   1
scta-terms:fromBiblicalVerse     3
scta-terms:quotation     Omnia per ipsum facta sunt, et sine ipso factum est nihil, quod factum est;
scta-terms:quotetype    http://scta.info/quotetypes/biblical
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://scta.info/quotation

1 个答案:

答案 0 :(得分:1)

您需要计算?section

的出现次数
SELECT ?s
WHERE {
       ?s a <http://scta.info/quotation> .
       ?s scta-rel:quotedBy ?section .
  }
GROUP BY ?s
HAVING (count(?section) > 1)

这可以通过计算每个?s的部分来实现。每个?section ?s必须是唯一的,因为RDF图是三元组的集合,没有重复项。 因此,?s scta-rel:quotedBy ?section .GROUP BY ?s仅为每个?section提供一次?s