<!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>A CoAntCe nont-tOenrti-eOnrtieendteDdaDtaataMMooddeell for SfoermSiesmtrisutrcutcutruerdedDDaatta</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>CzecChzTecehchTneicchanlicUanliUvnerivseitrys</institution>
          ,
          <addr-line>ityF,aFcaucltuyltyofofEEleleccttrriiccaall EEnnggiinneeeerriningg, TeTchecnhinckic ́aká2,2,1166662277PPrraagguuee66,,CCzezcehchRRepeupbulibclic</addr-line>
        </aff>
      </contrib-group>
      <fpage>55</fpage>
      <lpage>66</lpage>
      <abstract>
        <p>There are several data models that are capable of handling semistructured data. The best known are OEM, XML DOM, RDF, and the ECMAScript object model. All these models have different purpose. OEM was used by systems for integration of heterogeneous data sources. XML DOM is specified as a programming interface to manipulate XML documents used as a unified medium for data exchange. RDF provides primarily a data model for sharing metadata. The ECMAScript object model is widely used to manipulate data in web applications. However, none of these models is intended to be used directly in an interactive way. This paper presents the CO (Content-Oriented) data model, which is designed for users to browse, annotate, and relate pieces of information. It can provide change notifications hence it can be directly used in interactive applications without building an extra object model.</p>
      </abstract>
      <kwd-group>
        <kwd>data entity</kwd>
        <kwd>data aspect</kwd>
        <kwd>informed list</kwd>
        <kwd>informed property</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Traditional mainstream databases save data according a schema that describes the
context of the data. They usually need to specify the schema in advance. This
requirement is for certain data very difficult or even impossible to fulfill. It is a case of
irregular data or data that structure changes over time [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Another option is to store data together with a description of its meaning. Such
data do not have to be structured according a schema and therefore they are referred to
as semistructured data [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Data models for semistructured data can be easily used by
knowledge management systems or systems for integration of heterogeneous
information sources [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>The existing well-known data models for semistructured data are not intended to be
directly used in interactive applications. Programming interfaces around these models
are usually based on elaborate query languages that simplify locating and extracting
of particular information from these models. However, the more advanced queries can
be answered, the more complex systems have to be built to detect changes. Therefore,
there is usually no unified support for events that notifies user interface controls when
something has changed hence such data models cannot be directly used in interactive
applications.</p>
      <p>This paper describes the CO data model that unlike other data models for
semistructured data is intended for interactive applications, especially applications that
allow users to browse, annotate, and relate pieces of information. It can be also used for
visual manipulation with data stored in other data models or exchange formats for
semistructured data like XML or JSON. It is designed to be very simple in order to
keep implementation simple.</p>
      <p>The CO data model has a modular architecture. A core provides very limited
functionality enabling basic manipulation with data. The core itself is not intended for
interactive applications as the change notifications are not supported. Nevertheless, it
may be used by scripts that are using the same data model. Other features are
provided by external modules called extensions. This extensible architecture allows
developers to choose particular configuration that will support just required features
without unwanted ones. It also enables having various implementations of the same
feature in order to enable direct data binding for various user interface toolkits.</p>
      <p>Other data models for semistructured data and systems for that they were built are
described in the second chapter. A design the CO data model and an implementation
of a framework for the CO data model are presented in the third and fourth chapters.
Conclusions and a future work are given in the last chapter.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        With the development and growth of the Web [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] in the last decade of the last century
there arose a need to extract and integrate data that are available on the Web [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. At
the same time, there was a research project called TSIMMIS whose aim was to create
a system for assisted integration of data either structured (e.g. database records),
semistructured (e.g. web pages), or unstructured (e.g. plain files) from heterogeneous
data sources [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
2.1
      </p>
      <sec id="sec-2-1">
        <title>TSIMMIS</title>
        <p>
          TSIMMIS was a joint project between Stanford and the IBM Almaden Research
Center [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. It had mediator architecture [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] and it basically consisted of four types of
core components: translators, mediators, constraint managers, and
classifier/extractors. Translators were template-based wrappers [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] that converted data
from various sources into a common information model. Mediators were information
routers that forward queries to particular translators and merge the results [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
Constraint managers [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] ensured that the integrated data are consistent.
Classifier/extractors automatically classified and extracted key properties of resources from
the unstructured data sources. They were based on the Rufus system developed by the
Almaden Research Center [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>
          Information between these components was exchanged in a self-describing object
model called OEM (Object Exchange Model) [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. OEM allowed the storing of
nested objects. Each object was represented by a structure with four fields: label, type,
value, and oid. The label was a string tag that describes what the object represents.
The type was a data type of the object’s value. The value stored the actual data. The
oid was a unique identifier of the object.
        </p>
        <p>
          TSIMMIS was not a fully automated system, but rather a tool to assist humans. It
provided a graphical user interface component called MOBIE (MOsaic Based
Information Explorer) [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] that allowed users to browse OEM objects and specify queries
in an SQL-like language called OEM-QL [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>LORE</title>
        <p>
          LORE (Lightweight Object REpository) was a database management system designed
to manage semistructured data [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. It was built on top of the O2 object database [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
Semistructured data were stored in a modified OEM that was presented in the
TSIMMIS project. That version of OEM could be represented as a labeled directed
graph where the vertices were objects. There were two types of objects: complex
objects and atomic objects. Whereas the complex objects might have outgoing edges to
other objects, the atomic objects had no outgoing edges but they contained a value
from one of the atomic types (e.g. integer or string).
        </p>
        <p>
          LORE provided a query language called LOREL [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. LOREL was defined as an
extension to OQL (an SQL-like query language for the ODMG model) [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. LOREL
was also later used as a query language for TSIMMIS [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>
          LORE introduced a DataGuide [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. The DataGuide was a structure summary of
the OEM model that was automatically maintained. DataGuides allowed users to
browse the OEM model and formulate queries. They were also used by the system to
store statistics and to optimize the queries. The DataGuide itself was an OEM object
so it could be stored in and managed by an OEM DBMS.
        </p>
        <p>
          Another feature of LORE was an external data manager [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. The external data
manager allowed users to integrate data from external data sources. The external data
were represented by an external object. The external object was stored in the OEM
database and it contained both a specification on how to fetch the external data and a
cached version of the external data. The wrappers for the external data were reused
from the TSIMMIS project.
        </p>
        <p>
          After the emergence of XML, developers of LORE found that data models of XML
and OEM were similar. So they decided to modify LORE to serve as a data
management system for XML [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. The modifications to LORE also required changes to the
data model [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
2.3
        </p>
        <p>
          XML
XML is a markup language designed for data exchange [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. The data are represented
as documents. The XML document is a tree-like structure built from nested tagged
elements. Each element can contain data stored as attributes/value pairs or as a plain
text. XML also provides a mechanism to create links between elements.
        </p>
        <p>
          There are several ways to extract information from XML documents. None of them
can be considered as universal but each is convenient for a particular purpose. One of
the best known is SAX. SAX (Simple API for XML) provides a read-only and
forward-only event-driven interface [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. Another read-only interface is XmlReader (not
to be confused with XMLReader, the Java interface from the SAX2 library). In
contrast to SAX, XmlReader allows developers to navigate through XML on-demand in
the way that is sometimes referred to as a pull model [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. More sophisticated
navigation provides XPathNavigator that enables cursor-like navigation in a XML document
powered by XPath expressions [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
        </p>
        <p>
          There is also a standardized virtual data model for XML called DOM (Document
Object Model) that is specified as a programming interface and it is developed to
manipulate a memory representation of XML documents [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ].
2.4
        </p>
        <p>
          RDF
RDF (Resource Description Framework) is a set of specifications [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ] that was
created to provide a unified way to share metadata and it can be also used to represent
data [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. Although RDF is more complex than previous models, the data model of
RDF can be represented by a collection of triples [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]. Each triple consists of a
subject, a predicate, and an object. Predicates are also called properties. Subjects may be
URIs or blanks. Predicates are URIs. Objects can be URIs, literals, or blanks. URIs
may be used both as references to existing resources and as a global identifiers.
Literals represent values. They may be plain or typed. Blanks are local identifiers.
        </p>
        <p>
          There are various languages that extend capabilities of RDF. The best known are
RDF Schema and OWL. RDF Schema allows users to describe classes and properties
[
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. OWL (Web Ontology Language) enables data description using ontologies [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ].
2.5
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>ECMAScript object model</title>
        <p>
          The ECMAScript object model is widely used by web applications to manipulate
data [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ]. Structure of the ECMAScript is similar to LORE’s version of OEM. The
difference between LORE’s OEM and the ECMAScript object model is that objects
in the ECMAScript object model have no identifiers and each object can have only a
single property with the same name. Multiple values can be represented by a special
build-in type of object – an array. The textual representation of this model is
sometimes referred to as JSON [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ]. JSON has similar purpose as XML. There is also a
standard ‘ECMAScript for XML’ that adds native XML support to ECMAScript [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ].
2.6
        </p>
        <p>
          iDM
iDM is an advanced data model that is designed to represent heterogeneous data [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ].
iDM is now being developed as a part of a personal information management system
iMeMex [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Design</title>
      <p>As mentioned in the introductory chapter, this paper describes the CO data model that
is designed for interactive applications. This implies that except of developers, the
design should also take account of users. There are three elemental requirements: The
first is that the data model should be simple because the simplest it would be, the
easiest the implementation of a framework for the data model would be. The next is that
the data model has to be extensible so the developers can use only that parts what they
really need. The last requirement is that it should have similar concepts as existing
systems for information handling that are widely used by users, so that users do not
need to spend time for an extra training.</p>
      <p>The most famous and widely used system that is used by users to access
information is the Web. The information on the Web is usually stored in a document called a
web page. There are two basic ways to access a particular web page: users can either
enter the address of the web page or navigate to a particular web page from another
web page. Advanced methods include searching by entering a query into a search
engine or navigating through tags. Tags are usually keywords that are attached to a piece
of information. In fact, navigation through tags is mostly a particular form of simple
page to page navigation, as tags are usually located within the page.</p>
      <p>The data model should offer thus similar ways of accessing information as the
Web: The data model should allow users to navigate through the data and access the
data directly from an address, enable developers to easily create tagging systems, and
provide programming interfaces so that specialized search engines can be built or
adapted to process search queries.
3.1</p>
      <sec id="sec-3-1">
        <title>Data model</title>
        <p>The architecture of the CO data model results from its requirements. The data model
consists of items called entities. The entity is a wrapper for data. The data contained
in the entity will be referred to as content. In addition to the content, each entity has a
type and optionally has references to other entities.</p>
        <p>The content of an entity can be anything. Entities can store numbers, text
documents, multimedia files, an array of objects or other entities, or any other pieces of
information. Entities do not need to contain data directly, but they can contain special
objects that refer to external data stored in local files, databases, or even remote web
sites.</p>
        <p>The entities’ types have a similar purpose as the labels in TSIMMIS’s version of
OEM or the tags in XML, with the difference that labels in OEM and tags in XML are
strings but entities’ types are represented by another or, in special cases, the same
entity. This architecture allows saving common metadata to the entity that represents the
type. Metadata can contain both information for humans, such as documentation, and
information for machines, for instance specifications of constraints or processing
instructions for manipulation of external data that are referred in the content. The fact
that the type of entity A has is entity B can be expressed in RDF by a triple
&lt;entity:A&gt; &lt;rdf:type&gt; &lt;entity:B&gt;.</p>
        <p>Entity reference is consists of a key and a value. It is a simplified version of the
properties in RDF. Both the key and value of a reference are entities. In contrast to
RDF, the value of a reference cannot be a literal. As with the ECMAScript object
model, entity can have at most one reference with the same key. As the reference key
is an entity, the entity can store metadata that can provide information such as
semantic meaning, usage constraints, or human-readable documentation. Fig. 1 shows the
data model of the entity.</p>
        <p>Entities can be directly accessed by URIs. However, URIs are not mandatory for
entities. An entity without a URI can be accessed by searching or by local navigation.</p>
        <p>This part described the core part the CO data model. Additional features can be
provided as extensions. Following part describes representation of several basic data
structures.
3.2</p>
        <sec id="sec-3-1-1">
          <title>Data structures</title>
          <p>Unlike RDF or the ECMAScript object model, the CO data model has no direct
support for collections. As collections are the most common data structures, this part
sketches how to form collections in the CO data model.</p>
          <p>There are basically two ways to build a collection. The first way is to create a
special data type that represents a collection, so the collection will be stored in the
content of an entity. This method allows the storing of any type of collection. It is
especially useful for vectors or matrices and it can be likened to containers in RDF or
arrays in the ECMAScript object model.</p>
          <p>The second method uses references to group items in a collection. There are two
types of collection that can be formed. The first type includes collections whose entity
directly refers to multiple items. Basic examples of such collections are simple or
hierarchical dictionaries.</p>
          <p>The other type of collection points directly to just one item. One of the simplest
examples is a singly linked list. The singly linked list is usually formed by adding to
each item a reference that points to the following item. There can be also a special
object that represents a whole collection. This object has a reference to the first item in
the collection. In this scenario, items of a collection do not know in what collection
they are contained without an additional reference and they can be usually contained
in a single collection.</p>
          <p>The CO data model enables the creation of specialized singly linked lists where
each item can be contained in multiple collections and each item knows what
collections it is contained in without additional references. Such linked lists will be referred
to as informed lists. The architecture of an informed list is as follows.</p>
          <p>The entity that represents a collection remains unchanged – it has a reference to the
first item. Items also contain references to the next item. However these references are
not identified by a general next entity but by the entity of the collection. As each
collection is represented by a different entity, items have references with different keys
and hence they can be contained in multiple collections. Items also know the
collections where they are included because this information is stored in the keys of the
references to the next items. Fig. 2 shows an example of an informed list.</p>
          <p>One possible application for informed lists is a tagging system where each tag is
represented by a collection of entities that are tagged by this tag. A tagging system
can list all tags for a resource in a constant time without any additional indexes. It can
also immediately retrieve an additional resource for each tag. This feature can be
useful to provide a simple and fast tag-based ‘see also’.</p>
          <p>Several informed lists can form a multilevel hierarchical structure where
descendants know their ancestors. One of the possible applications is a system for
hierarchical categorization.</p>
          <p>The idea of informed lists can be also used to construct properties that can have
multiple values and that know what objects refer to them. Such properties will be
called informed properties. This construct can be conceived as a fusion of informed
lists. Each list contains values for a particular property. And the key of the reference
to the first value in each list is replaced by a key that will identify the property. An
example of informed property is in Fig. 3.
This chapter is divided into two parts. The first part outlines the general architecture
of a framework that implements the CO data model. The second part describes a
prototypical implementation to evaluate the CO data model.
All frameworks for the CO data model should implement the core of the data model.
The core was described in the Architecture part of the Design chapter. A core
framework should provide programming interfaces to access entities and to get and set a
type, references, and content. There are no methods to create or delete entities
because each URI refers to an existing entity. The consequence is that there is an infinite
number of entities. However, only a finite number of entities contain non-default
information hence the framework should store only the entities with non-default
information. The entities with default information are called implicit entities and the other
entities are called explicit entities. The implicit entities have null content, no
references, and a default type.</p>
          <p>The minimal framework may implement only a volatile data model. Such a
framework can be useful, for instance, in applications that use existing web services to store
data.</p>
          <p>Other features are optional and they are not part of the core. They are provided by
extensions. There are several types of extensions. One type of the extension is a data
aspect. The data aspect is a component that simplifies manipulation with a complex
data structure, such as the informed list. The data aspect for the informed list can
provide methods to add, remove, or search items. It can enhance the performance by
cached backward links or a cached index array for immediate random access.</p>
          <p>Another type of extension is a data store provider. The data store provider allows
loading and saving data to data storages either local (e.g. files, databases) or remote
(e.g. web services). They can also serve as data adapters between the CO data model
and internal object models of other applications.</p>
          <p>Moreover, interactive applications require knowing when something has changed.
This implies enhanced implementation of the core that raises an event if a change
occurs. The system for event notification may be developed for a certain user interface
toolkit so the application developers can directly bind controls to the data model.
4.2</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Prototype</title>
          <p>
            Currently, there is a prototype of a framework for the CO data model. It is written in
C# [
            <xref ref-type="bibr" rid="ref37">37</xref>
            ] and runs on the .NET 3.0 Framework [
            <xref ref-type="bibr" rid="ref38">38</xref>
            ] [
            <xref ref-type="bibr" rid="ref39">39</xref>
            ]. The data model is
implemented as .NET Component Model [
            <xref ref-type="bibr" rid="ref40">40</xref>
            ]. It was specially developed for the Windows
Presentation Foundation [
            <xref ref-type="bibr" rid="ref41">41</xref>
            ]. It implements a data aspect for the informed list that
caches backward links and an index array to provide faster random access. The data
aspect also provides collection-change notifications so it can be bound to standard
controls that display collections.
          </p>
          <p>
            The framework supports simple transactions that delays commit and provides
rollback of changed data. There are four data store providers: file system provider, SQL
provider, Lucene.Net [
            <xref ref-type="bibr" rid="ref42">42</xref>
            ] provider, and Berkeley DB [
            <xref ref-type="bibr" rid="ref43">43</xref>
            ] provider.
4.3
          </p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Evaluation</title>
          <p>
            The architecture of the data model allows simple implementation of the data model as
.NET Component Model with change notifications. Therefore, application developers
can directly bind data to user interface controls. Two-way data binding [
            <xref ref-type="bibr" rid="ref44">44</xref>
            ] let them
develop applications where users can interactively manipulate data while the
developers do not have to build an extra object model and write a glue code to transfer data
between data stores and user interface controls.
5
          </p>
          <p>Conclusion
The extensible architecture of the CO data model has some advantages and
drawbacks. The main advantage is that complex features can be later replaced with a better
implementation. However, it can result in several implementations of the same feature
and developers have to choose one that best fits their needs, so they may spend extra
time analyzing various implementations. This can be avoided, of course, by
maintaining a list of various implementations with comparisons and use cases.</p>
          <p>As is mentioned in the introduction, in contrast to OEM, XML, and RDF, the CO
data model is intended to be directly manipulated by users through user interface
controls. Therefore, before a development of other extensions is undertaken, this model
must prove that it is really useful and that future work on this model will not be a
waste of time. Such proof may be done by building small applications that will help
users to organize information from various aspects, such as a system to store personal
thoughts or to manage personal data from other applications.</p>
          <p>If the data model will be successful, it can be later enhanced by other extensions
demanded by users. Some possible extensions might be a change log to enable full
undo functionality or allowing users to share their information on a peer-to-peer
network and letting them specify particular access rights for particular users on a
particular set of their information.</p>
          <p>Acknowledgments. I would like to express many thanks to Christoph Quix, who has
taught me to write a paper and with whom I was consulting the content of this paper,
and Roger Hughes, who made a deep language correction of the draft.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>J. McHugh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Abiteboul</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Goldman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Quass</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Widom</surname>
          </string-name>
          .
          <article-title>Lore: A database management system for semistructured data</article-title>
          .
          <source>SIGMOD Record</source>
          ,
          <volume>26</volume>
          (
          <issue>3</issue>
          ), pages
          <fpage>54</fpage>
          -
          <lpage>66</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>P.</given-names>
            <surname>Buneman</surname>
          </string-name>
          .
          <article-title>Semistructured data</article-title>
          .
          <source>In Proc. of the 16th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems</source>
          , pages
          <fpage>117</fpage>
          -
          <lpage>121</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chawathe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Garcia-Molina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hammer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ireland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Papakonstantinou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ullman</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Widom.</surname>
          </string-name>
          <article-title>The TSIMMIS Project: Integration of Heterogeneous Information Sources</article-title>
          .
          <source>In Proc. of IPSJ Conference</source>
          , pages
          <fpage>7</fpage>
          -
          <lpage>18</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Cailliau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. Groff. The</given-names>
            <surname>World-Wide Web</surname>
          </string-name>
          .
          <source>Computer Networks and ISDN Systemts</source>
          ,
          <volume>25</volume>
          , pages
          <fpage>454</fpage>
          -
          <lpage>459</lpage>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>O.</given-names>
            <surname>Etzioni. The</surname>
          </string-name>
          World-Wide Web:
          <article-title>quagmire or gold mine? Communications of the ACM</article-title>
          . Volume
          <volume>39</volume>
          ,
          <string-name>
            <surname>Issue</surname>
            <given-names>11</given-names>
          </string-name>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Hammer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>McHugh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Garcia-Molina</surname>
          </string-name>
          ,
          <article-title>Semistructured Data: The TSIMMIS Experience</article-title>
          ,
          <source>In Proc. ADBIS'97</source>
          ,
          <string-name>
            <surname>St</surname>
          </string-name>
          . Petersburg, Russia,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>G. Wiederhold.</surname>
          </string-name>
          <article-title>Mediators in the Architecture of Future Information Systems</article-title>
          .
          <source>Computer 25</source>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>H.</given-names>
            <surname>Garcia-Molina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Papakonstantinou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Quass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rajamaran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sagiv</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ullman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Vassalos</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Widom</surname>
          </string-name>
          ,
          <article-title>The TSIMMIS approach to Mediation: Data Models and Languages</article-title>
          ,
          <source>Journal of Intelligent Information Systems</source>
          ,
          <volume>8</volume>
          (
          <issue>2</issue>
          ) pages
          <fpage>117</fpage>
          -
          <lpage>132</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>J.</given-names>
            <surname>Hammer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Garcia-Molina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nestorov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Yerneni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Breunig</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Vassalos</surname>
          </string-name>
          .
          <article-title>Template-based wrappers in the TSIMMIS system</article-title>
          .
          <source>In Proc. ACM SIGMOD International Conference on Management of Data (SIGMOD '97)</source>
          , pages
          <fpage>532</fpage>
          -
          <lpage>535</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Papakonstantinou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Abiteboul</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>GarciaMolina.</surname>
          </string-name>
          <article-title>Object fusion in mediator systems</article-title>
          .
          <source>In Proc 22nd. VLDB conference</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chawathe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Garcia-Molina</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Widom.</surname>
          </string-name>
          <article-title>Constraint Management in Loosely Coupled Distributed Databases</article-title>
          .
          <source>Technical report</source>
          , Computer Science Department, Stanford University,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>K.</given-names>
            <surname>Shoens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Luniewski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Schwarz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Stamos</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Thomas.</surname>
          </string-name>
          <article-title>The RUFUS System: Information Organization for Semi-Structured Data</article-title>
          .
          <source>Proceedings of the International Conference on Very Large Databases</source>
          , pages
          <fpage>97</fpage>
          -
          <lpage>107</lpage>
          , Dublin, Ireland,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Papakonstantinou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Garcia-Molina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Widom</surname>
          </string-name>
          .
          <article-title>Object Exchange Across Heterogeneous Information Sources</article-title>
          .
          <source>In Proc. of 11th International Conference on Data Engineering (ICDE'95)</source>
          , pages
          <fpage>251</fpage>
          -
          <lpage>260</lpage>
          , Taiwan,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>J. Hammer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Garcia-Molina</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Ireland</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Papakonstantinou</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Ullman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Widom</surname>
          </string-name>
          , Information translation, mediation, and
          <article-title>mosaic-based browsing in the TSIMMIS system</article-title>
          .
          <source>In Proc. of the ACM SIGMOD Internation Conference on Management of Data</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>O.</given-names>
            <surname>Deux</surname>
          </string-name>
          .
          <article-title>The O2 system</article-title>
          .
          <source>Commun. ACM 34, num. 10</source>
          , pages
          <fpage>34</fpage>
          -
          <lpage>48</lpage>
          1991.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>S.</given-names>
            <surname>Abiteboul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Quass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>McHugh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Widom</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Weiner.</surname>
          </string-name>
          <article-title>The Lorel Query Language for Semistructured Data</article-title>
          .
          <source>Journal of Digital Libraries</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ), pages
          <fpage>68</fpage>
          -
          <lpage>88</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>R.</given-names>
            <surname>Cattell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Atwood</surname>
          </string-name>
          .
          <article-title>The Object database standard</article-title>
          , ODMG-
          <fpage>93</fpage>
          . Morgan Kaufmann Publishers Inc.
          <year>1994</year>
          , ISBN 978-1558603028.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>R.</given-names>
            <surname>Goldman</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Widom.</surname>
          </string-name>
          <article-title>DataGuides: Enabling Query Formulation and Optimization in Semistructured Databases</article-title>
          .
          <source>In Proc. VLDB</source>
          , pages
          <fpage>436</fpage>
          -
          <lpage>445</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>J. McHugh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Widom</surname>
          </string-name>
          .
          <article-title>Integrating Dynamically-Fetched External Information into a DBMS for Semistructured Data</article-title>
          .
          <source>SIGMOD Record</source>
          ,
          <volume>26</volume>
          (
          <issue>4</issue>
          ), pages
          <fpage>24</fpage>
          -
          <lpage>31</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>J.</given-names>
            <surname>Widom</surname>
          </string-name>
          .
          <article-title>Data management for XML: Research directions</article-title>
          .
          <source>IEEE Data Engineering Bulletin</source>
          ,
          <volume>22</volume>
          (
          <issue>3</issue>
          ), pages
          <fpage>44</fpage>
          -
          <lpage>52</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>R.</given-names>
            <surname>Goldman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>McHugh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Widom</surname>
          </string-name>
          .
          <article-title>From semistructured data to XML: Migrating the Lore data model and query language</article-title>
          .
          <source>In Proc. of the WebDB workshop</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>T.</given-names>
            <surname>Bray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Paoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sperberg-McQueen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Maler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Yergeau. Extensible Markup</surname>
          </string-name>
          <article-title>Language (XML) 1.0 (Fourth Edition)</article-title>
          ,
          <source>W3C Recommendation, 16th August</source>
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Simple</surname>
            <given-names>API</given-names>
          </string-name>
          for XML. http://www.saxproject.org/
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>A. Skonnard.</surname>
          </string-name>
          <article-title>XML in .NET: .NET Framework XML Classes and C# Offer Simple, Scalable Data Manipulation</article-title>
          . In MSDN Magazine,
          <year>January 2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>D.</given-names>
            <surname>Esposito</surname>
          </string-name>
          .
          <article-title>Manipulate XML Data Easily with the XPath and XSLT APIs in the</article-title>
          .NET, In MSDN Magazine,
          <year>July 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. W3C.
          <article-title>Document Object Model</article-title>
          .
          <source>W3C Recommendation.</source>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>F.</given-names>
            <surname>Manola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. Miller. RDF</given-names>
            <surname>Primer</surname>
          </string-name>
          .
          <source>W3C Recommendation 10 February</source>
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>S.</given-names>
            <surname>Decker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Melnik</surname>
          </string-name>
          , F. van
          <string-name>
            <surname>Harmelen</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Broekstra</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Erdmann</surname>
            ,
            <given-names>I. Horrocks.</given-names>
          </string-name>
          <article-title>The Semantic Web: The Roles of XML and RDF</article-title>
          .
          <source>IEEE Internet Computing</source>
          ,
          <volume>4</volume>
          (
          <issue>5</issue>
          ), pages
          <fpage>63</fpage>
          -
          <lpage>74</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. G. Klyne,
          <string-name>
            <surname>J. Carroll. RDF</surname>
          </string-name>
          <article-title>Concepts and Abstract Syntax</article-title>
          .
          <source>W3C Recommendation, 10th February</source>
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>D.</given-names>
            <surname>Brickley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Guha</surname>
          </string-name>
          .
          <source>RDF Vocabulary Description Language 1</source>
          .0:
          <string-name>
            <given-names>RDF</given-names>
            <surname>Schema. W3C Recommendation</surname>
          </string-name>
          , 10th
          <year>February 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>D. McGuinness</surname>
            ,
            <given-names>F. van Harmelen. OWL</given-names>
          </string-name>
          <string-name>
            <surname>Web Ontology Language. W3C Recommendation</surname>
          </string-name>
          , 10th
          <year>February 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>ECMA. ECMAScript Language</surname>
          </string-name>
          <article-title>Specification</article-title>
          .
          <source>Standard ECMA-262 3rd Edition</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <given-names>D.</given-names>
            <surname>Crockford</surname>
          </string-name>
          .
          <article-title>The application/json Media Type for JavaScript Object Notation (JSON)</article-title>
          .
          <source>Request for Comments: 4627</source>
          ,
          <year>July 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34. ECMA.
          <article-title>ECMAScript for XML (E4X) Specification</article-title>
          .
          <source>Standard ECMA-357 2nd Edition</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>J. Dittrich</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Salles</surname>
          </string-name>
          .
          <article-title>iDM: a unified and versatile data model for personal dataspace management</article-title>
          .
          <source>In Proc. VLDB</source>
          <year>2006</year>
          ,
          <volume>32</volume>
          , pages
          <fpage>367</fpage>
          -
          <lpage>378</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>J. Dittrich</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Blunschi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Färber</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Girard</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Karakashian</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Salles</surname>
          </string-name>
          .
          <article-title>From Personal Desktops to Personal Dataspaces: A Report on Building the iMeMex Personal Dataspace Management System</article-title>
          .
          <source>In BTW</source>
          <year>2007</year>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <surname>ECMA</surname>
          </string-name>
          . C#
          <article-title>Language Specification</article-title>
          .
          <source>Standard ECMA-334 4th Edition</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38. .
          <source>NET Framework 3.0 Technologies</source>
          , MSDN http://msdn2.microsoft.com/en-us/netframework/aa663323.aspx
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39. .
          <source>NET Framework 3</source>
          .0 Community http://www.netfx3.com/
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <surname>System</surname>
          </string-name>
          .
          <source>ComponentModel Namespace</source>
          , .
          <source>NET Framework Class Library</source>
          , MSDN http://msdn2.microsoft.com/en-us/system.
          <source>componentmodel(vs.80)</source>
          .aspx
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>41. Windows Presentation Foundation, MSDN Library http://msdn2.microsoft.com/en-us/library/ms754130.aspx</mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <surname>Lucene</surname>
          </string-name>
          .Net http://www.dotlucene.net/
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>43. Oracle Berkeley DB Product Family http://www.oracle.com/database/berkeley-db/</mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <article-title>Data Binding Overview</article-title>
          ,
          <string-name>
            <surname>WPF</surname>
          </string-name>
          , MSDN Library http://msdn2.microsoft.com/en-us/library/ms752347.aspx
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>