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

Unexpected token 'S', "SPARQL-QUE"... is not valid JSON for entities with many predicates #1

Open
ate47 opened this issue Dec 5, 2022 · 0 comments

Comments

@ate47
Copy link

ate47 commented Dec 5, 2022

I was searching the entity wd:Q39790431 and I received the error Unexpected token 'S', "SPARQL-QUE"... is not valid JSON,

image

When I look in the logs, I get this response from Blazegraph:

SPARQL-QUERY: queryStr=
      CONSTRUCT {
        # "Simple" triples
        ?sub ?p ?o .
      
        # Statements
        ?sub ?pred ?obj .
        ?pred rdfs:label ?predLabel .
        ?obj ?pred2 ?obj2 .
        ?pred2 rdfs:label ?pred2Label .
        ?obj2 rdfs:label ?obj2Label .
      } WHERE {
          # Select the subject
          BIND(<http://www.wikidata.org/entity/Q39790431> as ?sub)
        
          # Find "simple" triples
          ?sub ?p ?o .
          FILTER((!(STRSTARTS(STR(?p), "http://www.wikidata.org/prop/direct/"))) && (!(STRSTARTS(STR(?o), "http://www.wikidata.org/entity/statement/"))))
        
          # Find triples that have a statement as object
          ?sub ?pred ?stmt .
          FILTER(STRSTARTS(STR(?pred), "http://www.wikidata.org/prop/P"))
          ?stmt ?pred2 ?obj2 .
          BIND(BNODE(STR(?stmt)) AS ?obj) # Replace the statement IRI with a bnode
        
          # Find label of predicates p:PXXX
          OPTIONAL {
            VALUES ?link0 { wikibase:directClaim wikibase:directClaimNormalized wikibase:claim wikibase:statementProperty wikibase:statementValue wikibase:statementValueNormalized wikibase:qualifier wikibase:qualifierValue wikibase:qualifierValueNormalized wikibase:reference wikibase:referenceValue wikibase:referenceValueNormalized }
            ?predEntity ?link0 ?pred .
            OPTIONAL {
              ?predEntity rdfs:label ?predLabel .
              FILTER (LANG(?predLabel) = "en")
            }
          }
        
          # Find label of statement predicates (predicates inside statements)
          OPTIONAL {
            VALUES ?link1 { wikibase:directClaim wikibase:directClaimNormalized wikibase:claim wikibase:statementProperty wikibase:statementValue wikibase:statementValueNormalized wikibase:qualifier wikibase:qualifierValue wikibase:qualifierValueNormalized wikibase:reference wikibase:referenceValue wikibase:referenceValueNormalized }
            ?pred2Entity ?link1 ?pred2 .
            OPTIONAL {
              ?pred2Entity rdfs:label ?pred2Label .
              FILTER (LANG(?pred2Label) = "en")
            }
          }

          # Find label of statement objects (objects inside statements)
          OPTIONAL {
            ?obj2 rdfs:label ?obj2Label .
            FILTER (LANG(?obj2Label) = "en")
          }
      }
    
java.util.concurrent.TimeoutException
	at java.util.concurrent.FutureTask.get(FutureTask.java:205)
	at com.bigdata.rdf.sail.webapp.BigdataServlet.submitApiTask(BigdataServlet.java:292)
	at com.bigdata.rdf.sail.webapp.QueryServlet.doSparqlQuery(QueryServlet.java:678)
	at com.bigdata.rdf.sail.webapp.QueryServlet.doGet(QueryServlet.java:290)
	at com.bigdata.rdf.sail.webapp.RESTServlet.doGet(RESTServlet.java:240)
	at com.bigdata.rdf.sail.webapp.MultiTenancyServlet.doGet(MultiTenancyServlet.java:273)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
	at org.wikidata.query.rdf.blazegraph.throttling.ThrottlingFilter.doFilter(ThrottlingFilter.java:320)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.wikidata.query.rdf.blazegraph.throttling.SystemOverloadFilter.doFilter(SystemOverloadFilter.java:82)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at ch.qos.logback.classic.helpers.MDCInsertingServletFilter.doFilter(MDCInsertingServletFilter.java:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.wikidata.query.rdf.blazegraph.filters.QueryEventSenderFilter.doFilter(QueryEventSenderFilter.java:116)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.wikidata.query.rdf.blazegraph.filters.ClientIPFilter.doFilter(ClientIPFilter.java:43)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.wikidata.query.rdf.blazegraph.filters.JWTIdentityFilter.doFilter(JWTIdentityFilter.java:66)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.wikidata.query.rdf.blazegraph.filters.RealAgentFilter.doFilter(RealAgentFilter.java:33)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.wikidata.query.rdf.blazegraph.filters.RequestConcurrencyFilter.doFilter(RequestConcurrencyFilter.java:50)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:503)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:750)

maybe reducing the complexity of the query would help, but a better message for the Timeout would be better

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

1 participant