It looks like we pass a Cross-Entity Search query to Jena with an empty text:query filtering. That causes Jena to fail.
Example query:
PREFIX renku: <https://swissdatasciencecenter.github.io/renku-ontology#>
PREFIX text: <http://jena.apache.org/text#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX schema: <http://schema.org/>
SELECT ?workflowTypes ?entityType ?maybeDateModified ?keywords ?projectIdVisibilities ?sameAs ?dateModified ?date ?maybeDatePublished ?visibility ?maybeCreatorName ?name ?matchingScore ?slug ?creatorsNames ?images ?maybeDescription ?idsSlugsVisibilities ?wkId ?maybeDateCreatedWHERE {{SELECT ?entityType ?matchingScore ?name ?slug ?visibility(MIN(?someDateCreated) AS ?maybeDateCreated)(MAX(?someDateModified) AS ?dateModified)(MAX(?someDateModified) AS ?date)(SAMPLE(?someCreatorName) AS ?maybeCreatorName)?maybeDescription(GROUP_CONCAT(DISTINCT ?keyword; separator=',') AS ?keywords)(GROUP_CONCAT(?encodedImageUrl; separator=',') AS ?images)WHERE {BIND ('project' AS ?entityType)
# textQuery
{SELECT ?projectId (MAX(?score) AS ?matchingScore)WHERE {{(?id ?score) text:query (schema:name schema:keywords schema:description renku:projectNamespaces '')} {
GRAPH <http://schema.org/Project> {?id a renku:DiscoverableProject}BIND (?id AS ?projectId)}
UNION {
GRAPH <http://schema.org/Project> {?projectId schema:creator ?id;a renku:DiscoverableProject}}}GROUP BY ?projectId} GRAPH <http://schema.org/Project> {?projectId a renku:DiscoverableProject;schema:name ?name;renku:projectPath ?slug;schema:dateModified ?someDateModified;schema:dateCreated ?someDateCreated.?projectId renku:projectVisibility ?visibility .Graph <https://swissdatasciencecenter.github.io/renku-ontology#ProjectAuth> {?projectId a schema:Project.{?projectId renku:visibility 'private';renku:memberId 45130.}
UNION { ?projectId renku:visibility 'public'. } UNION
{ ?projectId renku:visibility 'internal'. }}GRAPH ?projectId {?projectId renku:projectNamespace ?namespace.}OPTIONAL {?projectId schema:creator ?creatorId.GRAPH <http://schema.org/Person> {?creatorId schema:name ?someCreatorName}}OPTIONAL { ?projectId schema:description ?maybeDescription }OPTIONAL { ?projectId schema:keywords ?keyword }OPTIONAL {?projectId schema:image ?imageId.?imageId schema:position ?imagePosition;schema:contentUrl ?imageUrl.BIND (CONCAT(STR(?imagePosition), STR(':'), STR(?imageUrl)) AS ?encodedImageUrl)}}}GROUP BY ?entityType ?matchingScore ?name ?slug ?visibility ?maybeDescription}}ORDER BY DESC(?matchingScore) DESC(xsd:dateTime(?date))
LIMIT 24
OFFSET 0
Sentry Issue: RENKU-GRAPH-E5
RestClientError$BadRequestException: POST http://renku-jena-master:3030/projects/sparql returned 400 Bad Request; body: Query parse error:PREFIX renku: <https://swissdatasciencecenter.github.io/renku-ontology#>PREFIX text: <http://jena.apache.org/text#>PREFIX prov: <http://www.w3.org/ns/prov#>PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>PREFIX schema: <http://schema.org/>SELECT ?workflowTypes ?entityType ?maybeDateModified ?keywords ?projectIdVisibilities ?sameAs ?dateModified ?date ?maybeDatePublished ?visibility ?maybeCreatorName ?name ?matchingScore ?slug ?creatorsNames ?images ?maybeDescription ?idsSlugsVisibilities ?wkId ?maybeDateCreatedWHERE {{SELECT ?entityType ?matchingScore ?name ?slug ?visibility(MIN(?someDateCreated) AS ?maybeDateCreated)(MAX(?someDateModified) AS ?dateModified)(MAX(?someDateModified) AS ?date)(SAMPLE(?someCreatorName) AS ?maybeCreatorName)?maybeDescription(GROUP_CONCAT(DISTINCT ?keyword; separator=',') AS ?keywords)(GROUP_CONCAT(?encodedImageUrl; separator=',') AS ?images)WHERE {BIND ('project' AS ?entityType)# textQuery{SELECT ?projectId (MAX(?score) AS ?matchingScore)WHERE {{(?id ?score) text:query (schema:name schema:keywords schema:description renku:projectNamespaces '')} {GRAPH <http://schema.org/Project> {?id a renku:DiscoverableProject}BIND (?id AS ?projectId)} UNION {GRAPH <http://schema.org/Project> {?projectId schema:creator ?id;a renku:DiscoverableProject}}}GROUP BY ?projectId}GRAPH <http://schema.org/Project> {?projectId a renku:DiscoverableProject;schema:name ?name;renku:projectPath ?slug;schema:dateModified ?someDateModified;schema:dateCreated ?someDateCreated.?projectId renku:projectVisibility ?visibility .Graph <https://swissdatasciencecenter.github.io/renku-ontology#ProjectAuth> {?projectId a schema:Project.{?projectId renku:visibility 'private';renku:memberId 45130.} UNION { ?projectId renku:visibility 'public'. } UNION { ?projectId renku:visibility 'internal'. }}GRAPH ?projectId {?projectId renku:projectNamespace ?namespace.}OPTIONAL {?projectId schema:creator ?creatorId.GRAPH <http://schema.org/Person> {?creatorId schema:name ?someCreatorName}}OPTIONAL { ?projectId schema:description ?maybeDescription }OPTIONAL { ?projectId schema:keywords ?keyword }OPTIONAL {?projectId schema:image ?imageId.?imageId schema:position ?imagePosition;schema:contentUrl ?imageUrl.BIND (CONCAT(STR(?imagePosition), STR(':'), STR(?imageUrl)) AS ?encodedImageUrl)}}}GROUP BY ?entityType ?matchingScore ?name ?slug ?visibility ?maybeDescription}}ORDER BY DESC(?matchingScore) DESC(xsd:dateTime(?date))LIMIT 24OFFSET 0Text search parse error:Cannot parse 'name: keywords: description: projectNamespaces: ': Encountered " ":" ": "" at line 1, column 14.Was expecting one of:<EOF><AND> ...<OR> ...<NOT> ..."+" ..."-" ...<BAREOPER> ..."(" ..."*" ..."^" ...<QUOTED> ...<TERM> ...<FUZZY_SLOP> ...<PREFIXTERM> ...<WILDTERM> ...<REGEXPTERM> ..."[" ..."{" ...<NUMBER> ...
at io.renku.http.client.RestClient$$anonfun$raiseBadRequest$1.$anonfun$applyOrElse$1(RestClient.scala:155)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
...
(12 additional frame(s) were not displayed)
Cross-entity search failed
It looks like we pass a Cross-Entity Search query to Jena with an empty
text:queryfiltering. That causes Jena to fail.Example query:
Sentry Issue: RENKU-GRAPH-E5