Architecture

From NCBO Wiki
Revision as of 11:31, 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)