Difference between revisions of "Ontology Service API Break-out Group"
From phenoscape
(→Service definitions) |
|||
Line 5: | Line 5: | ||
==Service definitions== | ==Service definitions== | ||
− | # Ontology lookup | + | # Ontology listing lookup |
#* Function: lookup the ontologies being served by the data service | #* Function: lookup the ontologies being served by the data service | ||
− | #* Input: | + | #* Input: none, or a particular name, and/or the name of the ontology category |
− | #* Output: | + | #* Output: a record of name, version, identifier, meta-data (e.g., retired? in production? purpose?) for each ontology being served |
# Look up term | # Look up term | ||
#* Function: Obtain the full term information for a given ID | #* Function: Obtain the full term information for a given ID | ||
− | #* Input: | + | #* Input: a term ID, or the combination of a term name and ontology ID |
− | #* Output: | + | #* Output: the matching term in OBO or RDF/OWL format |
+ | #* Notes: do we need neighborhood here too (e.g., with IDs only); OBO only has parents, not children. | ||
# Completion list | # Completion list | ||
#* Function: Obtain matching term names for a partial term name string | #* Function: Obtain matching term names for a partial term name string | ||
− | #* Input: | + | #* Input: partial term name string, a list of ontology IDs, search parameters (search names only or synonyms only or both, search obsoletes or not, search definition or not) |
− | #* Output: | + | #* Output: matches as records of term name, term ID, ontology ID, synonym that was hit, how the term was hit (name, synonym, or definition) |
# Neighborhood graph | # Neighborhood graph | ||
#* Function: Obtain parents, children, descendants, or ancestors for a given term | #* Function: Obtain parents, children, descendants, or ancestors for a given term | ||
− | #* Input: | + | #* Input: term ID, list of relationships to include or exclude, number of levels (path length) up and down to include |
− | #* Output: | + | #* Output: list of terms in OBO or RDF format |
+ | #* Note: Is it sensible to return a graph as OBO format? Do we need to mandate the semantics of matching mixed-type paths (e.g., is-a and part-of)? | ||
# Downloading ontology | # Downloading ontology | ||
#* Function: Obtain all terms and relationships comprising an ontology | #* Function: Obtain all terms and relationships comprising an ontology | ||
− | #* Input: | + | #* Input: ontology ID, optionally name of the slim |
− | #* Output: | + | #* Output: the ontology as an OBO or OWL stream of text |
+ | #* Notes: do we need a parameter for specifying the desired format? do we need parameter for including obsoletes or not | ||
# Login | # Login | ||
#* Function: Given a username and secret, obtain an authentication token | #* Function: Given a username and secret, obtain an authentication token | ||
− | #* Input: | + | #* Input: |
#* Output: | #* Output: | ||
# Save EQ statements | # Save EQ statements | ||
#* Function: Save an array of EQ statements to the data store | #* Function: Save an array of EQ statements to the data store | ||
− | #* Input: | + | #* Input: a list of EQ statements on OBD-xml or pheno-xml format |
− | #* Output: | + | #* Output: success/failure indicator |
# Load EQ statements | # Load EQ statements | ||
#* Function: Load an array of EQ statements from the data store | #* Function: Load an array of EQ statements from the data store | ||
− | #* Input: | + | #* Input: author, or list of taxa, |
− | #* Output: | + | #* Output: matching EQ statements in pheno-xml or pheno-syntax format |
+ | #* Notes: do we need parameter of list of entities to obtain EQs for? | ||
# SPARQL endpoint | # SPARQL endpoint | ||
#* Function: Issue SPARQL queries and obtain the results in RDF | #* Function: Issue SPARQL queries and obtain the results in RDF | ||
Line 43: | Line 47: | ||
; Notes : | ; Notes : | ||
− | ;* | + | ;* |
==Query languages== | ==Query languages== |
Revision as of 16:19, 14 November 2006
Goal and motivation
A common API implemented by ontology data services enables clients such as EQ editors that heavily rely on such a service to plug into different data providers, local or remote, at their choice.
Service definitions
- Ontology listing lookup
- Function: lookup the ontologies being served by the data service
- Input: none, or a particular name, and/or the name of the ontology category
- Output: a record of name, version, identifier, meta-data (e.g., retired? in production? purpose?) for each ontology being served
- Look up term
- Function: Obtain the full term information for a given ID
- Input: a term ID, or the combination of a term name and ontology ID
- Output: the matching term in OBO or RDF/OWL format
- Notes: do we need neighborhood here too (e.g., with IDs only); OBO only has parents, not children.
- Completion list
- Function: Obtain matching term names for a partial term name string
- Input: partial term name string, a list of ontology IDs, search parameters (search names only or synonyms only or both, search obsoletes or not, search definition or not)
- Output: matches as records of term name, term ID, ontology ID, synonym that was hit, how the term was hit (name, synonym, or definition)
- Neighborhood graph
- Function: Obtain parents, children, descendants, or ancestors for a given term
- Input: term ID, list of relationships to include or exclude, number of levels (path length) up and down to include
- Output: list of terms in OBO or RDF format
- Note: Is it sensible to return a graph as OBO format? Do we need to mandate the semantics of matching mixed-type paths (e.g., is-a and part-of)?
- Downloading ontology
- Function: Obtain all terms and relationships comprising an ontology
- Input: ontology ID, optionally name of the slim
- Output: the ontology as an OBO or OWL stream of text
- Notes: do we need a parameter for specifying the desired format? do we need parameter for including obsoletes or not
- Login
- Function: Given a username and secret, obtain an authentication token
- Input:
- Output:
- Save EQ statements
- Function: Save an array of EQ statements to the data store
- Input: a list of EQ statements on OBD-xml or pheno-xml format
- Output: success/failure indicator
- Load EQ statements
- Function: Load an array of EQ statements from the data store
- Input: author, or list of taxa,
- Output: matching EQ statements in pheno-xml or pheno-syntax format
- Notes: do we need parameter of list of entities to obtain EQs for?
- SPARQL endpoint
- Function: Issue SPARQL queries and obtain the results in RDF
- Input:
- Output:
- Notes
Query languages
- SPARQL
Data exchange formats
- Text over HTTP:
- OBO format
- OBO-XML format
- OBD-XML format
- RDF