- From: Evain, Jean-Pierre <evain@ebu.ch>
- Date: Sat, 9 Jul 2016 16:31:42 +0000
- To: Felix Sasaki <fsasaki@w3.org>, Jose Emilio Labra Gayo <jelabra@gmail.com>
- CC: "public-rax@w3.org" <public-rax@w3.org>
Hi Felix, all,
I must admit I meet no difficulty going from XML to RDF. I'll be happy to share files and we should have a way fo sharing such examples on github or else. I would personally by interested to actually "see" what problems others might have. Maybe I missed something :--)
Best, Jean-Pierre
________________________________
From: Felix Sasaki [fsasaki@w3.org]
Sent: 09 July 2016 11:52
To: Jose Emilio Labra Gayo
Cc: public-rax@w3.org
Subject: Re: Transforming RDF into XML (alternative using ShEx)
Thanks, Jose. From the call yesterday we came up with a rough classification of how to structure our discussion
1) functionality needed: convert XML to RDF, or the other way round
2) way to implement it: with standard technologies (e.g. XSLT on the XML side) or with enhancements
3) enhancements being a ad hoc program (see Quentin’s approach described in a mail yesterday: "The approach is supplemented by a library of Java functions that can be called from XSLTs to process the graph.“)
4) enhancements being kind of „standard“ or at least a declarative form (see in reply to Quentin: Christoph describing https://github.com/EIS-Bonn/krextor which provides an abstraction layer)
I would see ShEX falling under 4).
The reason why people do not do 2) is described by Christoph and Quentin
[
As such, transformation between RDF and XML using XSLTs is not optimal and XSLTs need to be tailored to different flavor of RDF/XML (which is costly).. One solution that we have used is to transform the RDF input (in any supported syntax) to be converted into a XML canonical form prior to applying XSLTs.
Indeed many manually-crafted XSLTs suffer from this,
]
Now, if people want to stay with 2), they can follow some potential best practice; e.g. how to store RDF output, so that it can be processed with standard XML tools. See the mail from Martynas:
[
We use however a canonical "flat" RDF/XML layout, in which <rdf:Description>s are not nested (default output by Jena writer). By limiting RDF/XML to such layout, and using the key() function to lookup descriptions etc., the transformation becomes quite manageable.
]
In the list 1-4 above *currently* the actual functionality is mixed - but we could better classify the discussion if we start with three sub tasks:
1.1 Going from RDF > XML
1.2 Going from XML > RDF
1.3 Doing round tripping
1.4 Embedding RDF in XML (already feasible with technologies like RDFa or JSON-LD)
1.5 Embedding XML in RDF
…
Just an idea how to structure the discussion - comments welcome.
Best,
Felix
Am 09.07.2016 um 08:26 schrieb Jose Emilio Labra Gayo <jelabra@gmail.com<mailto:jelabra@gmail.com>>:
I could not attend yesterday's call because I was travelling and was not sure at what time I would arrive...
I was looking at the minutes and saw that there is interest on transforming RDF to XML. I wanted to say that one alternative could be Shape Expressions (ShEx).
Although the primary goal of ShEx is to describe and validate RDF data, it can also be extended with semantic actions which are similar to parsing grammar semantic actions and in that way, it can be used to transform the RDF that has been validated into XML or other languages like Json.
In [1] we describe ShEx and we include an example of how ShEx can be used to generate XML from RDF.
For more information about ShEx you can visit: http://shex.io<http://shex.io/>
Also, if you have interest on the subject, we have recently given a tutorial about RDF validation at ESWC. The slides are available online at: http://weso.github.io/RDFValidation_ESWC16/
[1] Shape Expressions: An RDF validation and transformation language, Eric Prud'hommeaux<http://www.w3.org/People/Eric/>, Jose Emilio Labra Gayo<http://www.di.uniovi.es/%7Elabra>, Harold Solbrig<http://www.mayo.edu/research/faculty/solbrig-harold-ralph/bio-20022700>, 10th International Conference on Semantic Systems<http://www.semantics.cc/>, Sept. 2014, Leipzig, Germany, PDF<http://labra.github.io/ShExcala/papers/semantics2014.pdf> (slides<http://www.slideshare.net/jelabra/semantics-2014>)
Best regards, Jose Labra
On Fri, Jul 8, 2016 at 3:09 PM, Felix Sasaki <fsasaki@w3.org<mailto:fsasaki@w3.org>> wrote:
See
https://www.w3.org/2016/07/08-rax-minutes.html
and below as text. I created this wiki page
https://github.com/rax-w3c/draft-material/wiki
for starting editing. But I have trouble adding people to the group - can somebody help? Florent?
- Felix
[1]W3C
[1] http://www.w3.org/
- DRAFT -
RAX CG
08 Jul 2016
See also: [2]IRC log
[2] http://www.w3.org/2016/07/08-rax-irc
Attendees
Present
felix, christian, gerard, john, timea, christoph,
quentin
Regrets
rob, phil
Chair
christian:
Scribe
fsasaki
Contents
* [3]Topics
1. [4]new members
2. [5]action items
3. [6]input from quentin et al.
4. [7]mapping XML of dictionary data to RDF
5. [8]other sections & topics
6. [9]next call in two weeks from now
* [10]Summary of Action Items
* [11]Summary of Resolutions
__________________________________________________________
<scribe> chair: christian
<scribe> scribe: fsasaki
[12]https://lists.w3.org/Archives/Public/public-rax/2016Jul/000
4.html
[12] https://lists.w3.org/Archives/Public/public-rax/2016Jul/0004.html
new members
no new members, skipped
action items
github link for rax cg is [13]https://github.com/rax-w3c
[13] https://github.com/rax-w3c
input from quentin et al.
see
[14]https://lists.w3.org/Archives/Public/public-rax/2016Jul/000
2.html
[14] https://lists.w3.org/Archives/Public/public-rax/2016Jul/0002.html
"One solution that we have used is to transform the RDF input
(in any supported syntax) to be converted into a XML canonical
form prior to applying XSLTs. "
<clange> help
processing RDF data in XML / xslt workflows
christian: also covered by one XML prague scenario
<quentin> canonical format new to be optimized for performance
christoph: similar solution is here
[15]https://lists.w3.org/Archives/Public/public-rax/2016Jul/000
7.html
... has RDF abstraction layer, this is independent of RDF
output serialization
... related: what RDF abstract serialization to use
[15] https://lists.w3.org/Archives/Public/public-rax/2016Jul/0007.html
collection of state of the art canonical representations of RDF
in XML
quentin: you should always optimize canonical format that you
are processsing
<clange> there is, e.g., RXR (Regular XML RDF), there is TriX,
and there are more
quentin: XSLT is generally not enough, one needs libraries on
top of XSLT
christian: "processing RDF data in XML / xslt workflows" -
important topic, has several solutions, we need to collect info
what works good, what not etc.
<clange> sources for the canonical formats mentioned above: RXR
([16]https://www.dajobe.org/papers/xmleurope2004/), TriX
([17]https://www.w3.org/2004/03/trix/,
[18]https://en.wikipedia.org/wiki/TriX_(syntax) )
[16] https://www.dajobe.org/papers/xmleurope2004/),
[17] https://www.w3.org/2004/03/trix/,
[18] https://en.wikipedia.org/wiki/TriX_(syntax)
<clange> AFAIK there is also a newer approach based on the
SPARQL XML results format
[19]https://github.com/rax-w3c
[19] https://github.com/rax-w3c
<clange> @fsasaki my GitHub account is "clange"
<TimeaT> my GitHub is theRealImy
<quentin> @fasaki my GitHub is qhreul
<scribe> ACTION: felix to add people to rax-cg github [recorded
in [20]http://www.w3.org/2016/07/08-rax-minutes.html#action01]
[20] http://www.w3.org/2016/07/08-rax-minutes.html#action01]
quentin: happy to do the description. won't be able to go
through all material that christoph provided
christoph: happy to help
<scribe> ACTION: quention to start section on RDF data in XML /
xslt workflows topic. christoph to add material [recorded in
[21]http://www.w3.org/2016/07/08-rax-minutes.html#action02]
[21] http://www.w3.org/2016/07/08-rax-minutes.html#action02]
TimeaT: previous problems, solutions were sent directly per
mail. there was also a template, not sure how to send input
Christian: use the template, send to the list
<clange> BTW my colleagues will write up their two use cases
(AutomationML Industry 4.0 and GATE NLP) by the next telco.
mapping XML of dictionary data to RDF
timea: dictionary company stores data in XML format, for
further publishing. They wanted to bring XML into RDF, to be
able to enrich dictionaries
... they can be multi- or monolingual, because language is
complex
... need a way to convert XML to RDF
... for working with dictionaries you have to use lemon /
ontolex, which may be extended
... solved currently with XSLT
... writing the XSLT proved to be very long and tedious
... not sure if we can achieve a general XSLT
... next step is how to connect words between dictionaries
... we reached very good point with XSLT, just wondering if
there is a better way
felix: so no integration of RDF in XML needed?
timea: would have been desired, but dropped because XML mapping
took a long time
... roundtripping is difficult
... not sure if it is needed
christoph: for making it easier to create XML / RDF
translation, there are solutions
... I have developed something, felix has one
... so this should be a part: write a classification of
existing libraries
... e.g. libraries that are based on XSLT. You start with that
and it becomes hard to maintain, then people add an abstraction
layer
... adding link to my implementation here
<quentin> for RDF -> XML, an approach could be to use SPARQL
and XML templates
<quentin> ... essentially creating registere queries
<clange> [22]https://github.com/EIS-Bonn/krextor is a library
of XSLT templates and functions for XML to RDF
[22] https://github.com/EIS-Bonn/krextor
timea: we used "unified views", etl tool that read the XML and
writes all data into virtuoso
... the actual mapping if endepend of unified views
<clange> @Timea see
[23]http://ceur-ws.org/Vol-449/ShortPaper2.pdf for an old,
high-level overview
[23] http://ceur-ws.org/Vol-449/ShortPaper2.pdf
[24]http://fsasaki.github.io/stuff/feisgiltt2016/
[24] http://fsasaki.github.io/stuff/feisgiltt2016/
felix: currently purely XSLT based solution, without an
abstraction layer
timea: classification of existing libraries, describe their
drawbacks etc.
christoph: would contribute to such a section
<quentin> depending on the complexity of the transformation,
you can use XPATH and templates to populate the RDF
<scribe> ACTION: timea to start section on existing tools &
their classification, benefits and drawbacks - others to
contribute [recorded in
[25]http://www.w3.org/2016/07/08-rax-minutes.html#action03]
[25] http://www.w3.org/2016/07/08-rax-minutes.html#action03]
quentin: you can also just use XPath and java @@@ and then are
able to keep mappings
... you can do similar things from RDF > XML perspective, using
SPARQL templates
timea: that sounds familiar how the XSLT is built; has a lot of
templates
... we transformed the XML in a simple RDF, and then converted
RDF into the model needed
... ontolex / lemon + extension
christioph: I have pointers to further systems, have seen a
related paper
... will add a link here
... on roundtripping, let's not forget the XSParql
specification
... it combines XQuery and SPARQL
<clange> SPARQL templates for RDF to XML have actually been
implemented as a proper language:
[26]https://hal.inria.fr/hal-01150623/document. XSPARQL
([27]http://xsparql.deri.org/) does a similar job but it's IMHO
more suited for queries over XML or RDF or both at the same
time, rather than transforming whole RDF graphs or whole XML
documents.
[26] https://hal.inria.fr/hal-01150623/document.
[27] http://xsparql.deri.org/)
christioph: it is better for query than complete
transformation, but very interesting approaches
<quentin> there is an overlap between the two use-case in terms
of transformation from 1 format to another
felix: asking john on mark logic support for RDF and how it
fits into the picture
other sections & topics
nothing at the moment
next call in two weeks from now
same time
john: we are working on tech. to store RDF in XML
... also to make it easier to work with XML described by RDF
graph
... interested to see in problems that people have and finding
solutions
adjourned
Summary of Action Items
[NEW] ACTION: felix to add people to rax-cg github [recorded in
[28]http://www.w3.org/2016/07/08-rax-minutes.html#action01]
[NEW] ACTION: quention to start section on RDF data in XML /
xslt workflows topic. christoph to add material [recorded in
[29]http://www.w3.org/2016/07/08-rax-minutes.html#action02]
[NEW] ACTION: timea to start section on existing tools & their
classification, benefits and drawbacks - others to contribute
[recorded in
[30]http://www.w3.org/2016/07/08-rax-minutes.html#action03]
[28] http://www.w3.org/2016/07/08-rax-minutes.html#action01
[29] http://www.w3.org/2016/07/08-rax-minutes.html#action02
[30] http://www.w3.org/2016/07/08-rax-minutes.html#action03
Summary of Resolutions
[End of minutes]
__________________________________________________________
Minutes formatted by David Booth's [31]scribe.perl version
1.144 ([32]CVS log)
$Date: 2016/07/08 12:48:48 $
__________________________________________________________
[31] http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
[32] http://dev.w3.org/cvsweb/2002/scribe/
Scribe.perl diagnostic output
[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.144 of Date: 2015/11/17 08:39:34
Check for newer version at [33]http://dev.w3.org/cvsweb/~checkout~/2002/
scribe/
[33] http://dev.w3.org/cvsweb/~checkout~/2002/scribe/
Guessing input format: RRSAgent_Text_Format (score 1.00)
Succeeded: s/tempaltes/templates/
Found Scribe: fsasaki
Inferring ScribeNick: fsasaki
Present: felix christian gerard john timea christoph quentin
Regrets: rob phil
Got date from IRC log name: 08 Jul 2016
Guessing minutes URL: [34]http://www.w3.org/2016/07/08-rax-minutes.html
People with action items: felix quention timea
[34] http://www.w3.org/2016/07/08-rax-minutes.html
[End of [35]scribe.perl diagnostic output]
[35] http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
--
-- Jose Labra
------------------------------------------------------------------------------
**************************************************
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed.
If you have received this email in error, please notify the system manager. This footnote also confirms that this email message has been swept by the mailgateway
**************************************************
Received on Saturday, 9 July 2016 16:36:59 UTC