Search code examples
sparqlrdfdbpediavirtuosolinked-data

SPARQL - Select where non uri - Filtred non uri


I am beginier in SPARQL / Linked Data. I have question about querying DBpedia. I understand how to select data where filtering condition is URI. Now, I need to query about data, when key factor is not a resource. It is string.

I want select instuments used by Joan Jett. I am using this endpoint: http://dbpedia.org/snorq

Query: - with error

SELECT ?instrument WHERE
{
?person a dbo:MusicalArtist .
?person dbp:instrument ?instrument .
?person dbo:alias : 'Joan_Jett'.
}

Another version: - with no data

SELECT distinct ?instrument WHERE
{
?person a dbo:MusicalArtist .
?person dbp:instrument ?instrument .
?person dbo:alias ?alias.
FILTER regex(str(?alias), "Joan_Jett") .
}

I am trying to do it by myself. However, If someone help me with that, I will be wonder.


Solution

  • First version

    SELECT ?instrument WHERE
    {
    ?person a dbo:MusicalArtist .
    ?person dbp:instrument ?instrument .
    ?person dbo:alias "Joan Jett"@en.
    }
    

    Second version

    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 is not the same as dbo:instrument.