Changes between Version 3 and Version 4 of SadiDayOne

Show
Ignore:
Timestamp:
2010/02/09 18:42:59 (7 years ago)
Author:
mccarthy
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SadiDayOne

    v3 v4  
    11= Day 1:  SADI Web Services =  
    22 
    3 Today we achieved several goals.  First, we drew some conclusions about how the OWL ontologies should look for our Output classes in order to maximize our ability to discover and chain-services together through reasoning. 
     3We are beginning to publish a set of best practices for service providers by codifying the lessons we've learned in the last year of service-building. 
    44 
    55For example, say we have a service 'getKEGGParalogsByGene', which will provide the KEGG ID of the paralogs of any input KEGG gene id.  The output class would be defined as in the ontology below: 
     
    2020  <owl:imports> 
    2121    <owl:Ontology rdf:about="http://sadiframework.org/ontologies/service_objects.owl#"/> 
    22   </owl:imports> 
    23   <owl:imports> 
    24      <owl:Ontology rdf:about="http://protege.stanford.edu/plugins/owl/dc/protege-dc.owl"/> 
    2522  </owl:imports> 
    2623  <owl:imports> 
     
    4643The important things to note are: 
    4744 
    48  1. We are explicitly importing any ontology we refer to 
     45 1. we are explicitly importing any ontology we refer to 
    4946 
    50  2. our output class is a subclass of the input data-type (in this case, a KEGG_Record id) 
     47 2. our output class is a subclass of the input class (in this case, a KEGG_Record) 
    5148 
    52  3. out output class also includes a restriction that it promises to give you 'isParalogOf' predicates attached to additional KEGG_Record entities.  '''explicitly restricting the values that you will outputis important, since it allows us to do reasoning about how to chain services together.'''  It is important that we put this restriction here, since it allows us to constrain OUR use of that predicate, without constraining the range of that predicate for anyone else! 
     49 3. our output class includes a restriction indicating that the service returns KEGG_Records related to the input by the 'isParalogOf' predicate (i.e.: KEGG_Records that are paralogs of the input KEGG_Record).  The owl:valuesFrom property on the restriction allows us to do reasoning about how to chain services together.  It is important that we put this restriction here instead of in the owl definition of the predicate itself, since it allows us to constrain OUR use of the predicate, without constraining its range for anyone else! 
    5350 
     51