2015-07-13 60 views
5

我正在尝试查找有关Dbpedia上的某个人的信息,但是他们的名称在本例中包含以_(音乐家)结尾的括号,从而导致出错。如何在SPARQL中引用包含括号的页面

SELECT ?birthPlace 
WHERE { 
    dbpedia:Tom_Johnston_(musician) dbpprop:birthPlace ?birthPlace 
} 

回答

5

括号不是前缀名合法的,但你可以使用完整的URI来代替:

SELECT ?birthPlace 
WHERE { 
    <http://dbpedia.org/resource/Tom_Johnston_(musician)> dbpprop:birthPlace ?birthPlace 
} 

它也可能escape them using \

SPARQL本地名称也允许IRI中允许的非字母数字字符通过反斜杠字符转义(例如ns:id \ = 123)。

SELECT ?birthPlace 
WHERE { 
    dbpedia:Tom_Johnston_\(musician\) dbpprop:birthPlace ?birthPlace 
}