The document discusses semantic web technologies for life sciences, including visions, aims, tools and platforms. It provides an introduction to semantic web technologies like RDF, describing how RDF represents concepts and relationships as subject-predicate-object triples. It also discusses RDF serialization formats like N-Triples and Turtle, as well as technologies like URIs, RDF schema, and OWL for adding additional semantics. The presentation aims to explain how these technologies can be used to represent life science knowledge and link open data in this domain.
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Semantic Web for Life Sciences: vision, aims, tools, platforms
1. Semantic Web for Life
Sciences
Visions, Aims, Tools, Platforms
Andrea Splendiani
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
2. Index
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
3. An Introduction to Semantic Web Technologies
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
4. What
A new form of Web
content that is meaningful
to computers will unleash
a revolution of new
possibilities
Web + Semantics
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
5. Quick Intro to RDF
•
RDF: Resource Description
Framework
•
A language to represent
concepts and their relations
•
Simple statements:
Subject Predicate Object
•
Conceptually a graph
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
6. Quick Intro to RDF
•
RDF: Resource Description
Framework
•
A language to represent
concepts and their relations
•
object
predicate
subject
Simple statements:
Subject Predicate Object
•
Conceptually a graph
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
7. Quick Intro to RDF
•
How does this work in
practice ?
•
We identify each node and
edge by a URI
•
(we only need to identify, not
define things!)
•
object
predicate
subject
URIs could be Webresolvable
http://nettab.org/biology/Chromosome http://nettab.org/properties/contains http://nettab.org/biology/DNA
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
8. Quick Intro to RDF
http://nettab.org/biology/Chromosome http://nettab.org/properties/contains http://nettab.org/biology/DNA
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
9. Quick Intro to RDF
http://nettab.org/biology/Chromosome http://nettab.org/properties/contains http://nettab.org/biology/DNA
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
10. Quick Intro to RDF: RDF vs other modeling
RDF:
•
•
•
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
No data-types
No cardinalities
Importance of identification
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
11. Quick Intro to RDF: RDF vs other modeling
The Semantic Web is easy
(a bit like html)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
12. Technology details
•
•
•
•
•
•
•
•
•
•
URIs
The technology stack
Serializations
Blank nodes
Named graphs
Semantics
Computational representation of meaning
RDFS
OWL
SKOS
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
13. Technology details: URIs
http://nettab.org/biology/Chromosome
•
•
URIs are global identifiers
•
Simple but implicit authority mechanism
(namespace)
Supported by a widely adopted infrastructure
(the Web)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
15. Technology details: URIs
•
•
•
What is necessary:
Unambiguous identification
Persistence (versions)
http://nettab.org/Venice
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
16. Technology details: URIs
What should URIs resolve to ?
Nothing
http://wifo5-03.informatik.uni-mannheim.de/bizer/pub/LinkedDataTutorial/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
17. Technology details: the technology stack
Not a coherent monolithic technology!
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
18. Technology details: serializations
RDF can be represented
in many syntaxes
•
•
•
•
•
•
N-Triples
English
programmed cell death
http://www.w3.org/2000/01/rdf-schema#label
http://purl.org/go/owl#GO_0012501
Turtle
XML(s)
...
JSON
Binary
http://www.w3.org/2000/01/rdf-schema#subClassOf
http://purl.org/go/owl#GO_0006915
110020
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.example.com/hasdbaccession
Integer
http://www.example.com/
instance1
Use a tool like Rapper to convert among syntaxes
http://librdf.org/raptor/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
19. Technology details: serializations
N-Triples
<http://purl.org/obo/owl/GO#GO_0006915> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://purl.org/obo/owl/GO#GO_0012501> .
<http://purl.org/obo/owl/GO#GO_0012501> <http://www.w3.org/2000/01/rdf-schema#label> "programmed cell death"@en .
<http://www.example.com/instance1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/obo/owl/GO#GO_0006915> .
<http://www.example.com/instance1> <http://www.example.com/hasdbaccession> "110020"^^<http://www.w3.org/2001/XMLSchema#int> .
English
programmed cell death
•
•
•
http://www.w3.org/2000/01/rdf-schema#label
Every subset (lines) is valid N-Triples
Good for large files, streaming,...
Very simple to produce via scripts
http://purl.org/go/owl#GO_0012501
http://www.w3.org/2000/01/rdf-schema#subClassOf
http://purl.org/go/owl#GO_0006915
110020
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.example.com/hasdbaccession
http://www.example.com/
instance1
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
Integer
20. Technology details: serializations
N-Triples
<http://purl.org/obo/owl/GO#GO_0006915> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://purl.org/obo/owl/GO#GO_0012501> .
<http://purl.org/obo/owl/GO#GO_0012501> <http://www.w3.org/2000/01/rdf-schema#label> "programmed cell death"@en .
<http://www.example.com/instance1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/obo/owl/GO#GO_0006915> .
<http://www.example.com/instance1> <http://www.example.com/hasdbaccession> "110020"^^<http://www.w3.org/2001/XMLSchema#int> .
English
programmed cell death
•
•
•
http://www.w3.org/2000/01/rdf-schema#label
Every subset (lines) is valid N-Triples
Good for large files, streaming,...
Very simple to produce via scripts
http://purl.org/go/owl#GO_0012501
http://www.w3.org/2000/01/rdf-schema#subClassOf
http://purl.org/go/owl#GO_0006915
110020
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.example.com/hasdbaccession
http://www.example.com/
instance1
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
Integer
21. Technology details: serializations
N-Triples
<http://purl.org/obo/owl/GO#GO_0006915> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://purl.org/obo/owl/GO#GO_0012501> .
<http://purl.org/obo/owl/GO#GO_0012501> <http://www.w3.org/2000/01/rdf-schema#label> "programmed cell death"@en .
<http://www.example.com/instance1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/obo/owl/GO#GO_0006915> .
<http://www.example.com/instance1> <http://www.example.com/hasdbaccession> "110020"^^<http://www.w3.org/2001/XMLSchema#int> .
English
programmed cell death
•
•
•
http://www.w3.org/2000/01/rdf-schema#label
Every subset (lines) is valid N-Triples
Good for large files, streaming,...
Very simple to produce via scripts
http://purl.org/go/owl#GO_0012501
http://www.w3.org/2000/01/rdf-schema#subClassOf
http://purl.org/go/owl#GO_0006915
110020
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.example.com/hasdbaccession
http://www.example.com/
instance1
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
Integer
22. Technology details: serializations
Turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix GO: <http://purl.org/obo/owl/GO#> .
@prefix : <http://www.example.com/> .
http://prefix.cc/
go:GO_0006915
rdfs:subClassOf go:GO_0012501 .
go:GO_0012501>
rdfs:label "programmed cell death"@en .
:instance1
:hasdbaccession "110020"^^<http://www.w3.org/2001/XMLSchema#int> ;
a go:GO_0006915 .
English
programmed cell death
http://www.w3.org/2000/01/rdf-schema#label
http://purl.org/go/owl#GO_0012501
•
•
http://www.w3.org/2000/01/rdf-schema#subClassOf
Easy to read
http://purl.org/go/owl#GO_0006915
Easy to write by hand (keyboard)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
110020
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.example.com/hasdbaccession
http://www.example.com/
instance1
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
Integer
23. Technology details: serializations
RDFXML
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:go="http://purl.org/obo/owl/GO#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.example.com/">
<rdf:Description rdf:about="http://purl.org/obo/owl/GO#GO_0006915">
<rdfs:subClassOf rdf:resource="http://purl.org/obo/owl/GO#GO_0012501"/>
</rdf:Description>
<rdf:Description rdf:about="http://purl.org/obo/owl/GO#GO_0012501">
<rdfs:label xml:lang="en">programmed cell death</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="http://www.example.com/instance1">
<rdf:type rdf:resource="http://purl.org/obo/owl/GO#GO_0006915"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.example.com/instance1">
<hasdbaccession rdf:datatype="http://www.w3.org/2001/XMLSchema#int">110020</hasdbaccession>
</rdf:Description>
</rdf:RDF>
<go:GO_0006915 rdf:about="http://www.example.com/instance1">
<hasdbaccession rdf:datatype="http://www.w3.org/2001/XMLSchema#int">110020 </hasdbaccession>
</go:GO_0006915>
Good for ?
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
24. Technology details: blank nodes
•
Some entities may not have a
global identifier
•
Could we always provide
one ?
<rdf:Description rdf:about="http://
dbpedia.org/resource/Venice">
<foaf:based_near>
<geo:Point>
<geo:lat>45.4375</geo:lat>
<geo:long>12.335833</geo:long>
</geo:Point>
</foaf:based_near>
</rdf:Description>
<http://dbpedia.org/resource/Venice>
foaf:based_near [
geo:lat "45.4375" ;
geo:long "12.335833" ;
a <http://example/Point>
].
<http://dbpedia.org/resource/Venice> foaf:based_near _:p1 .
_:p1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example/Point> .
_:p1 <http://www.w3.org/2003/01/geo/wgs84_pos#:lat> "45.4375" .
_:p1 <http://www.w3.org/2003/01/geo/wgs84_pos#:long> "12.335833" .
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
25. Technology details: named graphs
•
An entire (sub)graph can be
identified (“named”) by a URI
•
Graphs can be subject and object of
predicates
•
Good to represent context (hence
provenance...)
<http://dbpedia.org/resource/Venice> foaf:based_near _:p1 nettabex:1.
_:p1 rdf:type <http://example/Point> nettabex:1.
_:p1 geo:lat "45.4375" nettabex:1.
(pseudo
_:p1 geo:long "12.335833" nettabex:1.
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
N-quads)
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
26. Technology details: semantics
Facts
Defining reality
Computing definitions
Ontology:
“A formalization of a conceptualization”
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
27. Technology details: semantics
Ontologies:
The conceptualization
extract from BFO
http://www.ifomis.org/bfo
extract from RO
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
28. Technology details: representation of meaning
Computational representation of meaning:
transitive property
programmed cell
death
programmed cell
death
rdfs:label
rdfs:label
GO:GO_0012501
GO:GO_0012501
apoptosis
apoptosis
rdfs:subClassOf
rdfs:subClassOf
rdfs:label
rdfs:label
GO:GO_0006915
GO:GO_0006915
virus-infected
cell
apoptosis
rdfs:subClassOf rdfs:label
virus-infected
cell
apoptosis
rdfs:subClassOf rdfs:label
GO:GO_0008585
GO:GO_0008585
(?x rdfs:subClassOf ?y)(?y rdfs:subClassOf ?z) ->
(?x rdfs:subClassOf ?z)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
29. Technology details: representation of meaning
Some possible computations
• Inconsistency
• Classification
• Consistency
• Subsumption
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
30. Technology details: representation of meaning
• Emergent Semantics
• First order logic
• Inference rules
• RDFS
• OWL (-2, DL, RL, QL...)
• SKOS
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
31. Technology details: RDFS
programmed cell
death
rdfs:label
RDF-S:
• type
• subClassOf
• subPropertyOf
• ...
GO:GO_0012501
apoptosis
rdfs:subClassOf
rdfs:label
GO:GO_0006915
virus-infected
cell
apoptosis
rdfs:subClassOf rdfs:label
GO:GO_0008585
Inconsistence ?
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
32. Technology details: OWL
OWL:
• Class Union/Intersection
• Universal/Existential
restriction
• Property Domain/Range
• Transitive/Reflexive/
Functional properties
• ...
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
OWL provides a set of properties and
resources to characterize classes.
•
OWL supports inference of the class structure
of an ontology
•
OWL has several variants addressing different
trade-offs in computability/expressivity
•
Many ontologies “use OWL”, but they really only
use a few axioms (almost like RDFS)
•
Inconsistence !
•
OWL is not a schema language! (Classes and
properties have a different meaning than OO)
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
33. Technology details: OWL
Example:
cell motility part of localization of cell
<owl:Class rdf:about="GO#GO_0006928">
<rdfs:label xml:lang="en">cell motility</rdfs:label>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="obo#part_of"/>
<owl:someValuesFrom rdf:resource="GO#GO_0051674"/>
</owl:Restriction>
</rdfs:subClassOf>
...
</owl:Class>
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
34. Technology details: OWL
OWL Inference is not validation!
Person hasFather exactly 1
George a Person
George hasFather Mark
George hasFather John
John sameAs Mark
•RDF Validation: Syntax
•(OWL) Reasoning: Consistency
•SPIN Rules (later)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
35. Technology details: OWL
Two things to possibly avoid when working
with OWL/RDF:
• use RDF/XML
• use OO tools
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
36. Technology details: SKOS
•
SKOS: Simple Knowledge
Organization System
•
Not a formal system (can be
mapped to OWL)
•
Weak semantic connotation,
but useful in many
classification tasks
You don’t improve the ontological commitment of a classification system by
representing it in OWL (if the conceptualization doesn’t improve!)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
37. Why Life Sciences ?
Why Semantic Web ?
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
38. Why ? Heterogeneous information
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
39. Why ? Mutability of information (schema)
The textbook tale
•
The DNA model has
around 60 years (’53)
•
“basic principles” changed in
a timescale of about 10
years
Missing: epigenetics, miRNA
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
40. Why ? Complex Semantics
The meaning of “Gene”
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
41. Why ? The Semantic Web can Help How ?
•
•
Makes data integration easier
Makes semantic problems explicit
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
42. Why ? The Semantic Web can Help How ?
•
•
Makes data integration easier
Makes semantic problems explicit
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
43. Why ? The Semantic Web can Help How ?
Easy data integration: what if we used a relational model
CityID
population
CityName
INT
INT
VARHCHAR
(45)
INT
INT
Date
INT
TEXT
1
40885
Venezia
1
20000
1868
2
Venice
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
UniversityID students established CityID
Nettab, 16th October 2013,Venice
CityName
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
44. Why ? The Semantic Web can Help How ?
Easy data integration: what if we used a relational model
CityID
population
CityName
UniversityID students established CityID
CityName
INT
INT
VARHCHAR
(45)
INT
INT
Date
INT
TEXT
1
40885
Venezia
1
20000
1868
2
Venice
Implicit foreign key
In the Semantic Web “keys” are explicit by definition
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
45. Why ? The Semantic Web can Help How ?
Easy data integration: what if we used a relational model
CityID
population
CityName
UniversityID students established CityID
CityName
INT
INT
VARHCHAR
(45)
INT
INT
Date
INT
TEXT
1
40885
Venezia
1
20000
1868
2
Venice
Local identifiers, mappings required
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
46. Why ? The Semantic Web can Help How ?
Easy data integration: what if we used a relational model
Perhaps we can assume that in the same
country, two cities with the same name
are the same city.
We could just declare rdfs:property as
functional to deduce such equivalences.
CityID
population
CityName
UniversityID students established CityID
CityName
INT
INT
VARHCHAR
(45)
INT
INT
Date
INT
TEXT
1
40885
Venezia
1
20000
1868
2
Venice
What is the type of a CityName ?
How many names can a city have ? Is the city name a key ?
Does the University of Venice only exists in Venice ?
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
47. The broader view
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
48. The broader view
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
49. The broader view: Not only NoSQL
The Semantic Web is not only a technology to handle data.
Being “Semantic” and “Web” has some implication on the way
information is thought
•
•
•
All predicates are global (no implicit contexts)
•
•
Monotonicity: you only add information
Declarative vs imperative processing of information
Immutability: once information is out, you cannot
control it
There may be more that what you know: Open
World Assumption
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
50. HOWTO publish information on the Semantic Web
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
51. HOWTO publish information on the Semantic Web
Simply link an RDF file
Possibly via a good URI
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
52. HOWTO publish information on the Semantic Web
Programmatic access via a SPARQL endpoint
(can be resource intensive)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
53. HOWTO publish information on the Semantic Web
Embed RDF in html (e.g.: RDFa)
<div xmlns:dc="http://purl.org/dc/elements/1.1/">
<div about="/alice/posts/trouble_with_bob">
<h2 property="dc:title">The trouble with Bob</h2>
<h3 property="dc:creator">Alice</h3>
...
</div>
<div about="/alice/posts/jos_barbecue">
<h2 property="dc:title">Jo's Barbecue</h2>
<h3 property="dc:creator">Eve</h3>
...
</div>
</div>
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
54. HOWTO publish information on the Semantic Web
Publish information as Linked-Data
•
•
•
Linked Data is a set of good practices to publish RDF
•
Content negotiation
Use only HTTP resolvable URIs
Dereferencing URIs (202 information resources 303
see other)
http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/
Linked Data APIs (ELDA), Linked Data Platform, Linked Data
JSON ...
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
55. HOWTO: simple conversions to RDF
CityID
population
CityName
INT
INT
VARHCHAR(45)
1
40885
Venice
LAT pp
LAT pp
LAT pp
LAT pp
LAT pp
SLP-76
SLP-76
SLP-76
SLP-76
SLP-76
SLP-76
SLP-76
SLP-76
CD28
CD28
CD28
Grb2
PI3K_p85-alpha
PLC-gamma
Grap
Gads
pp Vav
pp Nck
pp SLAP-130
pp Gads
pp Shc
pp Cbl
pp Lyn
pp PLC-gamma2
pp Grb2
pp PI3K_p85-beta
pp CD80
SIF
Table
http://ns/ID#1 http://ns/prop#population 40885
http://ns/ID#1 http://ns/prop#CityName Venice
<http://ns/ID#$1 http://ns/prop#$2 http://ns/ID#$3>
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
56. HOWTO: relational to RDF mapping
D2RQ
•
•
•
Relational to RDF conversion
Dynamic rendering (SPARQL)
Linked data frontend (Pubby)
http://d2rq.org
http://www.w3.org/TR/2012/PR-rdb-direct-mapping-20120814/
http://www.w3.org/TR/2012/REC-r2rml-20120927/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
57. HOWTO: relational to RDF mapping
Author
Paper
ID (key)
ID (key)
Name
PubmedID
Email
Title
AuthorID (fkey)
PaperID (fkey)
Automated mapping:
D2RQ (like other tools) by default
only generates a structural
mapping (this can then be tuned).
It cannot generate a dc:creator
property between Paper and
Author
...
Author2Paper
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
58. HOWTO: relational to RDF mapping
Author
Paper
ID (key)
ID (key)
Name
PubmedID
Email
Title
AuthorID (fkey)
PaperID (fkey)
...
Author2Paper
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Example edited mapping:
# Table Author
map:author a d2rq:ClassMap;
d2rq:dataStorage map:database;
d2rq:uriPattern "author/@@Author.ID@@";
d2rq:class foaf:person;
d2rq:classDefinitionLabel "author";
.
map:author_name a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:author;
d2rq:property foaf:name;
d2rq:propertyDefinitionLabel "Author_name";
d2rq:column "Author.Name";
.
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
59. HOWTO: relational to RDF mapping
Author
Paper
ID (key)
ID (key)
Name
PubmedID
Email
Title
AuthorID (fkey)
map:hasAuthor a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:Paper;
d2rq:property :hasAuthorEmail;
d2rq:column "Author.Email";
d2rq:join "Paper.ID <= Author2Paper.PaperID";
d2rq:join "Author2Paper.PersonID => Person.ID";
d2rq:datatype xsd:string;
d2rq:propertyDefinitionLabel "email"@en;
d2rq:propertyDefinitionComment "Author email"@en;
.
PaperID (fkey)
...
map:Paper a d2rq:ClassMap;
d2rq:class :Paper;
d2rq:uriPattern
Author2Paper
"http://togows.dbcls.jp/entry/pubmed/@@Paper.PubmedID@@.ttl
d2rq:condition "Papers.PubmedID != ””";
d2rq:dataStorage map:Database1.
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
60. HOWTO setup your own triplestore
Discussion +
Jena
http://www.apache.org/dist/jena/binaries/
Just run: fuseki --loc=path --update /
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
61. Ontologies and Protege
Ontology editor
Practical suggestions:
•
•
•
Produce RDF (simple scripts or mapper)
Translate among syntaxes via Rapper
Build ontologies (for your RDF) in Protege
http://protege.stanford.edu
mercoledì 16 ottobre 13
62. Ontologies and Protege
Two typical scenarios of interoperability between RDF and
Ontologies
Ontologies are large
taxonomies or DAGs, only
transitive inference is used.
(E.g.: SKOS-like)
Ontologies are complex
terminology that rely on
axioms for consistency and
inference
Protege to edit and visualize
the ontology.
Rely on the triplestore for
inference.
Edit in Protege, classify the
ontology via reasoner, then
use the results in
combination with other
RDF statements.
Third scenario....
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
64. Ontologies and Protege
• Relations are first class
objects
• Specifying domain,
range and annotation
can go a long way in
• “documenting” the
ontology
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
65. VOID and metadata
VOID: Metadata about
a dataset.
• Provenance
• License
• Vocabularies
• Statistics
rdf.myexperiment.org/void.rdf
http://www.w3.org/TR/void/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
66. VOID and metadata
SPARQL service
descriptor
• Query language
supported
• Formats returned
• Entailment regime
• ...
curl -H "Accept: application/rdf+xml"
http://beta.sparql.uniprot.org/sparql
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
67. VOID and metadata
Consider registering your data in a data register
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
68. HOWTO use information from the Semantic Web
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
69. Introduction to SPARQL
# NAME
: Get psoriasis proteins
# PARAMETER: psoriasis: the disease name
# FUNCTION : returns all the proteins that have
'psoriasis' in
#
their Swiss-Prot disease description
and their
#
interacting proteins (if known)
BASE
<http://www.semantic-systems-biology.org/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdfschema#>
PREFIX ssb:<http://www.semantic-systemsbiology.org/SSB#>
SELECT distinct ?protein_name ?disease_description
?interacts_with ?encoded_by
WHERE {
GRAPH <uniprot_sprot> {
?protein_id ssb:disease ?disease_description.
?protein_id ssb:mnemonic ?protein_name.
OPTIONAL {
?protein_id ssb:interacts_with ?interactor.
?interactor ssb:mnemonic ?interacts_with.
?interactor ssb:encoded_by ?encoded_by.
}
}
FILTER regex(?disease_description, 'psoriasis').
}
http://www.semantic-systems-biology.org/biogateway/endpoint?
default-graph-uri=&query=%23+NAME+++++%3A+Get+psoriasis+proteins
%0D%0A%23+PARAMETER%3A+psoriasis%3A+the+disease+name%0D%0A
%23+FUNCTION+%3A+returns+all+the+proteins+that+have+%27psoriasis
%27+in%0D%0A%23++++++++++++their+Swiss-Prot+disease+description
+and+their%0D%0A%23++++++++++++interacting+proteins+%28if+known
%29%0D%0A%0D%0ABASE+++%3Chttp%3A%2F%2Fwww.semantic-systemsbiology.org%2F%3E%0D%0APREFIX+rdfs%3A%3Chttp%3A%2F%2Fwww.w3.org
%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX+ssb%3A%3Chttp%3A%2F
%2Fwww.semantic-systems-biology.org%2FSSB%23%3E%0D%0ASELECT
+distinct+%3Fprotein_name+%3Fdisease_description%0D%0A+++++++
%3Finteracts_with+%3Fencoded_by%0D%0AWHERE+%7B%0D%0A++GRAPH+
%3Cuniprot_sprot%3E+%7B%0D%0A++++%3Fprotein_id+ssb%3Adisease+
%3Fdisease_description.%0D%0A++++%3Fprotein_id+ssb%3Amnemonic+
%3Fprotein_name.%0D%0A++++OPTIONAL+%7B%0D%0A++++++%3Fprotein_id
+ssb%3Ainteracts_with+%3Finteractor.%0D%0A++++++%3Finteractor
+ssb%3Amnemonic+%3Finteracts_with.%0D%0A++++++%3Finteractor+ssb
%3Aencoded_by+%3Fencoded_by.%0D%0A++++%7D%0D%0A++%7D%0D%0A+
+FILTER+regex%28%3Fdisease_description%2C+%27psoriasis%27%29.%0D
%0A%7D&format=text%2Fhtml&debug=on
SPARQL is REST! (one query is one URL)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
70. Introduction to SPARQL
SPARQL supports different kind of queries
SELECT ?x ?y...
WHERE {GRAPH PATTERN}
CONSTRUCT {?x ?y ?z}
WHERE {GRAPH PATTERN}
ASK
DESCRIBE
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
71. Introduction to SPARQL
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
73. Introduction to SPARQL
Graph patterns
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
74. Introduction to SPARQL
How do I know what to query ?
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
75. Introduction to SPARQL
Filters
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX biopax3: <http://www.biopax.org/release/biopax-level3.owl#>
SELECT DISTINCT ?pathway ?pathwayname
WHERE
{?pathway rdf:type biopax3:Pathway .
?pathway biopax3:displayName ?pathwayname .
FILTER regex(?pathwayname, "Insulin", "i")
}
LIMIT 100
More operators!
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
76. Introduction to SPARQL
Combining graph matching: union and diff
SELECT DISTINCT ?pathway ?pathwayname
WHERE
{?pathway rdf:type biopax3:Pathway .
?pathway biopax3:displayName ?pathwayname .
?pathway biopax3:pathwayComponent ?reaction .
?reaction rdf:type biopax3:BiochemicalReaction .
{
{?reaction ?rel ?protein .}
UNION
{
?reaction ?rel ?complex .
?complex rdf:type biopax3:Complex .
?complex ?comp ?protein .
}}
?protein rdf:type biopax3:Protein .
?protein biopax3:entityReference <http://purl.uniprot.org/uniprot/P01308>
}
LIMIT 100
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
77. Introduction to SPARQL
Aggregators
SELECT DISTINCT ?pathway ?pathwayname
WHERE
{?pathway rdf:type biopax3:Pathway .
?pathway biopax3:displayName ?pathwayname .
?pathway biopax3:pathwayComponent ?reaction .
?reaction rdf:type biopax3:BiochemicalReaction .
{
{?reaction ?rel ?protein .}
UNION
{
?reaction ?rel ?complex .
?complex rdf:type biopax3:Complex .
?complex ?comp ?protein .
}}
?protein rdf:type biopax3:Protein .
?protein biopax3:entityReference <http://purl.uniprot.org/uniprot/P01308>
}
LIMIT 100
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
78. Introduction to SPARQL
Named graphs
<http://www.openlinksw.com/schemas/virtrdf#>
<http://rdf.ebi.ac.uk/dataset/reactome/45>
<http://rdf.ebi.ac.uk/dataset/reactome/description>
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
79. Introduction to SPARQL
How do I know what to query ?
A “practical example”...
select distinct ?g where {
graph ?g {?s ?p ?o}
}
<http://www.openlinksw.com/schemas/virtrdf#>
<http://rdf.ebi.ac.uk/dataset/reactome/45>
<http://rdf.ebi.ac.uk/dataset/reactome/description>
select distinct ?o where {
graph <http://rdf.ebi.ac.uk/dataset/reactome/45> {?s a ?o}
}
select count (distinct ?s) where {
graph <http://rdf.ebi.ac.uk/dataset/reactome/45> {?s ?p ?o}
}
2221044
select count (distinct ?s) where {
?s ?p ?o
}
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
2221353
Nettab, 16th October 2013,Venice
owl:Ontology
biopax3:FragmentFeature
biopax3:SmallMoleculeReference
biopax3:TemplateReaction
biopax3:Control
biopax3:EvidenceCodeVocabulary
biopax3:SequenceSite
biopax3:Stoichiometry
biopax3:Catalysis
biopax3:PathwayStep
biopax3:UnificationXref
biopax3:Protein
biopax3:PublicationXref
biopax3:PhysicalEntity
biopax3:CellularLocationVocabulary
biopax3:Complex
biopax3:BiochemicalReaction
...
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
81. SPARQL: advanced features
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SPARQL update
PREFIX dc: <http://purl.org/dc/elements/1.1/>
INSERT DATA
{
<http://example/book1> dc:title "A new book" ;
dc:creator "A.N.Other" .
}
INSERT
{ GRAPH <http://example/bookStore2> {
?book ?p ?v }
}
WHERE
{ GRAPH <http://example/bookStore>
{ ?book dc:date ?date .
FILTER ( ?date > "1970-01-01"^^xsd:dateTime )
?book ?p ?v
PREFIX dc: <http://purl.org/dc/elements/1.1/>
INSERT DATA { GRAPH <http://example/graph> } }
{
<http://example/book1> dc:title "A new book" ;
dc:creator "A.N.Other" .
}}
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
DELETE WHERE { ?person foaf:givenName 'Fred';
?property
?value }
http://www.w3.org/TR/sparql11-update/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
82. SPARQL: advanced features
http://spinrdf.org/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
83. Example of Tools
Reasoners
•
Different varieties: simple transitive reasoning can be
embedded in triplestores
•
•
Rule based
OWL-reasoners (OWL, Fact++): can be stand-alone or
embedded in other applications (e.g.: Protege)
http://www.w3.org/2001/sw/wiki/OWL/Implementations
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
84. Example of Tools
RDF visualization tools (graph based)
Think about reification! (not always intuitive)
http://semweb.salzburgresearch.at/apps/rdf-gravity/user_doc.html
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
85. Example of Tools
OWL visualization tools (class based)
http://protegewiki.stanford.edu/index.php/OWLViz
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
86. Example of Tools
Information discovery
http://www.visualdataweb.org/relfinder.php
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
87. Example of Tools
Integrated environments: mapping, visualization,
editing, analysis, exploration
http://io-informatics.com
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
88. Example of Tools
Facet browsers
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
89. Example of Tools
Visualization/mashup libraries
<div
id="sgvzl_example1"
data-sgvizler-endpoint="http://sws.ifi.uio.no/sparql/npd"
data-sgvizler-query="SELECT ?class (count(?instance) AS ?noOfInstances)
WHERE{ ?instance a ?class }
GROUP BY ?class
ORDER BY ?class"
data-sgvizler-chart="gPieChart"
style="width:800px; height:400px;"></div>
https://code.google.com/p/sgvizler/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
91. The Semantic Web Landscape
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
92. Primary Resources
Uniprot
RDF available via:
•Content negotiation
•Extension
•Endpoint
Lot of triples!
http://www.uniprot.org
http://www.ebi.ac.uk/rdf/documentation/uniprot/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
93. Primary Resources
EBI RDF Platform
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
94. Primary Resources
EBI: indentifiers.org
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
98. Primary Resources
DBPedia
freebase...
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
99. Integrated Resources
BioPortal
• Ontologies, mappings and tools
• Most of ontologies are large
terminology collections
http://bioportal.bioontology.org/
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
100. Integrated Resources
BioPortal: detail on SPARQL queries and ontology representation
To be filled
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
101. Integrated Resources
BioPortal: detail on SPARQL queries and ontology representation
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
102. Integrated Resources
Bio2RDF
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
103. Integrated Resources
http://linkedlifedata.com
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
104. Integrated Resources
DistilBio
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
105. Integrated Resources
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
106. Integrated Resources
PathwayCommons integrates pathway
information via BioPAX
GO: 39k terms
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
107. Integrated Resources
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
108. LOD: Linked Open Data
http://lod-cloud.net/versions/2011-09-19/lod-cloud_colored.html
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
109. LOD: Linked Open Data
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
110. LOD: Linked Open Data
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
111. LOD: Linked Open Data
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
112. LOD: Linked Open Data
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
113. Conclusions
Is the Semantic Web good for you ?
•
•
Are resources reliable ? (a business problem)
•
How can I know which resources to use ?
(Not easy)
•
Is the technology mature ? Part of it.
Does it solve the Semantic Integration problem ?
(No)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
114. Conclusions
Is the Semantic Web good for you ?
•
•
•
Beyond Syntax
•
•
Several interesting resources
Explicit Semantics
Web technologies
(SPARQL as REST, distributed queries)
Some technologies are robust (RDF, SPARQL, ...)
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]
115. Exercise
•
•
•
•
Get Jena Fuseki
Start the server
Add some triples via the web interface
Make a distributed query to Uniprot
<http://myHomePage> <http://nettab.org/example/chosenProtein> <uniprotID>
Semantic Web for Life Sciences:Visions, Aims, Tools, Platforms
mercoledì 16 ottobre 13
Nettab, 16th October 2013,Venice
Andrea Splendiani @AndSplend
andrea.splendiani@[deri.org,intellileaf.com]