Swirrl / cubiql

CubiQL: A GraphQL service for querying multidimensional Linked Data Cubes
Eclipse Public License 1.0
41 stars 2 forks source link

QueryEvaluationException: Virtuoso 37000 Error SP031: SPARQL compiler: Internal error: sparp_tree_full_clone_int(): unsupported type of expression #148

Open agustingp opened 6 years ago

agustingp commented 6 years ago

We are facing an issue when running cubiQL over our data. Specifically when trying to get all the datasets metadata: {cubiql { datasets{ schema } } }

We are getting an Internal server error: exception Checking the cubiql.log we find the following error when trying to execute the following query:

SPARQL query: define sql:big-data-const 0 PREFIX qb: <http://purl.org/linked-data/cube#>PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>PREFIX dcterms: <http://purl.org/dc/terms/>SELECT distinct * WHERE { VALUES ?ds { } ?ds a qb:DataSet .{ ?ds <http://www.w3.org/2000/01/rdf-schema#label> ?title .}UNION { ?ds rdfs:comment ?description .}UNION { ?ds dcterms:issued ?issued . }UNION { ?ds dcterms:publisher ?publisher . }UNION { ?ds dcterms:license ?licence . }UNION { SELECT ?modified WHERE { ?ds dcterms:modified ?modified . } ORDER BY DESC(?modified) LIMIT 1}} at org.openrdf.repository.sparql.query.SPARQLTupleQuery.evaluate(SPARQLTupleQuery.java:59) ~[graphql-qb-0.4.0-standalone.jar:?] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181] at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:313) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$sesame_results__GT_seq.invokeStatic(repository.clj:406) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$sesame_results__GT_seq.invoke(repository.clj:402) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$fn__2222.invokeStatic(repository.clj:435) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$fn__2222.invoke(repository.clj:428) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$fn__2209$G__2204__2214.invoke(repository.clj:423) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$fn__2232.invokeStatic(repository.clj:487) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$fn__2232.invoke(repository.clj:476) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.protocols$fn__863$G__858__872.invoke(protocols.clj:63) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$query.invokeStatic(repository.clj:611) ~[graphql-qb-0.4.0-standalone.jar:?] at grafter.rdf.repository$query.doInvoke(repository.clj:576) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.RestFn.invoke(RestFn.java:425) ~[graphql-qb-0.4.0-standalone.jar:?] at graphql_qb.util$eager_query.invokeStatic(util.clj:101) ~[graphql-qb-0.4.0-standalone.jar:?] at graphql_qb.util$eager_query.invoke(util.clj:96) ~[graphql-qb-0.4.0-standalone.jar:?] at graphql_qb.queries$get_datasets_metadata.invokeStatic(queries.clj:145) ~[graphql-qb-0.4.0-standalone.jar:?] at graphql_qb.queries$get_datasets_metadata.invoke(queries.clj:143) ~[graphql-qb-0.4.0-standalone.jar:?] at graphql_qb.resolvers$resolve_datasets.invokeStatic(resolvers.clj:108) ~[graphql-qb-0.4.0-standalone.jar:?] at graphql_qb.resolvers$resolve_datasets.invoke(resolvers.clj:102) ~[graphql-qb-0.4.0-standalone.jar:?] at graphql_qb.resolvers$wrap_options$fn__5860.invoke(resolvers.clj:91) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.schema$wrap_resolver_to_ensure_resolver_result$fn__3271.invoke(schema.clj:519) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$invoke_resolver_for_field.invokeStatic(executor.clj:114) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$invoke_resolver_for_field.invoke(executor.clj:86) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$resolve_and_select.invokeStatic(executor.clj:421) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$resolve_and_select.invoke(executor.clj:319) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$fn__3654.invokeStatic(executor.clj:203) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$fn__3654.invoke(executor.clj:199) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.MultiFn.invoke(MultiFn.java:233) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$maybe_apply_selection.invokeStatic(executor.clj:257) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$maybe_apply_selection.invoke(executor.clj:253) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_nested_selections$fn__3673.invoke(executor.clj:281) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$keep$fn__8200.invoke(core.clj:7257) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.RT.seq(RT.java:528) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$fn__7835.invokeStatic(protocols.clj:75) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$fn__7835.invoke(protocols.clj:75) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$fn__7781$G__7776__7794.invoke(protocols.clj:13) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$reduce.invokeStatic(core.clj:6748) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$reduce.invoke(core.clj:6730) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_nested_selections.invokeStatic(executor.clj:282) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_nested_selections.invoke(executor.clj:273) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$resolve_and_select$selector_callback__3718.invoke(executor.clj:344) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.schema$floor_selector.invokeStatic(schema.clj:528) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.schema$floor_selector.invoke(schema.clj:525) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.schema$create_root_selector$select_unwrap_tagged_type__3283.invoke(schema.clj:614) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.schema$create_root_selector$select_apply_static_type__3285.invoke(schema.clj:619) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.schema$create_root_selector$select_require_single_value__3288.invoke(schema.clj:627) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$resolve_and_select$process_resolved_value__3725.invoke(executor.clj:385) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$resolve_and_select$receive_resolved_value_from_field__3727.invoke(executor.clj:423) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.resolve.ResolverResultImpl.on_deliver_BANG_(resolve.clj:94) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$resolve_and_select.invokeStatic(executor.clj:421) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$resolve_and_select.invoke(executor.clj:319) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$fn__3654.invokeStatic(executor.clj:203) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$fn__3654.invoke(executor.clj:199) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.MultiFn.invoke(MultiFn.java:233) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$maybe_apply_selection.invokeStatic(executor.clj:257) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$maybe_apply_selection.invoke(executor.clj:253) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_nested_selections$fn__3673.invoke(executor.clj:281) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$keep$fn__8200.invoke(core.clj:7257) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.lang.RT.seq(RT.java:528) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$seq__5124.invokeStatic(core.clj:137) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$fn__7835.invokeStatic(protocols.clj:75) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$fn__7835.invoke(protocols.clj:75) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core.protocols$fn__7781$G__7776__7794.invoke(protocols.clj:13) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$reduce.invokeStatic(core.clj:6748) ~[graphql-qb-0.4.0-standalone.jar:?] at clojure.core$reduce.invoke(core.clj:6730) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_nested_selections.invokeStatic(executor.clj:282) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_nested_selections.invoke(executor.clj:273) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_query.invokeStatic(executor.clj:454) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.executor$execute_query.invoke(executor.clj:428) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.pedestal$execute_query.invokeStatic(pedestal.clj:239) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.pedestal$execute_query.invoke(pedestal.clj:234) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.pedestal$fn__20834.invokeStatic(pedestal.clj:254) ~[graphql-qb-0.4.0-standalone.jar:?] at com.walmartlabs.lacinia.pedestal$fn__20834.invoke(pedestal.clj:253) ~[graphql-qb-0.4.0-standalone.jar:?] at io.pedestal.interceptor.chain$try_f.invokeStatic(chain.clj:54) ~[graphql-qb-0.4.0-standalone.jar:?] ... 39 more Caused by: org.openrdf.repository.RepositoryException: Virtuoso 37000 Error SP031: SPARQL compiler: Internal error: sparp_tree_full_clone_int(): unsupported type of expression

In oder to make the query work we suggest one of the following approaches:

`` define sql:big-data-const 0 PREFIX qb: http://purl.org/linked-data/cube# PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema# PREFIX dcterms: http://purl.org/dc/terms/

SELECT distinct * WHERE {

?ds a qb:DataSet. {?ds http://www.w3.org/2000/01/rdf-schema#label ?title.} UNION { ?ds rdfs:comment ?description .} UNION { ?ds dcterms:issued ?issued . } UNION { ?ds dcterms:publisher ?publisher . } UNION { ?ds dcterms:license ?licence . } UNION { ?ds dcterms:modified ?modified .}} ORDER BY DESC(?modified) LIMIT 1 ``

or

define sql:big-data-const 0 PREFIX qb: <http://purl.org/linked-data/cube#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dcterms: <http://purl.org/dc/terms/> SELECT distinct * WHERE { ?ds a qb:DataSet .{ ?ds <http://www.w3.org/2000/01/rdf-schema#label> ?title .}UNION { ?ds rdfs:comment ?description .}UNION { ?ds dcterms:issued ?issued . }UNION { ?ds dcterms:publisher ?publisher . }UNION { ?ds dcterms:license ?licence . }UNION { SELECT ?modified WHERE { ?ds dcterms:modified ?modified . } ORDER BY DESC(?modified) LIMIT 1}}

zeginis commented 6 years ago

@agustingp try using:schema-label-language en at the configuration

agustingp commented 6 years ago

@zeginis we tried this but is not working, same error again. There is a part of the SPARQL query that should be removed: VALUES ?ds { } in order to make the query work.

zeginis commented 6 years ago

@agustingp if the data are ok the values of the ?ds should be populated.

e.g. VALUES ?ds {<cube1URI><cube2URI> <cube3URI> }

Which data are you testing? Is the endpoint public

zeginis commented 6 years ago

@agustingp is this issue finaly fixed?