linkedpipes / etl

LinkedPipes ETL is an RDF based, lightweight ETL tool
https://etl.linkedpipes.com
Other
143 stars 30 forks source link

SPARQL endpoint construct scrollable cursor fails on Turtle #441

Closed jindrichmynarz closed 1 year ago

jindrichmynarz commented 7 years ago

The SPARQL endpoint construct scrollable cursor component fails if it receives Turtle (or other RDF serialization using prefixes), since it parses any response as if it was serialized in N-Triples:

Caused by: org.eclipse.rdf4j.rio.RDFParseException: Expected '<' or '_', found: @ [line 1]
    at org.eclipse.rdf4j.rio.helpers.RDFParserHelper.reportFatalError(RDFParserHelper.java:403)
    at org.eclipse.rdf4j.rio.helpers.AbstractRDFParser.reportFatalError(AbstractRDFParser.java:682)
    at org.eclipse.rdf4j.rio.ntriples.NTriplesParser.reportFatalError(NTriplesParser.java:650)
    at org.eclipse.rdf4j.rio.ntriples.NTriplesParser.parseSubject(NTriplesParser.java:347)
    at org.eclipse.rdf4j.rio.ntriples.NTriplesParser.parseTriple(NTriplesParser.java:279)
    at org.eclipse.rdf4j.rio.ntriples.NTriplesParser.parse(NTriplesParser.java:174)
    at org.eclipse.rdf4j.rio.ntriples.NTriplesParser.parse(NTriplesParser.java:116)
    at org.eclipse.rdf4j.http.client.SPARQLProtocolSession.getRDF(SPARQLProtocolSession.java:957)
    ... 7 common frames omitted

There is no way in the component to specify the requested MIME type. Moreover, the component adds Virtuoso-specific (i.e. not portable) preamble (define output:format "HTTP+TTL text/rdf+n3") to the queries it generates asking for Notation3 even though it only accept N-Triples.

The component should solve this issue as the other SPARQL endpoint components do.

Tested using the develop version a8e599812f558baf63c86995d49fc22b78ccedeb.

jakubklimek commented 7 years ago

This component is, however, Virtuoso specific. So it can have this hardwired and it is not intended to be used with other triplestores.

jindrichmynarz commented 7 years ago

If it is Virtuoso-specific, then it should be documented. Currently, link to its documentation is missing at https://etl.linkedpipes.com/components (reported in #431). Perhaps even its name should contain "Virtuoso" to make this obvious.

Nevertheless, in this case I tested it with a Virtuoso endpoint. So the error appears in Virtuoso too.

jakubklimek commented 7 years ago

Currently, link to its documentation is missing

Yes, we are aware

Nevertheless, in this case I tested it with a Virtuoso endpoint. So the error appears in Virtuoso too.

Then it is the same issue as https://github.com/linkedpipes/etl/issues/446

jindrichmynarz commented 7 years ago

It is likely caused by the same problem as in #446. However, this is a different component.

jakubklimek commented 1 year ago

The documentation contains sufficient number of mentions of OpenLink Virtuoso to be clear it is virtuoso-specific.