’cause you can’t always GET what you want!<br />
Web Servicesvs.Semantic Web<br />
Web Servicesare not “connected” to the Semantic WebWhy?<br />
Web ServicesXML + XML SchemaSemantic WebRDF + OWL<br />
Web ServicesPOST of SOAP-XMLSemantic WebGET of RDF-XML<br />
Web ServicesNo (rigorous) semanticsSemantic WebRich, flexible semantics<br />
Web Services&Semantic Web Fundamentally different technologies! <br />
&gt;1000 X more data in the Deep Web than in Web pagesIn bioinformatics this is primarily databases and analytical algorit...
Web Service output is criticalto success for the Semantic Web!!<br />
Research Question<br />
WITHOUT INVENTING A NEW <br />TECHNOLOGY OR STANDARD<br />
Can we define frameworks and/or best practices <br />that make Web Services <br />“transparent” to the Semantic Web?<br />
Semantic Web?<br />An information system where machines can receive information from one source, re-interpret it, and corr...
Semantic Web?<br />If we cannot achieve those two things, then IMO we don’t have a “semantic web”, we only have a distribu...
What do we need to do?<br />Make Web Services exhibit the same “behavior” as GET<br />Add rich Semantics to Web Services a...
What do we have to work with?(Without inventing new technologies or standards…)<br />Data<br />Interface annotations<br />
Semantic Automated Discovery and Integrationhttp://sadiframework.org<br />Founding partner<br />
History of SADIBased on observations of the usage and behaviour of BioMoby Semantic Web Servicessince 2002<br />
SADI Observation #1:<br />What does ‘GET’ really do?  What “behaviour” of GET do we need to mimic in a Web Service?<br />
SADI Observation #1:<br />GET guarantees the response relates to the input URI in a very precise and predictable way<br />...
SADI Observation #1:<br />We can fix that!<br />(without breaking any existing rules or standards!)<br />
SADI Observation #2:<br />All Web Services in Bioinformatics create implicitbiologicalrelationships between their input an...
SADI Observation #2:<br />
SADI: Core Proposition<br />Make the implicit explicit<br />Model all Web Services this way<br />
SADI: Core Proposition<br />Web Service output must be Triples<br />SUBJECT URI of the output graph is the same URI as the...
Consequence(i.e. why SADI works!)<br />The Semantics of the triples <br />from a Web Service are now explicit and identica...
How do we exploit this?<br />Current Web Service definition systems such as WSDL, and OWL-S are missing a crucial annotati...
How do we exploit this?<br />With SADI services, this relationship can be automatically derived by “diff-ing” the input an...
How do we exploit this?<br />We have constructed a simple prototype Web Services registry that provides discovery based on...
Demo #1<br />a plug-in to the <br />IO-Informatics Knowledge Explorer<br />
The Sentient Knowledge Explorerfrom IO InformaticsA Semantic Integration, Visualization and Search Tool<br />
SADI Plug-in to the Sentient Knowledge Explorer<br />The Knowledge Explorer has a plug-ins API that we have utilized to pa...
BACKGROUND of DATASET<br />NIST toxicity compendium study <br />8 toxicants<br />Liver<br />Serum<br />Urine<br />Genomic ...
 Microarray studies were conducted under NIEHS contract # N01-ES-65406.
 The Alcohol study was conducted under NIAAA contract # HHSN281200510008C in collaboration with Bowles Center for Alcohol ...
 This work was also made possible through contributions from members of IO Informatics’ Working Group on “Semantic Applica...
Call SADI to provide discovery of predicates based on data-type<br />
SADI fills-in the “Encodes” property from the discovered Web Service(s)<br />
Discover services that provide the hasGOTerm property for Protein Sequence datatype<br />
DEMO<br />Knowledge ExplorerPlug-in<br />For more information about the Knowledge Explorer surf to:http://io-informatics.c...
SADI Demo #2Imagine there is a “virtual graph” connecting every conceivable input for every conceivable Web Service to the...
“SHARE”Semantic Health And Research EnvironmentSADI client application<br />
What pathways does UniProt protein P47989 belong to?<br />PREFIX pred: &lt;http://sadiframework.org/ontologies/predicates....
Recapwhat we just saw<br />A standard SPARQL query was entered into SHARE  – a SADI-based query engine<br />The query was ...
Recapwhat we just saw<br />We posed, and answered a complex database query <br />WITHOUT A DATABASE<br />(in fact, the dat...
RDF graph browsing and querying is useful… …but where’s the semantics??Let’s bring in some ontologies!<br />
My Definition of Ontology (for this talk)<br />Ontologies explicitly define the things that exist in “the world” based on ...
 Ontology Spectrum<br />Frames<br />(Properties)<br />Thesauri<br />“narrower<br />term”<br />relation<br />Selected<br />...
Semantic Web?<br />An information system where machines can receive information from one source, re-interpret it, and corr...
Dynamic Discovery DistributedInterpretationRe-interpretation<br />
Powered by SADI<br />Prototype SADI-enabled SWS Client<br />
Data exhibits “late binding”<br />
Late binding:“purpose and meaning” <br />of the data isnot determined untilthe moment it is required<br />
Benefit<br />of late binding<br />Data is amenable to<br />constant re-interpretation<br />
How do we achieve this?<br />DO NOT <br />PRE-CLASSIFY DATA!<br />just hang properties on it<br />
These are axioms that enable classification<br />Frames<br />(Properties)<br />Thesauri<br />“narrower<br />term”<br />rel...
Design OWL-DL ontologies describing cardiovascular concepts<br />Ontologies are in the “Frames+” area of the Ontology spec...
What the…???  Did you just say “execute ontologies as  workflows?!”<br />
Another interesting consequence of the SADI architectureOntology = Query = Workflow<br />
WORKFLOW<br />
QUERY:<br />SELECT images of mutations from genes in organism XXX that share homology to this gene in organism YYY<br />
Concept:<br />“Homologous Mutant Image”<br />
As OWL AxiomsHomologousMutantImage is  owl:equivalentTo {<br />Gene Q   hasImage   image P<br />Gene Q   hasSequence   Seq...
Those axioms combine to create an <br />OWL Class:<br />homologous mutant images<br />
QUERY:<br />Retrieve owl:homologous mutant images for gene XXX<br />
Demo #3<br />Discover instances of OWL classes <br />from data that doesn’t exist…<br />
Show me patients whose creatinine level is increasing over time, along with their latest BUN and creatinine levels.<br />P...
Show me patients whose creatinine level is increasing over time, along with their latest BUN and creatininelevels(now as a...
Start burrowing through the OWL class  find that we need aregression model OWL class<br />
Regression models have features like slopes and intercepts… and so onThe class is completely decomposed until a set of req...
Successful decomposition of the OWL class to discover <br />the need for a LinearRegression Web Service, and so on<br />
VOILA!<br />
Demo #3<br />Discover instances of OWL classes <br />from data that doesn’t exist…<br />
SADI and CardioSHARE<br />OWL Class restrictions converted into workflows<br />SPARQL queries converted into workflows<br ...
(AFAIK)This is a completely novel behaviour!<br />
Ontologies are reasonedWorkflows are executedQueries are resolvedso what do we call what this client does??<br />
“Reckoning”Dynamic discovery of instances of OWL classes through synthesis and invocation of a Web Service workflow capabl...
But OWL Classes can be (and often are) completely “made-up”What does that mean in the context of SADI and CardioSHARE?<br />
Current Research We believe that ontologies and hypothesesare, in some ways, the same “thing”……simply assertions about ind...
Current Research Constructing OWL classes that represent patient categories mimicking clinical outcomes research experimen...
Hypothesis<br />Ischemia<br />SADI<br />Web <br />“agents”<br />Hypertension<br />Blood Pressure<br />CardioSHARE architec...
Recap<br />SADI Semantic Web Services generate triples; the predicates of those triples are indexed... Period!!<br />For a...
Semantic Web<br />An information system where machines can receive information from one source, re-interpret it, and corre...
What SADI + SHARE supports<br />Re-interpretation :<br />The SADI data-store simply collects properties, and matches them ...
What SADI + SHARE supports<br />Novel re-use:<br />Because we don’t pre-classify, there is no way for the provider to dict...
Important “wins”<br />Data remains distributed – no warehouse!<br />Data is not “exposed” as a SPARQL endpoint  greater p...
And all this because we simply require <br />that the input URI <br />is the same as the output URI<br />
Upcoming SlideShare
Loading in …5
×

SADI SWSIP '09 'cause you can't always GET what you want!

3,582 views

Published on

My presentation to the IEEE Asia Pacific Services Computing Conference 2009 - Semantic Web Services In Practice (SWSIP 09) track. This show introduces the SADI (Semantic Automated Discovery and Integration) Framework - the replacement for our earlier explorations with the BioMoby project. In this slideshow I explore what SADI is, and why it is able to generate such interesting (and useful!) Semantic-Webby behaviours from Web Services. I also discuss our current research activities around how we are trying to exploit the SADI system to create much more natural query interfaces for Cardiovascular researchers.

Published in: Technology

SADI SWSIP '09 'cause you can't always GET what you want!

  1. 1. ’cause you can’t always GET what you want!<br />
  2. 2. Web Servicesvs.Semantic Web<br />
  3. 3. Web Servicesare not “connected” to the Semantic WebWhy?<br />
  4. 4. Web ServicesXML + XML SchemaSemantic WebRDF + OWL<br />
  5. 5. Web ServicesPOST of SOAP-XMLSemantic WebGET of RDF-XML<br />
  6. 6. Web ServicesNo (rigorous) semanticsSemantic WebRich, flexible semantics<br />
  7. 7. Web Services&Semantic Web Fundamentally different technologies! <br />
  8. 8.
  9. 9. &gt;1000 X more data in the Deep Web than in Web pagesIn bioinformatics this is primarily databases and analytical algorithms<br />
  10. 10. Web Service output is criticalto success for the Semantic Web!!<br />
  11. 11. Research Question<br />
  12. 12. WITHOUT INVENTING A NEW <br />TECHNOLOGY OR STANDARD<br />
  13. 13. Can we define frameworks and/or best practices <br />that make Web Services <br />“transparent” to the Semantic Web?<br />
  14. 14. Semantic Web?<br />An information system where machines can receive information from one source, re-interpret it, and correctly use it for a purpose that the source had not anticipated.<br />
  15. 15. Semantic Web?<br />If we cannot achieve those two things, then IMO we don’t have a “semantic web”, we only have a distributed (??), linked database… and that isn’t particularly exciting…<br />
  16. 16. What do we need to do?<br />Make Web Services exhibit the same “behavior” as GET<br />Add rich Semantics to Web Services at every level of the WS “stack”<br />
  17. 17. What do we have to work with?(Without inventing new technologies or standards…)<br />Data<br />Interface annotations<br />
  18. 18. Semantic Automated Discovery and Integrationhttp://sadiframework.org<br />Founding partner<br />
  19. 19. History of SADIBased on observations of the usage and behaviour of BioMoby Semantic Web Servicessince 2002<br />
  20. 20. SADI Observation #1:<br />What does ‘GET’ really do? What “behaviour” of GET do we need to mimic in a Web Service?<br />
  21. 21. SADI Observation #1:<br />GET guarantees the response relates to the input URI in a very precise and predictable way<br />POST does not…<br />Web Services have a fundamentally different semantic behaviour than the Semantic Web<br />
  22. 22. SADI Observation #1:<br />We can fix that!<br />(without breaking any existing rules or standards!)<br />
  23. 23. SADI Observation #2:<br />All Web Services in Bioinformatics create implicitbiologicalrelationships between their input and output<br />
  24. 24. SADI Observation #2:<br />
  25. 25. SADI: Core Proposition<br />Make the implicit explicit<br />Model all Web Services this way<br />
  26. 26. SADI: Core Proposition<br />Web Service output must be Triples<br />SUBJECT URI of the output graph is the same URI as the SUBJECT URI of the input graphthat was POSTedto the Web Service<br />Define OWL classes that describe your input and output triples<br />
  27. 27. Consequence(i.e. why SADI works!)<br />The Semantics of the triples <br />from a Web Service are now explicit and identical to the Semantics of GET<br />
  28. 28. How do we exploit this?<br />Current Web Service definition systems such as WSDL, and OWL-S are missing a crucial annotation element…<br />…the semantic relationship between input and output<br />
  29. 29. How do we exploit this?<br />With SADI services, this relationship can be automatically derived by “diff-ing” the input and output OWL classes<br />…because the SUBJECT node of the input and output graphs is guaranteed to be the same!<br />
  30. 30. How do we exploit this?<br />We have constructed a simple prototype Web Services registry that provides discovery based on annotation of these biological relationships<br />
  31. 31. Demo #1<br />a plug-in to the <br />IO-Informatics Knowledge Explorer<br />
  32. 32. The Sentient Knowledge Explorerfrom IO InformaticsA Semantic Integration, Visualization and Search Tool<br />
  33. 33. SADI Plug-in to the Sentient Knowledge Explorer<br />The Knowledge Explorer has a plug-ins API that we have utilized to pass data directly from SADI to the KE visualization and exploration system<br />Data elements in KE are queried for their “type” (rdf:type); this is used to discover additional data properties by querying the SADI Web Service registry<br />
  34. 34. BACKGROUND of DATASET<br />NIST toxicity compendium study <br />8 toxicants<br />Liver<br />Serum<br />Urine<br />Genomic [Affymetrix MA]<br />Metabolomic [LC/MS] data<br /><ul><li>conducted under NIST Advanced Technology Program (ATP), Award # 70NANB2H3009 as a Joint Venture between Icoria / Cogenics (Division of CLDA) and IO Informatics.
  35. 35. Microarray studies were conducted under NIEHS contract # N01-ES-65406.
  36. 36. The Alcohol study was conducted under NIAAA contract # HHSN281200510008C in collaboration with Bowles Center for Alcohol Studies (CAS) at UNC.
  37. 37. This work was also made possible through contributions from members of IO Informatics’ Working Group on “Semantic Applications for Translational Research”.</li></li></ul><li>DEMO<br />Knowledge ExplorerPlug-in<br />For more information about the Knowledge Explorer surf to:http://io-informatics.com<br />
  38. 38.
  39. 39.
  40. 40.
  41. 41.
  42. 42. Call SADI to provide discovery of predicates based on data-type<br />
  43. 43.
  44. 44. SADI fills-in the “Encodes” property from the discovered Web Service(s)<br />
  45. 45.
  46. 46. Discover services that provide the hasGOTerm property for Protein Sequence datatype<br />
  47. 47.
  48. 48. DEMO<br />Knowledge ExplorerPlug-in<br />For more information about the Knowledge Explorer surf to:http://io-informatics.com<br />
  49. 49. SADI Demo #2Imagine there is a “virtual graph” connecting every conceivable input for every conceivable Web Service to their respective outputs How do we query that graph?<br />
  50. 50. “SHARE”Semantic Health And Research EnvironmentSADI client application<br />
  51. 51.
  52. 52. What pathways does UniProt protein P47989 belong to?<br />PREFIX pred: &lt;http://sadiframework.org/ontologies/predicates.owl#&gt;<br />PREFIX ont: &lt;http://ontology.dumontierlab.com/&gt;<br />PREFIX uniprot: &lt;http://lsrn.org/UniProt:&gt;<br />SELECT ?gene ?pathway <br />WHERE { <br /> uniprot:P47989 pred:isEncodedBy ?gene . <br /> ?gene ont:isParticipantIn ?pathway . <br />}<br />
  53. 53.
  54. 54.
  55. 55.
  56. 56. Recapwhat we just saw<br />A standard SPARQL query was entered into SHARE – a SADI-based query engine<br />The query was interpreted to extract the properties being queried and these were passed to SADI for Web Service discovery<br />SADI searched-for, found, and accessed the databases and/or analytical tools capable of generating those properties<br />
  57. 57. Recapwhat we just saw<br />We posed, and answered a complex database query <br />WITHOUT A DATABASE<br />(in fact, the data didn’t even have to exist...)<br />
  58. 58. RDF graph browsing and querying is useful… …but where’s the semantics??Let’s bring in some ontologies!<br />
  59. 59. My Definition of Ontology (for this talk)<br />Ontologies explicitly define the things that exist in “the world” based on what propertieseach kind of thing must have<br />
  60. 60. Ontology Spectrum<br />Frames<br />(Properties)<br />Thesauri<br />“narrower<br />term”<br />relation<br />Selected<br />Logical<br /> Constraints<br />(disjointness, <br />inverse, …) <br />Catalog/<br />ID<br />Formal<br />is-a<br />Informal<br />is-a<br />Formal<br />instance<br />General<br />Logical<br />constraints<br />Terms/<br />glossary<br />Value Restrs.<br />
  61. 61. Semantic Web?<br />An information system where machines can receive information from one source, re-interpret it, and correctly use it for a purpose that the source had not anticipated.<br />
  62. 62. Dynamic Discovery DistributedInterpretationRe-interpretation<br />
  63. 63. Powered by SADI<br />Prototype SADI-enabled SWS Client<br />
  64. 64. Data exhibits “late binding”<br />
  65. 65. Late binding:“purpose and meaning” <br />of the data isnot determined untilthe moment it is required<br />
  66. 66. Benefit<br />of late binding<br />Data is amenable to<br />constant re-interpretation<br />
  67. 67. How do we achieve this?<br />DO NOT <br />PRE-CLASSIFY DATA!<br />just hang properties on it<br />
  68. 68. These are axioms that enable classification<br />Frames<br />(Properties)<br />Thesauri<br />“narrower<br />term”<br />relation<br />Selected<br />Logical<br /> Constraints<br />(disjointness, <br />inverse, …) <br />Catalog/<br />ID<br />Formal<br />is-a<br />Informal<br />is-a<br />Formal<br />instance<br />General<br />Logical<br />constraints<br />Terms/<br />glossary<br />Value Restrs.<br />These are <br />indexing/annotation systems<br />
  69. 69. Design OWL-DL ontologies describing cardiovascular concepts<br />Ontologies are in the “Frames+” area of the Ontology spectrum, and therefore can leverage SADI and be “executed” as workflows<br />
  70. 70. What the…??? Did you just say “execute ontologies as workflows?!”<br />
  71. 71. Another interesting consequence of the SADI architectureOntology = Query = Workflow<br />
  72. 72.
  73. 73. WORKFLOW<br />
  74. 74. QUERY:<br />SELECT images of mutations from genes in organism XXX that share homology to this gene in organism YYY<br />
  75. 75. Concept:<br />“Homologous Mutant Image”<br />
  76. 76. As OWL AxiomsHomologousMutantImage is owl:equivalentTo {<br />Gene Q hasImage image P<br />Gene Q hasSequence Sequence Q<br />Gene R hasSequence Sequence R Sequence Q similarTo Sequence R<br />Gene R = “my gene of interest” }<br />
  77. 77. Those axioms combine to create an <br />OWL Class:<br />homologous mutant images<br />
  78. 78. QUERY:<br />Retrieve owl:homologous mutant images for gene XXX<br />
  79. 79. Demo #3<br />Discover instances of OWL classes <br />from data that doesn’t exist…<br />
  80. 80. Show me patients whose creatinine level is increasing over time, along with their latest BUN and creatinine levels.<br />PREFIX regress: &lt;http://sadiframework.org/examples/regression.owl#&gt; <br />PREFIX patients: &lt;http://sadiframework.org/ontologies/patients.owl#&gt; <br />PREFIX pred: &lt;http://sadiframework.org/ontologies/predicates.owl#&gt; <br />SELECT ?patient ?bun ?creat<br />FROM &lt;http://sadiframework.org/ontologies/patients.rdf&gt;<br />WHERE {<br /> ?patient patients:creatinineLevels ?collection . <br /> ?collection regress:hasRegressionModel ?model . <br /> ?model regress:slope ?slope<br /> FILTER (?slope &gt; 0) .<br /> ?patient pred:latestBUN ?bun . <br /> ?patient pred:latestCreatinine ?creat . <br />}<br />
  81. 81.
  82. 82.
  83. 83.
  84. 84. Show me patients whose creatinine level is increasing over time, along with their latest BUN and creatininelevels(now as an OWL class  ElevatedCreatininePatient)<br />PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; <br />PREFIX patients: &lt;http://sadiframework.org/ontologies/patients.owl#&gt; <br />PREFIX pred: &lt;http://sadiframework.org/ontologies/predicates.owl#&gt; <br />SELECT ?patient ?bun ?creat<br />FROM &lt;http://sadiframework.org/ontologies/patients.rdf&gt;<br />WHERE {<br /> ?patient rdf:typepatients:ElevatedCreatininePatient .<br /> ?patient pred:latestBUN ?bun . <br /> ?patient pred:latestCreatinine ?creat . <br />}<br />
  85. 85. Start burrowing through the OWL class  find that we need aregression model OWL class<br />
  86. 86. Regression models have features like slopes and intercepts… and so onThe class is completely decomposed until a set of required Services are discoveredcapable of creating all these necessary properties<br />
  87. 87. Successful decomposition of the OWL class to discover <br />the need for a LinearRegression Web Service, and so on<br />
  88. 88. VOILA!<br />
  89. 89. Demo #3<br />Discover instances of OWL classes <br />from data that doesn’t exist…<br />
  90. 90. SADI and CardioSHARE<br />OWL Class restrictions converted into workflows<br />SPARQL queries converted into workflows<br />Reasoning happening at the same time as queries are being executed<br />
  91. 91. (AFAIK)This is a completely novel behaviour!<br />
  92. 92. Ontologies are reasonedWorkflows are executedQueries are resolvedso what do we call what this client does??<br />
  93. 93. “Reckoning”Dynamic discovery of instances of OWL classes through synthesis and invocation of a Web Service workflow capable of generating data described by the OWL Class restrictions, followed by reasoning to classify the data into that ontology<br />
  94. 94. But OWL Classes can be (and often are) completely “made-up”What does that mean in the context of SADI and CardioSHARE?<br />
  95. 95. Current Research We believe that ontologies and hypothesesare, in some ways, the same “thing”……simply assertions about individuals that may or may not existIf an instance of a class exists, then the hypothesis is “validated”<br />
  96. 96. Current Research Constructing OWL classes that represent patient categories mimicking clinical outcomes research experiments done on the BC Cardiac RegistryThe original experiments have already been published, and therefore act as a gold-standardWe attempt to use “Reckoning” to automatically discover instances of these patient Classes and compare our results with those of the clinical researchers<br />
  97. 97.
  98. 98. Hypothesis<br />Ischemia<br />SADI<br />Web <br />“agents”<br />Hypertension<br />Blood Pressure<br />CardioSHARE architecture: Increasingly complex ontological layers organize data into richer concepts, even hypotheses<br />Database 1<br />Database 2<br />AnalysisAlgorithmXX<br />
  99. 99. Recap<br />SADI Semantic Web Services generate triples; the predicates of those triples are indexed... Period!!<br />For a given query, determine which properties are available, and which need to be discovered/generated<br />Discovery of services through index queries + on-the-fly “classification” of local data against the service interface OWL Classes<br />
  100. 100. Semantic Web<br />An information system where machines can receive information from one source, re-interpret it, and correctly use it for a purpose that the source had not anticipated.<br />
  101. 101. What SADI + SHARE supports<br />Re-interpretation :<br />The SADI data-store simply collects properties, and matches them up with OWL Classes in a SPARQL query and/or from individual service provider’s Web Service interface<br />
  102. 102. What SADI + SHARE supports<br />Novel re-use:<br />Because we don’t pre-classify, there is no way for the provider to dictate how their data should be used. They simply add their properties into the “cloud” and those properties are used in whatever way is appropriate for me.<br />
  103. 103. Important “wins”<br />Data remains distributed – no warehouse!<br />Data is not “exposed” as a SPARQL endpoint  greater provider-control over computational resources<br />Yet data appears to be a SPARQL endpoint… no modification of SPARQL or reasoner required.<br />
  104. 104. And all this because we simply require <br />that the input URI <br />is the same as the output URI<br />
  105. 105. Join us!<br />SADI and CardioSHARE are Open-Source projects<br />Come join us – we’re having a lot of fun!!<br />http://sadiframework.org<br />
  106. 106. Credits<br />Benjamin VanderValk (SADI & CardioSHARE)<br />Luke McCarthy (SADI & CardioSHARE)<br />SoroushSamadian (CardioSHARE)<br />IO Informatics (Knowledge Explorer API)<br />microsoftResearch<br /> Fin<br />

×