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)
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:
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
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
Representing Mappings
The Mappings ontology represents different types of mappings and the corresponding metadata. More details on the mapping metadata in a separate document. We define the mapping ontology for BioPortal to represent one-to-one mappings. This ontology has the key classes described below.