Uploaded image for project: 'Blazegraph (by SYSTAP)'
  1. Blazegraph (by SYSTAP)
  2. BLZG-1232 RDR metaticket
  3. BLZG-1111

Workbench "Export" does not support RDR graphs

    XMLWordPrintable

    Details

    • Type: Sub-task
    • Status: Accepted
    • Resolution: Unresolved
    • Affects Version/s: BIGDATA_RELEASE_1_3_4
    • Fix Version/s: None
    • Component/s: NanoSparqlServer
    • Labels:
      None

      Description

      The workbench has an export feature. The export feature accepts an RDF graph and converts it into a target MIME Type for the response. The workbench sends the data as JSON using

      application/sparql-results+json
      

      This should work fine as written for standard RDF (even if it is not a very scalable conversion approach). However, for RDF* it needs to use an RDF* aware ValueFactoryImpl in order to be able to construct an RDF* graph when parsing the request body. Once the graph has been parsed, it can be serialized out again as determined by CONNEG.

      If the data does not contain RDR mode triples, then an attempt to export data using N-Triples-RDR results in an error on the server due to the lack of a writer for N-Triples-RDR. Further, this error is not really reported back to the user through the client in any acceptable manner.

      No writer for format: format=N-Triples-RDR (mimeTypes=application/x-n-triples-RDR; ext=ntx), Accept="application/x-n-triples-RDR"
      

      If the data does contain actual RDR mode triples, then there is an internal server error:

      ERROR: 626351      qtp1307096068-43 com.bigdata.rdf.sail.webapp.BigdataRDFServlet.launderThrowable(BigdataRDFServlet.java:184): cause=java.lang.ClassCastException: org.openrdf.model.impl.ValueFactoryImpl cannot be cast to com.bigdata.rdf.model.BigdataValueFactory
      java.lang.ClassCastException: org.openrdf.model.impl.ValueFactoryImpl cannot be cast to com.bigdata.rdf.model.BigdataValueFactory
      	at com.bigdata.rdf.rio.json.BigdataSPARQLResultsJSONParser.parseValue(BigdataSPARQLResultsJSONParser.java:185)
      	at com.bigdata.rdf.rio.json.SPARQLJSONParserBase.parseQueryResultInternal(SPARQLJSONParserBase.java:262)
      	at com.bigdata.rdf.rio.json.SPARQLJSONParserBase.parseQueryResult(SPARQLJSONParserBase.java:125)
      	at com.bigdata.rdf.rio.json.BigdataSPARQLResultsJSONParserForConstruct.parse(BigdataSPARQLResultsJSONParserForConstruct.java:73)
      	at com.bigdata.rdf.sail.webapp.WorkbenchServlet.doConvert(WorkbenchServlet.java:157)
      	at com.bigdata.rdf.sail.webapp.WorkbenchServlet.doPost(WorkbenchServlet.java:78)
      	at com.bigdata.rdf.sail.webapp.RESTServlet.doPost(RESTServlet.java:258)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:738)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:551)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:568)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:478)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:199)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
      	at org.eclipse.jetty.server.Server.handle(Server.java:462)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:279)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232)
      	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)
      	at java.lang.Thread.run(Thread.java:745)
      

      See com.bigdata.rdf.sail.webapp.TestRDROperations.test_EXPORT_TURTLE_RDR which fails for this feature.

        Attachments

          Activity

            People

            Assignee:
            michaelschmidt michaelschmidt
            Reporter:
            bryanthompson bryanthompson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated: