- From: Andy Seaborne <andy@apache.org>
- Date: Tue, 31 Jul 2018 11:56:02 +0100
- To: public-sparql-dev@w3.org
Hi Thomas, If you'd like to suggest a change to Jena, please send a pull request and we can see whether the user community prefers extensibility or non- extensibility. Andy On 11/07/18 13:49, Thomas Francart wrote: > 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 > <mailto: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 <mailto: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# > <http://www.w3.org/2005/sparql-results#>"> > <meta xmlns="http://sparna.fr/sparql-results-extension# > <http://sparna.fr/sparql-results-extension#>"> > <timeMillis > xmlns="http://sparna.fr/sparql-results-extension# > <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 > <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 > <http://sparna.fr/sparql-results-extension#%7Dmeta> > 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 <mailto: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 > <mailto: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 <mailto: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 >> <mailto: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 >> <mailto: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 >> <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# >> <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 <http://blog.sparna.fr>, >> site : sparna.fr <http://sparna.fr>, linkedin : >> > fr.linkedin.com/in/thomasfrancart >> <http://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 <http://blog.sparna.fr>, site : >> sparna.fr <http://sparna.fr>, linkedin : >> fr.linkedin.com/in/thomasfrancart >> <https://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 <http://blog.sparna.fr>, site : sparna.fr > <http://sparna.fr>, linkedin : fr.linkedin.com/in/thomasfrancart > <https://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 <http://blog.sparna.fr>, site : sparna.fr > <http://sparna.fr>, linkedin : fr.linkedin.com/in/thomasfrancart > <https://fr.linkedin.com/in/thomasfrancart> > tel : +33 (0)6.71.11.25.97, skype : francartthomas
Received on Tuesday, 31 July 2018 10:56:38 UTC