Difference between revisions of "Requirements"

From NCBO Wiki
Jump to navigation Jump to search
Line 1: Line 1:
= Requirements =
+
Requirements
  
 
We discuss two types of requirements for handling metadata in BioPortal:  
 
We discuss two types of requirements for handling metadata in BioPortal:  
Line 14: Line 14:
 
* Be flexible about which properties show up on the ontology metadata page and on the columns in the table on the “Browse” page (The metadata ontology itself will define the set of these metadata features. Thus, other groups that wish to install BioPortal locally will need to customize only the metadata ontology in order to custom-tailor their installations.)
 
* Be flexible about which properties show up on the ontology metadata page and on the columns in the table on the “Browse” page (The metadata ontology itself will define the set of these metadata features. Thus, other groups that wish to install BioPortal locally will need to customize only the metadata ontology in order to custom-tailor their installations.)
  
== Types of metadata in BioPortal ==  
+
= Types of metadata in BioPortal =  
  
 
We represent the following types of metadata in BioPortal:
 
We represent the following types of metadata in BioPortal:
Line 26: Line 26:
 
These different types of metadata are inter-linked. For example, each user is characterized by the metadata that they contribute; reviews can be created in the context of a particular projects; marginal notes can be attached to mappings.
 
These different types of metadata are inter-linked. For example, each user is characterized by the metadata that they contribute; reviews can be created in the context of a particular projects; marginal notes can be attached to mappings.
  
== Glossary ==  
+
= Glossary =  
 
'''Virtual ontologies''': the list of ontologies in the repository, with one entry per each “logical” ontology. Basically, the list that appears on the “Browse” page in BioPortal (see [[#browse_page_figure|Figure]]).
 
'''Virtual ontologies''': the list of ontologies in the repository, with one entry per each “logical” ontology. Basically, the list that appears on the “Browse” page in BioPortal (see [[#browse_page_figure|Figure]]).
  
Line 42: Line 42:
 
----
 
----
  
== Functional Requirements ==
+
= Functional Requirements =
  
 
Metadata drives much of the BioPortal user interface, with the exception of  the display of the ontologies themselves. The list below is not exhaustive and we expect it to grow. However, it does cover major categories of requirements and some details on each. In the section on [[Implementation Details]], we provide details on the implementation for all these calls.
 
Metadata drives much of the BioPortal user interface, with the exception of  the display of the ontologies themselves. The list below is not exhaustive and we expect it to grow. However, it does cover major categories of requirements and some details on each. In the section on [[Implementation Details]], we provide details on the implementation for all these calls.
  
=== Browse ontologies (as in [[#browse_page_figure|the “Browse” tab of BioPorta]]) ===
+
== Browse ontologies (as in [[#browse_page_figure|the “Browse” tab of BioPorta]]) ==
 
* get all virtual ontologies
 
* get all virtual ontologies
 
* for each virtual ontology, get the summary properties to fill in the rest of the table:
 
* for each virtual ontology, get the summary properties to fill in the rest of the table:
Line 55: Line 55:
 
** url
 
** url
  
=== Ontology metadata ([[#ontology_metadata_page_figure|in ontology metadata page]]) ===
+
== Ontology metadata ([[#ontology_metadata_page_figure|in ontology metadata page]]) ==
 
* display property-value pairs for the core metadata properties
 
* display property-value pairs for the core metadata properties
 
* get a list of all views for the ontology  
 
* get a list of all views for the ontology  
Line 62: Line 62:
 
** for each version, get the summary properties, such as description, version number, status, url
 
** for each version, get the summary properties, such as description, version number, status, url
  
=== Submitting a new version of an ontology ===
+
== Submitting a new version of an ontology ==
 
* get a list of core properties and their ranges (the range determines the UI widget)
 
* get a list of core properties and their ranges (the range determines the UI widget)
 
** in order
 
** in order
Line 68: Line 68:
 
** and set property values
 
** and set property values
  
=== Submitting a new ontology ===
+
== Submitting a new ontology ==
 
* get a list of core properties and their ranges (the range determines the widget)
 
* get a list of core properties and their ranges (the range determines the widget)
 
** in order
 
** in order
Line 74: Line 74:
 
** and set property values
 
** and set property values
  
=== Search ===
+
== Search ==
 
* get a list of virtual ontologies to provide filters for search
 
* get a list of virtual ontologies to provide filters for search
  
=== Recent items ===
+
== Recent items ==
 
* provide the list of recent ontology uploads
 
* provide the list of recent ontology uploads
 
* provide the list of recent marginal notes, mappings, reviews, projects
 
* provide the list of recent marginal notes, mappings, reviews, projects
  
=== Reviews ===
+
== Reviews ==
 
* get all reviews for an ontology, indicating which reviews where created for a current version, and which were created for old versions
 
* get all reviews for an ontology, indicating which reviews where created for a current version, and which were created for old versions
 
* when presenting a review, show ratings and text along different dimensions (Figure 1)
 
* when presenting a review, show ratings and text along different dimensions (Figure 1)
Line 90: Line 90:
  
  
=== Marginal notes ===
+
== Marginal notes ==
 
* for each concept, given its URL (real or virtual?), get all marginal notes associated with this concept:
 
* for each concept, given its URL (real or virtual?), get all marginal notes associated with this concept:
 
** marginal notes attached directly to the current version of this concept
 
** marginal notes attached directly to the current version of this concept
Line 98: Line 98:
 
* Create a marginal note and associate it with a version of a concept
 
* Create a marginal note and associate it with a version of a concept
  
=== All mappings ===
+
== All mappings ==
 
* for each virtual ontology, get the number of mappings to and from that ontology
 
* for each virtual ontology, get the number of mappings to and from that ontology
 
* for each ontology, get all the mappings (grouped by target ontology)
 
* for each ontology, get all the mappings (grouped by target ontology)
  
  
=== Mappings for a concept ===
+
== Mappings for a concept ==
 
* for each concept, given its URL (real or virtual?), get all mappings associated with this concept:
 
* for each concept, given its URL (real or virtual?), get all mappings associated with this concept:
 
** mappings attached directly to the current version of this concept
 
** mappings attached directly to the current version of this concept
Line 109: Line 109:
 
* create a new mapping and attach it to the current version of the concept
 
* create a new mapping and attach it to the current version of the concept
  
=== Projects ===
+
== Projects ==
 
* get a list of projects
 
* get a list of projects
 
* for each project, get the property-value pairs:
 
* for each project, get the property-value pairs:

Revision as of 09:42, 11 October 2008

Requirements

We discuss two types of requirements for handling metadata in BioPortal:

  1. the functional requirements are the set of calls from the user-interface (and web services) that metadata must support;
  2. the architectural requirements address the structure and evolution of metadata.

Functional requirements include support for all the current functionality for the metadata use in BioPortal and the future use that we are envisioning in various scenarios and use cases. Specific details on functional requirements are outlined here.

The following are the architectural requirements:

  • Represent metadata as ontology instances
  • Download metadata (and its various subsets) in RDF
  • Be able to update the metadata ontologies “on the fly”
    • Incremental updates, such as adding new properties, should be a simple “swap” of the metadata schema (the metadata ontology), without having to change any of the instances
  • Be flexible about which properties show up on the ontology metadata page and on the columns in the table on the “Browse” page (The metadata ontology itself will define the set of these metadata features. Thus, other groups that wish to install BioPortal locally will need to customize only the metadata ontology in order to custom-tailor their installations.)

Types of metadata in BioPortal

We represent the following types of metadata in BioPortal:

  1. Ontology metadata (e.g., the ontology domain and coverage, provenance information, version information, additional references, computable metadata, such as the number of classes and properties, etc.);
  2. Mappings between concepts in different ontologies;
  3. Ontology reviews along different review dimensions (e.g., domain coverage, usability, quality of content, etc.);
  4. Marginal notes on concepts and mappings in the ontologies containing users’ comments, questions, and discussions;
  5. Projects that use ontologies in BioPortal
  6. BioPortal Users

These different types of metadata are inter-linked. For example, each user is characterized by the metadata that they contribute; reviews can be created in the context of a particular projects; marginal notes can be attached to mappings.

Glossary

Virtual ontologies: the list of ontologies in the repository, with one entry per each “logical” ontology. Basically, the list that appears on the “Browse” page in BioPortal (see Figure).

Core metadata properties: metadata properties that appear on the "Ontology metadata” page. Not all properties associated with the ontology will generally appear there, as there are many minor ones that we don’t always want to display. Perhaps there can be a “more details” page that shows those.

Summary metadata properties: metadata properties that appear in the columns of the table on the “Browse” page and in the columns for versions and views on the metadata page for each ontology



Error creating thumbnail: /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 61: ulimit: cpu time: cannot modify limit: Permission denied /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 84: ulimit: virtual memory: cannot modify limit: Permission denied /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 90: ulimit: file size: cannot modify limit: Permission denied /bin/bash: /usr/bin/convert: No such file or directory Error code: 127
The "Browse" page in Bioportal
Error creating thumbnail: /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 61: ulimit: cpu time: cannot modify limit: Permission denied /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 84: ulimit: virtual memory: cannot modify limit: Permission denied /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 90: ulimit: file size: cannot modify limit: Permission denied /bin/bash: /usr/bin/convert: No such file or directory Error code: 127
The "Ontology metadata" page in Bioportal
Error creating thumbnail: /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 61: ulimit: cpu time: cannot modify limit: Permission denied /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 84: ulimit: virtual memory: cannot modify limit: Permission denied /srv/www/vhosts/www.bioontology.org/app/mediawiki-1.35.9/includes/shell/limit.sh: line 90: ulimit: file size: cannot modify limit: Permission denied /bin/bash: /usr/bin/convert: No such file or directory Error code: 127
The "Project and reviews" page in Bioportal

Functional Requirements

Metadata drives much of the BioPortal user interface, with the exception of the display of the ontologies themselves. The list below is not exhaustive and we expect it to grow. However, it does cover major categories of requirements and some details on each. In the section on Implementation Details, we provide details on the implementation for all these calls.

Browse ontologies (as in the “Browse” tab of BioPorta)

  • get all virtual ontologies
  • for each virtual ontology, get the summary properties to fill in the rest of the table:
    • name
    • version
    • author
    • uploaded on
    • url

Ontology metadata (in ontology metadata page)

  • display property-value pairs for the core metadata properties
  • get a list of all views for the ontology
    • for each view, get the summary properties, such as description, version number, status, url
  • get a list of all versions for the ontology
    • for each version, get the summary properties, such as description, version number, status, url

Submitting a new version of an ontology

  • get a list of core properties and their ranges (the range determines the UI widget)
    • in order
  • create a new metadata instance describing this ontology version
    • and set property values

Submitting a new ontology

  • get a list of core properties and their ranges (the range determines the widget)
    • in order
  • create a new metadata instance describing this ontology version
    • and set property values

Search

  • get a list of virtual ontologies to provide filters for search

Recent items

  • provide the list of recent ontology uploads
  • provide the list of recent marginal notes, mappings, reviews, projects

Reviews

  • get all reviews for an ontology, indicating which reviews where created for a current version, and which were created for old versions
  • when presenting a review, show ratings and text along different dimensions (Figure 1)
  • create a review for an ontology
    • in the context of a particular project
    • without a project context
  • determine which ontology has the highest ratings for a particular dimension


Marginal notes

  • for each concept, given its URL (real or virtual?), get all marginal notes associated with this concept:
    • marginal notes attached directly to the current version of this concept
    • marginal notes attached to earlier versions
  • the number of marginal notes for an ontology
    • over a period of time?
  • Create a marginal note and associate it with a version of a concept

All mappings

  • for each virtual ontology, get the number of mappings to and from that ontology
  • for each ontology, get all the mappings (grouped by target ontology)


Mappings for a concept

  • for each concept, given its URL (real or virtual?), get all mappings associated with this concept:
    • mappings attached directly to the current version of this concept
    • mappings attached to earlier versions
  • create a new mapping and attach it to the current version of the concept

Projects

  • get a list of projects
  • for each project, get the property-value pairs:
    • name
    • description
    • people
    • institution
    • homepage
  • project-specific page