<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>November</journal-title>
      </journal-title-group>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Tool for Pattern-Based Ontology Transformation using SPARQL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ondřej Zamazal</string-name>
          <email>ondrej.zamazal@vse.cz</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Ledvinka</string-name>
          <email>martin.ledvinka@fel.cvut.cz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vojtěch Svátek</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Workshop</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Electrical Engineering, Czech Technical University in Prague</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ontology, Ontology Transformation, Ontology Matching, Ontology Engineering</institution>
          ,
          <addr-line>Semantic Web</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Prague University of Economics and Business</institution>
          ,
          <addr-line>Czechia</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2024</year>
      </pub-date>
      <volume>19</volume>
      <issue>2024</issue>
      <fpage>26</fpage>
      <lpage>28</lpage>
      <abstract>
        <p>The PatOMat2 tool aims at pattern-based transformation of existing ontologies. It allows for bridging diferent modeling styles of web ontologies. The PatOMat2 tool is a web-based application with a separate backend and frontend. Besides a short introduction to ontology transformation, the demo paper presents the basics of transformation patterns, one of the envisioned use cases, the tool workflow and its architecture. EKAW 2024: EKAW 2024 Workshops, Tutorials, Posters and Demos, 24th International Conference on Knowledge Engineering and ∗Corresponding author.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction and Related</title>
    </sec>
    <sec id="sec-2">
      <title>Work</title>
      <p>
        Domain knowledge sharing is often made via a domain ontology [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] modeled in the Web Ontology
Language (OWL) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Ontology designers usually choose one of many possible ontology representations
of the reality [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], reflecting diferent
      </p>
      <p>modeling styles. For example, a complex relationship can be
expressed as a chain of simpler relationships only (e.g., for a country hasCapital, hasMayor ) or we can
also make a shortcut using complex relationship (e.g., to represent the mayor of a country’s capital,
hasMayorOfCapital). Similarly, the fact that a country is a monarchy can be expressed by making it an
instance of class Monarchy or assigning it a value monarchy for the property hasPolitical System, or
both. The choice of modeling style then impacts stream-line applications that consume the ontology
and apply its ontological viewpoint. For example, an instance data graph visualization tool may use the
chain property (if available) to shrink the displayed graph of country properties, and a class hierarchy
viewer may make explicit the categorization of countries by political system. Provided the original
ontology does not reflect the alternative style patterns yet, we may wish to transform it – usually, but
not necessarily, monotonously – to the style desired by the application. Such an ontology transformation
can possibly be fully automated, or semi-automated, such that the ontology engineer can interact with
the process.</p>
      <p>
        One of the first approaches to ontology transformation was OPPL [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. OPPL, the Ontology
Pre-Processing Language, is a macro-language based on Manchester OWL syntax for manipulating
ontologies written in OWL. OPPL is based on OWL API and does not allow human interaction. The
PatOMat project [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] proposed automated transformation with a three-step workflow: pattern occurrence
detection, transformation instructions generation, and actual transformation. The implemented tool was
based on OWL API and equipped with a graphical user interface as a plugin for Protégé. Several pilot
use cases were demonstrated [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Another approach, EvoPat [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], was based on the SPARQL language
and targeted not only schema but also instance data transformation. It did not address high-level logical
patterns and entity naming.
      </p>
      <p>The PatOMat2 prototype tool, presented in this paper, is being designed so as to enable both a
fully automated and semi-automated mode of ontology transformation. PatOMat2 features multiple
https://nb.vse.cz/~svabo/ (O. Zamazal); https://nb.vse.cz/~svatek/ (V. Svátek)</p>
      <p>CEUR</p>
      <p>
        ceur-ws.org
enhancements compared to the original PatOMat [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], on which it partly follows up:
• The original PatOMat supported OWL 2 constructs using the Manchester syntax, which allowed
to easily express complex concepts. Conversely, more complex language also means a more
complicated way of parsing and transformation instructions generation. For PatOMat2, we expect
less complex concepts, but a higher need for many relationships where RDF triples are suficient.
Thus, PatOMat2 is based on a straightforward approach where SPARQL query and SPARQL
Update are used.
• PatOMat2 comes as a web application, so it is easy to use and does not require the user to
download or install anything. In contrast, the original PatOMat was developed as a Protégé
plugin. The necessity of installing all dependencies related to, e.g., NLP modules most likely
hindered its wider adoption.
• Not only does PatOMat2 allow users to select the pattern instances to apply in the transformation
(as did the original PatOMat), but it also allows the users to edit the labels generated for new
entities.
      </p>
      <p>• Since it does not depend on another tool, PatOMat2 is easier to evolve and extend.
In the rest of the paper we first present a concrete motivating use case, and then explain the functionality
of the tool on an example reflecting the use case; finally, implementation details are given.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Motivation Use Case: Rule Mining in the Circular Economy Domain</title>
      <p>
        The ontology engineering methods researched and deployed in the EU Onto-DESIDE1 project aim to
support the distributed management of information about the flow of entities (materials, products, etc.)
within the circular economy (CE) pathways [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], as well as analytical tasks on top of this flow.
      </p>
      <p>
        For example, the Building Product Ontology (BPO)2 focuses on how diferent product components
can be assembled. Let us consider a rule mining task over (relational) data corresponding to BPO
and other interlinked ontologies. A possible output rule could be one capturing the situation that
if an assembly contains a dynamic entity (i.e., by BPO, an entity representing multiple components
that are multiple, undistinguished, and sharing all their features – e.g., identical legs of furniture), it
could be better reused in terms of such its parts. The corresponding rule could look like as follows:
Assembly(?x) &amp; isComposedOfEntity(?x,?y) &amp; DynamicEntity(?y) ⟹ PartwiseReused(?x). However,
the rule mining templates are often limited to a certain number of atoms in order to constrain the
search space, and such a long rule might not be found. On the other hand, if we transform the
antecedent part of the rule to a single atom, it becomes much more compact and thus easier to discover:
AssemblyWithDynamicEntity(?x) ⟹ PartwiseReused(?x). In data mining (particularly, inductive logic
programming as its subfield), methods for such feature construction already exist [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. However, they
are applied at the level of the data mining task only, thus are ignorant of the ontology structure as a
whole, do not feed back to it, and the new entities produced (‘invented predicates’) are usually not
endowed with any meaningful naming. On the other hand, if we make the transformation (add the
new concept) at the ontology level, using a transformation pattern, we get a reusable and documented
solution for the same task. This is what we demonstrate in the workflow description in the following
section.
      </p>
    </sec>
    <sec id="sec-4">
      <title>3. PatOMat2 Workflow and Architecture</title>
      <p>In PatOMat2, ontology transformation is based on transformation patterns. Each transformation pattern
consists of three parts: a source ontology pattern, a target ontology pattern and a naming transformation.
An ontology pattern (OP) is an OWL ontology fragment with variables, expressible as a set of triple
1https://ontodeside.eu/
2https://annawagner.github.io/bpo/
patterns forming a SPARQL query pattern. A naming transformation represents the semantic link
between the source and target pattern in lexical terms. Its nature can range from simple regex operations
through complex symbolic templates referencing lexical databases (e.g., WordNet) interfaces to
pretrained or prompted large language models (LLMs), although the advanced methods are not yet fully
implemented in the tool. For the symbolic template approach, the instructions contain a combination of
text, variables from triple patterns, and naming instructions applied to variables. Currently supported
simple naming operations are:
• label(?X): get the label of the entity if available, otherwise return the local IRI fragment
• nominalize(?X): converting the verb or adjective of the entity name to a noun form
• passivize(?X): converting the tense of the verb of the entity name into the passive one
• head_noun(?X): get the head (main) part of the entity name</p>
      <p>Workflow. The overall workflow is depicted in Figure 1. The ontology and the transformation
patterns (represented in JSON) first need to be loaded. For example, the CAT (’class by attribute type’)
transformation pattern3 materializes, for a certain object property  , a subclass  of its domain class
 depending on an existing subclass  of its range class  . In JSON, the source and target ontology
patterns of CAT look as follows:
"op_source": {
"triples": {</p>
      <p>"triple": [
3https://github.com/Onto-DESIDE-VSE/TransformationPatterns/blob/main/submissions/CAT1ntp-tp-lite2x.json
}
}
}
}
"?p rdfs:domain ?A",
"?p rdfs:range ?B",
"?C rdfs:subClassOf* ?B"
},
"filters": { "filter": [ "FILTER(?A != ?B)" ] }
"op_target": {
"triples": {
"triple": [
"?p rdfs:domain ?A",
"?p rdfs:range ?B",
"?C rdfs:subClassOf ?B",
"?G rdfs:subClassOf ?A",
"?G owl:equivalentClass _:restriction",
"_:restriction rdf:type owl:Restriction",
"_:restriction owl:onProperty ?p",
"_:restriction owl:someValuesFrom ?C"</p>
      <p>In the current implementation, CAT also contains a baseline naming transformation property, with
instructions on how to generate the required new label. For the new entity ?G it looks as follows:
"ntp": {
"?G": [</p>
      <p>"label(?A) that label(?p) a label(?C)"</p>
      <p>Initially, the application queries the ontology using SPARQL based on the source pattern. The
pattern definition can use various SPARQL features such as property paths (here, rdfs:subClassOf*
for transitive subsumption) and filters (here, ?A!=?B). The detection results are displayed as matching
bindings and as new entities. For example, when applying CAT on the BPO ontology mentioned in
Section 2, we obtain one matching binding for each variable, ?p, ?B, ?A and ?C from the source pattern:
• ?p = &lt;https://w3id.org/bpo#isComposedEntity&gt;
• ?B = &lt;https://w3id.org/bpo#Entity&gt;
• ?A = &lt;https://w3id.org/bpo#Assembly&gt;
• ?C = &lt;https://w3id.org/bpo#DynamicEntity&gt;</p>
      <p>
        New entities are displayed with their randomly generated IRIs and labels generated based on NTP
(Naming Transformation Pattern) instructions. In our use case (application of CAT on BPO), there will
be a new (class) entity for ?G with its provisional label currently generated symbolically as Assembly
that is composed of entity a dynamic entity. (However, as we have checked, [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] mere pre-trained
of-the-shelf LLMs can easily come up with more compact labels such as Assembly with dynamic entity
from the motivating example.) Next, the user can directly edit the generated label.
      </p>
      <p>The user can select one or more of the displayed pattern matches (and apply filtering on the uploaded
TPs) to perform ontology transformation. Based on the transformation pattern, the transformation
can be done either by inserting triples (option “Apply only inserts”) or by inserting and deleting triples
(option “Apply deletes and inserts”). The information about the transformation is presented under
Transformation SPARQL, where the SPARQL UPDATE statements can be found. Finally, a summary of
the changes applied is displayed when the transformation has been performed and the transformed
ontology has been downloaded.</p>
      <p>
        System Architecture. PatOMat2 is a web application with a separate backend and frontend. The
backend is written in Java using Spring Boot. Its internal architecture follows the domain-driven
approach [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], where domain entities contain both data and the relevant processing logic. The backend
exposes a REST API that the frontend (and possibly other clients) can use. Documentation for the REST
API is generated using the OpenAPI standard4 and is accessible directly from the instance. The backend
uses RDF4J [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] to work with the ontological data. However, its use is separated from the application
logic by generic interfaces that allow, if need be (for example, due to higher expressiveness of the data),
switching to a diferent ontology processing library (like Jena [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] or OWL API [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]). The frontend is
written in TypeScript using Vue with Material UI for some basic styling.
      </p>
    </sec>
    <sec id="sec-5">
      <title>4. Conclusions and Future Work</title>
      <p>The demo paper presents the PatOMat2 tool aiming at pattern-based ontology transformation. We
presented it by explaining the transformation pattern, workflow, system architecture, and using a simple
running example related to data mining on circular economy data. While the current version of the tool
is more suitable for knowledge engineers, we strive to support subject-matter experts by enhancing the
graphical user interface in the future. Since people will use transformed ontologies, meaningful labels
are essential. We plan to include LLMs for label or even comment generation. In the future, we also
envisage supporting instance data translation based on the transformed ontology. Finally, we foresee
functional testing of the tool and overall user experience evaluation.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments References</title>
      <p>This work has been supported by the EU’s Horizon Europe grant no. 101058682 (Onto-DESIDE).</p>
    </sec>
    <sec id="sec-7">
      <title>A. Online Resources</title>
      <p>The following resources are available:
• The instance of the tool, https://owl.vse.cz/patomat2
• The screencast for the EKAW 2024 demo, https://owl.vse.cz/patomat2/about
• The code, https://github.com/Onto-DESIDE-VSE/patomat2
• The Documentation for the REST API, https://owl.vse.cz/patomat2/service/server/swagger-ui/
index.html</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T. R.</given-names>
            <surname>Gruber</surname>
          </string-name>
          ,
          <article-title>Toward principles for the design of ontologies used for knowledge sharing?</article-title>
          ,
          <source>International journal of human-computer studies 43</source>
          (
          <year>1995</year>
          )
          <fpage>907</fpage>
          -
          <lpage>928</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>W. W. W.</given-names>
            <surname>Consortium</surname>
          </string-name>
          , et al.,
          <article-title>Owl 2 web ontology language document overview</article-title>
          ,
          <source>Word Wide Web Consortium</source>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Shimizu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Hammar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Hitzler</surname>
          </string-name>
          , Modular ontology modeling,
          <source>Semantic Web</source>
          <volume>14</volume>
          (
          <year>2023</year>
          )
          <fpage>459</fpage>
          -
          <lpage>489</lpage>
          . URL: https://doi.org/10.3233/SW-222886. doi:
          <volume>10</volume>
          .3233/SW- 222886.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Egana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rector</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Stevens</surname>
          </string-name>
          , E. Antezana,
          <article-title>Applying ontology design patterns in bio-ontologies, in: Knowledge Engineering: Practice and Patterns: 16th International Conference</article-title>
          , EKAW 2008, Acitrezza, Italy,
          <source>September 29-October 2</source>
          ,
          <year>2008</year>
          . Proceedings 16, Springer,
          <year>2008</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>16</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Iannone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. E.</given-names>
            <surname>Aranguren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Rector</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Stevens</surname>
          </string-name>
          ,
          <article-title>Augmenting the expressivity of the ontology pre-processor language</article-title>
          .,
          <source>in: OWLED</source>
          , volume
          <volume>432</volume>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>O.</given-names>
            <surname>Šváb-Zamazal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Svátek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Iannone</surname>
          </string-name>
          ,
          <article-title>Pattern-based ontology transformation service exploiting oppl and owl-api, in: Knowledge Engineering and Management by the Masses: 17th International Conference</article-title>
          ,
          <string-name>
            <surname>EKAW</surname>
          </string-name>
          <year>2010</year>
          , Lisbon, Portugal,
          <source>October 11-15</source>
          ,
          <year>2010</year>
          . Proceedings 17, Springer,
          <year>2010</year>
          , pp.
          <fpage>105</fpage>
          -
          <lpage>119</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>O.</given-names>
            <surname>Zamazal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Svátek</surname>
          </string-name>
          ,
          <article-title>Patomat-versatile framework for pattern-based ontology transformation</article-title>
          ,
          <source>Computing and Informatics</source>
          <volume>34</volume>
          (
          <year>2015</year>
          )
          <fpage>305</fpage>
          -
          <lpage>336</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Rieß</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Heino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tramp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Auer</surname>
          </string-name>
          ,
          <article-title>Evopat-pattern-based evolution and refactoring of rdf knowledge bases, in: The Semantic Web-ISWC</article-title>
          <year>2010</year>
          : 9th International Semantic Web Conference,
          <string-name>
            <surname>ISWC</surname>
          </string-name>
          <year>2010</year>
          , Shanghai, China, November 7-
          <issue>11</issue>
          ,
          <year>2010</year>
          ,
          <string-name>
            <given-names>Revised</given-names>
            <surname>Selected</surname>
          </string-name>
          <string-name>
            <surname>Papers</surname>
          </string-name>
          ,
          <source>Part I 9</source>
          , Springer,
          <year>2010</year>
          , pp.
          <fpage>647</fpage>
          -
          <lpage>662</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>O.</given-names>
            <surname>Zamazal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Svátek</surname>
          </string-name>
          ,
          <article-title>Patomat - versatile framework for pattern-based ontology transformation</article-title>
          ,
          <source>Comput. Informatics</source>
          <volume>34</volume>
          (
          <year>2015</year>
          )
          <fpage>305</fpage>
          -
          <lpage>336</lpage>
          . URL: http://www.cai.sk/ojs/index.php/cai/article/view/ 1138.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Parliament</surname>
          </string-name>
          ,
          <article-title>Circular economy: definition, importance</article-title>
          and benefits,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>O.</given-names>
            <surname>Kuzelka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Zelezný</surname>
          </string-name>
          ,
          <article-title>Block-wise construction of tree-like relational features with monotone reducibility and redundancy</article-title>
          ,
          <source>Mach. Learn</source>
          .
          <volume>83</volume>
          (
          <year>2011</year>
          )
          <fpage>163</fpage>
          -
          <lpage>192</lpage>
          . URL: https://doi.org/10.1007/ s10994-010-5208-5. doi:
          <volume>10</volume>
          .1007/S10994- 010- 5208- 5.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>V.</given-names>
            <surname>Svátek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Zamazal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Haniková</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chudán</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Saeedizade</surname>
          </string-name>
          , E. Blomqvist, Welcome, newborn entity!
          <article-title>On handling newly generated entities in ontology transformation</article-title>
          , in: I.
          <string-name>
            <surname>Novalija</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          Badenes-Olmedo (Eds.),
          <source>Companion Proceedings of the 24th International Conference on Knowledge Engineering and Knowledge Management</source>
          , Amsterdam, Netherlands, CEUR Workshop Proceedings, To Appear. CEUR-WS.org,
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <article-title>Domain-driven design: tackling complexity in the heart of software</article-title>
          , Addison-Wesley
          <string-name>
            <surname>Professional</surname>
          </string-name>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Broekstra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kampman</surname>
          </string-name>
          ,
          <string-name>
            <surname>F. Van Harmelen</surname>
          </string-name>
          ,
          <article-title>Sesame: A generic architecture for storing and querying rdf and rdf schema</article-title>
          , in: International semantic web conference, Springer,
          <year>2002</year>
          , pp.
          <fpage>54</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Carroll</surname>
          </string-name>
          , I. Dickinson,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dollin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Seaborne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wilkinson</surname>
          </string-name>
          ,
          <article-title>Jena: Implementing the Semantic Web Recommendations</article-title>
          ,
          <source>in: Proceedings of the 13th international World Wide Web conference (Alternate Track Papers &amp; Posters)</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>74</fpage>
          -
          <lpage>83</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Horridge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bechhofer</surname>
          </string-name>
          ,
          <article-title>The OWL API: A Java API for OWL ontologies</article-title>
          , Semantic Web - Interoperability, Usability, Applicability (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>