<!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>Ontology-Driven Software: What We Learned From Using Ontologies As Infrastructure For Software Or How Does It Taste to Eat Our Own Dogfood</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Csongor Nyulas</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Natalya F. Noy</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michael Dorf</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicholas Griffith</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mark A. Musen</string-name>
          <email>museng@stanford.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Stanford University</institution>
          ,
          <addr-line>Stanford, CA 94305</addr-line>
          ,
          <country country="US">US</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In recent years, researchers have argued that using ontologies to represent and drive knowledge infrastructure of software projects provides separation of the declarative and procedural knowledge and enables easier evolution of the declarative knowledge. We have validated these conjectures in the context of BioPortal, a repository of biomedical ontologies, which was developed in our group. We are using the BioPortal Metadata Ontology to represent details about all the ontologies in the repository, including internal system information and the information that we collect from the community such as mappings between classes in different ontologies, ontology reviews, and so on. To the best of our knowledge, BioPortal is the first large-scale application that uses ontologies to represent essentially all of its internal infrastructure. The BioPortal Metadata Ontology extends several other ontologies for representing metadata, such as the Ontology Metadata Vocabulary and the Prote´ge´ Changes and Annotations Ontology. In this paper, we show that it is feasible to describe the structure of the data that drives an application using ontologies rather than database schemas, which are used traditionally to store the infrastructure data. We also show that such approach provides critical advantages in terms of flexibility and adaptability of the tool itself. We demonstrate the extensibility of the approach by enabling representation of views on ontologies and their corresponding metadata in the same framework.</p>
      </abstract>
      <kwd-group>
        <kwd>Representing Knowledge Infrastructure</kwd>
        <kwd>From Database Schemas to Ontologies</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>database schema. In this paper, we describe an approach to application development that
pushes this envelope to use ontologies and ontology instances to represent essentially
all data that the application requires in a single flexible framework, from declarative
high-level descriptions of the data as in the examples above to internal system data.</p>
      <p>
        For large-scale distributed architectures today, the development stack includes
several technologies wrapped around a SQL database schema, such as persistence
managers (e.g., Hibernate), a web server, and so on. When the database schema changes,
these changes often need to be propagated through the development stack, thus making
such changes expensive in distributed web-based applications. We have encountered
this problem in developing BioPortal1—a community-based repository of biomedical
ontologies, containing 170 ontologies with more than one million classes among them
at the time of this writing. Users can submit their ontologies to BioPortal; search across
all ontologies; browse the ontologies, their different versions, and the associated
descriptions and provenance information; describe their ontology-related projects and link
the descriptions to the ontologies; leave comments on classes and on ontologies; create
mappings between concepts in one ontology and concepts in another ontology [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>The BioPortal application is heavily knowledge-driven: most of what the users see
when browsing BioPortal (in addition to the ontologies themselves), is some rendering
of information that would traditionally be in a database. This internal information that
drives the application includes the metadata about ontologies in the repository, such as
ontology domain, authors, and other provenance information, as well as information on
which property to use for preferred name and synonyms in each ontology, information
on where the ontology itself resides in the system (e.g., the specific database table),
when it was uploaded, the name of the administrator of the ontology in BioPortal, and
so on. Some of this information (such as provenance) is intrinsic to the ontology artifact
and is relevant outside of BioPortal; some information is internal system information.</p>
      <p>Because the BioPortal application is novel in many of its aspects, our internal
infrastructure continues to evolve constantly, as we understand better user requirements,
learn what works and what does not, get new collaborators that would like to extend
BioPortal in a certain way. With the knowledge infrastructure constantly in flux, we
found that describing and representing the structure of the knowledge as a relational
database schema did not provide the flexibility and quick adaptability that our users
required. Making changes was cumbersome and put a bottleneck in the development of
the software code. It also made it much harder for anyone to adapt the BioPortal code
for their own purposes as the developers had to be familiar with the entire development
stack (including Prote´ge´, Java, Spring, Hibernate, and Ruby-on-Rails).</p>
      <p>Thus, we decided to “eat our own dog food:” we developed an ontology to describe
this infrastructure and represented the application data itself as ontology instances. Thus
the whole BioPortal application is driven by ontologies and ontology instances. Note
that while BioPortal is a repository of ontologies, the infrastructure that we describe is
not specific to the artifacts represented in a repository. It will work for a repository of
any other artifacts, not necessarily ontologies. To the best of our knowledge, BioPortal
is the first large-scale application of this approach.</p>
      <p>This paper makes the following contributions:
1 http://bioportal.bioontology.org
– We developed an ontology to represent the infrastructure and run-time data of a
large community-based ontology repository.
– We implemented the infrastructure of BioPortal using an ontology to represent most
of the data required to drive the application.2
– We validated the extensibility of the approach by adding functionality to support
flexibly representation of ontology views.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Types of Metadata in the Repository</title>
      <p>
        The BioPortal ontology repository is an active ontology repository with a large user
community that contributes its content and uses its web services in their applications.
In addition to more than 170 ontologies, it currently contains multiple versions of these
ontologies, submitted by their authors and almost one million mappings between
concepts in the ontologies. There are descriptions of ontology-based projects, and notes
and discussions on classes and ontologies. The BioPortal Resource index provides
ontology-based access to several biomedical data sets available online (e.g. entries in
GEO, ClinicalTrials.gov). All BioPortal functionality is supported by a rich metadata
infrastructure, which includes the following types of metadata:
– ontology metadata describing the ontologies and their provenance and includes
ontology name, domain, description and keywords, authors, license information,
versions, references, and metrics such as the number of classes and properties;
– mappings between concepts, and metadata associated with mappings, such as how
the mapping was created, whether it was created manually or computed
automatically by a particular algorithm (and which one) and context for the mapping [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ];
– ontology reviews are contributed by users as part of their evaluation of ontologies
in BioPortal;
– notes on classes are user-contributed notes that can contain questions, comments,
and suggestions, usually addressed to the authors of specific ontology classes;
– projects that use ontologies, described by BioPortal users;
– user information such as user profiles, information on who administers each
ontology and each project description, who contributed notes, mappings, and reviews
to BioPortal, and so on.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Functional and Architectural Requirements for Metadata</title>
    </sec>
    <sec id="sec-4">
      <title>Support</title>
      <p>The BioPortal application dictates the following functional and architectural
requirements for the metadata support:
Efficient and scalable support of BioPortal main functions: Any metadata
infrastructure must support fast access to metadata, flexible querying of specific metadata items
and their combination, and be scalable. We envision that the number of users, notes,
projects, and mappings will grow significantly in the coming months.
2 At the time of this writing, some data, such as mappings and user information, is still in
database tables from our initial implementation of BioPortal.</p>
      <p>
        Support for ontology versioning: Users can upload successive versions of their
ontologies and explore any ontology version. There must be services that always resolve to the
latest version of an ontology, with each ontology having a “virtual” location that always
redirects to the latest version. Metadata referring to an ontology or its components (e.g.,
reviews, notes, mappings) must be attached to a specific version of an ontology.
Flexible evolution of the metadata schema: One of the key requirements for metadata
support is its ability to adapt easily to new requirements and types of metadata. The
types of metadata that an ontology repository requires is still an active area of research.
Thus, the structure of the metadata and the specific properties change frequently. These
changes to the schema describing the metadata must be easy to implement and roll out.
Customizability of the metadata schema: Some groups install their own versions of
BioPortal software to support either a broader scope than just biomedicine (e.g., the
Open Ontology Repository sandbox3) or to maintain a repository open only to a
specific set of users (e.g., the Marine Metadata Initiative4). Developers that maintain these
BioPortal installations usually customize the code to satisfy the local requirements. For
example, the fields that describe an ontology and its provenance are different for
different communities. Definitions of mappings and the associated metadata differ as well.
The representation of metadata schema must make it easy for these developers to
custom tailor what gets represented and what gets presented in the user interface.
Reuse of existing technologies and ontologies: Wherever possible, we would like to use
existing technologies and standards for representing metadata. For example, the
Ontology Metadata Vocabulary (OMV) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] provides a vocabulary for describing ontologies.
There are several ontologies and APIs for describing mappings (e.g., the alignment
API [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] or the Prote´ge´ mapping ontology [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]). Reusing these ontologies enables us
not only to use technologies that have already been tested but also to share the data
represented using these ontologies. For example, by using OMV to represent ontology
metadata, we can share these descriptions with other repositories that use OMV, such
as Oyster [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and Cupboard [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Similarly, the comments on ontologies that BioPortal
users provide are useful for ontology authors when they evolve their ontology. In
order for ontology authors to see these comments alongside the ontology classes in their
favorite ontology-editing environment (such as Prote´ge´). Thus, the comments must be
represented in the format that an ontology editor, such as Prote´ge´, can understand (e.g.,
the Prote´ge´ Changes and Annotations Ontology, CHAO [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]).
      </p>
      <p>In our initial implementation of BioPortal we used a database schema to describe
our metadata, with column names corresponding to metadata fields. This approach is
fairly traditional for many large-scale implementations and supports the first two
requirements in our list—efficient and scalable handling of metadata and support for
ontology versioning. However, in our experience, this approach did not fare so well on
other requirements.</p>
      <p>Any time we needed to add a new metadata field, we had to change not only the
database schema, but also the rest of the application stack (e.g., Hibernate) to reflect the
3 http://oor-01.cim3.net/home/release
4 http://mmisw.org/or/
change. These changes were time-consuming and cumbersome. Yet, the more we were
developing BioPortal, the more features we were adding, the more often we needed to
adjust the metadata representation. For instance, in addition to describing the
ontologies themselves, we needed to add ontology views, to support ontology reviews along
several different dimensions, and to represent a large set of ontology metrics—all of
these requirements crystalized after the start of the development.</p>
      <p>With the metadata schema encoded as a database schema, any customization of new
BioPortal installation requires changes to the schema as well. And, as we mentioned
earlier, this process is cumbersome and error-prone.</p>
      <p>Reusing and sharing the metadata that we collect also was not straightforward: it
is hard to find two applications that use the same database schema. Thus, in order to
transform the metadata from our internal representation to the representation that
another repository (e.g., Oyster) uses or to represent comments in a format that a tool such
as Prote´ge´ would understand, we must write a script to export the data.</p>
      <p>While none of these challenges are insurmountable, we decided to apply a
completely different approach to representing metadata infrastructure in BioPortal to
address these requirements. As we show in the remaining sections, this approach satisfied
our requirements and proved to be extensible enough to support new requirements.
4</p>
    </sec>
    <sec id="sec-5">
      <title>Architecture</title>
      <p>Figure 1 shows the architecture of BioPortal. It is a traditional service-oriented
layered architecture, with the front end (Ruby-on-Rails) accessing the backend
information through RESTful services.5 There are services to access ontology information (e.g.,
get information about a specific ontology, upload a new version, get a diff between two
versions), concept-level services (e.g., get class definition), hierarchy services (e.g., get
all subclasses of a class), search services (e.g., search for a term across all ontologies),
and other services. The business logic tier implements these services in Java, using the
Spring framework. This layer is the one that contains the logic to translate the internal
metadata representation into responses to service request (e.g., a service may request a
list of all versions for a specific ontology). Before we transitioned to the ontology-based
approach, the database schema of the underlying relational database (mySQL) was
reflected directly in the implementation of this layer and its metadata functions. In our
current approach, the metadata structure is accessed through the Prote´ge´ ontology API.
This API, in turn, does use a database to store the ontology and the instances. However,
the schema of the database that the Prote´ge´ uses does not depend on the ontology itself.
It is a single table that stores both the ontology and the instance information.6</p>
      <p>The types of metadata and their properties are describe in the BioPortal Metadata
Ontology.7 The metadata values are Prote´ge´ instances and property values (see Figure 2
for an example). We use the Prote´ge´ API to access the ontology and instances.
5 http://bioontology.org/wiki/index.php/BioPortal_REST_services
6 http://protege.cim3.net/cgi-bin/wiki.pl?JdbcDatabaseBackend
7 http://bioportal.bioontology.org/virtual/1148
NCBO BioPortal</p>
      <sec id="sec-5-1">
        <title>Jboss J2EE Server</title>
      </sec>
      <sec id="sec-5-2">
        <title>Web Container</title>
      </sec>
      <sec id="sec-5-3">
        <title>Presentation</title>
      </sec>
      <sec id="sec-5-4">
        <title>Tier</title>
      </sec>
      <sec id="sec-5-5">
        <title>Service</title>
      </sec>
      <sec id="sec-5-6">
        <title>Tier</title>
      </sec>
      <sec id="sec-5-7">
        <title>Business</title>
      </sec>
      <sec id="sec-5-8">
        <title>Logic</title>
      </sec>
      <sec id="sec-5-9">
        <title>Tier</title>
      </sec>
      <sec id="sec-5-10">
        <title>Persistence</title>
      </sec>
      <sec id="sec-5-11">
        <title>Tier</title>
        <p>Ruby on Rails</p>
        <p>JSF
.NET</p>
        <p>PHP</p>
        <p>FLEX
RESTful Services (HTTP)</p>
        <p>Acegi Security Framework
Spring Framework</p>
        <p>Protégé
Hibernate ORM
The BioPortal Metadata Ontology is an OWL ontology that imports a number of other
ontologies (Figure 3) and includes classes to describe an ontology itself, its versions,
information about the ontology, creators of an ontology, user-contributed content, such
as notes, reviews, and mappings. It also contains the system information that is
relevant for maintaining and representing the ontology in BioPortal, such as which users
administer the ontology in BioPortal, where the ontology itself is located in the
BioPortal system, internal ontology id and version ids, and so on. The instances of classes
in this ontology represent the actual metadata for the BioPortal content. The
BioPortal Metadata Ontologyis an OWL-Lite ontology, specifically, RDF Schema constructs,
plus owl:import, thus supports in a scalable manner any reasoning that BioPortal
requires (for example for transitivity in getting superclasses or subclasses of a class).</p>
        <p>The BioPortal Metadata Ontology imports several ontologies that deal with the
types of metadata that BioPortal supports:
– The Ontology Metadata Vocabulary (OMV) describes most of the metadata for
ontologies themselves (e.g., domain, author, version, ontology language, etc.)
– The Prote´ge´ Changes and Annotations Ontology (CHAO) provides definitions
for generic annotations and ontology components that they annotate.</p>
        <sec id="sec-5-11-1">
          <title>Class</title>
        </sec>
        <sec id="sec-5-11-2">
          <title>Review</title>
        </sec>
        <sec id="sec-5-11-3">
          <title>Class</title>
        </sec>
        <sec id="sec-5-11-4">
          <title>OMV:Ontology</title>
        </sec>
        <sec id="sec-5-11-5">
          <title>Class</title>
        </sec>
        <sec id="sec-5-11-6">
          <title>VirtualOntology</title>
          <p>rdf:type
rdf:type
rdf:type
rdf:type
FMA, v.2.0
reviewOn
hasVersion
Review_1209</p>
        </sec>
        <sec id="sec-5-11-7">
          <title>Text: Key enabler in bioinformatics</title>
          <p>Instances</p>
          <p>FMA, v.1.0
hasVersion
FMA
– The Prote´ge´ Mapping Ontology provides vocabulary for describing one-to-one
mappings between concepts and corresponding metadata.</p>
          <p>The OMV provides the vocabulary for describing a specific ontology version. An
instance of the class OMV:Ontology describes a single version of an ontology. This
class contains properties describing pertinent information about the ontology. The
BioPortal Metadata Ontology extends this class to add properties that are specific to
BioPortal as well as some missing properties that should have been in OMV.8 These properties
include system information such as the internal id, the user who submitted the ontology,
the internal status (e.g., scheduled for parsing, loaded, error), and associated reviews.</p>
          <p>We use the instances of the Prote´ge´ CHAO ontology to represent comments that
BioPortal users contribute to the ontologies. Each comment is represented as an
annotation attached to a specific class (in a specific ontology version) or to another annotation
(if it is a response to a comment). Users can use the comments, for example, to carry
out discussions about modeling decisions, make suggestions for changes, ask questions.
The same mechanism exists in Collaborative Prote´ge´, a version of the Prote´ge´ ontology
editor that supports collaborative ontology editing. Because BioPortal and Prote´ge´ share
the same structure for representing user comments and discussions, one can potentially
8 We collaborate with OMV developers to include these properties in future versions of OMV
FMA</p>
          <p>GO</p>
          <p>NCIT
Represents an
ontology version</p>
          <p>OMV</p>
          <p>Class</p>
          <p>OMV:Ontology
versions</p>
          <p>views owl:imports</p>
          <p>Class
VirtualOntology</p>
          <p>BioPortal OWL ontologies
Represents
comments,
reviews</p>
          <p>References a specific</p>
          <p>version of
a class or property</p>
          <p>References
an ontology
verison
Protégé Changes ontology</p>
          <p>changes:annotates</p>
          <p>Class
changes:Annotation</p>
          <p>Class
changes:Ontology</p>
          <p>Class
changes:Ontology_Component
subclasOf</p>
          <p>owl:imports
BioPortal Metadata Ontology</p>
          <p>Class
Review</p>
          <p>Class
User</p>
          <p>Represents
a mapping</p>
          <p>Represents
mapping
metadata
Mappings ontology</p>
          <p>Class
mappings:One_to_one_mapping</p>
          <p>Class
mappings:Mapping_Metadata
owl:imports</p>
          <p>Class
Project
open a BioPortal ontology in Prote´ge´ and see the comments contributed by BioPortal
users. We are currently working on the tighter integration of the two tools.</p>
          <p>The BioPortal Metadata Ontology adds classes that are specific to BioPortal
functionalities and that are not described in the imported ontologies. These classes represent
ontology projects and reviews on ontologies and dimensions that users can use to
evaluate ontologies.</p>
          <p>The BioPortal Metadata Ontology introduces some convenience classes that
abstract the information already present in other classes. This approach poses minor
maintenance challenges, which we mitigate by changing instances only programmatically.
However, this approach greatly facilitates access to the information. Consider the
following example: In OMV, the description of an ontology version (instance of OMV:Ontology)
points to a previous version of the same ontology. Thus, in order to present a table with
the information about all versions of an ontology (as in Figure 4), we must first find
the latest version of the ontology, and then traverse the instances to collect all versions.
Thus, we introduce the notion of VirtualOntology which is an object representing
the collection of all versions of the ontology. This object has the minimal information
that is shared among all versions, such as the ontology name (e.g., Gene Ontology);
the “virtual ontology id”—the global id that, when used to access an ontology, always
resolves to the latest version; the information on who administers the ontology and the
list of versions (instances of OMV:Ontology).</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Validating Feasibility: Implementing BioPortal metadata</title>
      <p>We have validated the feasibility of our approach by implementing it as an infrastructure
for BioPortal.9 The previous version of BioPortal used a database schema to reflect the
metadata schema and posed exactly the flexibility and customizability challenges that
we described in Section 3.</p>
      <p>First, we replaced the databases in the storage layer with a Prote´ge´ ontology,
implemented in its own one-table ontology-independent schema (Figure 1). Second, we
replaced the metadata implementation in the business-logic layer with the appropriate
Prote´ge´ API calls. Third, we transferred the metadata from the old database to instances
in the metadata ontology. Our goal was to maintain the same API at the service layer so
9 Note to reviewers: At the time of the paper submission, the main BioPortal server at http://
bioportal.bioontology.org runs using the database-based metadata representation.
We use the new infrastructure in our development server that is not yet accessible to the public.
We expect to transition the new implementation to our production server before the end of the
Summer 2009.
that the user interface does not need to be modified and other applications that already
use our REST service API can continue to use it.</p>
      <p>Since we access the metadata ontology through the Prote´ge´ API —which was
successfully used in other projects to access in a scalable manner ontologies having more
than 8000 classes and 5 million instances 10— we predict with confidence that the new
representation of the metadata about ontologies will scale well. The version of
BioPortal currently running on our development server uses this infrastructure successfully,
thus validating the approach. We plan to release this implementation to production at
end of August 2009.</p>
      <p>At the time of this writing, the transition of metadata to ontology-based approach is
not complete. Currently, ontology details, ontology versions, and ontology views (see
Section 7) are represented as ontology instances. We are in the process of transitioning
the rest of the metadata.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Validating Extensibility: representing ontology views</title>
      <p>As we discussed earlier, one of our main motivations to moving to the ontology-based
approach was greater flexibility and adaptability of the metadata. We validated these
properties by implementing support for ontology views in BioPortal, which did not
previously exist. In our implementation we store only materialized views computed
and submitted by the users, together with the metadata describing how the view was
generated (the language, engine, etc.)</p>
      <p>
        In this context, a view is any subset of an ontology that is itself an ontology. A view
can be created manually or automatically by a view-generation tool. For instance, our
collaborators have several views of the Foundational Model of Anatomy (FMA) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
One of the views represents the subset of the FMA that would be of interest to a
radiologist; another view deals exclusively with Liver; yet another view focuses on the
representation of neuroanatomy. The first of these views was generated manually, by
starting with the FMA in Prote´ge´ and removing the unnecessary branches. The other
two views are the results of queries in an extension of SPARQL that our collaborators
have developed [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. When ontology users generate and materialize the views, they
often want to share them with other researchers in the field. Thus, when users view a page
for FMA, they can see not only its different versions, but also the views available for it.
7.1
      </p>
      <p>Requirements for Representing Views
Discussions with our collaborators led to the following set of requirements on view
representation:
– Each view is itself an ontology and can have metadata, be explorable, have reviews,
statistics, and so on.</p>
      <p>– A view is defined on a specific version of an ontology.
10 http://protegewiki.stanford.edu/index.php/Scalability_and_
Tuning
– There is a notion of a “virtual view” (cf. “virtual ontology”) such as a view of
Liver-related concepts in FMA created for a particular purpose.</p>
      <p>Each virtual view will have at least one version, but can have several.</p>
      <p>Each version of the view also has its own metadata (inherited from ontology
metadata, but with additional fields).
– We must be able to represent views on views (with the same requirements).
– We must be able to represent views that use more than one ontology.</p>
      <p>Note that these requirements suggest a fairly complex structure for view
representation, with many cross-references with different components of ontology metadata
(ontologies and ontology versions).
7.2</p>
      <p>Representing Views in BioPortal
When representing views in BioPortal, we treated them essentially in the same way as
regular ontologies, thus getting the browsing, annotation, and other features “for free.”
We extended the BioPortal Metadata Ontology to represent features that are specific to
describing views (Figure 5). A class VirtualView is a subclass of VirtualOntology
and points to the list of versions of the view. Each version of a view is an instance of
the class OntologyView, which is a subclass of OMV:Ontology. Thus, it inherits
all the properties that describe an ontology version (e.g., description, domain, author)
and adds its own. The view-specific properties include the following:
– The property viewDefinition is the textual representation of the view
definition. This definition can be a query that was used to create the view, a set of
traversal directive (as in Prompt), or any other way that specifies how the view was
extracted.
– The property viewDefinitionLanguage defines the language that was used
to define the view (e.g., the query language, such as SPARQL, for a view that was
generated by a query). The range of the property is the class ViewDefinitionLanguage,
whose instances will have all the pertinent attributes of the language (name, creator,
url) as well as the specific version that was used for the view.
– The property viewGenerationEngine contains the engine that was used to
compute the view. The range of the property is the class ViewGenerationEngine,
whose instances will have all the pertinent attribute of the engine (name, creator,
url) as well as the specific version that was used to generate the view.
7.3</p>
      <p>Providing Support for Views in BioPortal
In this ontology-based infrastructure for representing metadata, in order to handle views
to BioPortal and satisfying all the requirements that we have outlined earlier, we had to
do the following. First, we extended the BioPortal Metadata Ontology as we described
in Section 7.2 and Figure 5. After this step, we already had all the structure to
represent the views. Second, we implemented the new view-specific REST services (e.g.,
returning all views for an ontology). This implementation uses the Prote´ge´ API to
access the view metadata. As we expected, in this implementation we indeed needed to</p>
      <p>Class
VirtualOntology
hasVersion
isVersionOf</p>
      <p>FMA
Instance of</p>
      <p>VirtualOntology
virtualViewOf</p>
      <p>isVersionOf
NeuroFMA
Instance of
VirtualView isVersionOf
isVersionOf
isVersionOf
FMA, v.1.0
Instance of
OMV:Ontology
isViewOn</p>
      <p>FMA, v.2.0
Instance of
OMV:Ontology
isViewOn
NeuroFMA, v.1.0</p>
      <p>Instance of</p>
      <p>OntologyView
focus exclusively on the view-specific logic and structures and did not need to change
anything else (e.g., the application infrastructure or the architecture). Some of the
functional requirements for handling the views crystallized while we were already working
on the implementation, and the only changes that were necessary were the changes to
the ontology itself. We did not need to change any database schemas or to add any
additional structures (e.g., Hibernate stubs). The work that was required was limited to
implementing the logic for the services directly.</p>
      <p>In comparison, adding views to the old (Hibernate-based) infrastructure, would have
involved some additional changes like: (a) creating new database tables (for views and
virtual views), (b) creating a number of foreign keys in order to represent
superclasssubclass relationships and relationships expressed by object properties, (c) creating
integrity constraints to enforce data integrity along those relations, and (d) generate
Hibernate classes (so called “entity beans”) from the database tables.</p>
      <p>Figure 6 shows the extended ontology-metadata page that includes the information
about the views.
8</p>
    </sec>
    <sec id="sec-8">
      <title>Discussion and Lessons Learned</title>
      <p>The new implementation of BioPortal infrastructure validates the use of ontologies and
ontology instances to represent all the metadata as well as system data for a repository
of this kind. To the best of our knowledge, BioPortal is the first large-scale web-based
application that uses ontologies to represent its internal data. Our experience has shown
that using an ontology to describe the knowledge infrastructure of an application does
indeed provide the flexibility and adaptability that our application required. Our
observations and discussions with developers show that it was easier and far more efficient to
implement view support that satisfied the requirements that we outlined in Section 7.1
using this approach than using a database schema to describe the views and to link
them to ontologies. It also enabled us to reuse much of the infrastructure that we have
already developed for ontology metadata, as we could treat views as special cases of
ontologies. As our requirements for view representation continue to evolve, we know
that our changes will be easy to implement as we will need only to evolve the ontology
representation and the corresponding service implementations.</p>
      <p>It is important to note that some of the design choices in the BioPortal Metadata
Ontology are driven purely by application and implementation considerations. Thus, there
are parts of this ontology that are specific to the context of BioPortal implementation.
We also made some of the ontology-design choices not because they were
“ontologically correct” in an abstract sense but because they simplified access to information (cf.
VirtualOntology class to collect information about all versions of an ontology).
Thus, we used the ontology not only as a conceptualization of our domain (metadata
representation) but also to represent the physical properties and location of the data.</p>
      <p>
        There are a number of systems that use ontologies to represent some of their
metadata. These include Oyster [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the alignment server [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and Cupboard [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. However,
in these systems the items in the repository (such as ontologies or alignments) are
separate from the part that represents the metadata. Furthermore, the ontology-based
metadata does not expand to representing internal system information. The ontology-based
representation of metadata focuses on describing intrinsic properties of ontologies and
other objects that are shared across applications.
      </p>
      <p>
        Another class of applications that uses ontologies actively are semantic desktops
(e.g., [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). However, most semantic desktop applications do not represent system data
itself using the ontologies. Furthermore, semantic desktop applications focus on
creating a “semantic web” of desktop resources rather than representing the internal system
data itself.
      </p>
      <p>In our work, we have extended other metadata ontologies. In the future, we plan to
integrate other standards. Specifically, we plan to replace the Prote´ge´ Mapping ontology
that we used here for expediency with an ontology that extends SKOS with
mappingspecific metadata.</p>
      <p>Our current effort leaves some questions and concerns, however. The main
concern is scalability. While Prote´ge´ is quite scalable and has been used with ontologies
that have hundreds of thousands of classes and instances, we do not know how it will
behave with millions of instances describing metadata. As we noted in Section 6, we
have not yet moved mappings to this infrastructure. At the same time, we have just
uploaded one million new mappings to BioPortal. We are yet to test whether our current
Prote´ge´-based infrastructure will be sufficiently scalable for this number of mappings.
If we learn that it is not, it will be the limitation of the Prote´ge´ implementation itself
as modern triplestore implementations easily handle this amount of data. If scalability
turns out to be an issue, we will transition to a triplestore to store the instances.</p>
      <p>We would like to emphasize that our solution is not limited to the biomedical
domain. It so happens that our repository is a repository of biomedical ontologies.
However, there is nothing in the BioPortal Metadata Ontology itself or in our use of it that
is specific to biomedicine (except perhaps, the list of possible ontology categories). We
will install the new infrastructure in other local BioPortal installations, such as the OOR
sandbox that we mentioned earlier (and that accepts ontologies in any domain).</p>
      <p>Finally, the BioPortal software is open-source. The software is domain-independent
and can be used for an ontology repository in any domain or for a domain-independent
one. The BioPortal Metadata Ontology is available in BioPortal and can be accessed
through the BioPortal user interface or its web services.11 We have created a snapshot
of the instances of the BioPortal Metadata Ontology for our development version of
BioPortal. This ontology and instances can be accessed directly through the WebProte´ge´
server at http://bmir-protege-dev1.stanford.edu/webprotege/. 12</p>
    </sec>
    <sec id="sec-9">
      <title>Acknowledgments</title>
      <p>This work was supported by the National Center for Biomedical Ontology, under
roadmapinitiative grant U54 HG004028 from the National Institutes of Health and by NIH grant HL087706.
We are grateful to Jim Brinkeley, Todd Detwiller, Onard Mejino, and other members of the
Structural Informatics Group at Univesity of Washington for helping us identify requirements for views
in BioPortal.
11 http://bioportal.bioontology.org
12 Please use the Firefox browser to access the server. Select “BioPortal Metadata Ontology” and
then go to the “Individuals” tab to view the instances.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Bossche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ross</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. MacLarty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. V.</given-names>
            <surname>Nu</surname>
          </string-name>
          <article-title>?elen, and</article-title>
          <string-name>
            <given-names>N.</given-names>
            <surname>Pelov</surname>
          </string-name>
          .
          <article-title>Ontology driven software engineering for real life applications</article-title>
          .
          <source>In 3rd International Workshop on Semantic Web Enabled Software Engineering (SWESE</source>
          <year>2007</year>
          ), Innsubruk, Austria,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Bra</surname>
          </string-name>
          <article-title>¨uer and</article-title>
          <string-name>
            <given-names>H.</given-names>
            <surname>Lochmann</surname>
          </string-name>
          .
          <article-title>An ontology for software models and its practical implications for semantic web reasoning</article-title>
          .
          <source>In The 5th European Semantic Web Conference (ESWC</source>
          <year>2008</year>
          ), pages
          <fpage>34</fpage>
          -
          <lpage>48</lpage>
          , Tenerife, Spain,
          <year>2008</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. M. dAquin and
          <string-name>
            <given-names>H.</given-names>
            <surname>Lewen</surname>
          </string-name>
          .
          <article-title>Cupboard a place to expose your ontologies to applications and the community</article-title>
          .
          <source>In 6th European Semantic Web Conference (ESWC</source>
          <year>2009</year>
          ), Heraklion, Greece,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>J.</given-names>
            <surname>Euzenat</surname>
          </string-name>
          .
          <article-title>An api for ontology alignment</article-title>
          .
          <source>In Third International Semantic Web Conference (ISWC</source>
          <year>2004</year>
          ), pages
          <fpage>698</fpage>
          -
          <lpage>712</lpage>
          , Hiroshima, Japan,
          <year>2004</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>J.</given-names>
            <surname>Euzenat</surname>
          </string-name>
          .
          <article-title>Alignment infrastructure for ontology mediation and other applications</article-title>
          .
          <source>In Workshop on Mediation in Semantic Web Services</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>T.</given-names>
            <surname>Groza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Handschuh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Moeller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Grimnes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sauermann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Minack</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Mesnage</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jazayeri</surname>
          </string-name>
          , G. Reif, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Gudjnsdttir</surname>
          </string-name>
          .
          <article-title>The nepomuk project - on the way to the social semantic desktop</article-title>
          . In T. Pellegrini and S. Schaffert, editors,
          <source>Proceedings of I-Semantics' 07</source>
          , pages
          <fpage>201</fpage>
          -
          <lpage>211</lpage>
          . JUCS, Sept.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>L.</given-names>
            <surname>Hart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Emery</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Colomb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Raymond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ye</surname>
          </string-name>
          , E. Kendall, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Dutra</surname>
          </string-name>
          .
          <article-title>Usage scenarios and goals for ontology definition metamodel</article-title>
          .
          <source>In 5th International Conference on Web Information Systems Engineering (WISE</source>
          <year>2004</year>
          ), pages
          <fpage>596</fpage>
          -
          <lpage>607</lpage>
          , Brisbane, Australia,
          <year>2004</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>T.</given-names>
            <surname>Lehmann</surname>
          </string-name>
          .
          <article-title>A framework for ontology based integration of structured it-systems</article-title>
          .
          <source>In 3rd International Workshop on Semantic Web Enabled Software Engineering (SWESE</source>
          <year>2007</year>
          ), Innsubruk, Austria,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>N. F.</given-names>
            <surname>Noy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chugh</surname>
          </string-name>
          , W. Liu, and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Musen</surname>
          </string-name>
          .
          <article-title>A framework for ontology evolution in collaborative environments</article-title>
          .
          <source>In Fifth International Semantic Web Conference, ISWC, volume LNCS 4273</source>
          , Athens, GA,
          <year>2006</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>N. F.</given-names>
            <surname>Noy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Griffith</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Musen</surname>
          </string-name>
          .
          <article-title>Collecting community-based mappings in an ontology repository</article-title>
          .
          <source>In 7th International Semantic Web Conference (ISWC</source>
          <year>2008</year>
          ), Karlsruhe, Germany,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>N. F.</given-names>
            <surname>Noy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. H.</given-names>
            <surname>Shah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. L.</given-names>
            <surname>Whetzel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Dai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dorf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Griffith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Jonquet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Rubin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.-A.</given-names>
            <surname>Storey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. G.</given-names>
            <surname>Chute</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Musen</surname>
          </string-name>
          .
          <article-title>Bioportal: ontologies and integrated data resources at the click of a mouse</article-title>
          .
          <source>Nucleic Acids Research</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>C. I.</given-names>
            <surname>Nyulas</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. J. O'Connor</surname>
            ,
            <given-names>S. W.</given-names>
          </string-name>
          <string-name>
            <surname>Tu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Okhmatovskaia</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Buckeridge</surname>
            , and
            <given-names>M. A.</given-names>
          </string-name>
          <string-name>
            <surname>Musen</surname>
          </string-name>
          .
          <article-title>An ontology-driven framework for deploying jade agent systems</article-title>
          .
          <source>In IEEE/WIC/ACM International Conference on Intelligent Agent Technology, Sydney, Australia</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>R.</given-names>
            <surname>Palma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Haase</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Gomez-Perez</surname>
          </string-name>
          .
          <article-title>Oyster: sharing and re-using ontologies in a peerto-peer community</article-title>
          .
          <source>In 15th international conference on World Wide Web (WWW</source>
          <year>2006</year>
          ), pages
          <fpage>1009</fpage>
          -
          <lpage>1010</lpage>
          , Edinburgh, Scotland,
          <year>2006</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>R.</given-names>
            <surname>Palma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hartmann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Haase</surname>
          </string-name>
          . OMV:
          <article-title>Ontology Metadata Vocabulary for the Semantic Web</article-title>
          .
          <source>Technical report</source>
          , http://ontoware.org/projects/omv/,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>C.</given-names>
            <surname>Rosse</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. L. V.</given-names>
            <surname>Mejino</surname>
          </string-name>
          .
          <article-title>A reference ontology for bioinformatics: The Foundational Model of Anatomy</article-title>
          .
          <source>Journal of Biomedical Informatics.</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>H. H. Shahri</surname>
            ,
            <given-names>J. A.</given-names>
          </string-name>
          <string-name>
            <surname>Hendler</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Porter</surname>
          </string-name>
          .
          <article-title>Software configuration management using ontologies</article-title>
          .
          <source>In 3rd International Workshop on Semantic Web Enabled Software Engineering (SWESE</source>
          <year>2007</year>
          ), Innsubruk, Austria,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M. Shaw</surname>
            ,
            <given-names>L. T.</given-names>
          </string-name>
          <string-name>
            <surname>Detwiler</surname>
            ,
            <given-names>J. F.</given-names>
          </string-name>
          <string-name>
            <surname>Brinkley</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Suciu</surname>
          </string-name>
          .
          <article-title>Generating application ontologies from reference ontologies</article-title>
          .
          <source>In AMIA Annual Symposium</source>
          , Washington, DC,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>