Architecture
Architecture
The two figures below present the overall architecture and an example of several connected instances in the metadata ontology.
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:
- The Ontology Metadata Vocabulary (OMV) describes most of the metadata for ontologies themselves (e.g., domain, author, version number, ontology language, etc.)
- The Protégé Changes ontology provides the definitions for generic annotations (the Annotation class) and ontology components that they annotate.
- 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)