I'm getting a strange syntax error from Virtuoso Open Source related to
transitive paths.

Connected to OpenLink Virtuoso
Driver: 07.20.3230 OpenLink Virtuoso ODBC Driver
SQL> SPARQL PREFIX wdt: <http://www.wikidata.org/prop/direct/> SELECT ( COUNT
(DISTINCT ?s) AS ?subclasses ) WHERE { GRAPH <http://wikidata> { ?s
wdt:P279/wdt:P279* ?t . } } ;

*** Error 37000: [Virtuoso Driver][Virtuoso Server]TR...: Query contains a
transitive derived table but neither end of it is bound by equality to other
columns or parameters
at line 1 of Top-Level:
SPARQL PREFIX wdt: <http://www.wikidata.org/prop/direct/> SELECT ( COUNT
(DISTINCT ?s) AS ?subclasses ) WHERE { GRAPH <http://wikidata> { ?s
wdt:P279/wdt:P279* ?t . } }

SQL> SPARQL PREFIX wdt: <http://www.wikidata.org/prop/direct/> SELECT ( COUNT
(DISTINCT *) AS ?subclasses ) WHERE { GRAPH <http://wikidata> { ?s
wdt:P279/wdt:P279* ?t . } } ;
Result is 38781929 in 616 seconds

SQL> SPARQL PREFIX wdt: <http://www.wikidata.org/prop/direct/> SELECT ( COUNT
(DISTINCT ?s) AS ?subclasses ) WHERE { ?s wdt:P279/wdt:P279* ?t . } ;
Result is 1488308 in 87 seconds

SQL> SPARQL PREFIX wdt: <http://www.wikidata.org/prop/direct/> SELECT ( COUNT
(DISTINCT *) AS ?subclasses ) WHERE { ?s wdt:P279/wdt:P279* ?t . } ;
Result is 38781929 in 614 seconds

Why is the first query not working when the others do?

peter


_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to