2016-09-14 40 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