AW: DBLP Sparql Endpoint

Hi!

Thanks for your detailed reply and suggestions.

But look at this query, which proves that there are indeed authors starting with 'B' at this endpoint:

SELECT DISTINCT * WHERE {
?a a foaf:Agent .
?a foaf:name ?n .
FILTER (?n = "Bertram Poettering")
}
LIMIT 10

I dont know, why the REGEX queries do not return this result.

for my example above (and according to your suggestion) the following query should also have the same result as above, but it hasn't:

SELECT DISTINCT * WHERE {
?a a foaf:Agent .
?a foaf:name ?n .
FILTER  regex(?n, "bertram","i")
}
limit 10

to me it seems as if the REGEX and String-functions only operate on a subset of the endpoint, i.e. on authors starting with an "A". Why it is like that, i don't know.

Best,
Peter

Von: Saud Al-Jaloud [mailto:saud.aljaloud@gmail.com]
Gesendet: Freitag, 04. April 2014 13:04
An: Wetz Peter
Cc: public-lod@w3.org
Betreff: Re: DBLP Sparql Endpoint


Hi,

It's alway worth trying the query without the filter just to make sure of what to expect from regex.

Or, negate the first regex like:

SELECT DISTINCT * WHERE {

?a a foaf:Agent .

?a foaf:name ?n .

FILTER  regex(?n, '^[^a]', 'i')

}

You will see that names that don't start with an 'a' are like these:

"(Max) Zong-Ming Cheng"
"Á. B. Nagy"

This means that there are no names start with 'b'. That's why you got no results.


If you are just searching for names, why not just write like this:

SELECT DISTINCT * WHERE {

?a a foaf:Agent .

?a foaf:name ?n .

FILTER  regex(?n, 'b', 'i')

}

This above query will match any 'b' character at any position. Or write more specific regex to match a position.

Also, as suggested, other functions from SPARQL 1.1 like : STRSTARTS or CONTAINS would be, in principles, more efficient, but this would depend if the sparql engine is compatible with 1.1.
I might be wrong but it seems not working on this endpoint so far.

Cheers,

Saud.

Received on Friday, 4 April 2014 13:32:38 UTC