Skip to content
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

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

Open
agustingp opened this issue Oct 3, 2018 · 4 comments

Comments

@agustingp
Copy link

agustingp commented Oct 3, 2018

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
Copy link
Contributor

zeginis commented Oct 4, 2018

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

@agustingp
Copy link
Author

agustingp commented Oct 4, 2018

@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
Copy link
Contributor

zeginis commented Oct 4, 2018

@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
Copy link
Contributor

zeginis commented Oct 30, 2018

@agustingp is this issue finaly fixed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants