linked open data · to infinitiy and beyond….. hva blir neste? returnere rdf/xml for alt bygg ut...

41
Linked Open Data – Kartverkets praktiske erfaringer Thomas Ellett von Brasch [email protected]

Upload: others

Post on 27-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Linked Open Data – Kartverkets praktiske erfaringer

Thomas Ellett von Brasch [email protected]

Page 2: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

1 - Hva er egentlig LOD, RDF, triples, graphs, sparql og ontologier?

2 - Hvorfor bruker vi LOD?

3 – Administrative enheter fra Kartverket

4 – Fremtiden

5 - Diskusjon

INNHOLD

Page 3: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Hva er egentlig LOD, RDF, triples, graphs, sparql og ontologier?

Page 4: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

http://data.geonorge.no/administrativeEnheter/fylke/id/173157

HTTP NAMES

STANDARD FORMAT

LINKING THROUGH RELATIONSHIPS1. 3.

2.

LOD – 3 ENKLE REGLER

Page 5: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Resource Description Framework

6 W3C Spesifikasjoner

RDF 1.1 XML

RDF 1.1 N-Triples

RAMMEVERKDATA MODELL

DATA FORMAT

Page 6: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

GRAPH DB / TRIPLE STORE

SETT MED TRIPLES

MANGE VARIANTER

GEOSPATIAL SPØRRINGER

Full Støtte

Delvis Støtte

Ingen Støtte

Page 7: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

SPARQL

W3C SPESIFIKASJONSPARQL is to a graph triple store,

what SQL is to a relational database.

OGC SPESIFIKASJON

PREFIX ex: <http://example.com/exampleOntology#>

SELECT ?capital

?country

WHERE

{ ?x ex:cityname ?capital ;

ex:isCapitalOf ?y .

?y ex:countryname ?country ;

ex:isInContinent ex:Africa . }

EKSEMPEL

Page 8: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

ONTOLOGIER

ClassesObject properties

Data properties

“models a domain with the definition of objects and/or concepts, and their properties and relations”

Feature ClassesIndividuals -> IndividualsIndividuals -> Literals

Byggeklosser

Definisjon Infer Informasjon

Språk

RDF Schema 1.1

( Man rdfs:subClassOf Person )

( Ole rdf:type Man )

( Ole rdf:type Person)

Page 9: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

ARKITEKTUR

Page 10: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Hvorfor bruker vi LOD?

Page 11: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

• https://data.gov.uk/organogram/ordnance-survey/2013-09-30

• http://environment.data.gov.uk/bwq/profiles/profile.html?site=ukf1400-09750

• NRK Origo ‘I dag er Radioarkivet 790.000 metadataposter i en graph-basert database (OpenLink Virtuoso). ’

• NRK Autoritets register• https://data.norge.no/sites/datanorge/files/semantisk_teknologi_i_NRK_datadelings

forum_2016.pdf

• BBC Ontologier - https://www.bbc.co.uk/ontologies

• Ordnance Survey - http://data.ordnancesurvey.co.uk/datasets/os-linked-data

EKSEMPLER

Page 12: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

DATA INTEROPERABILITET

EN GANG

http://data.geonorge.no/administrativeEnheter/fylke/id/173157

AUTORITATIVE DATA BLIR OPPBEVART BARE EN GANG

SEMANTISK FORSTÅELSE DATA DREVNE APPLIKASJONER

FORDELER

Page 13: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Administrative enheter fra Kartverket

Page 14: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

PROSJEKT PLAN

Opprinnelig kom forespørselen gjennom GeoNorge-prosjektet og var for et bestemt brukstilfelle - DIFI ønsket at KV skulle

opprette en lokasjonsbasert tjeneste som returnerer URI og en geografisk referanse for administrative enheter.

Vi ønsket å bruke oppgaven som et pilot prosjekt og utvikle en metodologi og system som kan brukes til en generell LOD-

levering fra Kartverket

De ville kun lagre URI’en, men når URI’en er tilgjengelig for allmennheten bør det returnere all informasjon om det

objektet.

Page 15: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Sentralkomponenter

Forenklet Datamodell

Semantisk Forståelse

http://data.geonorge.no/{namepace}/id/{localId}

Stabil de-referensable URI’s

Data ihtspesifikasjonen

Distribusjon/Tilgang

Page 16: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Infrastruktur

http://rdf.kartverket.no/onto/adm_enhet_4.0.owl

Adm_enhet.ttl

Adm_enhet.rdf

1

2

3

45

6

7

Page 17: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

ONTOLOGI

Page 18: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

• Web tilgjengelig vokabularer som definerer hvilke begreper er tilgjengelig og hvordan begrepene er relaterte.

• Alle ontologier og kodelister har URI’er: http://rdf.kartverket.no/onto/adm_enhet_4.0.owl

• Alle ‘Classes’, ‘Object properties’ og ‘Data properties’ også har uri’er: http://www.opengis.net/ont/geosparql#ehContains

• RDFS og OWL gir enkelelementer for å beskrive ontologier

• SKOS (simple knowledge organisation system) brukes for kodelister

Ontologier og Kodelister

Page 19: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Ontologier og Kodelister

Gjenbruk eksisterende ontologier

‘Map’ til andre ontologier

Enkelt er ofte bedre enn tung og kompleks

Bruk flerspråkligheteller…Engelsk

Page 20: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Opprettelse

Opprinnelig ønsket vi å gå direkte fra den fulle UML-modellen til en delmengde. Dette var veldig vanskelig, komplisert og oppsvulmet.

Vi endte opp med å skape separate ontologier basert på featuretyper, attributter og datatyper av den fulle modellen. Vi importerte andre ontologier hvor det var nødvendig.

Vi brukte Protégé fra Stanford University. Veldigkraftig, veldig fleksibel, veldig ustabil.

Ontologiene er tilgjengelige på Internett ogtilgjengelig via domenet rdf.kartverket.no/onto.

http://rdf.kartverket.no/onto/adm_enhet_4.0.owl

Page 21: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Erfaringer

Mest viktig og mest vanskelig del av prosessen. Vi har ikke nok kunnskap og erfaring for å vurdere metoden.

En enkel modell er mye lettere å bruke. Jo mindre hierarki du har, den bedre.

Lett å gjenbruke andre ontologier, må sørge for at disse er fra en ‘autoritativ’ kilde og vil forsette å være tilgjengelig over tid.

Bruke så mange predikater som mulig.

Page 22: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

URI

Page 23: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

• Alle objekter som leveres ut som LOD må har en stabil URI slik at når folk begynner å inkludere vår data (uri’er) i deres data, de vet at lenken vil alltid fungere og de kan stole på vår datasett.

• Uri’ene bør være HTTP URL’s slik at vanlig web klienter kan hente informasjon fra uri’ene fantes i dataene.

• URI’ene bør også være globalt unik. Derfor er det ‘good practice’ for å definere et URI mønster og registrere det.

Dereferensable URI’er (HTTP names/URL)

Page 24: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Eksempel av et vanlig mønster:

http://<domene>/<autoritet/datasett>/<featureclass>/<ressurstype>/<lokalid>

Eksempel fra Kartverket

http://data.geonorge.no/administrativeEnheter/fylke/id/173157

domene datasett FT RT lokalid

Dereferensable URI’er (HTTP names/URL)

Page 25: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Konstruksjon

http://data.ordnancesurvey.co.uk/id/4000000074577442

Eksempel fra Ordnance Survey

http://brk.basisregistraties.overheid.nl/id/kadastrale-grens/240128610

Eksempel fra Kadaster Nederlands

http://data.geonorge.no/administrativeEnheter/fylke/id/173157

domene datasett FT RT lokalid

Eksempel fra Kartverket

Page 26: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Ikke lett å skape et mønster som dekker alle behov og at alle er enig om. Må håndtere; unikhet, stabilitet, versjoner og kanskje lesbarhet.

Erfaringer

Største utfordringen var en avgjørelse om datasett/featuretype seksjonene. Bør vi følge gml applikasjon skjemaet, bruke navn fra modellen i EA, andre navn osv.

Lokalid biten var også vanskelig siden dataene opprinnelig kommer fra flere kilder, med kun lokalid på et geometri nivå. Derfor bruker vi konkatenering for å skape en lokalid per enhet.

http://data.geonorge.no/administrativeEnheter/fylke/id/173157

domene datasett FT RT lokalid

Page 27: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

DATAKONVERTERING OG LASTING

Page 28: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Data iht RDF spesifikasjonen (triples)

• RDF som en data modell - triples:

uri://people#MikeSmith12 http://xmlns.com/foaf/0.1/knows uri://people#JohnDoe45

Mike Smith Knows John Doe

• RDF som et data serialisation format – RDF/XML:

http://nnriap523:5000/#!/adminstrative_unit/get_describe_county

• RDF som et rammeverk: 6 spesifikasjoner

Page 29: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

DATA

Opprinnelige data iht til nasjonal SOSI spesifikasjon

Transformasjon med Protege og OnTop Plugin Data konvertert til RDF og

lagres i Virtuoso

Page 30: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

DATA

Brukt nasjonale data, som ble opprettet i forhold til en

produktspesifikasjon med UML-modellen.

Data ble filtrert og konvertert til rdf iht ontologien ved hjelp av

et protégé-plugin kalt 'ontop'. Denne plugin lager en

kartleggingfil og trekker ut, konverterer og lagrer dataene i rdf /

xml som en fil.

Disse dataene lastes deretter inn i Virtuoso slik at den er

tilgjengelig i en graf db.

Data geometrien er bare en avgrensningsboks og er kodet som

WKT, geojson. Det er planlagt at full geometri bare vil være

tilgjengelig fra en wfs, hvor objektene inneholder samme lokale

id i gml id’en.

Page 31: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Metoder Erfaringer Proxy over andre tjenester RDF basert tilgang til RDBMS data

Alternativer

RDF basert tilgang til RDBMS data med åpne standarder

Page 32: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Verktøy Erfaringer

Veldig kraftig, veldig fleksibel, veldigustabil.

Fleksibel, kraftig, stabil, bredt bruktTriplestore + sparql endpoint+faceted search+bulk

upload + adminsitrationAlternativer

Semafora

TopQuadrant

Strabon Stardog

Allegrograph

BrightstarDB

Parliament

Oracle

Page 33: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Execution times in real workload

Non topologicalconstructfunctions

Spatialselections

Spatialjoins

Aggregatefunctions

Page 34: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Adding systems with limited geospatial functionalities

Page 35: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

TILGANG

Page 36: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

TILGANG

SparqlEndpoint

RDF/XML File Nedlasting

Rest API’er

Page 37: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

TILGANG

Foreløpig gjennom sparql, faceted søk og en webtjeneste

bygget på toppen av sparql-endepunktet. Også interessert i et

geokoding / resolverprodukt for å gjøre det lettere for folk å

bruke våre URI-er og spatial data og inkludere dem i deres data.

Neste steg, er en ‘doc’ representasjon som viser all informasjon

om et objekt i en html side. Skal enten bruke ‘xslt’ type løsning

eller ‘Linked Data Theatre’ fra Netherlands Kadaster

(https://github.com/architolk/Linked-Data-Theatre)

Startet med adm_enheter, men har også jobbet med stedsnavn

og er nesten ferdig. Mest sannsynlig blir det deretter adresser,

men må først være enig med resten av organisasjonen om de

generelle prinsippene.

Page 38: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Erfaringer

SPARQL er nesten ikke brukbart for noen

En REST API er viktig for vanlig brukere

En ‘doc’ leveranse er nødvendig for publikum (se OS og

Kadaster)

Page 39: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

TO INFINITIY AND BEYOND…..

Page 40: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Hva blir neste?

Returnere RDF/XML for alt

Bygg ut funksjonalitet - Konfigurer swagger

Tilpasse for flere datasett

Sette opp ‘content negotiation’

‘Doc’ representasjon – xslt eller Linked Data Theatre

Bedre integrasjon med eksisterende produkter

Legge til beskrivelser og annen meta-informasjon

Ontology mapping - owl:equivalentPropertySchema.org for ‘crawlability’

Nytt API for geocoding

Page 41: Linked Open Data · TO INFINITIY AND BEYOND….. Hva blir neste? Returnere RDF/XML for alt Bygg ut funksjonalitet - Konfigurer swagger Tilpasse for flere datasett Sette opp Zcontent

Takk for meg!!!