SPARQL - 选择非uri的位置 - Filtred non uri

时间:2017-05-02 12:15:22

标签: sparql rdf dbpedia virtuoso linked-data

我是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") .
}

我想自己做。但是,如果有人帮助我,我会很奇怪。

2 个答案:

答案 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:instrumentdbo:instrument不同。