Skip to content

Commit

Permalink
Deploying to gh-pages from @ c70caa6 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
andreea-pasare committed Aug 16, 2024
1 parent a2c8689 commit 4c21f27
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 19 deletions.
18 changes: 9 additions & 9 deletions public-review/handbook-as-a-whole.html
Original file line number Diff line number Diff line change
Expand Up @@ -1590,16 +1590,16 @@ <h5 id="_conceptual_mapping_development"><a class="anchor" href="#_conceptual_ma
<p>Conceptual Mapping in semantic data integration can be established at two distinct levels: the vocabulary level and the application profile level. These levels differ primarily in their complexity and specificity regarding the data context they address.</p>
</div>
<div class="paragraph">
<p><strong>Vocabulary Level</strong> mapping is established using basic XML elements. This form of mapping aims for a terminological alignment, meaning that an XML element or attribute is directly mapped to an ontology class or property. For example, an XML element &lt;PostalAddress&gt; could be mapped to locn:Address class, or an element &lt;surname&gt; could be mapped to a property foaf:familyName in the FOAF ontology. Such mapping can be established as a simple spreadsheet. This approach results in a simplistic and direct alignment, which lacks contextual depth and specificity. For this reason the next steps of this methodology cannot be continued.</p>
<p><strong>Vocabulary Level</strong> mapping is established using basic XML elements. This form of mapping aims for a terminological alignment, meaning that an XML element or attribute is directly mapped to an ontology class or property. For example, an XML element <code>&lt;PostalAddress&gt;</code> could be mapped to <code>locn:Address</code> class, or an element <code>&lt;surname&gt;</code> could be mapped to a property <code>foaf:familyName</code> in the FOAF ontology. Such mapping can be established as a simple spreadsheet. This approach results in a simplistic and direct alignment, which lacks contextual depth and specificity. For this reason the next steps of this methodology cannot be continued.</p>
</div>
<div class="paragraph">
<p>A more advanced approach would be to embed semantic annotations into XSD schemas using standards such as SAWSDL [<a href="https://www.w3.org/TR/sawsdl/#annotateXSD">ref</a>]. Such an approach is appropriate in the context of WSDL services.</p>
<p>A more advanced approach would be to embed semantic annotations into XSD schemas using standards such as <a href="references.html#ref:64" class="xref page">SAWSDL</a>. Such an approach is appropriate in the context of WSDL services.</p>
</div>
<div class="paragraph">
<p><strong>Application Profile Level</strong> of conceptual mapping utilises XPath to guide access to data in XML structures, enabling precise extraction and contextualization of data before mapping it to specific ontology fragments. An ontology fragment is usually expressed as a SPARQL Property Path (or simply Property Path). This Property Path facilitates the description of instantiation patterns specific to the Application Profile. This advanced approach allows for context-sensitive semantic representations, crucial for accurately reflecting the nuances in interpreting the meaning of data structures.</p>
</div>
<div class="paragraph">
<p>The tables below show two examples of mapping the organisation&#8217;s address, city and postal code. They show where the data can be extracted from, and how it can be mapped to targeted ontology properties such as locn:postName, and locn:postCode. To ensure that this address is not mapped in a vacuum but it is linked to an organisation instance, and not a person for example, the mapping is anchored in an instance ?this of an owl:Organisation. Optionally a class path can be provided to complement the property path and explicitly state the class sequence, which otherwise can be deduced from the Application Profile definition.</p>
<p>The tables below show two examples of mapping the organisation&#8217;s address, city and postal code. They show where the data can be extracted from, and how it can be mapped to targeted ontology properties such as <code>locn:postName</code>, and <code>locn:postCode</code>. To ensure that this address is not mapped in a vacuum, but it is linked to an organisation instance, and not a person for example, the mapping is anchored in an instance <code>?this</code> of an <code>owl:Organisation</code>. Optionally a class path can be provided to complement the property path and explicitly state the class sequence, which otherwise can be deduced from the Application Profile definition.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
Expand All @@ -1609,13 +1609,13 @@ <h5 id="_conceptual_mapping_development"><a class="anchor" href="#_conceptual_ma
<thead>
<tr>
<th class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><strong>Source XPath</strong></th>
<th class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><strong>/efac:Company/cac:PostalAddress/*cbc:PostalZone</strong></th>
<th class="tableblock halign-left valign-top" style="background-color: #f5f8fc;">*/efac:Company/cac:PostalAddress/cbc:PostalZone</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><p class="tableblock"><strong>Target Property Path</strong></p></td>
<td class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><p class="tableblock">?this cv:registeredAddress /<strong> </strong><strong>locn</strong>*:postCode* ?value .</p></td>
<td class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><p class="tableblock">?this cv:registeredAddress /<strong>locn:postCode</strong> ?value .</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><p class="tableblock"><strong>Target Class Path</strong></p></td>
Expand All @@ -1631,7 +1631,7 @@ <h5 id="_conceptual_mapping_development"><a class="anchor" href="#_conceptual_ma
<thead>
<tr>
<th class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><strong>Source XPath</strong></th>
<th class="tableblock halign-left valign-top" style="background-color: #f5f8fc;"><strong>/efac:Company/cac:PostalAddress/*cbc:CityName</strong></th>
<th class="tableblock halign-left valign-top" style="background-color: #f5f8fc;">*/efac:Company/cac:PostalAddress/cbc:CityName</th>
</tr>
</thead>
<tbody>
Expand All @@ -1658,10 +1658,10 @@ <h5 id="_technical_mapping_development"><a class="anchor" href="#_technical_mapp
<p>The technical mapping step is a critical phase in the mapping process, serving as the bridge between conceptual design and practical, machine-executable implementation. This step takes as input the conceptual mapping, which has been crafted and validated by domain experts or data-savvy business stakeholders and establishes correspondences between XPath expressions and ontology fragments.</p>
</div>
<div class="paragraph">
<p>When it comes to representing these mappings technically, several technology options are available[<a href="https://ceur-ws.org/Vol-2489/paper4.pdf">ref</a>]: such as XSLT[ref], RML[ref], SPARQLAnything[ref], etc. But RDF Mapping Language (RML) [<a href="https://rml.io/specs/rml/">ref</a>] stands out for its effectiveness and straightforward approach. RML allows for the representation of mappings from heterogeneous data formats like XML, JSON, relational databases and CSV into RDF, supporting the creation of semantically enriched data models. This code can be expressed in Turtle RML or the YARRRML dialect [<a href="https://rml.io/yarrrml/spec/">ref</a>], a user-friendly text-based format based on YAML, making the mappings accessible to both machines and humans. RML is well-supported by robust implementations such as RMLMapper [<a href="https://github.com/RMLio/rmlmapper-java">ref</a>] and RMLStreamer [<a href="https://github.com/RMLio/RMLStreamer">ref</a>], which provide robust platforms for executing these mappings. RMLMapper is adept at handling batch processing of data, transforming large datasets efficiently. On the other hand, RMLStreamer excels in streaming data scenarios, where data needs to be processed in real-time, providing flexibility and scalability in dynamic environments.</p>
<p>When it comes to representing these mappings technically, several technology options are available (<a href="references.html#ref:65" class="xref page">paper</a>): such as <a href="references.html#ref:66" class="xref page">XSLT</a>, <a href="references.html#ref:67" class="xref page">RML</a>, <a href="references.html#ref:68" class="xref page">SPARQLAnything</a>, etc. But <a href="references.html#ref:67" class="xref page">RDF Mapping Language (RML)</a> stands out for its effectiveness and straightforward approach. RML allows for the representation of mappings from heterogeneous data formats like XML, JSON, relational databases and CSV into RDF, supporting the creation of semantically enriched data models. This code can be expressed in Turtle RML or the <a href="references.html#ref:69" class="xref page">YARRRML</a> dialect, a user-friendly text-based format based on YAML, making the mappings accessible to both machines and humans. RML is well-supported by robust implementations such as <a href="references.html#ref:70" class="xref page">RMLMapper</a> and <a href="references.html#ref:71" class="xref page">RMLStreamer</a>, which provide robust platforms for executing these mappings. RMLMapper is adept at handling batch processing of data, transforming large datasets efficiently. On the other hand, RMLStreamer excels in streaming data scenarios, where data needs to be processed in real-time, providing flexibility and scalability in dynamic environments.</p>
</div>
<div class="paragraph">
<p>The development of the mapping rules is straightforward due to the preliminary conceptual mapping that is already available. The Conceptual Mapping (CM) aided the understanding to which class and property each XML element be mapped and how. Then, RML mapping statements are created for each class of the target ontology coupled with the property-object mapping statements specific to that class. Furthermore, it is essential to master RML along with XML technologies like XSD, XPath, and XQuery to implement the mappings effectively [<a href="https://rml.io/docs/rml/tutorials/xml/">ref</a>].</p>
<p>The development of the mapping rules is straightforward due to the preliminary conceptual mapping that is already available. The Conceptual Mapping (CM) aided the understanding to which class and property each XML element be mapped and how. Then, RML mapping statements are created for each class of the target ontology coupled with the property-object mapping statements specific to that class. Furthermore, it is essential to master RML along with XML technologies like XSD, XPath, and XQuery to implement the mappings effectively (<a href="references.html#ref:72" class="xref page">rml-gen</a>).</p>
</div>
<div class="paragraph">
<p>An additional step involves deciding on a URI creation policy and designing a uniform scheme for use in the generated data, ensuring consistency and coherence in the data output.</p>
Expand All @@ -1670,7 +1670,7 @@ <h5 id="_technical_mapping_development"><a class="anchor" href="#_technical_mapp
<p>A viable alternative to RML is XSLT technology, which offers a powerful, but low-level method for defining technical mappings. While this method allows for high expressiveness and complex transformations, it also increases the potential for errors due to its intricate syntax and operational complexity. This technology excels in scenarios requiring detailed manipulation and parameterization of XML documents, surpassing the capabilities of RML in terms of flexibility and depth of transformation rules that can be implemented. However, the detailed control it affords means that developers must have a high level of expertise in semantic technologies and exercise caution and precision to avoid common pitfalls associated with its use.</p>
</div>
<div class="paragraph">
<p>A pertinent example of XSLT&#8217;s application is the tool [<a href="https://github.com/SEMICeu/iso-19139-to-dcat-ap">ref</a>] for transforming ISO-19139 metadata to the DCAT-AP geospatial profile (GeoDCAT-AP) [<a href="https://joinup.ec.europa.eu/solution/geodcat-ap">ref</a>] in the framework of INSPIRE and the EU ISA Programme. This XSLT script is configurable to accommodate transformation [<a href="https://github.com/SEMICeu/iso-19139-to-dcat-ap/blob/master/documentation/Mappings.md">ref</a>] with various operational parameters such as the selection between core or extended GeoDCAT-AP profiles and specific spatial reference systems for geometry encoding, showcasing its utility in precise and tailored data manipulation tasks.</p>
<p>A pertinent example of XSLT&#8217;s application is the <a href="references.html#ref:73" class="xref page">tool</a> for transforming ISO-19139 metadata to the DCAT-AP geospatial profile (<a href="references.html#ref:74" class="xref page">GeoDCAT-AP</a>) in the framework of INSPIRE and the EU ISA Programme. This XSLT script is configurable to accommodate <a href="references.html#ref:75" class="xref page">transformation</a> with various operational parameters such as the selection between core or extended GeoDCAT-AP profiles and specific spatial reference systems for geometry encoding, showcasing its utility in precise and tailored data manipulation tasks.</p>
</div>
<div class="paragraph">
<p><strong>Inputs:</strong> Conceptual Mapping spreadsheet, sample XML data</p>
Expand Down
Loading

0 comments on commit 4c21f27

Please sign in to comment.