rdf mapping language rml
play

RDF Mapping Language (RML) A Generic Language for Integrated RDF - PowerPoint PPT Presentation

RDF Mapping Language (RML) A Generic Language for Integrated RDF Mappings of Heterogeneous Data Anastasia Dimou, Miel Vander Sande, Pieter Colpaert, Ruben Verborgh, Erik Mannens and Rik Van de Walle Ghent University iMinds Multimedia Lab


  1. RDF Mapping Language (RML) A Generic Language for Integrated RDF Mappings of Heterogeneous Data Anastasia Dimou, Miel Vander Sande, Pieter Colpaert, Ruben Verborgh, Erik Mannens and Rik Van de Walle Ghent University – iMinds – Multimedia Lab http://semweb.mmlab.be/rml LDOW14, WWW14 Seoul, Korea, 8th April 2014

  2. The five stars of the Linked Open Data scheme are approached as a set of consecutive steps

  3. … and are applied to a single input source every time

  4. Limitations of current solutions The semantic representation of each mapped resource is Independently defined disregarding its possible prior definitions and its links to other resources Manual aligned to its prior appearances (if possible) by reconstructing the same URIs Not linked to other resources links are defined after the data are mapped and published

  5. Need for a well-considered policy regarding mapping and primary interlinking of data in the context of a certain knowledge domain

  6. No mapping formalization exists that defines how to map heterogeneous sources into RDF using integrated and interoperable mappings.

  7. Relational Database to RDF (R2RML W3C) Data OWNER / PUBLISHER DB defines R2RML mappings R2RML processor RDF

  8. Mapping heterogeneous resources to RDF Data OWNER / PUBLISHER DB defines CSV R2RML mappings R2RML processor RDF RDF

  9. Mapping heterogeneous resources to RDF Data OWNER / PUBLISHER DB defines CSV XML R2RML mappings R2RML processor RDF RDF RDF

  10. Current limitation: mapping data on a per-source & per-format basis Data OWNER / PUBLISHER DB defines CSV XML JSON R2RML mappings R2RML processor RDF RDF RDF RDF

  11. Further limitation: lack of uniform and interoperable solutions The mappings are tied to the implementations not interoperable across different implementations No uniform way to describe mappings of heterogeneous resources that describe complementarily the same domain Mapping definitions are not reused for data in the same or different formats

  12. Uniform way for integrated mapping of heterogeneous sources Data OWNER / PUBLISHER defines DB CSV XML JSON Mappings definitions? processor RDF

  13. R2RML mapping definition Logical Table Table Name 1 Subject Map Triples Subject Map Map 0 or more Predicate-Object Maps Predicate Map Predicate-Object Map Object Map Predicate-Object Map Predicate-Object Map

  14. R2RML mapping definition Logical Table Table Name Triples Subject Map Map Predicate Map Predicate-Object Map Object Map Predicate-Object Map Predicate-Object Map

  15. From R2RML to a generic mapping language constant Subject Map Predicate Term Map column Map Object Map template column RDF Term : a URI, a literal, a blank node

  16. R2RML Mapping <#ProductMapping> rr: logicalTable [ Suitcase Name rr:tableName “Suitcase" ]; 567 Samsonite DeLux 45 rr: subjectMap [ rr:template "http://ex.com/{Suitcase}"; rr:class ex:Person ]; ex:567 a schema:Product; rdfs:label “ Samsonite DeLux 45 ” . rr: predicateObjectMap [ rr:predicate rdfs:label; rr:objectMap “ Name ” ].

  17. from R2RML to a generic mapping language R2RML Generic mapping language Logical Source Logical Table (CSV, XML, JSON) Table Name Source name / URI Column ??? per row iteration ???

  18. References to values of heterogeneous resources <PendingOrders>... XPath for XML <Order id="398"> Reference: <Product> <Id>AE5982</Id> “Order@Id” <Name>Samsonite DeLux 45</Name> Iterator: </Product> “/ PendingOrders / Order” </Order>... <PendingOrders> { ... , JSONPath for JSON “ProductInStock” : Reference: { “ID”: "567", “Name”: “Samsonite DeLux 45”, “$. ProductInStock.ID ” “type”: “suitcase”, Iterator: }, ... “ $.ProductInStock ” }

  19. from R2RML to a generic mapping language R2RML R2RML Logical Source Logical Table (CSV, XML, JSON) Table Name Source name / URI Reference Column (defined Reference Formulation) per row iteration defined Iterator

  20. Mapping XML files <#OrdersMapping> rml: logicalSource [ <PendingOrders>… rml: source “orders.xml" ; <Order id="398"> rml: referenceFormulation ql:XPath; <Product> rml: iterator “ /PendingOrders/Order/Product ” ]; <Id>AE5982</Id> <Name>Samsonite DeLux 45</Name> rr:subjectMap [ </Product> rr:template http://ex.com/{Id}; </ Order> … rr:class schema:Product ]; </PendingOrders> rr:predicateObjectMap [ ex:AE5982 a schema:Product ; rr:predicate rdfs:label ; rdfs:label “Samsonite DeLux 45”. rr:object “ Product/Name ” ] .

  21. Mapping JSON files <#ProductInStockMapping> { ... , rml: logicalSource [ “ProductInStock” : rml: source “stock.json" ; { “ID”: "567", rml: referenceFormulation ql:JSONPath; “Name”: “Samsonite DeLux 45”, rml:i terator “ $.ProductInStock ” ]; “type”: “suitcase” }, ... rr:subjectMap [ } rr:template http://ex.com/{ID}; rr:class schema:Product ]; ex:567 a schema:Product ; rdfs:label “Samsonite DeLux 45” . rr:predicateObjectMap [ rr:predicate rdfs:label ; rr:object “ Name ” ] .

  22. RDF Mapping Language (RML) Source Logical Source Iterator constant Reference Formulation Term Triples Map Subject Map reference Map Predicate Map Predicate-Object template Map Object Map Triples Map Referencing Child Object Map column Join Condition Parent column

  23. Robust cross-references { ... "Performance" : <#PerformancesMapping> { "Perf_ID": "567", rr:subjectMap [ rr:template “http ://ex.com/{Perf_ID }” ]; "Location": { "lat": "51.043611" , "long": "3.717222"} rr:predicateObjectMap [ }, rr:predicate ex:location; ... } rr:objectMap [ rr:parentTriplesMap <#LocationMapping> ] ]. <#EventsMapping> <Events> ... rr:subjectMap [ <Exhibition id="398"> rr:template "http://ex.com/{@id}" ]; <Location> <lat>51.043611</lat> rr:predicateObjectMap [ <long>3.717222</long> rr:predicate ex:location; </Location> rr:objectMap [ </Exhibition> ... rr:parentTriplesMap <#LocationMapping> ] ]; </Events>

  24. Robust cross-references { ... "Performance" : <#LocationMapping> { "Perf_ID": "567", rr:subjectMap [ "Location": { rr:template "http://ex.com/{lat},{long}"]; "lat": "51.043611" , "long": " 3.717222“ } } , rr:predicateObjectMap [ ... } rr:predicate ex:long; rr:objectMap [ rml:reference "long" ] ]; <Events> ... rr:predicateObjectMap [ <Exhibition id="398"> rr:predicate ex:lat; <Location> rr:objectMap [ rml:reference "lat" ] ] . <lat>51.076891</lat> <long>3.717222</long> </Location> ex:567 ex:location ex:51.043611, 3.717222 </Exhibition> ... ... </Events> ex:398 ex:location ex:51.076891, 3.717222 ex:51.043611, 3.717222 ex:lat ex:3.717222 ex:long ex:51.043611 .

  25. Primary Interlinking { ... "Performance" : <#PerformancesMapping> { "Perf_ID": "567", rr:subjectMap [ rr:template “http ://ex.com/{Perf_ID }” ]; "Venue": { "Name": "STAM", rr:predicateObjectMap [ "Venue_ID": "78" }, rr:predicate ex:venue; "Location": { rr:objectMap [ "long": "3.717222", rr:parentTriplesMap <#VenueMapping> ] ]. "lat": "51.043611" } } , ... } <#VenueMapping> rml:logicalSource [ rml:source "http://ex.com/performances.json"; rml:referenceFormulation ql:JSONPath; rml:iterator "$.Performance.Venue.[*]" ]; rr:subjectMap [ rr:template "http://ex.com/{Venue_ID}"; rr:class ex:Venue ]. .

  26. Primary Interlinking { ... "Performance" : <#EventsMapping> { "Perf_ID": "567", rr:subjectMap [ "Venue": { rr:template "http://ex.com/{@id}" ]; "Name": "STAM", "Venue_ID": "78" }, rr:predicateObjectMap [ ... } rr:predicate ex:venue; rr:objectMap [ rr:parentTriplesMap <#VenueMapping>; rr:joinCondition [ rr:child "$.Performance.Venue.Name"; <Events> ... rr:parent "/Events/Exhibition/Venue" ] ] ] . <Exhibition id="398"> <Venue>STAM</Venue> </Exhibition> ... ... ex:567 ex:venue ex:78. </Events> ex:398 ex:venue ex:78.

  27. Robust cross-references and primary interlinking Avoid redefining and replicating URI patterns Uniquely define the URI patterns that generates a resource and refer to its definition Modifications to the patterns or data values are propagated to every other reference of the resource Links between resources in different inputs are defined already on mapping level New mappings are automatically aligning

  28. Extensibility and Scalability Address the mappings definition in a generic way scale over the input data extracts. Distinct and not interdependent references to the data extracts and the mappings Proof: CSS3 selectors to map HTML documents enrich the aforementioned data with data from and

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend