-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
incorrect empty path determination? #1628
Comments
@pfps Thanks for another monster query! This variant of the query does the job. It takes around 10 minutes (because it has to produce the complete
https://qlever.cs.uni-freiburg.de/wikidata/saPuxK Your |
I have a sequence of queries that try to do similar things, which I ran over the summer when looking for issues in the Wikidata ontology. These queries look for instance loops, i.e, a class that is an instance of itself when the intended meaning of P279 (instances of subclasses are also instances) is taken into account. The desired query is: SELECT DISTINCT ?c ?cLabel WHERE { but that triggers the empty path error. A closely related query that sidesteps the empty path message is: SELECT DISTINCT ?c ?cLabel WHERE { This runs in 22 seconds but might not include all the results I want because it excludes the empty subclass path. The query that I created to include the empty subclass path is: EDIT: The query I had here was a slow one. The fast query is as shown now. SELECT DISTINCT ?c ?cLabel WHERE { This query runs in 24 seconds, much faster than your version. I'm going to try various variants of this query and see how fast they run. |
There is a very large speed difference between
https://qlever.cs.uni-freiburg.de/wikidata/64XbsS and
https://qlever.cs.uni-freiburg.de/wikidata/69cPqa I seem to remember that the second query used to be reasonably fast, but I may be remembering wrong. |
@pfps If you execute the queries and click on "Analysis", you see the difference:
Of course, QLever could recognize that these two queries are equivalent and pick the query plan that is faster to execute. This would be easy to fix for this particular kind of query, but it is an extremely hard problem in general. It is important to note that these are very particular queries. |
The query
https://qlever.cs.uni-freiburg.de/wikidata-test/SBRpDD
SELECT DISTINCT ?c ?cLabel WHERE {
{ ?c wdt:P31/wdt:P279* ?c }
OPTIONAL { ?c rdfs:label ?cLabel . FILTER ( lang(?cLabel) = 'en' ) }
}
results in the message
This query might have to evaluate the empty path, which is currently not supported. In file "/home/local/qlever/qlever-code/src/engine/TransitivePathImpl.h " at line 158
But it doesn't appear that there is an empty path in this query.
The text was updated successfully, but these errors were encountered: