- From: Saud Aljaloud <saud.aljaloud@gmail.com>
- Date: Fri, 4 Apr 2014 15:40:12 +0100
- To: Wetz Peter <peter.wetz@tuwien.ac.at>
- Cc: Alfredo Serafini <seralf@gmail.com>, public-lod@w3.org
- Message-Id: <90083FBF-7915-41DE-91B8-A9EF5308C087@gmail.com>
I think this is a server-side config issue. By trying the query: SELECT count(?n) WHERE { ?a a foaf:Agent . ?a foaf:name ?n . } the result is 10000. Also, from the the page [1] it says that the limit is indeed 10000. As the name implied, regex usually works as a filter, meaning that only the intermediate results are going to be regexed. In this case, they are only the first 10000 records. Even using offset as 10000 won't work unfortunately. I'd suggest you contact the D2R server guys on the mailing list [2]. Other engines usually provide some sort of unlimited modifiers like limit -1, but it's also not the case here. Seems to be issue with translating sparql limit into sql. Cheers, Saud [1] http://dblp.l3s.de/dblp++.php [2] http://sourceforge.net/p/d2rq-map/mailman/ On 4 Apr 2014, at 14:59, Alfredo Serafini <seralf@gmail.com> wrote: > seems like there is some kind of server side config limit > > > 2014-04-04 15:32 GMT+02:00 Wetz Peter <peter.wetz@tuwien.ac.at>: > 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 14:40:54 UTC