[英]Calculating DBPedia resources with the most predicates
我認為詢問DBPedia哪個資源是最豐富的謂詞會很有趣。
我嘗試運行以下查詢:
SELECT DISTINCT ?s (count(?p) AS ?info)
WHERE {
?s ?p ?o .
}
GROUP BY ?s ?p
ORDER BY desc(?info)
LIMIT 50
並且它超時了,所以我無法驗證它是否是正確的查詢。
因此,我剩下以下兩個問題:
假設您有如下數據:
@prefix : <http://stackoverflow.com/q/22391927/1281433/> .
:a :p 1, 2, 3 ;
:q 4, 5 .
:b :p 1, 2 ;
:q 3, 4 ;
:r 5, 6 .
:c :p 1 ;
:q 2 ;
:r 3 .
然后,您可以使用以下查詢來詢問每個資源要包含多少個三元組:
prefix : <http://stackoverflow.com/q/22391927/1281433/>
select ?s (count(*) as ?n) where {
?s ?p ?o
}
group by ?s
order by desc(?n)
----------
| s | n |
==========
| :b | 6 |
| :a | 5 |
| :c | 3 |
----------
請注意,如果您對每種資源的主題數是多少三倍感興趣,則只想group by ?s
。 在原始查詢中,將group by ?s ?p
,您將根據對具有多少個值對(主題,謂詞)進行排序。 例如,
prefix : <http://stackoverflow.com/q/22391927/1281433/>
select ?s ?p (count(*) as ?n) where {
?s ?p ?o
}
group by ?s ?p
order by desc(?n)
---------------
| s | p | n |
===============
| :a | :p | 3 |
| :b | :p | 2 |
| :a | :q | 2 |
| :b | :q | 2 |
| :b | :r | 2 |
| :c | :p | 1 |
| :c | :q | 1 |
| :c | :r | 1 |
---------------
我不希望您能夠在DBpedia上運行這樣的查詢。 它需要觸摸數據中的每個三元組,然后按資源所屬的三元組順序對資源進行排序。 這聽起來像很多工作。 您也許可以下載數據,將其加載到本地端點並運行查詢,從而避免超時,但是如果仍然需要一段時間,我也不會感到驚訝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.