SlideShare une entreprise Scribd logo
1  sur  91
LS4LS
Linked Services for Life Science
      Sebastian Speiser, KIT, DE
 Ruben Verborgh, Ghent University, BE
LS4LS
Linked APIs for Life Science
     Linked APIs is the joint effort of
independently developed approaches to
 align Linked Data and “functionalities”
Agenda
•   Motivation
•   Linked Data
•   REST APIs
•   Linked APIs
•   Describing APIs
•   Working with Linked APIs
•   Conclusions
Motivating example
• Find potential drugs for disease
  – Get disease and associated genes
  – Get proteins produced by the genes
  – Find similar proteins for which drugs exist
  – Output drugs
Motivating example: sources
• Diseases and associated genes:
   – OMIM - Online Mendelian Inheritance in
     Man, http://www.ncbi.nlm.nih.gov/omim/
• Proteins produced by the genes
   – UniProt, http://www.uniprot.org/
• Finding similar proteins
   – E.g., UniProt BLAST service
• Findings drugs targeting given proteins
   – DrugBank, http://www.drugbank.ca/
• Good news: all sources available
Automation by workflows
• Integrating the sources and services by hand?
• No problem for one time procedure:
  just copy/paste from/to Web sites
• But: diseases affect multiple genes, drugs
  target multiple proteins, …
• Workflows formally specify the procedure
  using machine-accessible services
• Repeatable, documented, automated
The details of Workflows
• Powerful tools with nice UI available,e.g. Taverna




• But: a lot of power wasted for parsing, selecting and
  transforming data to make services interoperable
• “Gluing code” written again and again
RDF for integration
• Use common data model for data and services
• Take RDF!
• Why not XML, JSON, CSV, … ?
1. Data and vocabulary terms identified by URIs
2. Graph structure
3. Extendable vocabulary
4. Support for data and vocabulary alignment
   (subClassOf, subPropertyOf, sameAs)
RDF for integration
• Graph merging is easy

         disease:D1                    gene:G1
                      associatedGene




          prot:P1                      gene:G1
                       produces
RDF for integration
• Graph merging is easy

         disease:D1                     gene:G1
                      associatedGene




                             produces


          prot:P1
Where should the data live?
• Many Life Science datasets available in RDF
• How to work with the data?
Possibility 1: load all datasets into a warehouse
• Many different redundant copies of data exist
• Every copy has to be kept up-to-date
• Lot of storage required even for simple problems
• Not every provider wants to give away all his data
Where should the data live?
• Many Life Science datasets available in RDF
• How to work with the data?
Possibility 2: access live data over the Web
• Data is always up-to-date
• Only required data is taken
• Pay-as-you-go data integration
• Providers keeps control of their data
Linked Data as a standardized way to access data
Agenda
•   Motivation
•   Linked Data
•   REST APIs
•   Linked APIs
•   Describing APIs
•   Working with Linked APIs
•   Conclusions
Linked Data
•   Data resides at provider/owner
•   Access is given in small units
•   Standard way to access data given its ID (URI)
•   Links to other datasets containing further
    relevant information

• Lots of data available: Linked Open Data
Linked Open Data




http://linkeddata.org/
Linked Open Data – Life Sciences




http://linkeddata.org/
Linked Data Principles
1. Use URIs to name things; not only
    documents, but also
    people, locations, concepts, etc.
2. To enable agents (human users and machine
    agents alike) to look up those names, use HTTP
    URIs
3. When someone looks up a URI we provide
    useful information; with 'useful' in the strict
    sense we usually mean structured data in RDF.
4. Include links to other URIs allowing agents
http://www.w3.org/DesignIssues/LinkedData discover more things
    (machines and humans) to
Principles 1&2:
        name things with HTTP URIs
• URIs for information resources:
  http://www.uniprot.org
  http://speiserweb.de/sebastian/foaf.rdf
• URIs for instances:
  http://www4.wiwiss.fu-
  berlin.de/diseasome/resource/diseases/1021
• Prefixes for more readability:
  PREFIX diseasome: <http://www4.wiwiss.fu-
  berlin.de/diseasome/resource/diseasome/>
• URIs for classes:
  diseasome:diseases
• URIs for properties:
  diseasome:associatedGene
Principle 3:
provide RDF when URI is dereferenced
• Information resources are documents which
  can be retrieved directly
• Non-information resources either
  – use local names, e.g.:
    http://www.w3.org/2000/01/rdf-schema#label,  or
  – use HTTP redirects to information resources, e.g.:
    diseasome:diseases/1021

• Looking up an URI results in a RDF description
  of the identified ting
Principle 3:
provide RDF when URI is dereferenced
Example:
HTTP GET on
http://www4.wiwiss.fu-berlin.de/diseasome/
                      resource/diseases/1021
Redirect to: http://…/data/diseases/1021 containg:
PREFIX diseasome: <http://…/diseasome/>
diseasome:diseases/1021
          diseasome:associatedGene
                            diseasome:genes/ACE.
diseasome:diseases/1012 rdfs:label
                         “SARS, progression of”.
Principle 4:
        include links to other URIs
• Links enable discovery of further relevant data
• E.g.:
  diseasome:diseases/1021
       diseasome:associatedGene
                  diseasome:genes/ACE
• Retrieving URI of associated gene returns
  description of gene with further information
  and links
• Valuable: links crossing dataset boundaries
Missing from Linked Data: APIs
• Not all data sources will be published as fully
  materialised data sets
• Reasons include:
  – Data is changing constantly (e.g. sensor data)
  – Data is calculated based on infinitely many inputs
    (e.g. similarity between two gene sequences)
  – Provider does not want arbitrary access (e.g. flight
    ticket prices, social networks)
Agenda
•   Motivation
•   Linked Data
•   REST APIs
•   Linked APIs
•   Describing APIs
•   Working with Linked APIs
•   Conclusions
HTML and HTTP drive the human Web.



               HTTP
HTML and HTTP drive the human Web.



               HTTP
HyperText Markup Language

<h1>Genes associated with Parkinson’s</h1>
<p>Associated with Parkinson’s:</p>
<ol>
 <li><a href="/genes/47">Gene A</a></li>
 <li><a href="/genes/80">Gene B</a></li>
 <li><a href="/genes/21">Gene C</a></li>
</ol>
HyperText Markup Language

<h1>Genes associated with Parkinson’s</h1>
<p>Associated with Parkinson’s:</p>
<ol>
 <li><a href="/genes/47">Gene A</a></li>
 <li><a href="/genes/80">Gene B</a></li>
 <li><a href="/genes/21">Gene C</a></li>
</ol>
HyperText Markup Language

<h1>Genes associated with Parkinson’s</h1>
<p>Associated with Parkinson’s:</p>
<ol>
 <li><a href="/genes/47">Gene A</a></li>
 <li><a href="/genes/80">Gene B</a></li>
 <li><a href="/genes/21">Gene C</a></li>
</ol>
HyperText Markup Language

<h1>Genes associated with Parkinson’s</h1>
<p>Associated with Parkinson’s:</p>
<ol>
 <li><a href="/genes/47">Gene A</a></li>
 <li><a href="/genes/80">Gene B</a></li>
 <li><a href="/genes/21">Gene C</a></li>
</ol>
HTML and HTTP drive the human Web.



               HTTP
HyperText Transfer Protocol

• Simple model
  – resources
• Limited actions
  – GET, POST, PUT, DELETE
• Extensible headers
  – Accept
HTTP works with messages.




GET /genes HTTP/1.1   HTTP/1.1 200 OK
HTTP works with messages.




POST /genes HTTP/1.1   HTTP/1.1 200 OK
This is the Web for humans.
This does not work for machines.




GET /genes HTTP/1.1   HTTP/1.1 200 OK
“Simple” Object Access Protocol

POST /GeneService.php HTTP/1.1

<?xml version="1.0"?>
<soap:Envelope xmlns:soap=
         "http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
  </soap:Header>
  <soap:Body>
    <m:GetGenes xmlns:m="http://www.ex.org/genes" />
  </soap:Body>
</soap:Envelope>
Let’s try things the “simple” way.




GET /genes HTTP/1.1    HTTP/1.1 200 OK
SOAP is not the Web for machines.
• SOAP is not about resources.
  – uses HTTP as a tunneling protocol
• SOAP is programming over the Web.
  – basically doing site.getGenes()
  – but HTTP already has verbs
So suddenly, there were two Webs.
A JavaScript revolution came.
• Dynamic pages require JavaScript.
• JavaScript uses JSON.


                               JSON

                               JSON

                               JSON
JSON has a tree structure.

{
    "disease": "Parkinson's",
    "associatedGenes": [
      { "id": 47, "name": "A"},
      { "id": 80, "name": "B"},
      { "id": 21, "name": "C"},
    ]
}
People thought they needed APIs.
• Idea: get things in JSON.
  – /api/getGenes.php?diseaseId=32&format=json
  – /api/listDeseases.php?beginLetter=P&format=json


• Again, this is not resource-oriented.
  – Again, it is stuff for programmers.
JSON APIs have serious drawbacks.
• Every API is different.
• No semantics inside the data.
• Client need to be programmed specifically.
There are still two Webs.

                   JSON

                          JSON

                  JSON
And it doesn't end there.
• What if we also need semantics?
• No problem, just create a new API.
  – /diseases/parkinsons/associated-genes.html
  – /api/getGenes.php?diseaseId=32&format=json
  – /api/getGenes.php?diseaseId=32&format=rdf




                     RDF
Now there are three Webs.

                     JSON

                            JSON

                    JSON




             RDF




  And whose are they anyway?
We need only one Web.
Every new service claims to be REST.
   Raise your hand if you’ve heard about any of:
   –   REST.
   –   RESTful API.
   –   More RESTful API.
   –   RESTful Web service.
   –   Representational State Transfer.
   –   RESTful practices.
   –   This is not REST.
   –   This is REST.
   –   REST!!!
REST is just proper HTTP.
Representational State Transfer
• Resources are the essential elements.
• Resources are your building blocks:
  – genes /genes/37
  – diseases /diseases/32
  – proteines /proteines/45
Resources have representations.
• The server cannot serve resources.
  – How would you send a gene across a cable?
• The server sends representations.
  –   HTML
  –   JSON
  –   RDF     /genes/37
  –   JPEG
  –   ...
• The client negotiates about the representation.
Humans understand text.




GET /genes/37 HTTP/1.1         HTTP/1.1 200 OK
Accept: text/html      Content-type: text/html
Humans understand images.




GET /genes/37 HTTP/1.1          HTTP/1.1 200 OK
Accept: image/*        Content-type: image/jpeg
Machines interpret JSON.




GET /genes/37 HTTP/1.1         HTTP/1.1 200 OK
Accept: text/json      Content-type: text/json
Machines interpret RDF.




GET /genes/37 HTTP/1.1        HTTP/1.1 200 OK
Accept: text/turtle Content-type: text/turtle
REST is driven by hyperlinks.
• Hypermedia constraint:
  serve representation and controls.
• Typed hypermedia links.

                  /genes/37

     associatedWith /diseases/parkinsons
     associatedWith /diseases/dementia
     produces       /proteines/78
REST
No services.
One resource.
Different representations
 with hypermedia links.
Agenda
•   Motivation
•   Linked Data
•   REST APIs
•   Linked APIs
•   Describing APIs
•   Working with Linked APIs
•   Conclusions
What can be Linked in APIs?
Descriptions of APIs can be exposed as Linked
Data
• linked from API directory
• linked from schema elements to relevant APIs
  – e.g., property description of gene sequence could
    link to API
• linked from instance data
  – e.g., description of organism could link to
    database search API
What can be Linked in APIs?
API calls can be given URI, and be linkable from
other data sets, e.g.
• description of person links to API call returning its
  geographic coordinates
• API description can link to another API call
  returning the load factor of the hosting server
• list of genes links for every gene to an API call
  returning list of gene databases that have
  information about the gene available (two steps)
What can be Linked in APIs?
Output of API can contain links to
• … other data sets, e.g., diseases to DBpedia concepts
• … other API calls, e.g., search in other databases
• … other API descriptions,
      e.g., specialised API directory


                      Links help to
                     discover APIs,
               interpret their output, and
        integrate with data from others sources.
Agenda
•   Motivation
•   Linked Data
•   REST APIs
•   Linked APIs
•   Describing APIs
•   Working with Linked APIs
•   Conclusions
Linked API principles
• Restrict to data APIs (today)
• Describe APIs as Linked Data prosumers
  – No grounding: just communicate RDF
• Make relation between input and output
  explicit
Data APIs
• Given input, provide output
• API-specific relation btw. input and output

             Input     relation      Output


                           defines

                       Service
• Example:
  – input gene with sequence, output: list of genes
  – relation: “have similar sequences”
Linked APIs as LD Prosumers
• Linked APIs consume and produce RDF
• Standard way to describe subgraphs for RDF:
  Basic Graph Patterns (BGPs) as in SPARQL
Example:
• Input:
 ?prot1 lals:proteinSequence ?seq
• Output:
 ?prot1 lals:similar_to ?prot2
Explicit relation between
            Input and Output
• API invocation can be regarded as rule
  applications: [input] => [output]
• Output contains unbound variables (not
  occurring in input)
• Unbound variables are bound by API
• At least one bound variable in output
  makes relation between input and output explicit
Example:
   ?prot1 lals:proteinSequence ?seq
=> ?prot1 lals:similar_to ?prot2
     bound                           unbound
Describing API Call Construction
• Besides describing input, output and their
  relation, one needs to know which URIs to call
• Several possibilities:
  – Constant URI to which RDF of input is sent
  – Convention how to construct URI from parameters
    (bindings to input pattern)
  – Rule-based URI generation
Concrete Linked API approaches
• Several independently developed approaches:
  – Linked Data Services by Sebastian Speiser, Andreas
    Harth
  – RESTdesc by Ruben Verborgh, Thomas Steiner
  – Linked Open Services by Barry Norton,
    Reto Krummenacher, Steffen Stadtmüller


• Currently in the process of aligning them
LInked Data Services (LIDS)
• Descriptions:
   – Input and output BGPs
   – Endpoint (base URI)
   – Service entity (a bound variable in the output BGP)
• Convention to create URIs for service calls:
   – Endpoint + parameter bindings + # + service entity
• Parameter binding can be LD URI for further
  lookup
• Dereferencing service call URI results in
  description of service entity that relates to output
  data
LInked Data Services (LIDS)
Example:
Input:    ?prot lals:proteinSequence ?seq
Output: ?prot lals:similar_to ?prot2
Endpoint: http://localhost:8080/LALS/simProts
Service entity: prot
• Binding for ?seq = “MRVVLAALTALAART …”
• Construct service call:
   http://…simProts?seq=MRV…#prot
• Service call URI identifies the protein with the given
   sequence
• Dereferencing the URI returns description:
   <http://…simProts?seq=MRV…#prot>
                      lals:similar_to
                                  <http://…/protXYZ> .
RESTdesc describes hyperlinks.
• REST APIs have hypermedia links.
• Machines should browse the Web like humans.
• What does it mean to follow a link?
  – explain to machines in RDF
  – using if/then contruct


            resource                     resource
               A       hypermedia link       B
A client receives unknown links.

          /proteins/53

   producedBy /genes/37
   producedBy /genes/54
   similarTo   /proteins/4
   similarTo   /proteins/6
   hasSequenceSimilarTo /sequences/9
RESTdesc describes this link.

protein                            sequence
   A        hasSequenceSimilarTo      B




similarTo                          hasSequence
                  protein
                     B
RESTdesc describes this link.
{
    ?proteinA lals:hasSequenceSimilarTo ?sequenceB.
}
=>
{
  _:req http:methodName "GET";
        http:requestURI ?sequenceB;
        http:resp ?sequenceB.

   ?proteinA lals:similarTo _:proteinB.
  _:proteinB lals:hasSequence ?sequenceB.
}.
If you have this link...
{
    ?proteinA lals:hasSequenceSimilarTo ?sequenceB.
}
=>
{
  _:req http:methodName "GET";
        http:requestURI ?sequenceB;
        http:resp ?sequenceB.

   ?proteinA lals:similarTo _:proteinB.
  _:proteinB lals:hasSequence ?sequenceB.
}.
...then you can make a request...
{
    ?proteinA lals:hasSequenceSimilarTo ?sequenceB.
}
=>
{
  _:req http:methodName "GET";
        http:requestURI ?sequenceB;
        http:resp ?sequenceB.

   ?proteinA lals:similarTo _:proteinB.
  _:proteinB lals:hasSequence ?sequenceB.
}.
...and the response will mean this.
{
    ?proteinA lals:hasSequenceSimilarTo ?sequenceB.
}
=>
{
  _:req http:methodName "GET";
        http:requestURI ?sequenceB;
        http:resp ?sequenceB.

   ?proteinA lals:similarTo _:proteinB.
  _:proteinB lals:hasSequence ?sequenceB.
}.
RESTdesc: towards a shared Web.
• Humans and machines
  – same Web
  – same resources
     • multiple representations
     • various hypermedia links
• Explaining hypermedia links
• http://restdesc.org/
Agenda
•   Motivation
•   Linked Data
•   REST APIs
•   Linked APIs
•   Describing APIs
•   Working with Linked APIs
•   Conclusions
Executing a Workflow
•   LD and LAPIs produce RDF
•   LAPIs consume RDF
•   Query for information need consumes RDF
•   Execute workflows on triple spaces (similar to
    blackboard approach)
    – Create an empty triple space (RDF graph)
    – Load triples from LD lookups
    – Send subgraphs to services,
      add resulting triples to space
    – Evaluate target query over triple space
Executing a Workflow
• Remember example:
  find potential drugs for disease: d:1021
• Information need as SPARQL:
  SELECT ?diseaselabel ?druglabel WHERE {
    d:1021 diseasome:associatedGene ?g .
    ?g      lals:produces_protein    ?p .
    ?p      lals:similar_to   ?simprot .
    ?drug   drugbank:target ?simprot .
    ?drug   rdfs:label ?druglabel .
    d:1021 rdfs:label ?diseaselabel }
Executing a Workflow
• Step 1: find associated genes for d:1021
• Add to triple space: LD lookup for d:1021
d:1012 rdf:type diseasome:diseases;
       d:associatedGene d:genes/ACE;
       d:class d:Immunological;
       rdfs:label “SARS, progression of”;
• Lookup all associated genes, i.e., all ?g, s.t.
SELECT ?g WHERE {d:1012 d:associatedGene ?g}
• i.e., lookup d:genes/ACE and add triples
Executing a Workflow
• Step 2: find proteins produced by genes
• Apply lookup to LAPI wrapping UniProt:
  Input: ?gene rdf:type diseasome:genes .
           ?gene rdfs:label ?name
  Output: ?gene lals:produces ?prot .
           ?prot lals:sequence ?seq .
  Endpoint: http://…/LALS/genes
  Service entity: gene
• Service call: http://…/LALS/genes?name=ACE#gene
• Adds to triple space:
PREFIX : <http://…/LALS/genes?name=ACE#> .
:gene lals:produces [lals:sequence “…”         .
:gene lals:produces [lals:sequence “…”] .
   …
Executing a Workflow
• Step 3: find similar proteins
• Apply lookup to LAPI searching for similar proteins
  Input: ?prot lals:sequence               ?seq
  Output: ?prot lals:similar_to ?prot2 .
  Endpoint: http://…/LALS/simProt
  Service entity: prot
• Service call: http://…/LALS/simProt?seq=XYZ#prot
  for every found protein sequence
• Adds to triple space:
PREFIX : <http://…/LALS/simProt?seq=XYZ#> .
:prot lals:similar_to drugbank:target20 .
:prot lals:similar_to drugbank:target143 .
   …
Executing a Workflow
• Step 4: find drugs for similar proteins
• Output of previous service described found proteins as
  DrugBank targets (URIs)
• Lookup all target URIs, adds for each target to triple space:
drugbank:target143
             drugbank:proteinSequence “…” .
drugbank:drugs/DB00492
           drugbank:target drugbank:target143 .
...
• Lookup all drug URIs
Executing a Workflow
• Step 5: execute information need query
• Triple space contains information about disease, associated
  genes, produced and similar proteins, and applicable drugs
• SELECT ?diseaselabel ?druglabel WHERE ...
• Results:

        ?diseaselabel           ?druglabel
        SARS                    Deserpidine
        SARS                    Captopril
        SARS                    Enalapril
        SARS                    …
Observations
• No manual connecting of inputs and outputs
  => automatically matched
• Selecting URIs for lookups could be automated
  => LD query processors lookup partial bindings
• Vocabulary alignments by rules/ontologies can
  be integrated
Agenda
•   Motivation
•   Linked Data
•   REST APIs
•   Linked APIs
•   Describing APIs
•   Working with Linked APIs
•   Conclusions
Linked APIs the story so far …
• REST principles make APIs first-class Web
  citizens
• Descriptions enable:
  – Discovery of APIs
  – Understanding APIs
  – Integration of APIs into workflows
  – Invocation of APIs
Linked APIs for Life Scientists
• Already a lot of Life Science LD available
• Linked APIs enables dynamic data to blend in
• And more:
  – Functions
  – Real-world actions
  –…
How you can contribute
• Integrate Linked APIs in your favorite workflow
  tool
• Publish your API as a Linked API
• Tell us about your use cases
                        Ruben Verborgh
          ruben.verborgh@ugent.be – @RubenVerborgh

                      Sebastian Speiser
                       speiser@kit.edu

                         Mailing list:
           linkeddataandservices@googlegroups.com

Contenu connexe

Tendances

Usage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application ScenariosUsage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application ScenariosEUCLID project
 
Web-scale Discovery Implementation with the End User in Mind (SLA 2012)
Web-scale Discovery Implementation with the End User in Mind (SLA 2012)Web-scale Discovery Implementation with the End User in Mind (SLA 2012)
Web-scale Discovery Implementation with the End User in Mind (SLA 2012)Rafal Kasprowski
 
RSS Basics And Beyond: Tips and Tricks for Getting the Most out of Syndicate...
RSS Basics And Beyond:  Tips and Tricks for Getting the Most out of Syndicate...RSS Basics And Beyond:  Tips and Tricks for Getting the Most out of Syndicate...
RSS Basics And Beyond: Tips and Tricks for Getting the Most out of Syndicate...Ken Varnum
 
A Semantic Data Model for Web Applications
A Semantic Data Model for Web ApplicationsA Semantic Data Model for Web Applications
A Semantic Data Model for Web ApplicationsArmin Haller
 
Datat and donuts: how to write a data management plan
Datat and donuts: how to write a data management planDatat and donuts: how to write a data management plan
Datat and donuts: how to write a data management planC. Tobin Magle
 
New member webinar 052418
New member webinar 052418New member webinar 052418
New member webinar 052418Crossref
 
Webscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - Expanded
Webscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - ExpandedWebscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - Expanded
Webscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - ExpandedRafal Kasprowski
 
Interoperability for web based scholarship
Interoperability for web based scholarshipInteroperability for web based scholarship
Interoperability for web based scholarshipHerbert Van de Sompel
 
Data and Donuts: Data organization
Data and Donuts: Data organizationData and Donuts: Data organization
Data and Donuts: Data organizationC. Tobin Magle
 
Preprints & Scholarly Infrastructure
Preprints & Scholarly InfrastructurePreprints & Scholarly Infrastructure
Preprints & Scholarly InfrastructureCrossref
 
Ed Pentz: Crossref Best Practice #crossref15
Ed Pentz: Crossref Best Practice #crossref15Ed Pentz: Crossref Best Practice #crossref15
Ed Pentz: Crossref Best Practice #crossref15Crossref
 
EDS Web-scale Panel (Preprint), 2012 Charleston Conference
EDS Web-scale Panel (Preprint), 2012 Charleston ConferenceEDS Web-scale Panel (Preprint), 2012 Charleston Conference
EDS Web-scale Panel (Preprint), 2012 Charleston ConferenceRafal Kasprowski
 
IOTA @ NASIG 2011: Measuring the Quality of OpenURL Links
IOTA @ NASIG 2011: Measuring the Quality of OpenURL LinksIOTA @ NASIG 2011: Measuring the Quality of OpenURL Links
IOTA @ NASIG 2011: Measuring the Quality of OpenURL LinksRafal Kasprowski
 
cited by how-to
cited by how-tocited by how-to
cited by how-toCrossref
 
The Crossref/ORCID Auto-Update: all you need to know
The Crossref/ORCID Auto-Update: all you need to knowThe Crossref/ORCID Auto-Update: all you need to know
The Crossref/ORCID Auto-Update: all you need to knowCrossref
 
Multiple Resolution and handling content available in multiple places
Multiple Resolution and handling content available in multiple placesMultiple Resolution and handling content available in multiple places
Multiple Resolution and handling content available in multiple placesCrossref
 
Tracking Citations to Research Software via PIDs
Tracking Citations to Research Software via PIDsTracking Citations to Research Software via PIDs
Tracking Citations to Research Software via PIDsETH-Bibliothek
 
Getting started with Reference Linking
Getting started with Reference LinkingGetting started with Reference Linking
Getting started with Reference LinkingCrossref
 

Tendances (20)

Usage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application ScenariosUsage of Linked Data: Introduction and Application Scenarios
Usage of Linked Data: Introduction and Application Scenarios
 
Web-scale Discovery Implementation with the End User in Mind (SLA 2012)
Web-scale Discovery Implementation with the End User in Mind (SLA 2012)Web-scale Discovery Implementation with the End User in Mind (SLA 2012)
Web-scale Discovery Implementation with the End User in Mind (SLA 2012)
 
RSS Basics And Beyond: Tips and Tricks for Getting the Most out of Syndicate...
RSS Basics And Beyond:  Tips and Tricks for Getting the Most out of Syndicate...RSS Basics And Beyond:  Tips and Tricks for Getting the Most out of Syndicate...
RSS Basics And Beyond: Tips and Tricks for Getting the Most out of Syndicate...
 
A Semantic Data Model for Web Applications
A Semantic Data Model for Web ApplicationsA Semantic Data Model for Web Applications
A Semantic Data Model for Web Applications
 
Datat and donuts: how to write a data management plan
Datat and donuts: how to write a data management planDatat and donuts: how to write a data management plan
Datat and donuts: how to write a data management plan
 
New member webinar 052418
New member webinar 052418New member webinar 052418
New member webinar 052418
 
Webscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - Expanded
Webscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - ExpandedWebscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - Expanded
Webscale Discovery EDS / WorldCat Local "quick start" Charleston 2012 - Expanded
 
Interoperability for web based scholarship
Interoperability for web based scholarshipInteroperability for web based scholarship
Interoperability for web based scholarship
 
Data and Donuts: Data organization
Data and Donuts: Data organizationData and Donuts: Data organization
Data and Donuts: Data organization
 
Preprints & Scholarly Infrastructure
Preprints & Scholarly InfrastructurePreprints & Scholarly Infrastructure
Preprints & Scholarly Infrastructure
 
Ed Pentz: Crossref Best Practice #crossref15
Ed Pentz: Crossref Best Practice #crossref15Ed Pentz: Crossref Best Practice #crossref15
Ed Pentz: Crossref Best Practice #crossref15
 
EDS Web-scale Panel (Preprint), 2012 Charleston Conference
EDS Web-scale Panel (Preprint), 2012 Charleston ConferenceEDS Web-scale Panel (Preprint), 2012 Charleston Conference
EDS Web-scale Panel (Preprint), 2012 Charleston Conference
 
IOTA @ NASIG 2011: Measuring the Quality of OpenURL Links
IOTA @ NASIG 2011: Measuring the Quality of OpenURL LinksIOTA @ NASIG 2011: Measuring the Quality of OpenURL Links
IOTA @ NASIG 2011: Measuring the Quality of OpenURL Links
 
Web of Data Usage Mining
Web of Data Usage MiningWeb of Data Usage Mining
Web of Data Usage Mining
 
cited by how-to
cited by how-tocited by how-to
cited by how-to
 
The Crossref/ORCID Auto-Update: all you need to know
The Crossref/ORCID Auto-Update: all you need to knowThe Crossref/ORCID Auto-Update: all you need to know
The Crossref/ORCID Auto-Update: all you need to know
 
Multiple Resolution and handling content available in multiple places
Multiple Resolution and handling content available in multiple placesMultiple Resolution and handling content available in multiple places
Multiple Resolution and handling content available in multiple places
 
Tracking Citations to Research Software via PIDs
Tracking Citations to Research Software via PIDsTracking Citations to Research Software via PIDs
Tracking Citations to Research Software via PIDs
 
Getting started with Reference Linking
Getting started with Reference LinkingGetting started with Reference Linking
Getting started with Reference Linking
 
Linked Data
Linked DataLinked Data
Linked Data
 

En vedette

Cmmaao project-quality-metrics-pmi-pmp
Cmmaao project-quality-metrics-pmi-pmpCmmaao project-quality-metrics-pmi-pmp
Cmmaao project-quality-metrics-pmi-pmpvishvasyadav676
 
Benefits Selling 2010 Readers Choice Awards
Benefits Selling 2010 Readers Choice AwardsBenefits Selling 2010 Readers Choice Awards
Benefits Selling 2010 Readers Choice Awardsjillrunyan
 
Biol2 Lecture 1 V1
Biol2   Lecture 1 V1Biol2   Lecture 1 V1
Biol2 Lecture 1 V1gueste0f67
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부sj k
 
Romas04 User Driven Living Lab Innovation For Mobile City Applications Jo Pi...
Romas04 User Driven Living Lab Innovation For Mobile City Applications  Jo Pi...Romas04 User Driven Living Lab Innovation For Mobile City Applications  Jo Pi...
Romas04 User Driven Living Lab Innovation For Mobile City Applications Jo Pi...imec.archive
 

En vedette (8)

Dynamic weights
Dynamic weightsDynamic weights
Dynamic weights
 
The albedo effect test
The albedo effect testThe albedo effect test
The albedo effect test
 
Cmmaao project-quality-metrics-pmi-pmp
Cmmaao project-quality-metrics-pmi-pmpCmmaao project-quality-metrics-pmi-pmp
Cmmaao project-quality-metrics-pmi-pmp
 
Benefits Selling 2010 Readers Choice Awards
Benefits Selling 2010 Readers Choice AwardsBenefits Selling 2010 Readers Choice Awards
Benefits Selling 2010 Readers Choice Awards
 
Biol2 Lecture 1 V1
Biol2   Lecture 1 V1Biol2   Lecture 1 V1
Biol2 Lecture 1 V1
 
생각하는 프로그래밍 1부
생각하는 프로그래밍 1부생각하는 프로그래밍 1부
생각하는 프로그래밍 1부
 
Framework
FrameworkFramework
Framework
 
Romas04 User Driven Living Lab Innovation For Mobile City Applications Jo Pi...
Romas04 User Driven Living Lab Innovation For Mobile City Applications  Jo Pi...Romas04 User Driven Living Lab Innovation For Mobile City Applications  Jo Pi...
Romas04 User Driven Living Lab Innovation For Mobile City Applications Jo Pi...
 

Similaire à Linked APIs for Life Sciences Tutorial at SWAT4LS 3011

Applied semantic technology and linked data
Applied semantic technology and linked dataApplied semantic technology and linked data
Applied semantic technology and linked dataWilliam Smith
 
Pushing Chemical Biology Through the Pipes
Pushing Chemical Biology Through the PipesPushing Chemical Biology Through the Pipes
Pushing Chemical Biology Through the PipesRajarshi Guha
 
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...Carole Goble
 
Metadata, Open Access and More: Crossref presentation
Metadata, Open Access and More: Crossref presentationMetadata, Open Access and More: Crossref presentation
Metadata, Open Access and More: Crossref presentationCrossref
 
openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015Pablo Pazos
 
Clinical Quality Linked Data on health.data.gov
Clinical Quality Linked Data on health.data.govClinical Quality Linked Data on health.data.gov
Clinical Quality Linked Data on health.data.govGeorge Thomas
 
Data Café — A Platform For Creating Biomedical Data Lakes
Data Café — A Platform For Creating Biomedical Data LakesData Café — A Platform For Creating Biomedical Data Lakes
Data Café — A Platform For Creating Biomedical Data LakesPradeeban Kathiravelu, Ph.D.
 
Open Data - Principles and Techniques
Open Data - Principles and TechniquesOpen Data - Principles and Techniques
Open Data - Principles and TechniquesBernhard Haslhofer
 
Introduction to APIs and Linked Data
Introduction to APIs and Linked DataIntroduction to APIs and Linked Data
Introduction to APIs and Linked DataAdrian Stevenson
 
Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...
Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...
Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...Alexandre Riazanov
 
Semantics as a service at EMBL-EBI
Semantics as a service at EMBL-EBISemantics as a service at EMBL-EBI
Semantics as a service at EMBL-EBISimon Jupp
 
Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)Hong (Jenny) Jing
 
New member
New member New member
New member Crossref
 
Finding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic WebFinding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic Webebiquity
 
Designing a community resource - Sandra Orchard
Designing a community resource - Sandra OrchardDesigning a community resource - Sandra Orchard
Designing a community resource - Sandra OrchardEMBL-ABR
 

Similaire à Linked APIs for Life Sciences Tutorial at SWAT4LS 3011 (20)

Applied semantic technology and linked data
Applied semantic technology and linked dataApplied semantic technology and linked data
Applied semantic technology and linked data
 
Pushing Chemical Biology Through the Pipes
Pushing Chemical Biology Through the PipesPushing Chemical Biology Through the Pipes
Pushing Chemical Biology Through the Pipes
 
NISO/DCMI May 22 Webinar: Semantic Mashups Across Large, Heterogeneous Insti...
 NISO/DCMI May 22 Webinar: Semantic Mashups Across Large, Heterogeneous Insti... NISO/DCMI May 22 Webinar: Semantic Mashups Across Large, Heterogeneous Insti...
NISO/DCMI May 22 Webinar: Semantic Mashups Across Large, Heterogeneous Insti...
 
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
 
Metadata, Open Access and More: Crossref presentation
Metadata, Open Access and More: Crossref presentationMetadata, Open Access and More: Crossref presentation
Metadata, Open Access and More: Crossref presentation
 
openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015openEHR Developers Workshop at #MedInfo2015
openEHR Developers Workshop at #MedInfo2015
 
Clinical Quality Linked Data on health.data.gov
Clinical Quality Linked Data on health.data.govClinical Quality Linked Data on health.data.gov
Clinical Quality Linked Data on health.data.gov
 
Data Café — A Platform For Creating Biomedical Data Lakes
Data Café — A Platform For Creating Biomedical Data LakesData Café — A Platform For Creating Biomedical Data Lakes
Data Café — A Platform For Creating Biomedical Data Lakes
 
Open Data - Principles and Techniques
Open Data - Principles and TechniquesOpen Data - Principles and Techniques
Open Data - Principles and Techniques
 
NISO Webinar: Library Linked Data: From Vision to Reality
NISO Webinar: Library Linked Data: From Vision to RealityNISO Webinar: Library Linked Data: From Vision to Reality
NISO Webinar: Library Linked Data: From Vision to Reality
 
Introduction to APIs and Linked Data
Introduction to APIs and Linked DataIntroduction to APIs and Linked Data
Introduction to APIs and Linked Data
 
Providing support for JC Bradleys vision of open science using RSC cheminform...
Providing support for JC Bradleys vision of open science using RSC cheminform...Providing support for JC Bradleys vision of open science using RSC cheminform...
Providing support for JC Bradleys vision of open science using RSC cheminform...
 
Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...
Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...
Comprehensive Self-Service Lif Science Data Federation with SADI semantic Web...
 
Semantics as a service at EMBL-EBI
Semantics as a service at EMBL-EBISemantics as a service at EMBL-EBI
Semantics as a service at EMBL-EBI
 
Linked (Open) Data
Linked (Open) DataLinked (Open) Data
Linked (Open) Data
 
Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)Linked Open Data and Digital Curation (Islandora)
Linked Open Data and Digital Curation (Islandora)
 
Linked Data
Linked DataLinked Data
Linked Data
 
New member
New member New member
New member
 
Finding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic WebFinding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic Web
 
Designing a community resource - Sandra Orchard
Designing a community resource - Sandra OrchardDesigning a community resource - Sandra Orchard
Designing a community resource - Sandra Orchard
 

Dernier

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Dernier (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Linked APIs for Life Sciences Tutorial at SWAT4LS 3011

  • 1. LS4LS Linked Services for Life Science Sebastian Speiser, KIT, DE Ruben Verborgh, Ghent University, BE
  • 2. LS4LS Linked APIs for Life Science Linked APIs is the joint effort of independently developed approaches to align Linked Data and “functionalities”
  • 3. Agenda • Motivation • Linked Data • REST APIs • Linked APIs • Describing APIs • Working with Linked APIs • Conclusions
  • 4. Motivating example • Find potential drugs for disease – Get disease and associated genes – Get proteins produced by the genes – Find similar proteins for which drugs exist – Output drugs
  • 5. Motivating example: sources • Diseases and associated genes: – OMIM - Online Mendelian Inheritance in Man, http://www.ncbi.nlm.nih.gov/omim/ • Proteins produced by the genes – UniProt, http://www.uniprot.org/ • Finding similar proteins – E.g., UniProt BLAST service • Findings drugs targeting given proteins – DrugBank, http://www.drugbank.ca/ • Good news: all sources available
  • 6. Automation by workflows • Integrating the sources and services by hand? • No problem for one time procedure: just copy/paste from/to Web sites • But: diseases affect multiple genes, drugs target multiple proteins, … • Workflows formally specify the procedure using machine-accessible services • Repeatable, documented, automated
  • 7. The details of Workflows • Powerful tools with nice UI available,e.g. Taverna • But: a lot of power wasted for parsing, selecting and transforming data to make services interoperable • “Gluing code” written again and again
  • 8. RDF for integration • Use common data model for data and services • Take RDF! • Why not XML, JSON, CSV, … ? 1. Data and vocabulary terms identified by URIs 2. Graph structure 3. Extendable vocabulary 4. Support for data and vocabulary alignment (subClassOf, subPropertyOf, sameAs)
  • 9. RDF for integration • Graph merging is easy disease:D1 gene:G1 associatedGene prot:P1 gene:G1 produces
  • 10. RDF for integration • Graph merging is easy disease:D1 gene:G1 associatedGene produces prot:P1
  • 11. Where should the data live? • Many Life Science datasets available in RDF • How to work with the data? Possibility 1: load all datasets into a warehouse • Many different redundant copies of data exist • Every copy has to be kept up-to-date • Lot of storage required even for simple problems • Not every provider wants to give away all his data
  • 12. Where should the data live? • Many Life Science datasets available in RDF • How to work with the data? Possibility 2: access live data over the Web • Data is always up-to-date • Only required data is taken • Pay-as-you-go data integration • Providers keeps control of their data Linked Data as a standardized way to access data
  • 13. Agenda • Motivation • Linked Data • REST APIs • Linked APIs • Describing APIs • Working with Linked APIs • Conclusions
  • 14. Linked Data • Data resides at provider/owner • Access is given in small units • Standard way to access data given its ID (URI) • Links to other datasets containing further relevant information • Lots of data available: Linked Open Data
  • 16. Linked Open Data – Life Sciences http://linkeddata.org/
  • 17. Linked Data Principles 1. Use URIs to name things; not only documents, but also people, locations, concepts, etc. 2. To enable agents (human users and machine agents alike) to look up those names, use HTTP URIs 3. When someone looks up a URI we provide useful information; with 'useful' in the strict sense we usually mean structured data in RDF. 4. Include links to other URIs allowing agents http://www.w3.org/DesignIssues/LinkedData discover more things (machines and humans) to
  • 18. Principles 1&2: name things with HTTP URIs • URIs for information resources: http://www.uniprot.org http://speiserweb.de/sebastian/foaf.rdf • URIs for instances: http://www4.wiwiss.fu- berlin.de/diseasome/resource/diseases/1021 • Prefixes for more readability: PREFIX diseasome: <http://www4.wiwiss.fu- berlin.de/diseasome/resource/diseasome/> • URIs for classes: diseasome:diseases • URIs for properties: diseasome:associatedGene
  • 19. Principle 3: provide RDF when URI is dereferenced • Information resources are documents which can be retrieved directly • Non-information resources either – use local names, e.g.: http://www.w3.org/2000/01/rdf-schema#label, or – use HTTP redirects to information resources, e.g.: diseasome:diseases/1021 • Looking up an URI results in a RDF description of the identified ting
  • 20. Principle 3: provide RDF when URI is dereferenced Example: HTTP GET on http://www4.wiwiss.fu-berlin.de/diseasome/ resource/diseases/1021 Redirect to: http://…/data/diseases/1021 containg: PREFIX diseasome: <http://…/diseasome/> diseasome:diseases/1021 diseasome:associatedGene diseasome:genes/ACE. diseasome:diseases/1012 rdfs:label “SARS, progression of”.
  • 21. Principle 4: include links to other URIs • Links enable discovery of further relevant data • E.g.: diseasome:diseases/1021 diseasome:associatedGene diseasome:genes/ACE • Retrieving URI of associated gene returns description of gene with further information and links • Valuable: links crossing dataset boundaries
  • 22. Missing from Linked Data: APIs • Not all data sources will be published as fully materialised data sets • Reasons include: – Data is changing constantly (e.g. sensor data) – Data is calculated based on infinitely many inputs (e.g. similarity between two gene sequences) – Provider does not want arbitrary access (e.g. flight ticket prices, social networks)
  • 23. Agenda • Motivation • Linked Data • REST APIs • Linked APIs • Describing APIs • Working with Linked APIs • Conclusions
  • 24. HTML and HTTP drive the human Web. HTTP
  • 25. HTML and HTTP drive the human Web. HTTP
  • 26. HyperText Markup Language <h1>Genes associated with Parkinson’s</h1> <p>Associated with Parkinson’s:</p> <ol> <li><a href="/genes/47">Gene A</a></li> <li><a href="/genes/80">Gene B</a></li> <li><a href="/genes/21">Gene C</a></li> </ol>
  • 27. HyperText Markup Language <h1>Genes associated with Parkinson’s</h1> <p>Associated with Parkinson’s:</p> <ol> <li><a href="/genes/47">Gene A</a></li> <li><a href="/genes/80">Gene B</a></li> <li><a href="/genes/21">Gene C</a></li> </ol>
  • 28. HyperText Markup Language <h1>Genes associated with Parkinson’s</h1> <p>Associated with Parkinson’s:</p> <ol> <li><a href="/genes/47">Gene A</a></li> <li><a href="/genes/80">Gene B</a></li> <li><a href="/genes/21">Gene C</a></li> </ol>
  • 29. HyperText Markup Language <h1>Genes associated with Parkinson’s</h1> <p>Associated with Parkinson’s:</p> <ol> <li><a href="/genes/47">Gene A</a></li> <li><a href="/genes/80">Gene B</a></li> <li><a href="/genes/21">Gene C</a></li> </ol>
  • 30. HTML and HTTP drive the human Web. HTTP
  • 31. HyperText Transfer Protocol • Simple model – resources • Limited actions – GET, POST, PUT, DELETE • Extensible headers – Accept
  • 32. HTTP works with messages. GET /genes HTTP/1.1 HTTP/1.1 200 OK
  • 33. HTTP works with messages. POST /genes HTTP/1.1 HTTP/1.1 200 OK
  • 34. This is the Web for humans.
  • 35. This does not work for machines. GET /genes HTTP/1.1 HTTP/1.1 200 OK
  • 36. “Simple” Object Access Protocol POST /GeneService.php HTTP/1.1 <?xml version="1.0"?> <soap:Envelope xmlns:soap= "http://www.w3.org/2003/05/soap-envelope"> <soap:Header> </soap:Header> <soap:Body> <m:GetGenes xmlns:m="http://www.ex.org/genes" /> </soap:Body> </soap:Envelope>
  • 37. Let’s try things the “simple” way. GET /genes HTTP/1.1 HTTP/1.1 200 OK
  • 38. SOAP is not the Web for machines. • SOAP is not about resources. – uses HTTP as a tunneling protocol • SOAP is programming over the Web. – basically doing site.getGenes() – but HTTP already has verbs
  • 39. So suddenly, there were two Webs.
  • 40. A JavaScript revolution came. • Dynamic pages require JavaScript. • JavaScript uses JSON. JSON JSON JSON
  • 41. JSON has a tree structure. { "disease": "Parkinson's", "associatedGenes": [ { "id": 47, "name": "A"}, { "id": 80, "name": "B"}, { "id": 21, "name": "C"}, ] }
  • 42. People thought they needed APIs. • Idea: get things in JSON. – /api/getGenes.php?diseaseId=32&format=json – /api/listDeseases.php?beginLetter=P&format=json • Again, this is not resource-oriented. – Again, it is stuff for programmers.
  • 43. JSON APIs have serious drawbacks. • Every API is different. • No semantics inside the data. • Client need to be programmed specifically.
  • 44. There are still two Webs. JSON JSON JSON
  • 45. And it doesn't end there. • What if we also need semantics? • No problem, just create a new API. – /diseases/parkinsons/associated-genes.html – /api/getGenes.php?diseaseId=32&format=json – /api/getGenes.php?diseaseId=32&format=rdf RDF
  • 46. Now there are three Webs. JSON JSON JSON RDF And whose are they anyway?
  • 47. We need only one Web.
  • 48. Every new service claims to be REST. Raise your hand if you’ve heard about any of: – REST. – RESTful API. – More RESTful API. – RESTful Web service. – Representational State Transfer. – RESTful practices. – This is not REST. – This is REST. – REST!!!
  • 49. REST is just proper HTTP.
  • 50. Representational State Transfer • Resources are the essential elements. • Resources are your building blocks: – genes /genes/37 – diseases /diseases/32 – proteines /proteines/45
  • 51. Resources have representations. • The server cannot serve resources. – How would you send a gene across a cable? • The server sends representations. – HTML – JSON – RDF /genes/37 – JPEG – ... • The client negotiates about the representation.
  • 52. Humans understand text. GET /genes/37 HTTP/1.1 HTTP/1.1 200 OK Accept: text/html Content-type: text/html
  • 53. Humans understand images. GET /genes/37 HTTP/1.1 HTTP/1.1 200 OK Accept: image/* Content-type: image/jpeg
  • 54. Machines interpret JSON. GET /genes/37 HTTP/1.1 HTTP/1.1 200 OK Accept: text/json Content-type: text/json
  • 55. Machines interpret RDF. GET /genes/37 HTTP/1.1 HTTP/1.1 200 OK Accept: text/turtle Content-type: text/turtle
  • 56. REST is driven by hyperlinks. • Hypermedia constraint: serve representation and controls. • Typed hypermedia links. /genes/37 associatedWith /diseases/parkinsons associatedWith /diseases/dementia produces /proteines/78
  • 57. REST No services. One resource. Different representations with hypermedia links.
  • 58. Agenda • Motivation • Linked Data • REST APIs • Linked APIs • Describing APIs • Working with Linked APIs • Conclusions
  • 59. What can be Linked in APIs? Descriptions of APIs can be exposed as Linked Data • linked from API directory • linked from schema elements to relevant APIs – e.g., property description of gene sequence could link to API • linked from instance data – e.g., description of organism could link to database search API
  • 60. What can be Linked in APIs? API calls can be given URI, and be linkable from other data sets, e.g. • description of person links to API call returning its geographic coordinates • API description can link to another API call returning the load factor of the hosting server • list of genes links for every gene to an API call returning list of gene databases that have information about the gene available (two steps)
  • 61. What can be Linked in APIs? Output of API can contain links to • … other data sets, e.g., diseases to DBpedia concepts • … other API calls, e.g., search in other databases • … other API descriptions, e.g., specialised API directory Links help to discover APIs, interpret their output, and integrate with data from others sources.
  • 62. Agenda • Motivation • Linked Data • REST APIs • Linked APIs • Describing APIs • Working with Linked APIs • Conclusions
  • 63. Linked API principles • Restrict to data APIs (today) • Describe APIs as Linked Data prosumers – No grounding: just communicate RDF • Make relation between input and output explicit
  • 64. Data APIs • Given input, provide output • API-specific relation btw. input and output Input relation Output defines Service • Example: – input gene with sequence, output: list of genes – relation: “have similar sequences”
  • 65. Linked APIs as LD Prosumers • Linked APIs consume and produce RDF • Standard way to describe subgraphs for RDF: Basic Graph Patterns (BGPs) as in SPARQL Example: • Input: ?prot1 lals:proteinSequence ?seq • Output: ?prot1 lals:similar_to ?prot2
  • 66. Explicit relation between Input and Output • API invocation can be regarded as rule applications: [input] => [output] • Output contains unbound variables (not occurring in input) • Unbound variables are bound by API • At least one bound variable in output makes relation between input and output explicit Example: ?prot1 lals:proteinSequence ?seq => ?prot1 lals:similar_to ?prot2 bound unbound
  • 67. Describing API Call Construction • Besides describing input, output and their relation, one needs to know which URIs to call • Several possibilities: – Constant URI to which RDF of input is sent – Convention how to construct URI from parameters (bindings to input pattern) – Rule-based URI generation
  • 68. Concrete Linked API approaches • Several independently developed approaches: – Linked Data Services by Sebastian Speiser, Andreas Harth – RESTdesc by Ruben Verborgh, Thomas Steiner – Linked Open Services by Barry Norton, Reto Krummenacher, Steffen Stadtmüller • Currently in the process of aligning them
  • 69. LInked Data Services (LIDS) • Descriptions: – Input and output BGPs – Endpoint (base URI) – Service entity (a bound variable in the output BGP) • Convention to create URIs for service calls: – Endpoint + parameter bindings + # + service entity • Parameter binding can be LD URI for further lookup • Dereferencing service call URI results in description of service entity that relates to output data
  • 70. LInked Data Services (LIDS) Example: Input: ?prot lals:proteinSequence ?seq Output: ?prot lals:similar_to ?prot2 Endpoint: http://localhost:8080/LALS/simProts Service entity: prot • Binding for ?seq = “MRVVLAALTALAART …” • Construct service call: http://…simProts?seq=MRV…#prot • Service call URI identifies the protein with the given sequence • Dereferencing the URI returns description: <http://…simProts?seq=MRV…#prot> lals:similar_to <http://…/protXYZ> .
  • 71. RESTdesc describes hyperlinks. • REST APIs have hypermedia links. • Machines should browse the Web like humans. • What does it mean to follow a link? – explain to machines in RDF – using if/then contruct resource resource A hypermedia link B
  • 72. A client receives unknown links. /proteins/53 producedBy /genes/37 producedBy /genes/54 similarTo /proteins/4 similarTo /proteins/6 hasSequenceSimilarTo /sequences/9
  • 73. RESTdesc describes this link. protein sequence A hasSequenceSimilarTo B similarTo hasSequence protein B
  • 74. RESTdesc describes this link. { ?proteinA lals:hasSequenceSimilarTo ?sequenceB. } => { _:req http:methodName "GET"; http:requestURI ?sequenceB; http:resp ?sequenceB. ?proteinA lals:similarTo _:proteinB. _:proteinB lals:hasSequence ?sequenceB. }.
  • 75. If you have this link... { ?proteinA lals:hasSequenceSimilarTo ?sequenceB. } => { _:req http:methodName "GET"; http:requestURI ?sequenceB; http:resp ?sequenceB. ?proteinA lals:similarTo _:proteinB. _:proteinB lals:hasSequence ?sequenceB. }.
  • 76. ...then you can make a request... { ?proteinA lals:hasSequenceSimilarTo ?sequenceB. } => { _:req http:methodName "GET"; http:requestURI ?sequenceB; http:resp ?sequenceB. ?proteinA lals:similarTo _:proteinB. _:proteinB lals:hasSequence ?sequenceB. }.
  • 77. ...and the response will mean this. { ?proteinA lals:hasSequenceSimilarTo ?sequenceB. } => { _:req http:methodName "GET"; http:requestURI ?sequenceB; http:resp ?sequenceB. ?proteinA lals:similarTo _:proteinB. _:proteinB lals:hasSequence ?sequenceB. }.
  • 78. RESTdesc: towards a shared Web. • Humans and machines – same Web – same resources • multiple representations • various hypermedia links • Explaining hypermedia links • http://restdesc.org/
  • 79. Agenda • Motivation • Linked Data • REST APIs • Linked APIs • Describing APIs • Working with Linked APIs • Conclusions
  • 80. Executing a Workflow • LD and LAPIs produce RDF • LAPIs consume RDF • Query for information need consumes RDF • Execute workflows on triple spaces (similar to blackboard approach) – Create an empty triple space (RDF graph) – Load triples from LD lookups – Send subgraphs to services, add resulting triples to space – Evaluate target query over triple space
  • 81. Executing a Workflow • Remember example: find potential drugs for disease: d:1021 • Information need as SPARQL: SELECT ?diseaselabel ?druglabel WHERE { d:1021 diseasome:associatedGene ?g . ?g lals:produces_protein ?p . ?p lals:similar_to ?simprot . ?drug drugbank:target ?simprot . ?drug rdfs:label ?druglabel . d:1021 rdfs:label ?diseaselabel }
  • 82. Executing a Workflow • Step 1: find associated genes for d:1021 • Add to triple space: LD lookup for d:1021 d:1012 rdf:type diseasome:diseases; d:associatedGene d:genes/ACE; d:class d:Immunological; rdfs:label “SARS, progression of”; • Lookup all associated genes, i.e., all ?g, s.t. SELECT ?g WHERE {d:1012 d:associatedGene ?g} • i.e., lookup d:genes/ACE and add triples
  • 83. Executing a Workflow • Step 2: find proteins produced by genes • Apply lookup to LAPI wrapping UniProt: Input: ?gene rdf:type diseasome:genes . ?gene rdfs:label ?name Output: ?gene lals:produces ?prot . ?prot lals:sequence ?seq . Endpoint: http://…/LALS/genes Service entity: gene • Service call: http://…/LALS/genes?name=ACE#gene • Adds to triple space: PREFIX : <http://…/LALS/genes?name=ACE#> . :gene lals:produces [lals:sequence “…” . :gene lals:produces [lals:sequence “…”] . …
  • 84. Executing a Workflow • Step 3: find similar proteins • Apply lookup to LAPI searching for similar proteins Input: ?prot lals:sequence ?seq Output: ?prot lals:similar_to ?prot2 . Endpoint: http://…/LALS/simProt Service entity: prot • Service call: http://…/LALS/simProt?seq=XYZ#prot for every found protein sequence • Adds to triple space: PREFIX : <http://…/LALS/simProt?seq=XYZ#> . :prot lals:similar_to drugbank:target20 . :prot lals:similar_to drugbank:target143 . …
  • 85. Executing a Workflow • Step 4: find drugs for similar proteins • Output of previous service described found proteins as DrugBank targets (URIs) • Lookup all target URIs, adds for each target to triple space: drugbank:target143 drugbank:proteinSequence “…” . drugbank:drugs/DB00492 drugbank:target drugbank:target143 . ... • Lookup all drug URIs
  • 86. Executing a Workflow • Step 5: execute information need query • Triple space contains information about disease, associated genes, produced and similar proteins, and applicable drugs • SELECT ?diseaselabel ?druglabel WHERE ... • Results: ?diseaselabel ?druglabel SARS Deserpidine SARS Captopril SARS Enalapril SARS …
  • 87. Observations • No manual connecting of inputs and outputs => automatically matched • Selecting URIs for lookups could be automated => LD query processors lookup partial bindings • Vocabulary alignments by rules/ontologies can be integrated
  • 88. Agenda • Motivation • Linked Data • REST APIs • Linked APIs • Describing APIs • Working with Linked APIs • Conclusions
  • 89. Linked APIs the story so far … • REST principles make APIs first-class Web citizens • Descriptions enable: – Discovery of APIs – Understanding APIs – Integration of APIs into workflows – Invocation of APIs
  • 90. Linked APIs for Life Scientists • Already a lot of Life Science LD available • Linked APIs enables dynamic data to blend in • And more: – Functions – Real-world actions –…
  • 91. How you can contribute • Integrate Linked APIs in your favorite workflow tool • Publish your API as a Linked API • Tell us about your use cases Ruben Verborgh ruben.verborgh@ugent.be – @RubenVerborgh Sebastian Speiser speiser@kit.edu Mailing list: linkeddataandservices@googlegroups.com