Resource Description Framework (RDF) is de basistaal van het Semantische Web, bedoeld om web resources en hun metadata te beschrijven, op een manier die de automatische verwerking van deze beschrijvingen toelaat.
Agenda:
- Basisbegrippen (triples...)
- RDF in verschillende formaten (XML, N3...)
- Tools en toepassingen
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
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
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
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
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
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