<!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 />
    <article-meta>
      <title-group>
        <article-title>Krextor - An Extensible XML!RDF Extraction Framework</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Christoph Lange</string-name>
          <email>ch.lange@jacobs-university.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science, Jacobs University Bremen</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>The semantics of an XML-based language can be specified by mapping an XML schema to an ontology, thus enabling the wide range of XML applications to contribute to the Semantic Web. The Krextor XML!RDF extraction framework proposes a practical solution to this problem, novel in its extensibility. We present its architecture and show how it can easily be extended to support additional input and output languages.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        having a well-defined formal semantics in terms of RDF already exist. Obvious
examples are XML representations for RDF and ontologies themselves. Then,
there is RDFa [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for embedding RDF into the widely-supported but non-semantic
XHTML. Less formal alternatives, such as microformats, can also be considered
semantic if an RDF semantics has been specified for them and there is a way of
obtaining RDF from such documents, e. g. by a GRDDL link from the document
to the implementation of a translator to RDF. For data-centric XML languages,
e. g. XML representations of relational databases, it is also straightforward
to specify an RDF semantics. Finally, there are semantic markup languages –
XML languages with a formal semantics that have explicitly been designed for
knowledge representation. Consider, for example, OMDoc (Open Mathematical
Documents), which is developed in our group [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. While the formal core of
OMDoc (symbol declarations, modular theories, proof objects) has a
modeland proof-theoretic semantics that is much more expressive than Semantic Web
ontologies (see [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]), we have specified an OWL-DL semantics for large parts
of OMDoc’s semi-formal structural aspects (document structure, mathematical
statements, structured proofs; see [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]).
      </p>
      <p>
        A widened connection between the XML and RDF layers of the layer cake
has most notably been suggested by Patel-Schneider and Siméon, who developed
a unified model theory for both [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. However, the benefit of that approach is
rather theoretical, as it makes impractically restrictive assumptions about the
XML structure (see [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] for details). Moreover, XML and RDF have evolved in
parallel for years and gained a wider tool support each. Therefore, we take the
more practical approach of extracting RDF from XML on the level of syntax
and thus giving XML languages an RDF semantics by providing 1. rules that
translate XML to RDF and, if needed, 2. an ontology providing the vocabulary
for the extracted RDF.
2
      </p>
      <p>
        The Krextor XML!RDF Extraction Framework
The Krextor XML!RDF extraction framework originated from the need to
manage OMDoc documents in a Semantic Web application [
        <xref ref-type="bibr" rid="ref13 ref14">14,13</xref>
        ]. Having
modeled an OWL-DL ontology for OMDoc, an OMDoc!RDF extraction was
needed, which we hard-coded in XSLT from scratch, after an older, hard-coded
Java implementation had proven to be too unflexible to maintain. The RDF
was output in the RXR notation (Regular XML RDF [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]), from which it was
parsed by a Java library. Later, the same was required for OpenMath content
dictionaries, a language similar to OMDoc. This led to the decision to create
a generic XSLT-based framework (cf. fig. 1) that allows developers to define
translations (“extraction modules”) from any XML language to RDF more easily
than in pure XSLT, as will be shown in the following.
      </p>
      <p>
        A generic module provides convenience templates and functions for defining
extraction rules in a way that abstracts from the concrete output format and
instead defining the semantics of XML structures on a high level, in terms of
resources and properties. Krextor’s generic “representation” of XML is a transient
one; the generic module is just a step in the pipeline, grouping extracted data into
triples and forwarding them to the selected output module. Supported output
formats, besides RXR, are: RDF/XML [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the text notation Turtle [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], and,
thanks to the Saxon XSLT processor [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], a direct interface to Java, for a more
efficient integration into applications. In RDF/XML and Turtle output, the triples
are grouped by common subjects and predicates. This is achieved by first obtaining
RXR and then transforming it to the notation desired using XSLT grouping –
a compromise between efficiency and a clean separation of concerns. Syntactic
sugar, offered by some RDF notations, has only partly been implemented. At the
moment, there is no support for author-defined namespace prefixes, “anonymous”
blank nodes (bnodes) without identifiers, and RDF containers or collections in
the output. Semantically, that does not make a difference. After all, our target
“audience” are not humans, who usually do not want to read raw RDF, but
applications that further process the RDF and conveniently prepare it for users –
as, e. g., the semantic wiki SWiM does [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Nevertheless, some syntactic sugar
remains on our agenda, as it facilitates testing Krextor during development.
      </p>
      <p>Krextor is available as a collection of XSLT style sheets, with an optional Java
wrapper for direct integration into applications. For scripting and debugging,
there is a shell script frontend, reading XML from the standard input and writing
RDF in the desired notation to the standard output.</p>
      <p>OMDoc</p>
      <p>+RDFa
OMDoc/OWL</p>
      <p>+RDFa
XHTML</p>
      <p>+RDFa
OpenMath
my XML</p>
      <p>+RDFa?
my Microformat</p>
      <p>generic
representation</p>
      <p>RDF/XML
RXR
?</p>
      <p>?</p>
      <p>Java
callback</p>
      <p>Turtle
your format
input format
output format</p>
      <p>
        Besides the input formats mentioned so far, Krextor also supports RDFa –
embedded in XHTML or other host languages, such as Open Document2, and
in the following section, we will show how it can be extended to microformats.
Moreover, we are working on a translation from OMDoc to OWL, implemented as
a Krextor extraction module, which allows for authoring Semantic Web ontologies
with integrated documentation and in a more modular way (see [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for details).
2 See http://rdfa.info/2008/03/13/rdfa-support-coming-in-odf-12/
and stay tuned for Open Document 1.2 ,
Thus, Krextor can even be used as a bridge from the XML layer into the ontology
layer of the Semantic Web cake. To add an input format, one has to provide
XSLT templates that map XML structures of the input to calls of Krextor’s
generic templates, as shown in the following section. We follow the paradigm
of making easy things easy and hard things possible – an inexpensive claim,
actually, but considerable efforts have been made to implement convenience
templates and functions for common extraction tasks, which are easier to use
than plain XSLT. There are predefined templates for creating a resource that
is instance of some class and for adding literal- or URI-valued properties to
the current resource. Several ways of generating resource URIs are provided,
including fragment URIs of the form “document’s URI” # “fragment’s xml:id”,
but an extraction module can also implement its own URI generator(s). (The
latter has been done for OMDoc, which uses a document /theory/symbol URI
pattern [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].) The information that the developer has to provide explicitly is
kept at a minimum level: When no subject URI for a resource is given, Krextor
auto-generates one using the desired generation function. When no object value
for a property is given, it is taken from the currently processed XML attribute or
element. As an alternative for very simple formats, where XML elements directly
map to ontology classes and properties, a declarative mapping can be given as
annotated literal XML. For complex input formats like the above-mentioned
OMDoc, the full computational power of XSLT can be used, at the expense of
readability. A new output module merely has to implement one template for
low-level RDF generation, accepting the parameters subject (URI or bnode ID),
subject type (URI or bnode), predicate (URI), object, object type (URI, bnode
ID, or literal), language, and datatype. More complex output modules can be
realized by post-processing output from existing output modules.
3
      </p>
    </sec>
    <sec id="sec-2">
      <title>Use Cases and Applications</title>
      <p>
        One application area of Krextor is the semantic wiki SWiM [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Mathematical
documents can be imported and edited in their original formats, which allows for
building on existing tool support. An RDF outline is only extracted from them
after storing them in the database; the RDF plus the background knowledge from
the ontologies then powers semantic services – currently navigation, querying, and
problem-solving assistance [
        <xref ref-type="bibr" rid="ref13 ref15">13,15</xref>
        ]. OMDoc particularly needs complex extraction
rules: Its mathematical symbols have their own URI schema, and it can mix formal
and informal knowledge. The RDF graph extracted from a full-featured OMDoc
document consists of two parallel trees, one tree of the mathematical structure,
and one of the rhetorical structure, interwoven via an annotation ontology.
Despite this complexity, 21 out of the 44 templates in the extraction module
for OMDoc have completely been implemented using Krextor’s convenience
templates only. 15 make use of additional XPath constructs, 5 use additional,
more complex XSLT constructs, and 3 use both. OMDoc as a frontend for OWL
ontologies, as mentioned above and detailed in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], will eventually be integrated
into SWiM. The extraction of OWL from special OMDoc documents has also
been implemented using Krextor. In these documents, ontologies are modeled
as mathematical theories, resources are declared as symbols having definitions,
axioms, and theorems. Many of these mathematical statements are modeled in
a way that is more familiar to people with a logics background: the range and
domain of a property is, e. g., represented by a single relation type declared for
the property symbol [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The OMDoc!OWL module makes considerably more
use of XPath and XSLT than the above-mentioned module that obtains the
structure of OMDoc documents as RDF, but still it paid off to implement it
within Krextor, as part of the required functionality could be shared with the
former module.
      </p>
      <p>
        We exemplify Krextor’s extensibility, a major design goal, by an extraction
module for a simple language, the hCalendar microformat [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], using the RDF
Calendar vocabulary [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The extraction rules for an event and its start date are
given in listing 2, which is considerably shorter than an equivalent implementation
in plain XSLT. The first template matches any element of class “vevent” and
creates an instance of the ical:Vevent class from it. When a child link annotated as
the URI of the event is present, its target is used to identify the event; otherwise,
a bnode is created for the event. The second template matches any element
of class “dtstart” and adds an ical:dtstart property of datatype xsd:date to the
current resource. Krextor’s convenience templates automatically take care of
recursing to child elements, keeping track of the current resource, and reading
the values of properties if they are given in a reasonable place, such as the text
content of an element. Given the following sample input, Turtle output can be
&lt;stylesheet version="2.0"&gt;
&lt;!-- we generate resource URIs ourselves --&gt;
&lt;param name="autogenerate-fragment-uris" select="()"/&gt;
&lt;template match="*[@class=’vevent’]"&gt;
&lt;!-- Take URL property if given, otherwise create a bnode --&gt;
&lt;variable name="subject" select="a[@class=’url’]/@href"/&gt;
&lt;call-template name="krextor:create-resource"&gt;
&lt;with-param name="subject" select="$subject"/&gt;
&lt;with-param name="blank-node" select="not($subject)"/&gt;
&lt;with-param name="type" select="’&amp;ical;Vevent’"/&gt;
&lt;/call-template&gt;&lt;/template&gt;
&lt;template match="*[@class=’dtstart’]"&gt;
&lt;call-template name="krextor:add-literal-property"&gt;
&lt;with-param name="property" select="’&amp;ical;dtstart’"/&gt;
&lt;with-param name="datatype" select="’&amp;xsd;date’"/&gt;
&lt;/call-template&gt;&lt;/template&gt; &lt;!-- ... and so on ... --&gt;
obtained e. g. by calling krextor hcalendar..turtle infile.xhtml on
the command line:
&lt;div class="vevent"&gt;
&lt;a class="url" href="http://www.eswc2009.org"&gt;ESWC&lt;/a&gt;
starts on &lt;span class="dtstart"&gt;2009-05-31&lt;/span&gt;.&lt;/div&gt;
&lt;http://www.eswc2009.org&gt;
a &lt;http://www.w3.org/2002/12/cal/ical#Vevent&gt; ;
&lt;http://www.w3.org/2002/12/cal/ical#dtstart&gt;
      </p>
      <p>"2009-05-31"^^&lt;http://www.w3.org/2001/XMLSchema#date&gt; .
4</p>
    </sec>
    <sec id="sec-3">
      <title>Related Work and Conclusion</title>
      <p>
        Swignition’s [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] architecture is very similar to Krextor’s. For end-users and
web developers, it offers much richer features, including support for many
microformats, other legacy ways of embedding RDF into HTML, and GRDDL
links. For knowledge engineers or developers who quickly want to define an RDF
translation from a new XML language, Krextor performs better, being extensible
by additional input formats with much less lines of code than the Swignition Perl
library. So far, GRDDL is only “supported” by Krextor in the obvious sense that
it facilitates the XSLT-based implementation of an XML!RDF translation that
can then be linked to a schema or to documents using GRDDL; automatically
choosing the right extraction module by interpreting GRDDL annotations in the
input document is not yet supported. Both systems approach integration into
semantic applications differently: Swignition comes with a TCP/IP interface,
whereas Krextor features a Java API and benefits from the wide support for
XSLT. The authors of XSDL [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] have done substantial theoretical elaboration
on a semantics-preserving translation of XML into RDF and provide a concise
declarative syntax mapping XML to OWL-DL. To the best of our knowledge,
XSDL has not been implemented, though. As its syntax uses XML and XPath,
we consider it feasible to prove the theoretical results the authors have obtained
for Krextor as well by rewriting XSDL definitions into equivalent Krextor
extraction modules. This would also make XSDL usable as a convenient input
language for Krextor, making extraction modules look less like XSLT and XPath.
XSPARQL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] mixes SPARQL into XQuery, resulting in a query language that
fully breaks the boundaries between XML and RDF. It avoids the necessity of
first converting from one representation into the other. However, persistently
storing the result of such a conversion is often desired in applications, whereas
the current implementation of XSPARQL focuses on one-time queries.
Conclusion: The Krextor framework supports many XML!RDF conversion
tasks and can easily be extended by additional input and output formats and
integrated into semantic applications. Thereby, we have opened new paths from
the XML layer of the Semantic Web architecture to the RDF and higher layers.
When designing new ontologies, knowledge engineers can now take the creative
challenge of developing a convenient XML syntax for domain-specific knowledge
and provide a Krextor extraction module that translates this XML to RDF
in terms of these ontologies. We will continue using Krextor for mathematical
markup but are also interested in proving its extensibility on other semantic
markup languages. A future research direction that we want to explore is adding
extraction rules as annotations to XML schema languages like RELAX NG [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ],
thereby unifying two tasks that belong together but have been separated so far:
specifying the syntax and the semantics of an XML language.
      </p>
      <p>Acknowledgments: The author would like to thank Richard Cyganiak for providing
him with a Java-based RDFa test suite, and several reviewers for constructive
feedback.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>B.</given-names>
            <surname>Adida</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Birbeck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>McCarron</surname>
          </string-name>
          , and
          <string-name>
            <surname>S. Pemberton.</surname>
          </string-name>
          <article-title>RDFa in XHTML: Syntax and processing</article-title>
          .
          <source>Recommendation, W3C</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>W.</given-names>
            <surname>Akhtar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kopecký</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Krennwallner</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Polleres</surname>
          </string-name>
          . XSPARQL:
          <article-title>Traveling between the XML and RDF worlds - and avoiding the XSLT pilgrimage</article-title>
          .
          <source>In Bechhofer et al. [3].</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>S.</given-names>
            <surname>Bechhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hauswirth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hoffmann</surname>
          </string-name>
          , and M. Koubarakis, editors.
          <source>5th European Semantic Web Conference</source>
          , volume
          <volume>5021</volume>
          <source>of LNCS</source>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Beckett</surname>
          </string-name>
          .
          <article-title>Modernising semantic web markup</article-title>
          .
          <source>In XML Europe</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D.</given-names>
            <surname>Beckett</surname>
          </string-name>
          .
          <article-title>RDF/XML syntax specification</article-title>
          .
          <source>Recommendation, W3C</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>D.</given-names>
            <surname>Beckett</surname>
          </string-name>
          . Turtle - terse
          <source>RDF triple language</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>T.</given-names>
            <surname>Çelik</surname>
          </string-name>
          . hCalendar. Microformat specification, Technorati,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Connolly</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Miller</surname>
          </string-name>
          .
          <article-title>RDF calendar</article-title>
          . Interest Group Note,
          <year>W3C</year>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Gerber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. v.</given-names>
            <surname>Merwe</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Barnard</surname>
          </string-name>
          .
          <article-title>A functional semantic web architecture</article-title>
          .
          <source>In Bechhofer et al. [3].</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Inkster</surname>
          </string-name>
          . Swignition. http://buzzword.org.uk/swignition/,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>M.</given-names>
            <surname>Kay</surname>
          </string-name>
          .
          <article-title>Saxonica: XSLT and XQuery processing</article-title>
          . http://www.saxonica.com.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>M.</given-names>
            <surname>Kohlhase. OMDoc -</surname>
          </string-name>
          <article-title>An open markup format for mathematical documents</article-title>
          .
          <source>Number 4180 in LNAI</source>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Lange. SWiM - a semantic wiki for math. knowledge</article-title>
          . In Bechhofer et al. [
          <volume>3</volume>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>C.</given-names>
            <surname>Lange</surname>
          </string-name>
          . Krextor. http://kwarc.info/projects/krextor/,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>C. Lange</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Hastrup</surname>
            , and
            <given-names>S. Corlosquet.</given-names>
          </string-name>
          <article-title>Arguing on issues with mathematical knowledge items in a semantic wiki</article-title>
          . In J. Baumeister and M. Atzmüller, editors,
          <source>LWA (Lernen, Wissensentdeckung und Adaptivität)</source>
          , volume
          <volume>448</volume>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>C.</given-names>
            <surname>Lange</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kohlhase</surname>
          </string-name>
          .
          <article-title>A mathematical approach to ontology authoring and documentation</article-title>
          .
          <source>In Mathematical Knowledge Management, LNAI</source>
          . Springer,
          <year>2009</year>
          . https://svn.omdoc.org/repos/omdoc/trunk/doc/blue/ foaf/mkm09.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. S. Liu,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yue</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Lin</surname>
          </string-name>
          .
          <article-title>XSDL: Making XML semantics explicit</article-title>
          . In C. Bussler,
          <string-name>
            <given-names>V.</given-names>
            <surname>Tannen</surname>
          </string-name>
          , and I. Fundulaki, editors,
          <source>SWDB</source>
          , volume
          <volume>3372</volume>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>B.</given-names>
            <surname>Motik</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          .
          <article-title>OWL web ontology language: XML serialization</article-title>
          . Working draft,
          <issue>W3C</issue>
          , Dec.
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Siméon</surname>
          </string-name>
          .
          <article-title>The Yin/Yang web: A unified model for XML syntax and RDF semantics</article-title>
          .
          <source>IEEE TKDE</source>
          ,
          <volume>15</volume>
          (
          <issue>4</issue>
          ),
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>F.</given-names>
            <surname>Rabe</surname>
          </string-name>
          .
          <article-title>Representing Logics and Logic Translations</article-title>
          .
          <source>PhD thesis</source>
          , Jacobs University Bremen,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>21. RELAX NG. http://www.relaxng.org/.</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>