Architecture

From NCBO Wiki
Revision as of 11:20, 12 October 2008 by Noy (talk | contribs)
Jump to navigation Jump to search

Architecture

The two figures below present the overall architecture and an example of several connected instances in the metadata ontology.


The general architecture of the metadata representation in BioPortal
Metadata instances describing two versions of the FMA and a view of the FMA


All the metadata in BioPortal are represented as instances of classes in the BioPortal Metadata Ontology (see the figure above). This ontology imports three other OWL ontologies:

  1. The Ontology Metadata Vocabulary (OMV) describes most of the metadata for ontologies themselves (e.g., domain, author, version number, ontology language, etc.)
  2. The Protégé Changes ontology provides the definitions for generic annotations (the Annotation class) and ontology components that they annotate.
  3. The Mappings ontology provides vocabulary for describing one-to-one mappings between concepts and corresponding metadata

The BioPortal Metadata ontology, by importing these three ontologies, can use all the classes and definitions from there and extend these definitions. The specific metadata is represented as instances of corresponding classes.

Classes and properties in the BioPortal Metadata ontology

We will now describe some key classes used to represent metadata.

Representing ontology metadata and provenance information

The metadata about ontologies themselves is represented mostly using the OMV vocabulary (namespace prefix “OMV”). OMV is the ontology developed jointly with the NeON consortium and accounts for much of the ontology metadata, including provenance information, static values (number of classes, etc.), licensing information, and so on.

The class OMV:Ontology

The main class in OMV is OMV:Ontology. It contains a set of metadata for a particular version of the ontology. Some properties of interest, among others, are:

  • name
  • acronym
  • creationDate
  • description (range: String)
  • documentation (range: URL)
  • endorsedBy (range: OMV:Party)
    • one of the instances to fill in this value is OBOFoundry, an instance of OMV:Organisation
  • domain
  • ontologyLanguage
  • keyClasses
  • keywords
  • ...

We also add some instances for ontology engineering tools and methodologies to account for OBO ontologies (OBO-Edit tool and the DAG ontology structure) and to include the OBO Foundry, caBIG, and others as endorsing organizations.

The class VirtualOntology

A class VirtualOntology collects the information about each virtual ontology in the repository, all its versions and views. There is one instance of the VirtualOntology class for each virtual ontology in BioPortal. Each such instance has the following properties:

  • currentVersion (range: OMV:Ontology) is a pointer to the metadata describing the current version of the ontology;
  • ontologyName (range: String) provides a name for the ontology (e.g., “NCI Thesaurus); we don’t technically have to have it as we can get it from the current version, but it may be useful to have it here for convenience (but need to remember to update it)
  • virtualURI (range: URI) provide a virtual URI for this ontology; it could also be an ontology ID, as used in BioPortal now
  • hasViews (range OMV:Ontology) provides a collection of instances of the OMV:Ontology class corresponding to the views of this virtual ontology
  • hasVersions (range OMV:Ontology) provides a collection of instances of the OMV:Ontology class corresponding to the versions of this virtual ontology

The class Project

A class Project contains the information about each project. This information is represented as instances of the Project class. Each project has the following properties:

  • projectName (range: String)
  • description (range: String)
  • institution (range: String)
  • homepage (range: URL)
  • administrator (range: User)
  • hasContactInformation (range: String)
  • usesOntologies (range: VirtualOntology)

The class BioPortalUser

A class BioPortalUser extends the class OMV:Person and foaf:Person. In addition, each user has the following properties:

  • userName (range: String)
  • createdReviews (range: Review)
  • createdMarginalNotes (range: changes:Annotation)
  • createdMappings (range: mappings:Mapping)


Representing marginal notes and reviews

Marginal notes and ontology reviews instances contain the content of the notes and reviews, their types, and the provenance information for them. The Protégé Changes ontology provides several key classes for representing ontology components and annotations and we extend these classes with several classes and properties relevant to BioPortal:

Classes for annotations and objects that can be annotated. Classes in white boxes are imported from the Protégé changes ontology. Classes in grey boxes are added in the BioPortal Metadata ontology.

The classes and properties below describe annotations

The class changes:AnnotatableThing

The class changes:AnnotatableThing represents anything that can be annotated, including ontology components, ontologies themselves, mappings, other annotations, etc. This class has the following key property:

  • changes:associatedAnnotations (range: changes:Annotation) links to all annotations that are associates with this object

The subclasses of changes:AnnotatableThing:

  • changes:OntologyComponent (represents classes and properties; we will use this class to encapsulate how we address individual classes and properties)
  • the class Ontology added in the BioPortal Metadata ontology to represent ontology as a whole as a target of a review
  • changes:Annotation, includes marginal notes and reviews. For now marginal notes will be direct instances of Annotation because we do not distinguish between different types of marginal notes, such as questions or proposals. This class has the property changes:annotates that is the inverse of the property changes:associatedAnnotations. The only subclass of the class Annotation that we will currently use is the class Review that represents the reviews of the ontologies (see below).

The class Review

Representing a single ontology review with several dimensions

A class Review is a subclass of Annotation. This class represents reviews of an ontology as a whole. Each review contains ratings and comments along each of the dimensions specified as the evaluation dimensions (class EvaluationDimension, with two properties: numericRating, textualReview). It has the following properties, in addition to the provenance ones inherited from the Annotation class:

  • inTheContextOfProject (range: Project; inverse property: ontologyReviews) indicates that a review was created in the context of a particular project
  • A property for each of the review dimensions. These properties are all subproperties of the property reviewOnDimension (range: EvaluationDimension (see figure)):
    • digreeOfFormalityReview
    • documentationAndSupportReview
    • usabilityReview
    • domainCoverageReview
    • correctnessReview
    • qualityOfContentReview
  • the range for the property annotates is restricted to OMV:Ontology