linked-conservation-data / board-pilot-data

Processed datasets for the board reattachment pilot of the Linked Conservation Data project
1 stars 0 forks source link

Cannot use REGEX on ResearchSpace SPARQL queries #5

Closed natuk closed 3 years ago

natuk commented 3 years ago

This query works on the SPARQL interface:

SELECT ?subject ?label WHERE {
    ?subject a skos:Concept .
    ?subject skos:prefLabel|skos:altLabel ?label .
} LIMIT 1

This works as well, returning terms starting with paper:

SELECT ?subject ?label WHERE {
    ?subject a skos:Concept .
    ?subject skos:prefLabel|skos:altLabel ?label .
    FILTER STRSTARTS( ?label, "pap" )
}

but if I try to include a regular expression no results come up:

SELECT ?subject ?label WHERE {
    ?subject a skos:Concept .
    ?subject skos:prefLabel|skos:altLabel ?label .
    FILTER REGEX(?label, str("pap"), "i")
}

What am I missing?

natuk commented 3 years ago

OK, RS teams responded with a correction in the SPARQL query:

SELECT ?subject ?label WHERE {
    ?subject a skos:Concept .
    ?subject skos:prefLabel|skos:altLabel ?label .
    FILTER REGEX(str(?label), "pap", "i")
}

Confusion occured because STR is also needed when using the __?token__ in RS for keyword serching.


SELECT ?subject ?label WHERE {
    ?subject a skos:Concept .
    ?subject skos:prefLabel|skos:altLabel ?label .
    FILTER REGEX(str(?label), str(__?token__), "i")
}