- From: Thomas Francart <thomas.francart@sparna.fr>
- Date: Wed, 11 Jul 2018 14:49:55 +0200
- To: Olivier Rossel <olivier.rossel@gmail.com>
- Cc: Gregory Williams <greg@evilfunhouse.com>, Martynas Jusevičius <martynas@atomgraph.com>, public-sparql-dev@w3.org
- Message-ID: <CAPugn7UOotYy0KcP+igKS-KrtwjKVUBETC_tatXRkVd4WLf_Hw@mail.gmail.com>
Olivier, you have the reference to the code in the stacktrace excerpt I posted. See https://github.com/apache/jena/blob/0366da2c37b64978893897eba068fdb6b47ea782/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsStAX.java#L281 Thomas 2018-07-11 14:46 GMT+02:00 Olivier Rossel <olivier.rossel@gmail.com>: > Did you check which code in Jena triggers the schema validation? I don't > see this as a so strong requirement. > > Le mer. 11 juil. 2018 à 14:37, Thomas Francart <thomas.francart@sparna.fr> > a écrit : > >> Hello >> >> Trying to parse the following extended SPARQL result XML works in RDF4J >> but fails in Jena. >> Conclusion : SPARQL XML result format is not extensible from the standard >> point of view, neither from a practical point of view if one of the major >> RDF library fails in dealing with this (with reason, since the standard >> does not allow it). Using other namespaces does not help. I will consider >> using a "Link" header in the HTTP response, as suggested. >> >> Best Regards >> Thomas >> >> XML : >> >> <?xml version="1.0"?> >> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> >> <meta xmlns="http://sparna.fr/sparql-results-extension#"> >> <timeMillis xmlns="http://sparna.fr/sparql-results-extension#"> >> 123456</timeMillis> >> </meta> >> <head> >> <variable name="concept"/> >> <variable name="prefLabel"/> >> </head> >> <results> >> <result> >> <binding name="concept"> >> <uri>http://vocabularies.unesco.org/thesaurus/concept9331</uri> >> </binding> >> <binding name="prefLabel"> >> <literal xml:lang="en">Teacher education</literal> >> </binding> >> </result> >> </results> >> </sparql> >> >> Code with RDF4J : >> >> TupleQueryResultParserRegistry.getInstance().get( >> TupleQueryResultFormat.SPARQL).get().getParser().parseQueryResult(new >> FileInputStream("/path/to/sparql-result-extended.xml")); >> >> Code with Jena : >> >> ResultSetMgr.read(new FileInputStream("/path/to/sparql-result-extended.xml"), >> ResultSetLang.SPARQLResultSetXML); >> >> Exception : >> >> Caused by: org.apache.jena.sparql.resultset.ResultSetException: >> skipToHead: Unexpected tag: {http://sparna.fr/sparql- >> results-extension#}meta >> at org.apache.jena.riot.resultset.rw.ResultsStAX. >> staxError(ResultsStAX.java:466) >> at org.apache.jena.riot.resultset.rw.ResultsStAX. >> skipTo(ResultsStAX.java:282) >> >> >> >> >> >> 2018-07-09 19:36 GMT+02:00 Gregory Williams <greg@evilfunhouse.com>: >> >>> FWIW, the hacky but standards compliant way I’ve dealt with this in the >>> past is by using the link element with a data: URI. >>> >>> .greg >>> >>> On Jul 9, 2018, at 10:10 AM, Thomas Francart <thomas.francart@sparna.fr> >>> wrote: >>> >>> Hello >>> >>> Thanks for your answers, here is slightly more extended description of >>> the use-case : I am preparing a "SPARQL query mediator", that is a >>> SPARQL-compatible service that will send the same query to multiple sources >>> and aggregate the results into a single resultset. It can also articulate >>> part of the query with other datasources (like if the SERVICE keyword was >>> used). This involves preprocessings on the query, and post-processing on >>> the result sets. >>> >>> - I would like the SPARQL client to know if one of the source has >>> reached a LIMIT number of results (I plan to limit the number of results to >>> X for each source) >>> - I was also thinking about proving the "explain" of the query >>> processing if the SPARQL client asked for it (which sources were queried, >>> how the query got transformed, etc;) >>> >>> So the information could be pretty structured and does not seem to fit >>> well in HTTP headers. >>> >>> Thanks for your ideas. I might try parsing with additionnal XML elements >>> and let you know. >>> >>> Best Regards >>> Thomas >>> >>> >>> 2018-07-09 13:56 GMT+02:00 Olivier Rossel <olivier.rossel@gmail.com>: >>> >>>> Can't the HTTP headers contain such informations, instead of the XML >>>> resultSet ? >>>> >>>> Le lun. 9 juil. 2018 à 13:38, Martynas Jusevičius < >>>> martynas@atomgraph.com> a écrit : >>>> >>>>> Have you tried parsing? >>>>> >>>>> I think if you used XML elements in your own namespace, it should not >>>>> be a problem. >>>>> >>>>> But probably better to start by explaining what your use case is, >>>>> rather than the solution you think you need. >>>>> >>>>> On Mon, Jul 9, 2018 at 1:31 PM, Thomas Francart >>>>> <thomas.francart@sparna.fr> wrote: >>>>> > Hello >>>>> > >>>>> > I would like to extend a SPARQL XML result format with custom header >>>>> > information; such as query execution time, warning if a search limit >>>>> was >>>>> > reached during query execution, or other king of meta-information >>>>> about the >>>>> > resultset. >>>>> > >>>>> > From the definition of the SPARQL XML result format at >>>>> > https://www.w3.org/TR/rdf-sparql-XMLres/#schemas, I don't see the >>>>> XML schema >>>>> > allows this; there is no extension point. Could someone confirm ? >>>>> > >>>>> > In practice, would it be possible to have something like : >>>>> > >>>>> > <?xml version="1.0"?> >>>>> > <sparql xmlns="http://www.w3.org/2005/sparql-results#"> >>>>> > >>>>> > <meta> >>>>> > >>>>> > <!-- here put some meta information --> >>>>> > >>>>> > </meta> >>>>> > >>>>> > >>>>> > <head> >>>>> > >>>>> > ... >>>>> > >>>>> > </head> >>>>> > >>>>> > <results> >>>>> > ... >>>>> > </results> >>>>> > >>>>> > </sparql> >>>>> > >>>>> > >>>>> > >>>>> > Would SPARQL result parsers choke on this ? RDF4J ? Jena ? >>>>> > Is anyone already using this technique ? >>>>> > >>>>> > Thanks >>>>> > Thomas >>>>> > >>>>> > -- >>>>> > >>>>> > Thomas Francart - SPARNA >>>>> > Web de données | Architecture de l'information | Accès aux >>>>> connaissances >>>>> > blog : blog.sparna.fr, site : sparna.fr, linkedin : >>>>> > fr.linkedin.com/in/thomasfrancart >>>>> > tel : +33 (0)6.71.11.25.97, skype : francartthomas >>>>> >>>>> >>> >>> >>> -- >>> >>> *Thomas Francart* -* SPARNA* >>> Web de *données* | Architecture de l'*information* | Accès aux >>> *connaissances* >>> blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/ >>> thomasfrancart >>> tel : +33 (0)6.71.11.25.97, skype : francartthomas >>> >>> >> >> >> -- >> >> *Thomas Francart* -* SPARNA* >> Web de *données* | Architecture de l'*information* | Accès aux >> *connaissances* >> blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/ >> thomasfrancart >> tel : +33 (0)6.71.11.25.97, skype : francartthomas >> > -- *Thomas Francart* -* SPARNA* Web de *données* | Architecture de l'*information* | Accès aux *connaissances* blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas
Received on Wednesday, 11 July 2018 12:50:52 UTC