I don’t think there’s any SPARQL function that can transform a single result into multiple results (one for each string fragment, in that case). But for your request, a regex works:

SELECT ?human ?label WHERE {
  ?human wdt:P31 wd:Q15632617;
         rdfs:label ?label.
  FILTER(LANG(?label) = "en")
  FILTER(REGEX(?label, "y\\s"))
}

Link

On 18.09.2017 19:07, Thad Guidry wrote:

Say I have this query...

SELECT ?human ?label
WHERE
{
  ?human wdt:P31 wd:Q15632617; rdfs:label ?label.
  FILTER(LANG(?label) = "en").
  FILTER(STRSTARTS(?label, "Mr. ")).
}

What if I wanted to see if any one of a humans name ends with "y" such as my last name does , their first, last, doesn't matter.  I have a "d" and a "y" on the array returned from my name (if it were split by whitespace)

I did not see any special syntax or FILTER or Label service commands to help with splitting apart a Label by whitespace and then applying a filter on each string.

How would I accomplish this ? 

Thad
​​


_______________________________________________
Wikidata mailing list
Wikidata@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata