<!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>Beazley: a New Storage Systems Evaluation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mikalai Yatskevich</string-name>
          <email>mikalai.yatskevich@comlab.ox.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ian Horrocks</string-name>
          <email>ian.horrocks@comlab.ox.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Graham Klyne</string-name>
          <email>graham.klyne@zoo.ox.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Oxford University Computing Laboratory</institution>
          ,
          <addr-line>Wolfson Building, Parks Road, Oxford OX1 3QD</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Zoology Department, Oxford University</institution>
          ,
          <addr-line>South Parks Road, Oxford OX1 3PS</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Evaluation is a major issue in the development of systems, sometimes as important as the implementation of a system itself. In the Semantic Web area, and especially in the area of the storage systems that provide a persistence layer for ontologies and instance data, evaluation e orts have been intermittent and area speci c. In this paper we propose a new dataset for storage systems evaluation called Beazley dataset. The complete dataset version includes more than 16 millions of triples and 35 queries. We evaluate dataset exploiting several storage models of the state of the art storage systems.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Evaluation is a systematic assessment of system properties against a set of
prede ned criteria. Evaluation is a major issue in the development of systems,
sometimes even as important as the implementation of a system itself. It has been
shown in the past that performance evaluation can help implementers to better
understand the sources of intractability and/or ine ciency in their systems, and
to propose novel optimization techniques in an e ort to make their systems more
scalable in speci c application scenarios.</p>
      <p>Storage systems often called RDF stores provide a persistence layer for
ontologies and instance data. They provide basic reasoning services such as
computing transitive closure of the subsumption hierarchies. Storage systems di er
from description logics (DL) reasoners that provide more complex reasoning
services but do not provide storage facilities. The main inference services in the
DL reasoners can be performed as conceptual satis ability. For RDF stores, the
main inference service is query answering.</p>
      <p>
        In the Semantic Web area, and especially in the area of storage systems,
evaluation e orts have been intermittent and area speci c. There is no agreed
standard or methodology for systems evaluation. In the evaluation of the DL
systems arti cially generated datasets served an important role [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] until a large
number of the real-world ontologies has been developed. This real-world
ontologies have been used in the large scale evaluation e orts [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The evaluation of
the storage systems are focused on the arti cially generated datasets [
        <xref ref-type="bibr" rid="ref10 ref12">12, 17,
10</xref>
        ]. Thus, the evaluation of the storage systems will bene t from the real-world
datasets that will overcome the limitations of the state of the art generation
methods. The most common instance generator and evaluation suite that is
used by the Semantic Web community for storage systems evaluation is the
Lehigh University Benchmark (LUBM) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Although, LUBM is used mainly
for testing instance retrieval and query answering algorithms, it also has many
shortcomings. First of all the ALE HIR+ DL used is signi cantly less
expressive than the DL underpinning OWL. Moreover, the data that are created for
each university are completely independent. Consequently, if one applies a
clustering method during loading it is possible to apply query answering over each
university independently.
      </p>
      <p>
        In this paper we propose a new dataset for storage systems evaluation called
Beazley dataset. The dataset comprises real world archeological data gathered
in CLAROS initiative [15] and a set of queries used in CLAROS web cite
application. The dataset presents the information about archeological artifacts. It
instantiates CIDOC-CRM OWL DL ontology [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The complete dataset version
includes more than 16 millions of triples and 35 queries. We evaluate the dataset
exploiting both memory and disk-based storage models of the two state of the
art storage systems.
      </p>
      <p>The paper is structured as follows. Section 2 provides a brief introduction to
the storage systems along with the datasets used for their evaluation. Section
3 provides a detailed description of the Beazley dataset. Section 4 provides a
detailed description of the dataset evaluation set up. Section 5 describes the
evaluation results. Section 6 concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        The majority of the evaluation e orts in the storage systems area were focused
on arti cially generated datasets. They provide a mechanism to cover a class
of inputs in a scalable manner. The most prominent example is the Lehigh
University Benchmark (LUBM) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. LUBM consist of a small ontology, with 43
classes, 25 roles, 85 TBox axioms and 8 RBox axioms, and several Java classes
that can be used to create instance assertions (ABox) for this speci c TBox and
RBox. The ontology describes universities, i.e. courses, students, departments,
publications as well as their interrelations. For example, a student is enrolled in
some courses that is taught by some academic sta , while academic sta s are
associated with publications, are a liated with other universities, lead research
teams or are heads of departments. The DL of LUBM is ALE HIR+, nevertheless
it does not make heavy use of the constructors since there is just one transitive
role, 5 sub-role axioms and 2 inverse role axioms. The ABox is created following
the method described in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Finally, the benchmarking suite also comes with 14
queries that are proposed for testing a system against the generated ABoxes.
      </p>
      <p>
        Although, LUBM is used mainly for testing instance retrieval and query
answering algorithms, it also has many shortcomings. First of all the DL used is
signi cantly less expressive than the DL underpinning OWL. Moreover, the data
that are created for each university are completely independent. Consequently,
if one applies a clustering method during loading it is possible to apply query
answering over each university independently. An extension of LUBM to remedy
these problems was the University Ontology Benchmark (UOBM) [17]. UOBM
extends LUBM by adding more concepts and roles that are intended to connect
individuals from di erent universities. Although UOBM is still not large when
compared to ontologies such as NCI [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] or GALEN [21], it uses a relatively
expressive ontology language SHIN (D). Finally, a set of test queries is also
o ered. Unfortunately, although UOBM does indeed make use of more complex
constructors and is more structurally complex it has not been widely accepted
by the Semantic Web community.
      </p>
      <p>
        The Berlin SPARQL benchmark [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] focus on integration and visualization
data from various data sources. It is build around scenario that does not require
heavyweight reasoning. The class hierarchy is generated in random way. The
query mix includes 25 queries that represent navigation pattern in e-commerce
use case. SP2Bench [22] uses DBLP [16] bibliographic scenario. The ontology
used have 9 classes and 77 properties. The query mix includes 11 queries utilizing
various SPARQL language constructs. The Billion Triple Challenge [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] aims at
the evaluation of the Semantic Web applications to process a large quantities of
the RDF data that is represented by various schemata.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>The Beazley dataset</title>
      <p>
        The Beazley dataset [15] presents the information about archeological artifacts.
The RDF data instantiates CIDOC-CRM ontology [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The complete dataset
version includes more than 16 millions of triples. The frequency of the triples
in the dataset depending on predicate values fp = f req(D; p) is depicted on
Figure 1a. The frequency of the triples with a given subject value frequency
fsn = f req(D; sn), depicted on Figure 1b, varies depending on a predicate value
p. The fsn = f req(D; sn; is represented) and fsn = f req(D; sn; is ref f ered)
are depicted on Figures 1c, 2a. This makes Beazley archive dataset di erent from
RDF datasets produced using automatic generation procedures [
        <xref ref-type="bibr" rid="ref12">12, 17</xref>
        ]. In these
works the uniform distributions and, hence, frequencies are assumed. The
frequency of the triples with a given object value frequency fon = f req(D; on),
depicted on Figure 2b, varies depending on a predicate value p and a subject value
frequency sn. The fon = f req(D; on; sn; has time span), fon 2 [1; 30] is depicted
on Figure 2c. The fon = f req(D; on; took place), fon = f req(D; on; not af ter)
are depicted on Figures 3a, 3b. The query set used in CLAROS web cite
application [15] composed from 35 queries of various size and complexity. The di erent
queries are executed di erent number of times during the web application life
cycle. They could be classi ed into two large groups. The rst query group QG1
comprises Q1-Q18 presented at Table 1. The queries from QG1 are executed at
most once. The second queries group QG10 comprises Q19-Q35. They are used
for lling the time lines in the web application. Therefore, they are executed up
to 10 times. The queries contain up to 21 variables, have up to 32 joins, use text
search, comparisons, boolean expressions, OPTIONAL and BOUND constructs.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>The evaluation set up</title>
      <p>
        We evaluated dataset using both disk and memory-based storage models of the
two state of the art storage systems: Jena TDB, Jena ARQ, Sesame-memory,
Sesame-native. Jena [18] is a Java framework for building semantic web
applications. It includes OWL [19] and RDF [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] API, in memory and persistent storage
models, SPARQL [20] query engine. ARQ [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a general purpose query engine,
supporting SPARQL and other query languages, that can utilize several Jena
storage models. In our experiments we used ARQ in memory storage model.
TDB [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is a high-performance native storage engine that exploits custom
indexing strategy. Sesame [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is an open source Java framework for storage and
querying RDF data. Sesame supports SPARQL and SERQL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] query languages,
memory-based and disk-based storage. We evaluated the systems exploiting their
user interfaces.
      </p>
      <p>The evaluation has been performed on AMD Phenom II 2600 Mhz Processor
with 8Gb main memory installed.</p>
      <p>The data used in the evaluation included Beazley dataset with 16 millions of
triples and its reduced version with 10 millions of triples. The dataset loading
time, query execution time and total query set times were measured. The query
per hour and second per query measures were calculated given that each query
in QG10 is executed 10 times while each query in QG1 is executed once. This
setting allowed to represent the CLAROS application query mix.
5</p>
    </sec>
    <sec id="sec-5">
      <title>The system performance</title>
      <p>The data loading times are presented in Table 2. The memory based models
ARQ and Sesame-memory were not able to load the complete Beazley dataset.
There was insu cient memory for ARQ. The loading into Sesame-memory were
terminated after 5 days. The reduced Beazley dataset version was loaded less
than in 1 hour all the systems. The Jena memory and storage based models were
more e cient in the data loading then the Sesame models.</p>
      <p>The query answering times and the other query performance measures are
presented in Table 3.</p>
      <p>The systems showed performance ranged from 1 millisecond to 74.8 hours per
query. The native Sesame storage model was more than 5 times more e cient
than its memory storage model. The ARQ was 2 orders of magnitude less e cient
than TDB. It was more then order of magnitude more e cient than TDB given
that query Q33 was excluded from the query set. This query took ARQ 74.8
hours to execute. Thus, it in uenced on the total result. The other 34 queries
were completed in 270 seconds.</p>
      <p>None of the systems was able to execute the complete query mix on the
complete dataset in less that 10 minutes what makes the CLAROS application
and, therefore, Beazley dataset challenging for state of the art storage systems.</p>
      <p>The quality of the query answering results is a ected by quality of the original
data input. Making improvements to the incoming data (which are obtained by
extraction from existing databases) is an ongoing activity, which the Beazley
Archive team are addressing by (a) improving the data extraction processes,
(b) by applying heuristics to clean up some of the data values (e.g. dates), (c)
highlighting inconsistencies that are detected by the extraction processes and
passing these back to the data originators for correction, and (d) use of thesauri
and authority lists to map terminology variations to common terms.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>The query set tested in the paper was used in an initial development of the
CLAROS application. Naively constructed, it was designed mainly to provide
functionality rather than performance. The new version of the CLAROS
application will include an updated query set designed with partners from the
Jena team to identify bottlenecks and improve the queries. The goal of this
efforts is to redesign queries to achieve sub-second response times. The strategies
for the dataset improvement are (1) pre-calculation of certain path queries to
reduce run-time joins (roughly equivalent to "materialized views" in relational
data), and (2) use of additional indexes associated with "virtual properties" that
can reduce the need for in-memory sorting of results when processing SPARQL
queries (analogous to schema-de ned indexes in relational databases).
Essentially, 4 techniques have been used:
1. reordering of queries so that more selective selective elements are evaluated
earlier (this can also be performed automatically by the ARQ query processor
in Jena);
2. "materialization" of property paths and UNIONS in queries - adding "short
cut" properties to the triple store, and use these properties in queries;
3. customized indexes for nding earliest- and latest- occurrences of a given
object type, and also for providing consistent ordering in other
keywordbased object access queries. These new indexes are not Lucene-based, as
originally intended, as Lucene handing of result sorting is less scalable than
had been anticipated. Instead, a simple arrangement of at les named by
keywords, with contents sorted by the ordering key is used;
4. pre-calculation of object counts by various categories, so that counting queries
can run without having to access every matching object.</p>
      <p>Our hope is that this kind of ad-hoc optimization work can suggest ways
forward for more principled ontology-based optimization of triple store access.
We intend that this revised system will be the basis of a public version of the
CLAROS application developed by academic groups who are focused on
application of the technologies rather than technology research.</p>
      <p>We described a new dataset for storage systems evaluation called Beazley
dataset. The dataset proved to be challenging for state of the art storage
systems. In fact, none from the systems evaluated was able to demonstrate the level
of performance needed for the real world application utilizing the dataset data.
The work suggests that Semantic Web technologies applied indiscriminately (or
naively) may not always yield acceptable performance, but signi cant
performance improvements are possible through judicious optimizations to the stored
data and queries used, without distorting the semantic coherence of the
original data. Performance improvement work to date has been ad hoc, but suggests
some strategies that might be considered for automated query optimization.
15. D. Kurtz, G. Parker, D. Shotton, G. Klyne, F. Schro , A. Zisserman, and Y. Wilks.</p>
      <p>CLAROS - Bringing Classical Art to a Global Public. International Conference
on e-Science and Grid Computing, pages 20{27, 2009.
16. M. Ley. Dblp database. http://www.informatik.uni-trier.de/ ley/db/.
17. L. Ma, Y. Yang, Z. Qiu, G. T. Xie, Y. Pan, and S. Liu. Towards a complete OWL
ontology benchmark. In ESWC, pages 125{139, 2006.
18. B. McBride. Jena: Implementing the RDF Model and Syntax Speci cation. In</p>
      <p>SemWeb, 2001.
19. P. Patel-Schneider, P. Hayes, and I. Horrocks. OWL Web Ontology Language
semantics and abstract syntax. W3C Recommendation, 10 February 2004.
20. E. Prud'hommeaux and A. Seaborne. SPARQL Query Language for RDF. W3C</p>
      <p>Recommendation, 15 January 2008.
21. A. Rector, W. Nowlan, and S. Kay. Foundations for an electronic medical record.</p>
      <p>Methods Inf Med, 30(3):179{86, 1991.
22. M. Schmidt, T. Hornung, N. Kuchlin, G. Lausen, and C. Pinkel. An
experimental comparison of RDF data management approaches in a SPARQL benchmark
scenario. In ISWC '08: Proceedings of the 7th International Conference on The
Semantic Web, pages 82{97, Berlin, Heidelberg, 2008. Springer-Verlag.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>1. ARQ - A SPARQL processor for Jena</article-title>
          . http://jena.sourceforge.net/ARQ/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>2. TDB - A SPARQL database for Jena</article-title>
          . http://jena.sourceforge.net/TDB/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>3. The Billion Triple Challenge. http://challenge.semanticweb.org/.</mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Bitton</surname>
          </string-name>
          , D. DeWitt, and
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Turby ll. Benchmarking database systems a systematic approach</article-title>
          .
          <source>In VLDB '83: Proceedings of the 9th International Conference on Very Large Data Bases</source>
          , pages
          <volume>8</volume>
          {
          <fpage>19</fpage>
          , San Francisco, CA, USA,
          <year>1983</year>
          . Morgan Kaufmann Publishers Inc.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>C.</given-names>
            <surname>Bizer</surname>
          </string-name>
          and
          <string-name>
            <surname>A. Schultz.</surname>
          </string-name>
          <article-title>The berlin SPARQL benchmark</article-title>
          .
          <source>Int. J. Semantic Web Inf. Syst.</source>
          ,
          <volume>5</volume>
          (
          <issue>2</issue>
          ):1{
          <fpage>24</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Broekstra</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Kampman. SeRQL: A Second Generation RDF Query</surname>
          </string-name>
          <article-title>Language</article-title>
          .
          <source>In SWAD-Europe Workshop on Semantic Web Storage and Retrieval</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>J.</given-names>
            <surname>Broekstra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kampman</surname>
          </string-name>
          , and
          <string-name>
            <surname>F. van Harmelen. Sesame:</surname>
          </string-name>
          <article-title>A generic architecture for storing and querying RDF and RDF Schema</article-title>
          . In Ian Horrocks and James Hendler, editors,
          <source>Proceedings of the rst Int'l Semantic Web Conference (ISWC</source>
          <year>2002</year>
          ), volume
          <volume>2342</volume>
          of Lecture Notes in Computer Science, pages
          <volume>54</volume>
          {
          <fpage>68</fpage>
          ,
          <string-name>
            <surname>Sardinia</surname>
          </string-name>
          , Italy, May
          <year>2002</year>
          . Springer Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Doerr</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Iorizzo</surname>
          </string-name>
          .
          <article-title>The dream of a global knowledge network|a new approach</article-title>
          .
          <source>J. Comput. Cult. Herit.</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):1{
          <fpage>23</fpage>
          ,
          <year>June 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>T.</given-names>
            <surname>Gardiner</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Horrocks</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Tsarkov</surname>
          </string-name>
          .
          <article-title>Automated benchmarking of description logic reasoners</article-title>
          .
          <source>In Proc. of the 2006 Description Logic Workshop (DL</source>
          <year>2006</year>
          ), volume
          <volume>189</volume>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ian Horrocks Giorgos Stoilos</surname>
          </string-name>
          , Bernardo Cuenca Grau.
          <article-title>How incomplete is your semantic web reasoner</article-title>
          ?
          <source>In Proceedings of the Twenty-Fourth AAAI Conference on Arti cial Intelligence (AAAI</source>
          <year>2010</year>
          ),
          <year>2010</year>
          . To Appear.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>J. Golbeck</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Fragoso</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Hartel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Hendler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Oberthaler</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Parsia</surname>
          </string-name>
          .
          <article-title>The national cancer institute's thesaurus and ontology</article-title>
          .
          <source>J. Web Sem</source>
          .,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <volume>75</volume>
          {
          <fpage>80</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Pan</surname>
          </string-name>
          , and
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>He in. Lubm: A benchmark for owl knowledge base systems</article-title>
          .
          <source>Web Semantics: Science, Services and Agents on the World Wide Web</source>
          ,
          <volume>3</volume>
          (
          <issue>2</issue>
          -3):
          <volume>158</volume>
          {
          <fpage>182</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. I. Horrocks,
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Patel-Schneider</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          .
          <article-title>An analysis of empirical testing for modal decision procedures</article-title>
          .
          <source>Logic Journal of the IGPL</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <volume>293</volume>
          {
          <fpage>323</fpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. G. Klyne and
          <string-name>
            <given-names>J.</given-names>
            <surname>Carroll</surname>
          </string-name>
          .
          <article-title>Resource Description Framework (RDF): Concepts and Abstract Syntax</article-title>
          .
          <source>W3C Recommendation</source>
          , 10
          <year>February 2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>