Documented Plurality of Users Automated Check
- Overview
- Open (principle 1)
- Common Format (principle 2)
- URI/Identifier Space (principle 3)
- Versioning (principle 4)
- Scope (principle 5)
- Textual Definitions (principle 6)
- Relations (principle 7)
- Documentation (principle 8)
- Documented Plurality of Users (principle 9)
- Commitment To Collaboration (principle 10)
- Locus of Authority (principle 11)
- Naming Conventions (principle 12)
- Notification of Changes (principle 13)
- Maintenance (principle 16)
- Responsiveness (principle 20)
This page is generated via
_layouts/check.html. See edit guide
Documented Plurality of Users Automated Check
Discussion on this check can be found here.
Requirements
- The ontology must have usages.
Fixes
First, read the FAQ on how to edit the metadata for your ontology.
Adding Usages
Determine what other groups are using your ontology and how they are using it. Then, add the following to your metadata file (replacing with the correct group name, link, and description):
usages:
- user: http://www.informatics.jax.org/disease (link to group)
description: MGI disease model annotations use DO (description of group)
examples:
- url: http://www.informatics.jax.org/disease/DOID:4123 (link to specific example)
description: Human genes and mouse homology associated with nail diseases (description of specific example)
You may have multiple exampels for each user, and mulitple users under the usages
tag.
Implementation
The registry data is checked for ‘usage’ entries. If they are missing, this is an error.
import dash_utils
from dash_utils import format_msg
def has_users(data):
"""Check fp 9 - users.
If the ontology has an active issue tracker and examples of use, PASS.
Args:
data (dict): ontology registry data from YAML file
Return:
PASS or ERROR with optional help message
"""
if 'usages' in data:
usages = data['usages']
# TODO: usages should have a valid user that resolves
# and a description
else:
usages = None
if usages is None:
return {'status': 'ERROR', 'comment': 'Missing usages'}
return {'status': 'PASS'}