[英]SPARQL DBPedia encoding
我在DBpedia上運行查詢,並且收到一些結果,這些結果顯然具有錯誤的編碼和顯示為問號的字符,例如-
http://dbpedia.org/resource/Bo?aziçi_University
-我希望看到的地方-
http://dbpedia.org/resource/Bo%C4%9Fazi%C3%A7i_University
在這里您可以找到實際標題。
您可以在http://live.dbpedia.org/sparql
執行我的查詢
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX schema: <http://schema.org/>
PREFIX dbpedia: <http://dbpedia.org/>
SELECT ?school
WHERE
{
{ ?school rdf:type schema:EducationalOrganization . }
UNION
{ ?school rdf:type yago:EducationalInstitution108276342 . }
UNION
{ ?school rdf:type yago:College108278169 . }
UNION
{ ?school dbpedia:type dbr:Public_university . }
}
難道我做錯了什么? 是否需要對查詢進行任何補充才能獲得正確的結果? 它與數據相關嗎(基本上是錯誤的數據,所以無能為力)?
我認為您沒有做錯任何事情。 我認為您所看到的結果與BoğaziçiUniversity相同,后者也顯示在結果中。 可能只是數據中有些雜音。 如果您要求名稱中帶有文字問號的實體,則會看到一堆。 這是查詢的簡化版本(不使用union ),僅包含帶有?的那些實體。 在其URI中:
SELECT DISTINCT ?school WHERE
{
values ?type { schema:EducationalOrganization
yago:EducationalInstitution108276342
yago:College108278169
dbr:Public_university }
values ?hasType { rdf:type dbpedia:type }
?school ?hasType ?type .
filter(contains(str(?school), "?"))
}
您可以反轉該過濾器,並簡單地排除那些結果,我想您最終會得到想要的結果:
SELECT DISTINCT ?school WHERE
{
values ?type { schema:EducationalOrganization
yago:EducationalInstitution108276342
yago:College108278169
dbr:Public_university }
values ?hasType { rdf:type dbpedia:type }
?school ?hasType ?type .
filter(!contains(str(?school), "?"))
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.