Linked Open Data Einführung

Transcription

Linked Open Data Einführung
Linked Data & SPARQL
Birte Glimm
Institut für Künstliche Intelligenz | 12. Mai 2012
Eine Einführung
Foliensatz adaptiert von Andreas Harth und M. Krötzsch. Die nichtkommerzielle Vervielfältigung,
Verbreitung und Bearbeitung ist zulässig ( → Lizenz CC-BY-NC).
2/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Agenda
Resource Description Framework
Linked Data
SPARQL
Komplexe Graph-Muster in SPARQL
Filter in SPARQL
Ausgabeformate in SPARQL
Modifikatoren in SPARQL
3/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Agenda
Resource Description Framework
Linked Data
SPARQL
Komplexe Graph-Muster in SPARQL
Filter in SPARQL
Ausgabeformate in SPARQL
Modifikatoren in SPARQL
4/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Allgemeines zu RDF
I
“Resource Description Framework”
I
W3C Recommendation (http://www.w3.org/RDF)
I
Zur Zeit in der Überarbeitung
RDF ist ein Datenmodell
I
I
I
I
ursprünglich: zur Angabe von Metadaten für
Web-Ressourcen, später allgemeiner
kodiert strukturierte Informationen
universelles, maschinenlesbares Austauschformat
5/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Daten als Menge von Tripeln
I
Graphdarstellung
Verschiedene syntaktische Darstellungsformen
http://example.org/verlegtBei
http://example.org/SemanticWeb
http://springer.com/Verlag
http://www.w3.org/1999/
http://example.org/Titel 02/22-rdf-syntax-ns#type
Semantic Web – Grundlagen
http://example.org/Verlag
6/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Agenda
Resource Description Framework
Linked Data
SPARQL
Komplexe Graph-Muster in SPARQL
Filter in SPARQL
Ausgabeformate in SPARQL
Modifikatoren in SPARQL
7/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Daten im Web
I
Immer mehr Anbieter stellen nicht nur Webseiten (HTML)
im Web zur Verfügung sondern (auch) Daten
I
Dabei werden Semantic Web Standards verwendet (siehe
Linking Open Data (LOD) Initiative)
http://www.w3.org/wiki/SweoIG/TaskForces/
CommunityProjects/LinkingOpenData
I
Verwendet werden APIs, z.B. via JSON/REST, für den
programmatischen Zugriff
I
Semantic Web Technologien vereinfachen die Integration
von Daten aus verschiedenen Quellen
I
Die Kombination von Daten erlaubt tiefere Einblicke
8/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Linked Data im Web 01.05.2007
Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch.
http://lod-cloud.net/
9/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Linked Data im Web 31.03.2008
ECS
Southampton
Musicbrainz
Jamendo
BBC
Later +
TOTP
Doapspace
AudioScrobbler
QDOS
Magnatune
BBC
John
Peel
updated
FOAF
profiles
Geonames
US
Census
Data
SemWebCentral
Flickr
exporter
Ontoworld
riese
GovTrack
SW
Conference
Corpus
OpenGuides
Revyu
DBpedia
NEW!
SIOC
profiles
World
Factbook
Wikicompany
RDF Book
Mashup
lingvoj
DBLP
Berlin
NEW!
Eurostat
W3C
WordNet
Open
Cyc
RKB
Explorer
flickr
wrappr
Project
Gutenberg
DBLP
Hannover
Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch.
http://lod-cloud.net/
10/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Linked Data im Web 14.07.2009
Surge
Radio
BBC
Playcount
Data
Musicbrainz
MySpace
Wrapper
BBC Music
AudioScrobbler
BBC
John
Peel
BBC
Later +
TOTP
Jamendo
Eurostat
Wikicompany
SemWebCentral
Doapspace
FOAF
profiles
SIOC
Sites
Virtuoso
Sponger
Magnatune
US
Census
Data
GEO
Species
UMBEL
Reactome
Yago
Homolo
Gene
LAASCNRS
UniRef
UniParc
Drug
Bank
Daily
Med
IBM
Taxonomy
PROSITE
GeneID
KEGG
UniProt
Pfam
Diseasome
CORDIS
Newcastle
IEEE
CiteSeer
DBLP
Berlin
LinkedCT
Pub
Chem
eprints
DBLP
Hannover
W3C
WordNet
GovTrack
Open
Cyc
Freebase
lingvoj
DBLP
RKB
Explorer
RKB
ECS
Southampton
RDF Book
Mashup
DBpedia
Linked
GeoData
National
Science
Foundation
RAE
2001
Pisa
Linked
MDB
World
Factbook
ReSIST
Project
Wiki
Eurécom
IRIT
Toulouse
ACM
Open
Calais
riese
Budapest
BME
OpenGuides
BBC
Programmes
Resex
SW
Conference
Corpus
Revyu
flickr
wrappr
Project
Gutenberg
RDF
ohloh
Semantic
Web.org
Flickr
exporter
QDOS
Crunch
Base
Geonames
Pub
Guide
ECS
Southampton
LIBRIS
CAS
ChEBI
OMIM
Symbol
Inter
Pro
UniSTS
HGNC
MGI
ProDom
Gene
Ontology
PDB
PubMed
As of July 2009
Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch.
http://lod-cloud.net/
11/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Linked Data im Web 22.09.2010
DB
Tropes
biz.
data.
gov.uk
Population (EnAKTing)
NHS
John
Peel
(DB
Tune)
education
data.gov
.uk
OpenEI
CO2
(EnAKTing)
(EnAKTing)
Ordnance
Survey
legislation
.gov.uk
UK Postcodes
ESD
standards
reference
data.gov
.uk
The
London
Gazette
BBC
Program
mes
LOIUS
rdfabout
US SEC
GovTrack
Linked
Sensor Data
(Kno.e.sis)
The Open
Library
(Talis)
Poképédia
Linked
LCCN
Fishes
of Texas
Linked
MDB
EventMedia
UMBEL
flickr
wrappr
URI
Burner
Twarql
WordNet
(VUA)
Linked
GeoData
RDF
ohloh
RESEX
Wiki
Pisa
dbpedia
lite
Daily
Med
Taxonomy
Linked
Open
Numbers
CiteSeer
IEEE
Roma
dotAC
GESIS
Courseware
CORDIS
ePrints
Pub
Chem
OBO
KISTI
KEGG
Drug
JISC
LAAS
Diseasome
ChEBI
KEGG
Cpd
Reactome
PDB
Pfam
KEGG
Enzyme
CAS
ProDom
KEGG
Glycan
KEGG
Reaction
Chem2
Bio2RDF
Gene
Ontology
UniSTS
KEGG
Pathway
NSF
HGNC
Homolo
Gene
SGD
PubMed
Newcastle
UN/
LOCODE
UniProt
Gen
Bank
IBM
RAE2001
STITCH
Drug
Bank
Affymetrix
ACM
data
dcs
ERA
SIDER
TCM
Gene
DIT
Budapest
IRIT
DBLP
(RKB
Explorer)
STW
PROSITE
Cornetto
Eurécom
OAI
SW
Dog
Food
DBLP
(FU
Berlin)
VIVO
Cornell
Project
Gutenberg
(FUB)
Medi
Care
Uni
Pathway
(RKB
Explorer)
DBLP
(L3S)
VIVO UF
Uberblic
Linked
CT
Product
DB
Revyu
OS
UniParc
Airports
RISKS
DEPLOY
semantic
web.org
BibBase
iServe
Lexvo
WordNet
(W3C)
Lotico
VIVO
Indiana
UniRef
Climbing
P20
OpenCal
ais
Freebase
lingvoj
Open
Cyc
RDF
Book
Mashup
Ulm
ECS
Southampton
UB
Mannheim
ECS
YAGO
riese
Gem.
Normdatei
Semantic
Crunch
Base
NSZL
Catalog
totl.net
EUNIS
VIAF
Goodwin
Family
Semantic
XBRL
rdfabout
US Census
PSH
PBAC
World
Factbook
(FUB)
Geo
Species
ECS
Southampton
EPrints
lobid
Resources
Pokedex
New
York
Times
Geo
Names
lobid
Organisations
LCSH
LIBRIS
DBpedia
Geo
Linked
Data
(es)
Eurostat
Chronicling
America
t4gm
RAMEAU
SH
MARC
Codes
List
Telegraphis
Taxon
Concept
NASA
(Data
Incubator)
transport
data.gov
.uk
Eurostat
(FUB)
TWC LOGD
Jamendo
BBC
Music
Rechtspraak.
nl
The Open
Library
Manchester
Reading
Lists
Last.FM
(rdfize)
classical
(DB
Tune)
BBC
Wildlife
Finder
Openly
Local
statistics
data.gov
.uk
Linked Data
for Intervals
Last.fm
Artists
(DBTune)
Music
Brainz
(zitgist)
Music
Brainz
(DBTune)
Discogs
(Data Incubator)
FanHubz
EUTC
Productions
Mortality
(EnAKTing)
Energy
Surge
Radio
research
data.gov
.uk
(EnAKTing)
Music
Brainz
(Data
Incubator)
NDL
subjects
NTU
Resource
Lists
Plymouth
Reading
Lists
GTAA
Magnatune
St.
Andrews
Resource
Lists
Sussex
Reading
Lists
Audioscrobbler
(DBTune)
MySpace
(DBTune)
Moseley
Folk
GeneID
MGI
OMIM
InterPro
As of September 2010
Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch.
http://lod-cloud.net/
12/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Linked Data im Web 19.09.2011
Hellenic
FBD
Hellenic
PD
Crime
Reports
UK
NHS
(EnAKTing)
Ren.
Energy
Generators
EEA
Open
Election
Data
Project
EU
Institutions
Mortality
(EnAKTing)
Ordnance
Survey
legislation
data.gov.uk
UK Postcodes
ESD
standards
ISTAT
Immigration
Lichfield
Spending
Scotland
Pupils &
Exams
Traffic
Scotland
Data
Gov.ie
reference
data.gov.
uk
London
Gazette
TWC LOGD
Eurostat
Eurostat
(FUB)
(RKB
Explorer)
(Ontology
Central)
GovTrack
Linked
EDGAR
(Ontology
Central)
EURES
Finnish
Municipalities
New
York
Times
Open
Cyc
Italian
public
schools
BibBase
Freebase
DBLP
(FU
Berlin)
dataopenac-uk
TCM
Gene
DIT
Daily
Med
Twarql
EUNIS
Ocean
Drilling
Codices
Turismo
de
Zaragoza
Janus
AMP
Climbing
Linked
GeoData
PDB
Alpine
Ski
Austria
AEMET
Metoffice
Weather
Forecasts
Weather
Stations
Yahoo!
Geo
Planet
PROSITE
ChEMBL
Open
Data
Thesaurus
Sears
Pisa
ACM
RESEX
Scholarometer
NVD
IBM
DEPLOY
Newcastle
RAE2001
LOCAH
Roma
CiteSeer
Courseware
HGNC
(Bio2RDF)
Affymetrix
SISVU
GEMET
Airports
National
Radioactivity
JP
GESIS
Budapest
IRIT
dotAC
ePrints
IEEE
RISKS
PubMed
ProDom
VIVO
Cornell
STITCH
Linked
Open
Colors
SGD
Gene
Ontology
AGROV
OC
Product
DB
Swedish
Open
Cultural
Heritage
STW
LAAS
KISTI
NSF
JISC
WordNet
(RKB
Explorer)
EARTh
DBLP
(RKB
Explorer)
VIVO
Indiana
UniProt
Taxono
my
Cornetto
WordNet
(W3C)
lobid
Organisations
ECS
(RKB
Explorer)
Pfam
LODE
SMC
Journals
NSZL
Catalog
Wiki
ECS
Southampton
ECS
Southampton
EPrints
Eurécom
LinkedCT
UniProt
WordNet
(VUA)
lobid
Resources
P20
UN/
LOCODE
SIDER
Drug
Bank
Enipedia
Lexvo
DBLP
(L3S)
ERA
Diseasome
Europeana
Deutsche
Biographie
OAI
data
dcs
Uberblic
dbpedia
lite
VIAF
UB
Mannheim
Ulm
data
bnf.fr
BNB
lingvoj
Norwegian
MeSH
GND
ndlna
Calames
OS
YAGO
Rådata
nå!
PSH
IdRef
Sudoc
DDC
Project
Gutenberg
ntnusc
LIBRIS
LCSH
Sudoc
RDF
Book
Mashup
Open
Calais
Greek
DBpedia
LEM
Thesaurus W
MARC
Codes
List
totl.net
US Census
(rdfabout)
El
Viajero
Tourism
URI
Burner
World
Factbook
Geo
Species
UMBEL
riese
GeoWord
Net
Piedmont
Accomodations
Portuguese
DBpedia
t4gm
info
RAMEAU
SH
LinkedL
CCN
SW
Dog
Food
iServe
Geo
Names
US SEC
Scotland
Geography
Linked
MDB
Event
Media
DBpedia
(rdfabout)
Semantic
XBRL
FTS
flickr
wrappr
NDL
subjects
Open
Library
(Talis)
theses.
fr
my
Experiment
Revyu
Fishes
of Texas
Linked
Sensor Data
(Kno.e.sis)
Eurostat
Chronicling
America
Telegraphis
Geo
Linked
Data
CORDIS
CORDIS
(FUB)
Goodwin
Family
NTU
Resource
Lists
Open
Library
Plymouth
Reading
Lists
SSW
Thesaur
us
semantic
web.org
BBC
Music
BBC
Wildlife
Finder
NASA
(Data
Incubator)
transport
data.gov.
uk
Source Code
Ecosystem
Linked Data
Didactal
ia
Pokedex
St.
Andrews
Resource
Lists
Manchester
Reading
Lists
gnoss
Poképédia
Classical
(DB
Tune)
Taxon
Concept
LOIUS
Jamendo
(DBtune)
Last.FM
(rdfize)
BBC
Program
mes
Rechtspraak.
nl
Openly
Local
data.gov.uk
intervals
Music
Brainz
(DBTune)
Ontos
News
Portal
Sussex
Reading
Lists
Bricklink
yovisto
Semantic
Tweet
Linked
Crunchbase
RDF
ohloh
(Data
Incubator)
(DBTune)
OpenEI
statistics
data.gov.
uk
GovWILD
Brazilian
Politicians
educatio
n.data.g
ov.uk
Music
Brainz
(zitgist)
Discogs
FanHubz
patents
data.go
v.uk
research
data.gov.
uk
CO2
Emission
(EnAKTing)
Energy
(EnAKTing)
Surge
Radio
Klappstuhlclub
Lotico
(Data
Incubator)
Last.FM
artists
Population (EnAKTing)
reegle
business
data.gov.
uk
Crime
(EnAKTing)
Ox
Points
EUTC
Productions
tags2con
delicious
Slideshare
2RDF
(DBTune)
Music
Brainz
John
Peel
(DBTune)
Linked
User
Feedback
LOV
Audio
Scrobbler
Moseley
Folk
GTAA
Magnatune
DB
Tropes
OMIM
MGI
InterPro
Smart
Link
Product
Types
Ontology
Open
Corporates
Italian
Museums
Amsterdam
Museum
UniParc
UniRef
UniSTS
GeneID
Linked
Open
Numbers
Reactome
OGOLOD
KEGG
Pathway
Medi
Care
Google
Art
wrapper
meducator
KEGG
Drug
Pub
Chem
UniPath
way
Chem2
Bio2RDF
Homolo
Gene
VIVO UF
ECCOTCP
bible
ontology
KEGG
Enzyme
PBAC
KEGG
Reaction
KEGG
Compound
KEGG
Glycan
As of September 2011
Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch.
http://lod-cloud.net/
13/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Semantic Web Technologien
I
I
Nützlich zum Publizieren, zum Austausch und zur
Integration von Daten
Semantic Web Technologien sind mittlerweile recht
ausgereift
I
I
I
I
I
I
I
IRIs (IETF RFC 3987, 2005)
HTTP (IETF RFC 2616, 1999)
RDF (W3C Recommendation, 1999, Update in 2004)
RDFS (W3C Recommendation, 2004)
SPARQL (W3C Recommendation, 2008, Update im
Moment)
OWL (W3C Recommendation, 2004, Update in 2009)
Linked Data besteht aus einigen Prinzipien zum
Publizieren von Daten im Web
14/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
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 (machines and
humans) to discover more things
*http://www.w3.org/DesignIssues/LinkedData.html
15/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Zusammenhang zwischen URI einer Sache
und URI einer Quelle
User Agent
HTTP
GET
http://www.polleres.net/foaf.rdf#me
RDF
Web Server
http://www.polleres.net/foaf.rdf
16/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Zusammenhang zwischen URI einer Sache
und URI einer Quelle
User Agent
HTTP
GET
303*
HTTP
GET
http://dbpedia.org/resource/Gordon_Brown
RDF
Web Server
http://dbpedia.org/data/Gordon_Brown
http://dbpedia.org/page/Gordon_Brown
*HTTP Response Code 303: See Other
17/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Hintergrund: Uniform Resource Identifiers
I
Ein Uniform Resource Identifier ist eine kompakte
Sequenz von Charakteren, die eine abstrakte oder
physikalische Ressource identifizieren [RFC3986]
I
Syntax
URI = Schema ":" [ Anbieter ] Pfad [ "?" Abfrage ] [ "#" Teil ]
I
Beispiel
Abfrage
Anbieter
z
}|
{
z
}|
{
example.com:8042/
bar
?name=peter
foo://
|{z}
|#titel
{z }
| {z }
Schema
Pfad
Teil
18/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
URIs/IRIs
Protokoll
Domäne
z }| {z
}|
{
http://semanticweb.org/id/Axel_Polleres
{z
}
|
{z
}|
Namensraum
Lokaler Name
Präfix
z }| {z
}|
{
thing:Axel_Polleres
I
URIs sind “Uniform Resource Identifiers”
I
I
I
IRIs sind Unicode-basierte “Internationalized Resource
Identifiers”
Jede URI identifiziert eine Entität
Semantic Web URIs nutzen üblicherweise HTTP
I
I
I
HyperText Transfer Protocol
Können idealerweise aufgelöst werden, um weitere Daten
zu erhalten
Linked Data
19/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
HTTP Übersicht
I
HTTP Nachrichten bestehen aus der Anfrage eines Clients
an einen Server und die Antworten des Servers zum Client
I
Bestimmte Methoden sind vordefiniert (z.B. GET, POST,
etc.), aber weitere können definiert werden
Eine Menge von Statuscodes ist definiert:
I
I
I
I
I
I
Informational 1xx, provisional response, (100 Continue)
Successful 2xx, request successfully received, understood,
and accepted (201 Created)
Redirection 3xx, further action needs to be taken by user
agent to fulfill the request (301 Moved Permanently)
Client Error 4xx, client erred (405 Method Not Allowed)
Server Error 5xx, server encountered an unexpected
condition (501 Not Implemented)
20/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
HTTP Content Negotiation
I
Content Negotiation (CN, conneg) ist der Prozess der
Selektion der besten Repräsentation für eine Anfrage
wenn mehrere Repräsentationen verfügbar sind
I
Drei Arten: server-driven, agent-driven, transparent
$ curl -H "Accept: application/rdf+xml"
http://dbpedia.org/resource/Galway
HTTP/1.1 303 See Other
Content-Type: application/rdf+xml
Location: http://dbpedia.org/data/Galway.rdf
$
curl – Tool um Daten zu einem Server zu schicken oder von einem
Server zu empfangen
-H bedeutet nur HTTP/HTTPS
21/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Semantic Web Application Architecture
21/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Semantic Web Application Architecture
Birte Glimm |
22/51
Linked Data & SPARQL |
12. Mai 2012
Ox
Points
NHS
(EnAKTing)
Ren.
Energy
Generators
Open
Election
Data
Project
EU
Institutions
Mortality
(EnAKTing)
legislation
data.gov.uk
UK Postcodes
ESD
standards
ISTAT
Immigration
Lichfield
Spending
Scotland
Pupils &
Exams
Traffic
Scotland
Data
Gov.ie
reference
data.gov.
uk
data.gov.uk
intervals
London
Gazette
TWC LOGD
Eurostat
Eurostat
(FUB)
(RKB
Explorer)
Finnish
Municipalities
Event
Media
New
York
Times
Geo
Species
UMBEL
El
Viajero
Tourism
RDF
Book
Mashup
Greek
DBpedia
BNB
BibBase
DBLP
(FU
Berlin)
dataopenac-uk
TCM
Gene
DIT
Daily
Med
DBLP
(L3S)
Diseasome
SIDER
UniProt
PDB
PROSITE
ProDom
SMC
Journals
Ocean
Drilling
Codices
Janus
AMP
Climbing
Linked
GeoData
WordNet
(W3C)
Alpine
Ski
Austria
AEMET
Metoffice
Weather
Forecasts
Weather
Stations
Yahoo!
Geo
Planet
Airports
National
Radioactivity
JP
Sears
DEPLOY
RAE2001
LOCAH
Roma
Courseware
dotAC
IEEE
RISKS
Affymetrix
SISVU
PubMed
ChEMBL
Linked
Open
Colors
SGD
Gene
Ontology
AGROV
OC
Open
Data
Thesaurus
Product
DB
NVD
IBM
ePrints
VIVO
Cornell
STITCH
OMIM
MGI
InterPro
Smart
Link
Product
Types
Ontology
Open
Corporates
Italian
Museums
Amsterdam
Museum
UniParc
UniRef
UniSTS
Linked
Open
Numbers
Reactome
OGOLOD
KEGG
Pathway
Medi
Care
Google
Art
wrapper
meducator
KEGG
Drug
Pub
Chem
GeneID
UniPath
way
Chem2
Bio2RDF
Homolo
Gene
Scholarometer
IRIT
Newcastle
CiteSeer
HGNC
GESIS
RESEX
LAAS
KISTI
NSF
JISC
WordNet
(RKB
Explorer)
GEMET
EARTh
Swedish
Open
Cultural
Heritage
STW
Pisa
ACM
VIVO
Indiana
UniProt
(Bio2RDF)
LODE
Turismo
de
Zaragoza
lobid
Organisations
Budapest
Pfam
LinkedCT
Taxono
my
Wiki
ECS
Southampton
ECS
(RKB
Explorer)
DBLP
(RKB
Explorer)
Eurécom
Drug
Bank
Enipedia
Cornetto
NSZL
Catalog
P20
ECS
Southampton
EPrints
UN/
LOCODE
ERA
lingvoj
Lexvo
WordNet
(VUA)
lobid
Resources
OAI
data
dcs
Uberblic
dbpedia
lite
Europeana
Deutsche
Biographie
Ulm
data
bnf.fr
OS
Project
Gutenberg
Norwegian
MeSH
VIAF
UB
Mannheim
Calames
Freebase
YAGO
Open
Cyc
riese
Twarql
EUNIS
GeoWord
Net
Italian
public
schools
URI
Burner
World
Factbook
Rådata
nå!
GND
ndlna
totl.net
US Census
(rdfabout)
Piedmont
Accomodations
IdRef
Sudoc
DDC
Open
Calais
ntnusc
PSH
SW
Dog
Food
Portuguese
DBpedia
LEM
LIBRIS
LCSH
MARC
Codes
List
Sudoc
iServe
Geo
Names
US SEC
(rdfabout)
Semantic
XBRL
Scotland
Geography
Linked
MDB
t4gm
info
RAMEAU
SH
Thesaurus W
theses.
fr
my
Experiment
flickr
wrappr
DBpedia
Linked
Sensor Data
(Kno.e.sis)
Eurostat
(Ontology
Central)
GovTrack
Linked
EDGAR
(Ontology
Central)
FTS
Pokedex
NDL
subjects
Open
Library
(Talis)
LinkedL
CCN
SSW
Thesaur
us
Didactal
ia
Goodwin
Family
NTU
Resource
Lists
Open
Library
Plymouth
Reading
Lists
Revyu
Fishes
of Texas
Geo
Linked
Data
CORDIS
CORDIS
(FUB)
EURES
Chronicling
America
Telegraphis
NASA
(Data
Incubator)
transport
data.gov.
uk
gnoss
Poképédia
St.
Andrews
Resource
Lists
Manchester
Reading
Lists
Source Code
Ecosystem
Linked Data
semantic
web.org
BBC
Music
Taxon
Concept
LOIUS
Jamendo
(DBtune)
Ontos
News
Portal
Sussex
Reading
Lists
Bricklink
yovisto
Semantic
Tweet
Linked
Crunchbase
RDF
ohloh
Classical
(DB
Tune)
BBC
Wildlife
Finder
Rechtspraak.
nl
Openly
Local
Music
Brainz
(DBTune)
Klappstuhlclub
Lotico
Music
Brainz
(zitgist)
Last.FM
(rdfize)
BBC
Program
mes
OpenEI
statistics
data.gov.
uk
GovWILD
Brazilian
Politicians
educatio
n.data.g
ov.uk
Ordnance
Survey
(DBTune)
patents
data.go
v.uk
research
data.gov.
uk
CO2
Emission
(EnAKTing)
Energy
(EnAKTing)
EEA
FanHubz
tags2con
delicious
Slideshare
2RDF
(DBTune)
Discogs
(Data
Incubator)
Linked
User
Feedback
LOV
Audio
Scrobbler
(Data
Incubator)
Last.FM
artists
Population (EnAKTing)
reegle
business
data.gov.
uk
Crime
(EnAKTing)
Surge
Radio
Moseley
Folk
Music
Brainz
John
Peel
(DBTune)
EUTC
Productions
Antwort
Crime
Reports
UK
GTAA
Magnatune
DB
Tropes
Hellenic
FBD
Hellenic
PD
Abfrage
Linked Data Anwendungen: Minimale Architektur
VIVO UF
ECCOTCP
bible
ontology
KEGG
Enzyme
PBAC
KEGG
Reaction
KEGG
Compound
KEGG
Glycan
As of September 2011
23/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Szenario
I
I
Typisches Datenintegrationsszenario
Gemeinsames
Daten
Interaktive
Datenformat
Integration
Datenexploration
Anfrage: Welche Jobangebote gibt es von Konkurrenten
von Facebook?
24/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Agenda
Resource Description Framework
Linked Data
SPARQL
Komplexe Graph-Muster in SPARQL
Filter in SPARQL
Ausgabeformate in SPARQL
Modifikatoren in SPARQL
25/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
SPARQL
SPARQL (sprich engl. sparkle) steht für
SPARQL Protocol And RDF Query Language
I
W3C Spezifikation seit 2008
I
Zur Zeit Erweiterung auf SPARQL 1.1
I
Anfragsprache zur Abfrage von Instanzen aus
RDF-Dokumenten
I
Große praktische Bedeutung
Teile der SPARQL 1.0 Spezifikation
I
Anfragesprache: Thema dieser Vorlesung
I
Ergebnisformat: Darstellung von Ergebnissen in XML
I
Anfrageprotokoll: Übermittlung von Anfragen und
Ergebnissen
26/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Teile der SPARQL 1.1 Spezifikation
I
I
I
I
I
I
I
I
Query: Erweitert die Sprachkonstrukte für SPARQL
Abfragen
Update: zur Modifikation von RDF Graphen (Hinzufügen,
Löschen)
Graph Store HTTP Protocol: HTTP Operationen um eine
Menge von Graphen zu verwalten
Entailment Regimes: Abfragen auch von impliziten
Konsequenzen
Service Description: Methode zum Beschreiben von
SPARQL Endpunkten
Federation Extensions: Ausführung von verteilten Abfragen
Query Results JSON Format: Abfrageergebnisse in JSON
Query Results CSV, TSV Format: Komma und Tab
separierte Abfrageergebnisse
27/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Einfache Anfragen
Eine einfache Beispielanfrage:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
?x foaf:mbox ?mbox }
27/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Einfache Anfragen
Eine einfache Beispielanfrage:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
?x foaf:mbox ?mbox }
I
Die Bedingung der WHERE Klausel heisst query
pattern/Abfragemuster
27/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Einfache Anfragen
Eine einfache Beispielanfrage:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
?x foaf:mbox ?mbox }
I
I
Die Bedingung der WHERE Klausel heisst query
pattern/Abfragemuster
Tripel mit Variablen heissen basic graph pattern (BGP)
BGPs verwenden Turtle Syntax für RDF
BGPs können Variablen (?variable oder $variable)
enthalten
27/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Einfache Anfragen
Eine einfache Beispielanfrage:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
?x foaf:mbox ?mbox }
I
I
Die Bedingung der WHERE Klausel heisst query
pattern/Abfragemuster
Tripel mit Variablen heissen basic graph pattern (BGP)
BGPs verwenden Turtle Syntax für RDF
BGPs können Variablen (?variable oder $variable)
enthalten
I
Abgekürzte IRIs sind möglich (PREFIX)
27/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Einfache Anfragen
Eine einfache Beispielanfrage:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
?x foaf:mbox ?mbox }
I
I
Die Bedingung der WHERE Klausel heisst query
pattern/Abfragemuster
Tripel mit Variablen heissen basic graph pattern (BGP)
BGPs verwenden Turtle Syntax für RDF
BGPs können Variablen (?variable oder $variable)
enthalten
I
Abgekürzte IRIs sind möglich (PREFIX)
I
Abfrageergebnis für die selektierten Variablen (SELECT)
28/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Beispielergebnis
BGP: {?x foaf:name ?name. ?x foaf:mbox ?mbox}
@prefix foaf: http://xmlns.com/foaf/0.1/ .
_:a foaf:name "Birte Glimm" ;
foaf:mbox "b.glimm@googlemail.com" ;
foaf:icqChatID "b.glimm" ;
foaf:aimChatID "b.glimm" .
_:b foaf:name "Sebastian Rudolph" ;
foaf:mbox <mailto:rudolph@kit.edu> .
_:c foaf:name "Pascal Hitzler" ;
foaf:aimChatID "phi" .
foaf:icqChatID rdfs:subPropertyOf foaf:nick .
foaf:name rdfs:domain foaf:Person .
BGP Matching Ergebnis (Tabelle mit einer Zeile je Ergebnis):
x
_ :a
_ :b
name
"Birte Glimm"
"Sebastian Rudolph"
mbox
"b.glimm@googlemail.com"
<mailto:rudolph@kit.edu>
29/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Beispielergebnis
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
?x foaf:mbox ?mbox }
BGP Matching Ergebnis:
x
_ :a
_ :b
name
"Birte Glimm"
"Sebastian Rudolph"
mbox
"b.glimm@googlemail.com"
<mailto:rudolph@kit.edu>
Abfrageergebnis:
name
"Birte Glimm"
"Sebastian Rudolph"
mbox
"b.glimm@googlemail.com"
<mailto:rudolph@kit.edu>
30/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Einfache Graph-Muster
Die grundlegenden Anfragemuster sind einfache Graph-Muster
oder basic graph patterns (BGPs)
I Menge von RDF-Tripeln in Turtle-Syntax
I Turtle-Abkürzungen (mittels , und ;) zulässig
I Variablen werden durch ? oder $ gekennzeichnet
(?variable hat gleiche Bedeutung wie $variable)
I Variablen zulässig als Subjekt, Prädikat oder Objekt
30/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Einfache Graph-Muster
Die grundlegenden Anfragemuster sind einfache Graph-Muster
oder basic graph patterns (BGPs)
I Menge von RDF-Tripeln in Turtle-Syntax
I Turtle-Abkürzungen (mittels , und ;) zulässig
I Variablen werden durch ? oder $ gekennzeichnet
(?variable hat gleiche Bedeutung wie $variable)
I Variablen zulässig als Subjekt, Prädikat oder Objekt
Zulässig 6= lesbar:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?rf456df ?ac66sB
WHERE { ?h4dF8Q foaf:name ?rf456df .
?h4dF8Q foaf:mbox ?ac66sB }
(semantisch äquivalent zur vorherigen Anfrage)
31/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Was bedeuten leere Knoten in SPARQL?
Leere Knoten in Anfragemustern:
I
Zulässig als Subjekt oder Objekt
I
ID beliebig, aber niemals gleiche ID mehrfach pro Anfrage
I
Verhalten sich wie Variablen, die nicht ausgewählt werden
können
31/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Was bedeuten leere Knoten in SPARQL?
Leere Knoten in Anfragemustern:
I
Zulässig als Subjekt oder Objekt
I
ID beliebig, aber niemals gleiche ID mehrfach pro Anfrage
I
Verhalten sich wie Variablen, die nicht ausgewählt werden
können
Leere Knoten in Ergebnissen:
I
Platzhalter für unbekannte Elemente
I
IDs beliebig, aber eventuell an andere Ergebnisteile
gebunden:
subj
Wert
_:a
"zum"
_:b "Beispiel"
subj
Wert
_:y
"zum"
_:g "Beispiel"
subj
Wert
_:z
"zum"
_:z "Beispiel"
32/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Datasets und FROM (NAMED)
Keine FROM Klausel notwendug
Jeder SPARQL Service spezifiziert ein Dataset bestehend
aus einem Default Graphen und keinem oder mehr
benannten Graphen (named graphs)
Keine FROM Klausel
Auswertung bzgl. des Default Graphen
FROM NAMED in Kombination mit dem GRAPH Schlüsselwort
Auswertung über den benannten Graphen
FROM Klausel
Erzeugung eines neuen Default Graphen für die Abfrage
I
I
SELECT ?name ?mbox
FROM NAMED <http://ex.org/a> <http://ex.org/b>
WHERE { GRAPH ?g
{ ?x foaf:name ?name. ?x foaf:mbox ?mbox }
}
33/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Datentypen
@prefix
@prefix
ex:ex1
ex:ex2
ex:ex3
ex:ex4
xsd: <http://www.w3.org/2001/XMLSchema#> .
ex: <http://example.org/> .
ex:p "test" .
ex:p "test"^^xsd:string .
ex:p "test"@en .
ex:p "42"^^xsd:integer .
Was liefert eine Anfrage mit folgendem Muster?
{ ?subject <http://example.org/p> "test" . }
33/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Datentypen
@prefix
@prefix
ex:ex1
ex:ex2
ex:ex3
ex:ex4
xsd: <http://www.w3.org/2001/XMLSchema#> .
ex: <http://example.org/> .
ex:p "test" .
ex:p "test"^^xsd:string .
ex:p "test"@en .
ex:p "42"^^xsd:integer .
Was liefert eine Anfrage mit folgendem Muster?
{ ?subject <http://example.org/p> "test" . }
ex:ex1 als einziges Ergebnis
genaue Übereinstimmung der Datentypen gefordert
Aber: Abkürzung für Zahlenwerte möglich
{ ?subject <http://example.org/p> 42 . }
Datentyp wird aus syntaktischer Form bestimmt:
xsd:integer (42), xsd:decimal (42.2), xsd:double (1.0e6)
34/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Gruppierende Graph-Muster
Einfache Graph-Muster können durch {. . . } gruppiert werden.
Beispiel:
PREFIX ex: <http://example.org/>
SELECT ?titel ?author
WHERE
{ { ?buch ex:publishedBy <http://springer.com/Verlag>.
?buch ex:Titel ?titel . }
{ }
?buch ex:Author ?author .
}
Sinnvoll erst bei Verwendung zusätzlicher Konstruktoren
35/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Optionale Muster
Das Schlüsselwort OPTIONAL erlaubt die Angabe optionaler
Teile eines Musters.
Beispiel:
{ ?book ex:publishedBy <http://springer.com/Verlag> .
OPTIONAL { ?book ex:Titel ?titel . }
OPTIONAL { ?book ex:Author ?author . }
}
35/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Optionale Muster
Das Schlüsselwort OPTIONAL erlaubt die Angabe optionaler
Teile eines Musters.
Beispiel:
{ ?book ex:publishedBy <http://springer.com/Verlag> .
OPTIONAL { ?book ex:Titel ?titel . }
OPTIONAL { ?book ex:Author ?author . }
}
Teile eines Anfrageergebnisses können ungebunden sein:
book
titel
author
<http://ex.org/book1> "Titel1" <http://ex.org/author1>
<http://ex.org/book2> "Titel2"
<http://ex.org/book3> "Titel3"
_:a
<http://ex.org/book4>
_:a
<http://ex.org/book5>
36/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Alternative Muster
Das Schlüsselwort UNION erlaubt die Angabe alternativer Teile
eines Musters.
Example:
{ ?book ex:publishedBy <http://springer.com/Verlag> .
{ ?book ex:Author ?author . } UNION
{ ?book ex:Editor ?author . }
}
Ergebnis entspricht Vereinigung der Ergebnisse mit einer
der beiden Bedingungen
Anm.: Gleiche Variablennamen in beiden Teilen von UNION
beeinflussen sich nicht
37/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Kombination von Optionen und Alternativen (1)
Wie sind Kombinationen von OPTIONAL und UNION zu
verstehen?
{ ?book ex:publishedBy <http://springer.com/Verlag> .
{ ?book ex:Author ?author . } UNION
{ ?book ex:Editor ?author . } OPTIONAL
{ ?author ex:Surname ?name . } }
I
I
Vereinigung zweier Muster mit angefügtem optionalem
Muster oder
Vereinigung zweier Muster, wobei das zweite einen
optionalen Teil hat?
37/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Kombination von Optionen und Alternativen (1)
Wie sind Kombinationen von OPTIONAL und UNION zu
verstehen?
{ ?book ex:publishedBy <http://springer.com/Verlag> .
{ ?book ex:Author ?author . } UNION
{ ?book ex:Editor ?author . } OPTIONAL
{ ?author ex:Surname ?name . } }
I
I
Vereinigung zweier Muster mit angefügtem optionalem
Muster oder
Vereinigung zweier Muster, wobei das zweite einen
optionalen Teil hat?
Erste Interpretation korrekt:
{ ?book ex:publishedBy <http://springer.com/Verlag> .
{ { ?book ex:Author ?author . } UNION
{ ?book ex:Editor
?author . }
} OPTIONAL { ?author ex:Surname ?name . } }
38/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Kombination von Optionen und Alternativen (2)
Allgemeine Regeln
I
OPTIONAL bezieht sich immer auf genau ein
gruppierendes Muster rechts davon.
I
OPTIONAL und UNION sind gleichwertig und beziehen sich
auf jeweils alle links davon stehenden Ausdrücke
(linksassoziativ)
39/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Wozu Filter?
Viele Anfragen sind auch mit komplexen Graph-Mustern nicht
möglich:
I
„Welche Personen sind zwischen 18 und 23 Jahre alt?“
I
„Der Nachname welcher Personen enthält einen
Bindestrich?“
I
„Welche Texte in deutscher Sprache sind in der Ontologie
angegeben?“
Filter als allgemeiner Mechanismus für solche
Ausdrucksmittel
40/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Filter in SPARQL
Beispiel:
PREFIX ex: <http://example.org/>
SELECT ?book WHERE
{ ?book ex:publishedBy <http://springer.com/Verlag> .
?book ex:Price ?price
FILTER (?price < 35)
}
I
I
I
Schlüsselwort FILTER, gefolgt von Filterausdruck in
Klammern
Filterbedingungen liefern Wahrheitswerte (und ev. auch
Fehler)
Viele Filterfunktionen nicht durch RDF spezifiziert
Funktionen teils aus XQuery/XPath-Standard für XML
übernommen
41/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Filterfunktionen: Vergleiche und Arithmetik
Vergleichoperatoren: <, =, >, <=, >=, !=
I Vergleich von Datenliteralen gemäß der jeweils natürlichen
Reihenfolge
I Unterstützung für numerische Datentypen,
xsd:dateTime, xsd:string (alphabetische Ordnung),
xsd:Boolean (1 > 0)
I für andere Typen und sonstige RDF-Elemente nur = und
!= verfügbar
I kein Vergleich von Literalen inkompatibler Typen (z.B.
xsd:string und xsd:integer)
41/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Filterfunktionen: Vergleiche und Arithmetik
Vergleichoperatoren: <, =, >, <=, >=, !=
I Vergleich von Datenliteralen gemäß der jeweils natürlichen
Reihenfolge
I Unterstützung für numerische Datentypen,
xsd:dateTime, xsd:string (alphabetische Ordnung),
xsd:Boolean (1 > 0)
I für andere Typen und sonstige RDF-Elemente nur = und
!= verfügbar
I kein Vergleich von Literalen inkompatibler Typen (z.B.
xsd:string und xsd:integer)
Arithmetische Operatoren: +, -, *, /
I Unterstützung für numerische Datentypen
I Verwendung zur Kombination von Werten in
Filterbedingungen
Bsp.: FILTER( ?gewicht/(?groesse * ?groesse) >= 25 )
42/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Filterfunktionen: Spezialfunktionen für RDF
SPARQL unterstützt auch RDF-spezifische Filterfunktionen:
BOUND(A)
isURI(A)
isBLANK(A)
isLITERAL(A)
STR(A)
LANG(A)
DATATYPE(A)
true falls A eine gebundene Variable ist
true falls A eine URI ist
true falls A ein leerer Knoten ist
true falls A ein RDF-Literal ist
lexikalische Darstellung (xsd:string) von
RDF-Literalen oder URIs
Sprachcode eines RDF-Literals (xsd:string)
oder leerer String falls kein Sprachcode
Datentyp-URI eines RDF-Literals
(xsd:string bei ungetypten Literalen ohne
Sprachangabe)
43/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Ausgabeformatierung mit SELECT
Bisher waren alle Ergebnisse Tabellen: Ausgabeformat SELECT
Syntax: SELECT <Variablenliste> oder SELECT *
Vorteil
Einfache sequentielle Abarbeitung von Ergebnissen
Nachteil
Struktur/Beziehungen der Objekte im Ergebnis nicht
offensichtlich
44/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Ausgabeformatierung mit CONSTRUCT
Kodierung von Ergebnissen in RDF-Graphen: Ausgabeformat
CONSTRUCT
Syntax: CONSTRUCT <RDF-Schablone in Turtle>
PREFIX ex: <http://example.org/>
CONSTRUCT { ?person ex:mailbox ?email .
?person ex:telefon ?telefon . }
WHERE { ?person ex:email
?email .
?person ex:tel
?telefon . }
44/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Ausgabeformatierung mit CONSTRUCT
Kodierung von Ergebnissen in RDF-Graphen: Ausgabeformat
CONSTRUCT
Syntax: CONSTRUCT <RDF-Schablone in Turtle>
PREFIX ex: <http://example.org/>
CONSTRUCT { ?person ex:mailbox ?email .
?person ex:telefon ?telefon . }
WHERE { ?person ex:email
?email .
?person ex:tel
?telefon . }
Vorteil
Stukturiertes Ergebnis mit Beziehungen zwischen Elementen
Nachteile
I
Sequentielle Abarbeitung von Ergebnissen erschwert
I
Keine Behandlung von ungebundenen Variablen
45/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Weitere Formate: ASK und DESCRIBE
SPARQL unterstützt zwei weitere Ausgabeformate:
I
ASK prüft nur, ob es Ergebnisse gibt, keine Parameter
I
DESCRIBE (informativ) liefert zu jeder gefundenen URI
eine RDF-Beschreibung (anwendungsabhängig)
DESCRIBE ?x WHERE { ?x <http://ex.org/employeeId> "1234" }
Kann als Ergebnis z.B. die folgende Ausgabe haben (ohne
Prefix Deklarationen):
_:a
exOrg:employeeId
foaf:mbox_sha1sum
vcard:N
[ vcard:Family
vcard:Given
foaf:mbox_sha1sum rdf:type
"1234" ;
"ABCD1234" ;
"Smith" ;
"John" ] .
owl:InverseFunctionalProperty .
46/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Wozu Modifikatoren?
Bisher nur grundsätzliche Formatierungseinstellungen für
Ergebnisse:
I
Wie kann man definierte Teile der Ergebnismenge
abfragen?
I
Wie werden Ergebnisse geordnet?
I
Können wiederholte Ergebniszeilen sofort entfernt
werden?
Modifikatoren der Lösungssequenz (solution sequence
modifiers)
47/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Ergebnisse Sortieren
Sortierung von Ergebnissen mit Schlüsselwort ORDER BY
SELECT ?book ?price
WHERE { ?book <http://example.org/Price> ?price . }
ORDER BY ?price
47/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Ergebnisse Sortieren
Sortierung von Ergebnissen mit Schlüsselwort ORDER BY
SELECT ?book ?price
WHERE { ?book <http://example.org/Price> ?price . }
ORDER BY ?price
I
Sortierung wie bei Filter-Vergleichoperatoren,
I
Sortierung von URIs alphabetisch als Zeichenketten
I
Reihenfolge zwischen unterschiedlichen Arten von
Elementen:
Ungebundene Variable < leere Knoten < URIs <
RDF-Literale
I
Nicht jede Möglichkeit durch Spezifikation definiert
48/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Ergebnisse sortieren
Weitere mögliche Angaben:
I
ORDER BY DESC(?price): absteigend
I
ORDER BY ASC(?price): aufsteigend, Voreinstellung
I
ORDER BY DESC(?price), ?titel: hierarchische
Ordnungskriterien
49/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
LIMIT, OFFSET und DISTINCT
Einschränkung der Ergebnismenge:
I
LIMIT: maximale Anzahl von Ergebnissen (Tabellenzeilen)
I
OFFSET: Position des ersten gelieferten Ergebnisses
I
SELECT DISTINCT: Entfernung von doppelten
Tabellenzeilen
SELECT DISTINCT ?book ?price
WHERE { ?book <http://example.org/Price> ?price . }
ORDER BY ?price LIMIT 5 OFFSET 25
LIMIT und OFFSET nur mit ORDER BY sinnvoll!
50/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
SPARQL 1.1 Erweiterungen
SPARQL 1.1 vorerst ausgelassen
I
Aggregate
I
Subqueries
I
Negation
I
Ausdrücke in der SELECT Klausel
I
Property Paths
I
Assignment/Zuweisung
I
CONSTRUCT Kurzform
I
Weitere Funktionen und Operatoren
51/51
Birte Glimm |
Linked Data & SPARQL |
12. Mai 2012
Zusammenfassung
I
Die Menge an verfügbaren strukturierten Daten im Web
wächst ständig
I
Semantik wird gebraucht, um Daten aus verschiedenen
Quellen zu integrieren
I
Abfrage und Visualisierung von Daten in Kombination
möglich
SPARQL zur Abfrage der Daten kennengelernt
I
I
I
I
I
I
I
Grundlegende Strukturen (Prefixe, Muster)
Ausgabeformate
Einfache und komplexe Muster (Alternativen, Optionale
Teile, Gruppen)
Filter
Modifikatoren
Semantik definiert durch Übersetzung in SPARQL Algebra