1
我正在嘗試使用SPARQL計算數據集的統計模式(以最高頻率出現的值)。如何計算SPARQL中的統計模式
我可以生成像這樣的數據值及其頻率的列表:
SELECT (COUNT(?o) AS ?no) ?o
WHERE {?s ?p ?o
FILTER isLiteral(?o)
}
GROUP BY ?o ORDER by DESC(?no)
結果像這樣:
| 410 | "yes"^^<http://www.w3.org/2001/XMLSchema#string>
| 19 | "true"^^<http://www.w3.org/2001/XMLSchema#string>
| 12 | "Offical"^^<http://www.w3.org/2001/XMLSchema#string> ...
不過,我只想數據的第一行,即價值和數據集中最常見的對象值的頻率。
我一直在使用MAX像這樣嘗試:
SELECT (MAX(?no) AS ?maxNo)
{
SELECT (COUNT(?o) AS ?no) ?o
WHERE {?s ?p ?o
FILTER isLiteral(?o)
}
GROUP BY ?o ORDER by DESC(?no)
}
,並可以得到計數回像這樣:
---------
| maxNo |
=========
| 410 |
---------
但我想回去是最常見的兩種計發生數據值和那個數據值是這樣的:
| 410 | "yes"^^<http://www.w3.org/2001/XMLSchema#string>
我已經嘗試綁定?q在子q uery並將?o添加到外部SELECT,但都給我語法錯誤。
我還能試試嗎?
感謝您的閱讀。
非常簡單的解決方案。作品一種享受。非常感謝你安迪。沒有任何一點橫向思維,我肯定是過度複雜的那一個! – Hilary