Fro*_*own 2 uri r sparql dbpedia
我目前通过使用R中的SPARQL包查询DBPedia以获取人名列表.当我通过SPARQL检索名称列表时,出现了一些问题,即URI形式的某些名称包含标点符号(例如" ,"或"(")无法通过SPARQL查询识别,例如:
endpoint="http://de.dbpedia.org/sparql"
query= "SELECT COUNT (*){
dbpedia-de:Johannes_Aurifaber_(Vimariensis) ?p ?o
}"
qd=SPARQL(endpoint,query)
Run Code Online (Sandbox Code Playgroud)
事实证明这是一个错误:XML内容似乎不是XML:'Virtuoso 37000错误SP030:SPARQL编译器,第3行:'Vimariensis'之前的语法错误')'.但是,如果我将查询更改为:
endpoint="http://de.dbpedia.org/sparql"
query= "SELECT COUNT (*){
<http://de.dbpedia.org/resource/Johannes_Aurifaber_(Vimariensis)> ?p ?o
}"
qd=SPARQL(endpoint,query)
Run Code Online (Sandbox Code Playgroud)
一切都很顺利.但有没有办法修改第一个查询,因为查询人名列表更方便.
您应该能够放在 \特殊字符之前,它是一个有效的SPARQL查询.这是一个有效的SPARQL查询:
SELECT (count(*) as ?count)
where {
dbpedia-de:Johannes_Aurifaber_\(Vimariensis\) ?p ?o
}
Run Code Online (Sandbox Code Playgroud)
但是,每个端点都有一些特定的限制.因此,(根据约书亚的评论),Virtuoso只允许许多不合法的事情,并且不接受任何合法的事情.