Introductie RDF
Fedict – Brussel – 5 november 2015
| p. 2
 Introductie
 Triples en identifiers
 Vocabularies en schema's
 RDF opslaan en opvragen
 Libraries en tools
 Vragen
Agenda
Introductie
| p. 4
 Geschiedenis
 1995-1998 (Apple, Netscape)
 1999: V1.0 (W3C)
 2014: V1.1
 Oorspronkelijk alleen maar metadata-model
 Later algemeen
 “Statements” over “resources”
 Focus semantic web / bronnen op het www
Resource Description Framework
Triples en identifiers
| p. 6
Graphs
A
C
B
D
E
F
G
X
Y
Y
Z
W
W
| p. 7
 Triple: subject – predicate – object
 <A> <heeft relatie W met> <B>
 <B> <heeft eigenschap Y met waarde> <F>
 <B> <heeft eigenschap Z met waarde> <G>
 Kunnen weer verder wijzen
 Kunnen eigenschappen hebben
 (Meertalige) labels, datums, nummers...
Graphs (2)
| p. 8
 Eenvoudig
 <Julie> <gaat naar> <Parijs>
 Verder uitgewerkt
 <PersoonX> <is een> <Persoon>
 <PersoonX> <heeft als naam> <Julie>
 <PersoonX> <neemt de trein naar> <StadY>
 <StadY> <is een> <Stad>
 <StadY> <heeft als naam> <Parijs>
Triples: voorbeeld
| p. 9
 Parijs: Stad ? Departement ? Persoon ?
 => identifiers
 URI (IRI in RDF 1.1)
 Uniform Resource Identifier
 Kan eruit zien als link naar webpagina (URL)
 Niet verplicht
 mailto:info@fedict.be
 http://id.fedict.be/12345
 Eigen identifiers, of linken naar bestaande
Identifiers
| p. 10
 Geonames.org: referentie naar plaatsnamen
 http://sws.geonames.org/2988507/
 Basis semantisch web / linked (open) data
 Dereferencing: ophalen extra info
 Met RDF die weer linken naar andere resources heeft
 Die weer gedownload kunnen worden etc
Identifiers: gebruik en linken
| p. 11
 Zelf identifier / URI uitvinden
 Of “blank node” gebruiken
 Wel een interne ID, maar geen URI
 Kan dus niet naar verwezen worden van buitenaf
 Aandachtspunt bij samenvoegen bronnen
Wat als er geen identifier bestaat ?
| p. 12
Voorbeeld: stad met naam Parijs
http://sws.geonames.org/2988507/
“Parijs” (NL)
“Parigi” (IT)
Heeft naam
Heeft naam
Stad
Is een
Vocabularies en schema's
| p. 14
 Relaties / classes krijgen ook identifiers
 <heeft naam>, <is een>, …
 => Vocabularies / ontologies
 RDF Schema (RDFS)
 Web Ontology Language (OWL)
 Hergebruik ook hier weer sterk aangeraden !
Identifiers voor relaties, classes...
| p. 15
 Classes en subclasses
 “City” is een subclass van klasse “Place”
 Domain => Range
 “Persoon” = is een inwoner van => “Place”
 Properties en subproperties
 Eigenschappen
 Literals
 Bepaald type (int, date..) of meertalige labels (strings)
RDFS
| p. 16
 Dublin Core Terms: basis-metadata
 Document, titel, auteur, beschrijving...
 DOAP: beschrijving van (software) projecten
 DCAT-AP: metadata open data portalen
 Catalog, Dataset...
 (EU) Core Vocabularies: o.a. services
 SKOS: thesauri
Vocabularies, schema's: voorbeelden
| p. 17
Voorbeeld: stad met naam Parijs (2)
http://sws.geonames.org/2988507/
“Parijs” (NL)
http://schema.org/name
http://schema.org/City
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
RDF opslaan en opvragen
| p. 19
 Semantic Web / Linked Open Data
 De facto standaard
 Graphs
 Minder geschikt voor
 Eenvoudige config files => tekst / INI / properties files
 Document-achtige structuren => XML / HTML
 Grote hoeveelheden tabulaire data => RDBMS
Wanneer RDF (of niet)
| p. 20
 RDF als
 RDF/XML
 RDFa (in HTML)
 N3 / N-Triples / Turtle
 JSON-LD
 Equivalent
 Keuze hangt vooral af van beschikbare tools
 Performantie / capaciteit
Meerdere notaties / formaten
| p. 21
RDF/XML vs N-Triples
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:schema="http://schema.org/">
<rdf:Description rdf:about="http://sws.geonames.org/2988507/">
<schema:name xml:lang="en">Paris</schema:name>
<schema:name xml:lang=”it”>Parigi</schema:name>
</rdf:Description>
</rdf:RDF>
<http://sws.geonames.org/2988507/> <http://schema.org/name> "Parigi"@it .
<http://sws.geonames.org/2988507/> <http://schema.org/name> "Paris"@en .
| p. 22
N-Triples vs Notation3 (N3)
@prefix schema: <http://schema.org/> .
<http://sws.geonames.org/2988507/> schema:name "Paris"@en, "Parigi"@it .
<http://sws.geonames.org/2988507/> <http://schema.org/name> "Parigi"@it .
<http://sws.geonames.org/2988507/> <http://schema.org/name> "Paris"@en .
| p. 23
JSON-LD
{
"@context": {
"schema": "http://schema.org/",
},
"@id": "http://sws.geonames.org/2988507/",
"schema:name": [
{
"@language": "it",
"@value": "Parigi"
},
{
"@language": "en",
"@value": "Paris"
}
]
}
| p. 24
 Kan in klassieke RDBMS (MySQL, PostgreSQL)
 Performantie-issues
 “Hybride” databases
 OpenLink Virtuoso
 Oracle Spatial and Graph
 Gespecialiseerde “stores”
 Jena TDB / Sesame SDB
 StarDog
Opslag / triple stores
| p. 25
 SPARQL
 Lijkt wat op SQL
 SELECT … WHERE / FILTER... ORDER BY …
 Kan externe informatie ophalen (FROM)
 SPARQL Update
 (Linked Data Fragments)
 Of via product-specifieke API
 Vaak handiger / performanter, maar weinig “portable”
Queries / Updates
Libraries en tools
| p. 27
 RDFLib (Python)
 https://pypi.python.org/pypi/rdflib
 Redland RDF (PHP, Python, C, Ruby)
 http://librdf.org
 Apache Jena (Java)
 https://jena.apache.org
 RDF4j / Sesame (Java)
 http://rdf4j.org
Libraries
| p. 28
 iMinds RML (RDF Mapping Language)
 RDBMS, JSON files… mappen naar RDF
 http://rml.io
 En nog veel meer
 http://www.w3.org/wiki/ConverterToRdf
Conversietools
| p. 29
 W3C RDF Validator
 http://www.w3.org/RDF/Validator/
 Omzetten RDF/XML <=> JSON-LD <=> …
 http://rdf-translator.appspot.com
Online tools
| p. 30
 Herbruikbare taxonomies / schema's …
 http://publications.europa.eu/mdr/authority/
 http://schema.org/docs/schemas.html
 http://lov.okfn.org/dataset/lov/
 Documentatie
 https://code.google.com/p/tdwg-rdf/wiki/Beginners
 http://www.w3.org/TR/rdf-primer/
Linken
Vragen ?
Bedankt !
Bart Hanssens / Fedict
WTC III, Simon Bolivarlaan 30
1000 Brussel, België
@BartHanssens
bart.hanssens [at] fedict.be | www.fedict.belgium.be

Introductie RDF

  • 1.
    Introductie RDF Fedict –Brussel – 5 november 2015
  • 2.
    | p. 2 Introductie  Triples en identifiers  Vocabularies en schema's  RDF opslaan en opvragen  Libraries en tools  Vragen Agenda
  • 3.
  • 4.
    | p. 4 Geschiedenis  1995-1998 (Apple, Netscape)  1999: V1.0 (W3C)  2014: V1.1  Oorspronkelijk alleen maar metadata-model  Later algemeen  “Statements” over “resources”  Focus semantic web / bronnen op het www Resource Description Framework
  • 5.
  • 6.
  • 7.
    | p. 7 Triple: subject – predicate – object  <A> <heeft relatie W met> <B>  <B> <heeft eigenschap Y met waarde> <F>  <B> <heeft eigenschap Z met waarde> <G>  Kunnen weer verder wijzen  Kunnen eigenschappen hebben  (Meertalige) labels, datums, nummers... Graphs (2)
  • 8.
    | p. 8 Eenvoudig  <Julie> <gaat naar> <Parijs>  Verder uitgewerkt  <PersoonX> <is een> <Persoon>  <PersoonX> <heeft als naam> <Julie>  <PersoonX> <neemt de trein naar> <StadY>  <StadY> <is een> <Stad>  <StadY> <heeft als naam> <Parijs> Triples: voorbeeld
  • 9.
    | p. 9 Parijs: Stad ? Departement ? Persoon ?  => identifiers  URI (IRI in RDF 1.1)  Uniform Resource Identifier  Kan eruit zien als link naar webpagina (URL)  Niet verplicht  mailto:info@fedict.be  http://id.fedict.be/12345  Eigen identifiers, of linken naar bestaande Identifiers
  • 10.
    | p. 10 Geonames.org: referentie naar plaatsnamen  http://sws.geonames.org/2988507/  Basis semantisch web / linked (open) data  Dereferencing: ophalen extra info  Met RDF die weer linken naar andere resources heeft  Die weer gedownload kunnen worden etc Identifiers: gebruik en linken
  • 11.
    | p. 11 Zelf identifier / URI uitvinden  Of “blank node” gebruiken  Wel een interne ID, maar geen URI  Kan dus niet naar verwezen worden van buitenaf  Aandachtspunt bij samenvoegen bronnen Wat als er geen identifier bestaat ?
  • 12.
    | p. 12 Voorbeeld:stad met naam Parijs http://sws.geonames.org/2988507/ “Parijs” (NL) “Parigi” (IT) Heeft naam Heeft naam Stad Is een
  • 13.
  • 14.
    | p. 14 Relaties / classes krijgen ook identifiers  <heeft naam>, <is een>, …  => Vocabularies / ontologies  RDF Schema (RDFS)  Web Ontology Language (OWL)  Hergebruik ook hier weer sterk aangeraden ! Identifiers voor relaties, classes...
  • 15.
    | p. 15 Classes en subclasses  “City” is een subclass van klasse “Place”  Domain => Range  “Persoon” = is een inwoner van => “Place”  Properties en subproperties  Eigenschappen  Literals  Bepaald type (int, date..) of meertalige labels (strings) RDFS
  • 16.
    | p. 16 Dublin Core Terms: basis-metadata  Document, titel, auteur, beschrijving...  DOAP: beschrijving van (software) projecten  DCAT-AP: metadata open data portalen  Catalog, Dataset...  (EU) Core Vocabularies: o.a. services  SKOS: thesauri Vocabularies, schema's: voorbeelden
  • 17.
    | p. 17 Voorbeeld:stad met naam Parijs (2) http://sws.geonames.org/2988507/ “Parijs” (NL) http://schema.org/name http://schema.org/City http://www.w3.org/1999/02/22-rdf-syntax-ns#type
  • 18.
  • 19.
    | p. 19 Semantic Web / Linked Open Data  De facto standaard  Graphs  Minder geschikt voor  Eenvoudige config files => tekst / INI / properties files  Document-achtige structuren => XML / HTML  Grote hoeveelheden tabulaire data => RDBMS Wanneer RDF (of niet)
  • 20.
    | p. 20 RDF als  RDF/XML  RDFa (in HTML)  N3 / N-Triples / Turtle  JSON-LD  Equivalent  Keuze hangt vooral af van beschikbare tools  Performantie / capaciteit Meerdere notaties / formaten
  • 21.
    | p. 21 RDF/XMLvs N-Triples <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:schema="http://schema.org/"> <rdf:Description rdf:about="http://sws.geonames.org/2988507/"> <schema:name xml:lang="en">Paris</schema:name> <schema:name xml:lang=”it”>Parigi</schema:name> </rdf:Description> </rdf:RDF> <http://sws.geonames.org/2988507/> <http://schema.org/name> "Parigi"@it . <http://sws.geonames.org/2988507/> <http://schema.org/name> "Paris"@en .
  • 22.
    | p. 22 N-Triplesvs Notation3 (N3) @prefix schema: <http://schema.org/> . <http://sws.geonames.org/2988507/> schema:name "Paris"@en, "Parigi"@it . <http://sws.geonames.org/2988507/> <http://schema.org/name> "Parigi"@it . <http://sws.geonames.org/2988507/> <http://schema.org/name> "Paris"@en .
  • 23.
    | p. 23 JSON-LD { "@context":{ "schema": "http://schema.org/", }, "@id": "http://sws.geonames.org/2988507/", "schema:name": [ { "@language": "it", "@value": "Parigi" }, { "@language": "en", "@value": "Paris" } ] }
  • 24.
    | p. 24 Kan in klassieke RDBMS (MySQL, PostgreSQL)  Performantie-issues  “Hybride” databases  OpenLink Virtuoso  Oracle Spatial and Graph  Gespecialiseerde “stores”  Jena TDB / Sesame SDB  StarDog Opslag / triple stores
  • 25.
    | p. 25 SPARQL  Lijkt wat op SQL  SELECT … WHERE / FILTER... ORDER BY …  Kan externe informatie ophalen (FROM)  SPARQL Update  (Linked Data Fragments)  Of via product-specifieke API  Vaak handiger / performanter, maar weinig “portable” Queries / Updates
  • 26.
  • 27.
    | p. 27 RDFLib (Python)  https://pypi.python.org/pypi/rdflib  Redland RDF (PHP, Python, C, Ruby)  http://librdf.org  Apache Jena (Java)  https://jena.apache.org  RDF4j / Sesame (Java)  http://rdf4j.org Libraries
  • 28.
    | p. 28 iMinds RML (RDF Mapping Language)  RDBMS, JSON files… mappen naar RDF  http://rml.io  En nog veel meer  http://www.w3.org/wiki/ConverterToRdf Conversietools
  • 29.
    | p. 29 W3C RDF Validator  http://www.w3.org/RDF/Validator/  Omzetten RDF/XML <=> JSON-LD <=> …  http://rdf-translator.appspot.com Online tools
  • 30.
    | p. 30 Herbruikbare taxonomies / schema's …  http://publications.europa.eu/mdr/authority/  http://schema.org/docs/schemas.html  http://lov.okfn.org/dataset/lov/  Documentatie  https://code.google.com/p/tdwg-rdf/wiki/Beginners  http://www.w3.org/TR/rdf-primer/ Linken
  • 31.
  • 32.
    Bedankt ! Bart Hanssens/ Fedict WTC III, Simon Bolivarlaan 30 1000 Brussel, België @BartHanssens bart.hanssens [at] fedict.be | www.fedict.belgium.be