2016-09-14 64 views
-1

假设我们有一个我们一无所知的数据集,但有一个公共的SPARQL端点。我想发出将返回此数据集中所有文字值的SPARQL查询/查询。这个查询是怎样的?如何通过SPARQL查询提取RDF文字?

我需要这个的原因是我打算在很多数据集上使用相同的查询。所以,我不需要浏览他们每个人,知道他们用于文字的词汇。

此外,不知道这是否属实,但对我来说听起来合理,我相信这些端点具有某种安全措施,以便不会对它们执行长时间运行的查询。有没有办法使用LIMIT N返回这些文字。因此,我通过一个查询来获得这些文字N,而不是所有的文字?

+1

特别是你要求一种限制结果集的方法,让我假设你没有看过任何SPARQL教程。 – AKSW

+1

作为一个提示,看看如何查询最普通/普通的三重模式+添加一个FILTER,限制三重模式的对象是一个文字+使用一些LIMIT N. – AKSW

+0

是的,我知道LIMIT和OFFSET 。因为我不知道最佳答案是什么,所以我只是不想将答案指向某个地方。 – user2467278

回答

4

假设我们有一个我们一无所知的数据集,但有一个公开的 SPARQL端点。我想发布SPARQL查询/查询,将 返回此数据集中的所有文字值。这个查询如何看起来像 ?

你最好先确认一下是否是一个文本使用isLiteral功能与过滤。文字只能出现在三元组的对象位置,所以如果你只是得到每一个三元组,并检查对象是否是文字,你会得到所有的文字。由于某些文字可能会出现多次,因此您还应该使用截然不同的以消除重复的结果。

select distinct ?literal { 
    ?s ?p ?literal 
    filter isLiteral(?literal) 
} 

至于在某一时刻的ň文字块检索这些,这就是通常被称为分页,而这被讨论,而在另一个回答过的问题,Paginating SPARQL results

+0

谢谢你。正是我在找什么:) – user2467278