我是SPARQL / Linked Data的初学者。我对查询DBpedia有疑问。我理解如何选择过滤条件为URI的数据。现在,当关键因素不是资源时,我需要查询数据。它是字符串。
我想要Joan Jett使用的精选机构。 我正在使用此端点:http://dbpedia.org/snorq
查询: - 错误
SELECT ?instrument WHERE
{
?person a dbo:MusicalArtist .
?person dbp:instrument ?instrument .
?person dbo:alias : 'Joan_Jett'.
}
另一个版本: - 没有数据
SELECT distinct ?instrument WHERE
{
?person a dbo:MusicalArtist .
?person dbp:instrument ?instrument .
?person dbo:alias ?alias.
FILTER regex(str(?alias), "Joan_Jett") .
}
我想自己做。但是,如果有人帮助我,我会很奇怪。
答案 0 :(得分:1)
如果你想匹配一个RDF文字,你必须遵循它definition,即基本上(在RDF 1.0中)
"LEXICAL_FORM"^^<DATATYPE_URI>
RESP。如果存在语言标签
"LEXICAL_FORM"@LANGUAGE_TAG
SELECT distinct ?instrument WHERE
{
?person a dbo:MusicalArtist ;
dbp:instrument ?instrument ;
dbo:alias "Joan Jett"@en .
}
答案 1 :(得分:0)
第一个版本
SELECT ?instrument WHERE
{
?person a dbo:MusicalArtist .
?person dbp:instrument ?instrument .
?person dbo:alias "Joan Jett"@en.
}
第二版
SELECT distinct ?instrument WHERE
{
?person a dbo:MusicalArtist .
?person dbo:instrument ?instrument .
?person dbo:alias ?alias.
FILTER regex(str(?alias), "Joan Jett") .
}
NB。 dbp:instrument
与dbo:instrument
不同。