SlideShare une entreprise Scribd logo
1  sur  29
SHARE & the Semantic
        Web
    This Time it’s Personal!




                                     http://
                               sadiframework.org
SADI
Semantic Automated Discovery & Integration




            (Semantic Web Services)
A SADI service…

 … is identified by a URI
     also an HTTP URL




  http://sadiframework.org/examples/hello
A SADI service…

 … responds to GET with service description
         RDF document describing the service URI
         conforms to Feta (BioMoby, myGrid)

 <rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:mygrid="http://www.mygrid.org.uk/mygrid-moby-service#">
  <mygrid:serviceDescription rdf:about="http://sadiframework.org/examples/hello">
   <mygrid:hasServiceNameText rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Hello</mygrid:hasServiceNameText>
   <mygrid:hasServiceDescriptionText>A simple "Hello</mygrid:hasServiceDescriptionText>
   <mygrid:hasOperation>
     <mygrid:operation rdf:about="http://sadiframework.org/examples/hello#operation">
      <mygrid:outputParameter>
       <mygrid:parameter rdf:about="http://sadiframework.org/examples/hello#output">
        <mygrid:objectType rdf:resource="http://sadiframework.org/examples/hello.owl#GreetedIndividual"/>
       </mygrid:parameter>
A SADI service…

 … responds to POST with service output
          RDF in, RDF out


 <hello:NamedIndividual rdf:about="http://sadiframework.org/examples/hello-input.rdf#1">
   <foaf:name>Guy Incognito</foaf:name>
 </hello:NamedIndividual>




                               <hello:GreetedIndividual rdf:about="http://sadiframework.org/examples/hello-input.rdf#1">
                                 <hello:greeting>Hello, Guy Incognito!</hello:greeting>
                               </hello:GreetedIndividual>
A SADI service…
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:mygrid="http://www.mygrid.org.uk/mygrid-moby-service#">
 <mygrid:serviceDescription rdf:about="http://sadiframework.org/examples/hello">
  <mygrid:hasServiceNameText rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Hello</mygrid:hasServiceNameText>
  <mygrid:hasServiceDescriptionText>A simple "Hello</mygrid:hasServiceDescriptionText>
  <mygrid:hasOperation>
    <mygrid:operation rdf:about="http://sadiframework.org/examples/hello#operation">
     <mygrid:inputParameter>
       <mygrid:parameter rdf:about="http://sadiframework.org/examples/hello#input">
 http://sadiframework.org/examples/hello.owl#NamedIndividual
        <mygrid:objectType rdf:resource="http://sadiframework.org/examples/hello.owl#NamedIndividual"/>
       </mygrid:parameter>
     </mygrid:inputParameter>
     <mygrid:outputParameter>

 http://sadiframework.org/examples/hello.owl#GreetedIndividual
       <mygrid:parameter rdf:about="http://sadiframework.org/examples/hello#output">
        <mygrid:objectType rdf:resource="http://sadiframework.org/examples/hello.owl#GreetedIndividual"/>
       </mygrid:parameter>
     </mygrid:outputParameter>
    </mygrid:operation>
  </mygrid:hasOperation>
 </mygrid:serviceDescription>
</rdf:RDF>
A SADI service…

 … has an input OWL class
         describes the RDF it consumes
         property restrictions characterize the data it needs


 <owl:Class rdf:ID="NamedIndividual">
   <owl:equivalentClass>
      <owl:Restriction>

                          http://xmlns.com/foaf/0.1/name
        <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/name"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality>
      </owl:Restriction>
   </owl:equivalentClass>
 </owl:Class>
A SADI service…

 … has an output OWL class
         describes the RDF it produces
         property restrictions characterize the data it provides


 <owl:Class rdf:ID="GreetedIndividual">
   <owl:equivalentClass>
      <owl:Restriction>

         http://sadiframework.org/examples/hello.owl#greeting
        <owl:onProperty rdf:resource="#greeting"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality>
      </owl:Restriction>
   </owl:equivalentClass>
 </owl:Class>
<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:regress="http://sadiframework.org/examples/regression.owl#">
               <regress:PairedValueCollection rdf:about="http://sadiframework.org/examples/input1">
                 <regress:element>
                  <regress:PairedValue>
                    <regress:x rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</regress:x>
                    <regress:y rdf:datatype="http://www.w3.org/2001/XMLSchema#int">2</regress:y>
                  </regress:PairedValue>
                 </regress:element>
                 <regress:element>
                   <regress:PairedValue>
                    <regress:x rdf:datatype="http://www.w3.org/2001/XMLSchema#int">3</regress:x>
                    <regress:y rdf:datatype="http://www.w3.org/2001/XMLSchema#int">5</regress:y>
                  </regress:PairedValue>
                 </regress:element>
               </regress:PairedValueCollection>
  </rdf:RDF>




                                                       #1
                                                                                                                                                                                                      Service
                                                                                                           <rdf:RDF
                                                                                                               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                                                                                                               xmlns:regress="http://sadiframework.org/examples/regression.owl#">
                                                                                                             <regress:OutputClass rdf:about="http://sadiframework.org/examples/input1">
                                                                                                               <regress:hasRegressionModel>
                                                                                                                <regress:LinearRegressionModel>
                                                                                                                                                    #1
                                                                                                                  <regress:intercept rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.5</regress:intercept>
                                                                                                                  <regress:slope rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.5</regress:slope>
                                                                                                                 </regress:LinearRegressionModel>
                                                                                                               </regress:hasRegressionModel>
                                                                                                             </regress:OutputClass>
                                                                                                           </rdf:RDF>



Client



                                                                                                                                                                                                                      #

                                                                                                      #1
OWL classes in SADI…

 … are local to individual services
     one service’s world-view can conflict with another,
      but a client can use both
     not dogmatically; some types are shared
      (e.g. database records)

 … use global properties
     maximize interoperability
     represent community agreement
Input OWL classes in SADI…

 … are dynamically assignable
    property restrictions are sufficient for membership
    another way to discover services:
     what can I get with what I have now?
There’s nothing to
        it.
SHARE
Semantic Health And Research Environment
• SPARQL engine
 •   triple patterns are matched against service descriptions
 •   knowledge base is dynamically populated
 •   queries can contain OWL classes,
      which are expanded to the required triple patterns
 •   query is optimized to minimize the number of service calls
      and the amount of data sent over the network
PREFIX sadi: <http://sadiframework.org/ontologies/predicates.owl#>
PREFIX dumontier: <http://ontology.dumontierlab.com/>
PREFIX kegg: <http://lsrn.org/KEGG_PATHWAY:>
SELECT ?gene ?protein ?seq
WHERE {

   kegg:hsa00232 dumontier:hasParticipant ?gene .

   ?gene sadi:encodes ?protein .

   ?protein sadi:hasSequence ?seq
}                                                                    Service




                                                     Service



           Service
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
SELECT ?patient ?bmi
FROM <http://biordf.net/cardioSHARE/patients.rdf>
WHERE {
   ?patient rdf:type patients:AtRiskPatient .
   ?patient bmi:BMI ?bmi
}
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                                        PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                                        PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                                        SELECT ?patient ?bmi
                                        FROM <http://biordf.net/cardioSHARE/patients.rdf>
                                        WHERE {
                                        
   ?patient rdf:type patients:AtRiskPatient .
                                        
   ?patient bmi:BMI ?bmi
                                        }




1. initialize an empty knowledge base
   backed by an OWL reasoner

2. load URLs in FROM clauses
    http://biordf.net/cardioSHARE/patients.rdf
        <rdf:Description rdf:ID="patient6">
         <mged:has_height>
          <mged:Measurement>
           <mged:has_units rdf:resource="&mged;m"/>
           <mged:has_value>1.8034</mged:has_value>
          </mged:Measurement>
         </mged:has_height>
         <mged:has_mass>
          <mged:Measurement>
           <mged:has_units rdf:resource="&mged;kg"/>
           <mged:has_value>73.9355563</mged:has_value>
          </mged:Measurement>
         </mged:has_mass>
         <rdfs:label>patient #6</rdfs:label>
         <rdfs:comment>I am not a number, I am a free man!</rdfs:comment>
        </rdf:Description>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                          PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                          PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                          SELECT ?patient ?bmi
                          FROM <http://biordf.net/cardioSHARE/patients.rdf>
                          WHERE {
                          
   ?patient rdf:type patients:AtRiskPatient .
                          
   ?patient bmi:BMI ?bmi
                          }




3. select next triple pattern
    ?patient rdf:type patients:AtRiskPatient


4. process pattern
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                                       PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                                       PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                                       SELECT ?patient ?bmi
                                       FROM <http://biordf.net/cardioSHARE/patients.rdf>
                                       WHERE {
                                       
   ?patient rdf:type patients:AtRiskPatient .
                                       
   ?patient bmi:BMI ?bmi .
                                       }   ?patient bmi:BMI ?x
                                       }


5. decompose OWL class
   http://biordf.net/cardioSHARE/patients.owl#AtRiskPatient
   <owl:Class rdf:ID="AtRiskPatient">
    <rdfs:label>A patient at risk for some condition</rdfs:label>
    <owl:equivalentClass>
     <owl:Restriction>
      <owl:onProperty rdf:resource="&bmi;BMI"/>

         BMI some double[> 25]
      <owl:someValuesFrom>
       <rdfs:Datatype>
         <owl:onDatatype rdf:resource="&xsd;double"/>
         <owl:withRestrictions rdf:parseType="Collection">
          <rdf:Description>
            <xsd:minExclusive rdf:datatype="&xsd;double">25</xsd:minExclusive>
          </rdf:Description>
         </owl:withRestrictions>
       </rdfs:Datatype>
      </owl:someValuesFrom>
     </owl:Restriction>
    </owl:equivalentClass>
   </owl:Class>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                            PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                            PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                            SELECT ?patient ?bmi
                            FROM <http://biordf.net/cardioSHARE/patients.rdf>
                            WHERE {
                            
   ?patient rdf:type patients:AtRiskPatient .
                            
   ?patient bmi:BMI ?bmi .
                                ?patient bmi:BMI ?x
                            }




6. select next triple pattern
    ?patient bmi:BMI ?bmi


7. process pattern
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                             PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                             PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                             SELECT ?patient ?bmi
                             FROM <http://biordf.net/cardioSHARE/patients.rdf>
                             WHERE {
                             
   ?patient rdf:type patients:AtRiskPatient .
                             
   ?patient bmi:BMI ?bmi .
                                 ?patient bmi:BMI ?x
                             }




8. find services that attach the predicate
    bmi:BMI →
      http://sadiframework.org/examples/calculateBMI


9. find inputs to service
    use ?patient candidates
    no candidates; find instances of the service’s input class
      http://sadiframework.org/examples/bmi.owl#InputClass
    filter inputs previously sent to this service
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                           PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                           PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                           SELECT ?patient ?bmi
                           FROM <http://biordf.net/cardioSHARE/patients.rdf>
                           WHERE {
                           
   ?patient rdf:type patients:AtRiskPatient .
                           
   ?patient bmi:BMI ?bmi .
                               ?patient bmi:BMI ?x
                           }




10.invoke the service
   assemble minimal RDF that still satisfies the input class
   POST that RDF and add the response to the KB


11.update variable candidates
   use current triple pattern
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                          PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                          PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                          SELECT ?patient ?bmi
                          FROM <http://biordf.net/cardioSHARE/patients.rdf>
                          WHERE {
                          
   ?patient rdf:type patients:AtRiskPatient .
                          
   ?patient bmi:BMI ?bmi .
                              ?patient bmi:BMI ?x
                          }




12.select next triple pattern
    ?patient bmi:BMI ?x


13.process pattern
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                            PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                            PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                            SELECT ?patient ?bmi
                            FROM <http://biordf.net/cardioSHARE/patients.rdf>
                            WHERE {
                            
   ?patient rdf:type patients:AtRiskPatient .
                            
   ?patient bmi:BMI ?bmi .
                                ?patient bmi:BMI ?x
                            }




14.find services that attach the predicate
   bmi:BMI →
     http://sadiframework.org/examples/calculateBMI


15.find inputs to service
   use ?patient candidates
   filter inputs previously sent to this service
   nothing to do
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                         PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#>
                         PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#>
                         SELECT ?patient ?bmi
                         FROM <http://biordf.net/cardioSHARE/patients.rdf>
                         WHERE {
                         
   ?patient rdf:type patients:AtRiskPatient .
                         
   ?patient bmi:BMI ?bmi .
                             ?patient bmi:BMI ?x
                         }




16.select next triple pattern
    no more patterns


17.execute original SPARQL query
    using the populated knowledge base and a
     conventional SPARQL reasoner
OWL classes in SHARE queries…

 … are personal
     but defined in terms of common properties

 … are shared
     class URIs resolve to their definitions
     anyone can use your class with their data

 … are flexible
     disagree with a definition? try a new one!
OWL classes in SHARE queries…



 … are workflows
    describe the data that’s needed, not the services to call
      (though the service chain can be reconstructed)

 … are hypotheses?
    “what is” → “what might be”
Acknowledgements
            This research is supported by The Heart + Stroke Foundation of BC and Yukon, Microsoft Research,
The Canadian Institutes of Health Research, The Natural Sciences and Engineering Research Council of Canada and CANARIE.

Contenu connexe

Similaire à SHARE & the Semantic Web — This Time it's Personal

TDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyTDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyFabio Akita
 
Java Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom TagsJava Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom TagsIMC Institute
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)Pat Patterson
 
A Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic WebA Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic WebShamod Lacoul
 
A hands on overview of the semantic web
A hands on overview of the semantic webA hands on overview of the semantic web
A hands on overview of the semantic webMarakana Inc.
 
Linked data: spreading data over the web
Linked data: spreading data over the webLinked data: spreading data over the web
Linked data: spreading data over the webshellac
 
Jlook web ui framework
Jlook web ui frameworkJlook web ui framework
Jlook web ui frameworkHongSeong Jeon
 
Java colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rsJava colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rsSagara Gunathunga
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyNick Sieger
 
Who am I? Who are you? Who is anybody?
Who am I? Who are you? Who is anybody?Who am I? Who are you? Who is anybody?
Who am I? Who are you? Who is anybody?Paul Downey
 
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIsJosef Petrák
 
RDF Tutorial - SPARQL 20091031
RDF Tutorial - SPARQL 20091031RDF Tutorial - SPARQL 20091031
RDF Tutorial - SPARQL 20091031kwangsub kim
 
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Arun Gupta
 
Semantic Web(Web 3.0) SPARQL
Semantic Web(Web 3.0) SPARQLSemantic Web(Web 3.0) SPARQL
Semantic Web(Web 3.0) SPARQLDaniel D.J. UM
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteDr Nic Williams
 

Similaire à SHARE & the Semantic Web — This Time it's Personal (20)

TDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyTDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em Ruby
 
Java Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom TagsJava Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom Tags
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
 
A Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic WebA Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic Web
 
A hands on overview of the semantic web
A hands on overview of the semantic webA hands on overview of the semantic web
A hands on overview of the semantic web
 
Linked data: spreading data over the web
Linked data: spreading data over the webLinked data: spreading data over the web
Linked data: spreading data over the web
 
Workshop 17: EmberJS parte II
Workshop 17: EmberJS parte IIWorkshop 17: EmberJS parte II
Workshop 17: EmberJS parte II
 
AngularJS Basic Training
AngularJS Basic TrainingAngularJS Basic Training
AngularJS Basic Training
 
Jlook web ui framework
Jlook web ui frameworkJlook web ui framework
Jlook web ui framework
 
JS-05-Handlebars.ppt
JS-05-Handlebars.pptJS-05-Handlebars.ppt
JS-05-Handlebars.ppt
 
Java colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rsJava colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rs
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
 
Who am I? Who are you? Who is anybody?
Who am I? Who are you? Who is anybody?Who am I? Who are you? Who is anybody?
Who am I? Who are you? Who is anybody?
 
Basics of AngularJS
Basics of AngularJSBasics of AngularJS
Basics of AngularJS
 
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
 
RDF Tutorial - SPARQL 20091031
RDF Tutorial - SPARQL 20091031RDF Tutorial - SPARQL 20091031
RDF Tutorial - SPARQL 20091031
 
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
 
Semantic Web(Web 3.0) SPARQL
Semantic Web(Web 3.0) SPARQLSemantic Web(Web 3.0) SPARQL
Semantic Web(Web 3.0) SPARQL
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - Keynote
 
The Rails Way
The Rails WayThe Rails Way
The Rails Way
 

Dernier

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Dernier (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

SHARE & the Semantic Web — This Time it's Personal

  • 1. SHARE & the Semantic Web This Time it’s Personal! http:// sadiframework.org
  • 2. SADI Semantic Automated Discovery & Integration (Semantic Web Services)
  • 3. A SADI service… … is identified by a URI also an HTTP URL http://sadiframework.org/examples/hello
  • 4. A SADI service… … responds to GET with service description RDF document describing the service URI conforms to Feta (BioMoby, myGrid) <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mygrid="http://www.mygrid.org.uk/mygrid-moby-service#"> <mygrid:serviceDescription rdf:about="http://sadiframework.org/examples/hello"> <mygrid:hasServiceNameText rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Hello</mygrid:hasServiceNameText> <mygrid:hasServiceDescriptionText>A simple "Hello</mygrid:hasServiceDescriptionText> <mygrid:hasOperation> <mygrid:operation rdf:about="http://sadiframework.org/examples/hello#operation"> <mygrid:outputParameter> <mygrid:parameter rdf:about="http://sadiframework.org/examples/hello#output"> <mygrid:objectType rdf:resource="http://sadiframework.org/examples/hello.owl#GreetedIndividual"/> </mygrid:parameter>
  • 5. A SADI service… … responds to POST with service output RDF in, RDF out <hello:NamedIndividual rdf:about="http://sadiframework.org/examples/hello-input.rdf#1"> <foaf:name>Guy Incognito</foaf:name> </hello:NamedIndividual> <hello:GreetedIndividual rdf:about="http://sadiframework.org/examples/hello-input.rdf#1"> <hello:greeting>Hello, Guy Incognito!</hello:greeting> </hello:GreetedIndividual>
  • 6. A SADI service… <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mygrid="http://www.mygrid.org.uk/mygrid-moby-service#"> <mygrid:serviceDescription rdf:about="http://sadiframework.org/examples/hello"> <mygrid:hasServiceNameText rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Hello</mygrid:hasServiceNameText> <mygrid:hasServiceDescriptionText>A simple "Hello</mygrid:hasServiceDescriptionText> <mygrid:hasOperation> <mygrid:operation rdf:about="http://sadiframework.org/examples/hello#operation"> <mygrid:inputParameter> <mygrid:parameter rdf:about="http://sadiframework.org/examples/hello#input"> http://sadiframework.org/examples/hello.owl#NamedIndividual <mygrid:objectType rdf:resource="http://sadiframework.org/examples/hello.owl#NamedIndividual"/> </mygrid:parameter> </mygrid:inputParameter> <mygrid:outputParameter> http://sadiframework.org/examples/hello.owl#GreetedIndividual <mygrid:parameter rdf:about="http://sadiframework.org/examples/hello#output"> <mygrid:objectType rdf:resource="http://sadiframework.org/examples/hello.owl#GreetedIndividual"/> </mygrid:parameter> </mygrid:outputParameter> </mygrid:operation> </mygrid:hasOperation> </mygrid:serviceDescription> </rdf:RDF>
  • 7. A SADI service… … has an input OWL class describes the RDF it consumes property restrictions characterize the data it needs <owl:Class rdf:ID="NamedIndividual"> <owl:equivalentClass> <owl:Restriction> http://xmlns.com/foaf/0.1/name <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/name"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality> </owl:Restriction> </owl:equivalentClass> </owl:Class>
  • 8. A SADI service… … has an output OWL class describes the RDF it produces property restrictions characterize the data it provides <owl:Class rdf:ID="GreetedIndividual"> <owl:equivalentClass> <owl:Restriction> http://sadiframework.org/examples/hello.owl#greeting <owl:onProperty rdf:resource="#greeting"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality> </owl:Restriction> </owl:equivalentClass> </owl:Class>
  • 9.
  • 10. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:regress="http://sadiframework.org/examples/regression.owl#"> <regress:PairedValueCollection rdf:about="http://sadiframework.org/examples/input1"> <regress:element> <regress:PairedValue> <regress:x rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</regress:x> <regress:y rdf:datatype="http://www.w3.org/2001/XMLSchema#int">2</regress:y> </regress:PairedValue> </regress:element> <regress:element> <regress:PairedValue> <regress:x rdf:datatype="http://www.w3.org/2001/XMLSchema#int">3</regress:x> <regress:y rdf:datatype="http://www.w3.org/2001/XMLSchema#int">5</regress:y> </regress:PairedValue> </regress:element> </regress:PairedValueCollection> </rdf:RDF> #1 Service <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:regress="http://sadiframework.org/examples/regression.owl#"> <regress:OutputClass rdf:about="http://sadiframework.org/examples/input1"> <regress:hasRegressionModel> <regress:LinearRegressionModel> #1 <regress:intercept rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.5</regress:intercept> <regress:slope rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1.5</regress:slope> </regress:LinearRegressionModel> </regress:hasRegressionModel> </regress:OutputClass> </rdf:RDF> Client # #1
  • 11. OWL classes in SADI… … are local to individual services one service’s world-view can conflict with another, but a client can use both not dogmatically; some types are shared (e.g. database records) … use global properties maximize interoperability represent community agreement
  • 12. Input OWL classes in SADI… … are dynamically assignable property restrictions are sufficient for membership another way to discover services: what can I get with what I have now?
  • 14. SHARE Semantic Health And Research Environment
  • 15. • SPARQL engine • triple patterns are matched against service descriptions • knowledge base is dynamically populated • queries can contain OWL classes, which are expanded to the required triple patterns • query is optimized to minimize the number of service calls and the amount of data sent over the network
  • 16. PREFIX sadi: <http://sadiframework.org/ontologies/predicates.owl#> PREFIX dumontier: <http://ontology.dumontierlab.com/> PREFIX kegg: <http://lsrn.org/KEGG_PATHWAY:> SELECT ?gene ?protein ?seq WHERE { kegg:hsa00232 dumontier:hasParticipant ?gene . ?gene sadi:encodes ?protein . ?protein sadi:hasSequence ?seq } Service Service Service
  • 17. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi }
  • 18. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi } 1. initialize an empty knowledge base backed by an OWL reasoner 2. load URLs in FROM clauses http://biordf.net/cardioSHARE/patients.rdf <rdf:Description rdf:ID="patient6"> <mged:has_height> <mged:Measurement> <mged:has_units rdf:resource="&mged;m"/> <mged:has_value>1.8034</mged:has_value> </mged:Measurement> </mged:has_height> <mged:has_mass> <mged:Measurement> <mged:has_units rdf:resource="&mged;kg"/> <mged:has_value>73.9355563</mged:has_value> </mged:Measurement> </mged:has_mass> <rdfs:label>patient #6</rdfs:label> <rdfs:comment>I am not a number, I am a free man!</rdfs:comment> </rdf:Description>
  • 19. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi } 3. select next triple pattern ?patient rdf:type patients:AtRiskPatient 4. process pattern
  • 20. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi . } ?patient bmi:BMI ?x } 5. decompose OWL class http://biordf.net/cardioSHARE/patients.owl#AtRiskPatient <owl:Class rdf:ID="AtRiskPatient"> <rdfs:label>A patient at risk for some condition</rdfs:label> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="&bmi;BMI"/> BMI some double[> 25] <owl:someValuesFrom> <rdfs:Datatype> <owl:onDatatype rdf:resource="&xsd;double"/> <owl:withRestrictions rdf:parseType="Collection"> <rdf:Description> <xsd:minExclusive rdf:datatype="&xsd;double">25</xsd:minExclusive> </rdf:Description> </owl:withRestrictions> </rdfs:Datatype> </owl:someValuesFrom> </owl:Restriction> </owl:equivalentClass> </owl:Class>
  • 21. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi . ?patient bmi:BMI ?x } 6. select next triple pattern ?patient bmi:BMI ?bmi 7. process pattern
  • 22. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi . ?patient bmi:BMI ?x } 8. find services that attach the predicate bmi:BMI → http://sadiframework.org/examples/calculateBMI 9. find inputs to service use ?patient candidates no candidates; find instances of the service’s input class http://sadiframework.org/examples/bmi.owl#InputClass filter inputs previously sent to this service
  • 23. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi . ?patient bmi:BMI ?x } 10.invoke the service assemble minimal RDF that still satisfies the input class POST that RDF and add the response to the KB 11.update variable candidates use current triple pattern
  • 24. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi . ?patient bmi:BMI ?x } 12.select next triple pattern ?patient bmi:BMI ?x 13.process pattern
  • 25. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi . ?patient bmi:BMI ?x } 14.find services that attach the predicate bmi:BMI → http://sadiframework.org/examples/calculateBMI 15.find inputs to service use ?patient candidates filter inputs previously sent to this service nothing to do
  • 26. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX patients: <http://biordf.net/cardioSHARE/patients.owl#> PREFIX bmi: <http://sadiframework.org/examples/bmi.owl#> SELECT ?patient ?bmi FROM <http://biordf.net/cardioSHARE/patients.rdf> WHERE { ?patient rdf:type patients:AtRiskPatient . ?patient bmi:BMI ?bmi . ?patient bmi:BMI ?x } 16.select next triple pattern no more patterns 17.execute original SPARQL query using the populated knowledge base and a conventional SPARQL reasoner
  • 27. OWL classes in SHARE queries… … are personal but defined in terms of common properties … are shared class URIs resolve to their definitions anyone can use your class with their data … are flexible disagree with a definition? try a new one!
  • 28. OWL classes in SHARE queries… … are workflows describe the data that’s needed, not the services to call (though the service chain can be reconstructed) … are hypotheses? “what is” → “what might be”
  • 29. Acknowledgements This research is supported by The Heart + Stroke Foundation of BC and Yukon, Microsoft Research, The Canadian Institutes of Health Research, The Natural Sciences and Engineering Research Council of Canada and CANARIE.

Notes de l'éditeur

  1. *make it obvious the input and output node are the same(with animation or label)*