GeoTest 2013
Förstudie Linked Data
Linked Data
Rapport upprättad 2013-12-04
Författare:
Viktor Högberg – [email protected]
Prof. em. Anders Östman – [email protected]
1 Innehållsförteckning
1
2
3
4
5
6
7
Introduktion ............................................................................................................................. 3
1.1 Om GeoTest-projektet ....................................................................................................... 3
1.2 Länka relaterad data .......................................................................................................... 3
1.3 Länkade Data ..................................................................................................................... 3
Metod ....................................................................................................................................... 4
2.1 Lantmäteriets fastighetsregister ....................................................................................... 4
2.2 Myndigheten för samhällsskydd och beredskap (MSB) .................................................... 5
2.3 Länkade Data principer...................................................................................................... 5
2.4 Programvaror..................................................................................................................... 6
2.5 Analys och strukturering av källdata (MSB, LM) ............................................................... 6
2.6 Identifiera möjliga identifierare för källdata ..................................................................... 7
2.7 Transformation från befintlig datastruktur till RDF........................................................... 7
2.8 Matchning av datakällor .................................................................................................... 8
2.9 Testa frågeställningar mot den hoplänkade datamängden (SPARQL) .............................. 9
Resultat..................................................................................................................................... 9
Diskussion ............................................................................................................................... 12
Slutsatser och rekommendationer......................................................................................... 12
5.1 Hur kan standarder inom semantisk webb-teknik underlätta och förenkla hanteringen
av data och information? - Vad är fördelarna? .......................................................................... 13
5.2 Hur mycket går att matcha mellan dessa datakällor på automatiserad väg? ................. 14
5.3 Vilka problem och svårigheter uppstår, både tekniska och datarelaterade? ................. 14
Referenser .............................................................................................................................. 16
Bilaga A - Metod ..................................................................................................................... 17
2
1 Introduktion
1.1
Om GeoTest-projektet
Målet med GeoTest-projektet är att utveckla testtjänster inom geodataområdet, framför allt
relaterade till utvecklingen av den svenska SDI:n (Spatial Data Infrastructure).
GeoTest är en gemensam satsning i samverkan mellan Lantmäteriet, Högskolan i Gävle och
Future Position X (FPX), och bidrar till en kvalitetssäkrad infrastruktur för geodata.
1.2
Länka relaterad data
Syftet med denna förstudie är att identifiera problem som kan uppkomma när man länkar ihop
data från olika myndigheter. Som pilotfall länkas data om skolbränder från Insatsregistret
(Myndigheten för samhällsskydd och beredskap, MSB) med fastighetsregistret från
Lantmäteriet.
MSB har uppdrag från regeringen att kommunicera och analysera allvarliga händelser och
olyckor till andra myndigheter och organisationer. Via räddningstjänsten får man vid varje
händelse en position som lagras i insatsregistret. För analys och informationsspridning till andra
behövs mer information om händelsen. Genom att länka denna information med andra externa
databaser vill man förbättra de efterföljande analyserna av insatserna och mer effektivt utnyttja
den ökade informationsmängden.
Förstudien skall primärt ge svar på följande frågor:




1.3
Hur kan standarder inom semantisk webb-teknik underlätta och förenkla hanteringen av
data och information?
Hur mycket går att matcha mellan dessa datakällor på automatiserad väg?
Vilka problem och svårigheter uppstår, både tekniska och datarelaterade?
Vad är fördelarna med att använda sig av Länkade Data?
Länkade Data
Länkade Data, eller Linked Data, är ett koncept för att koppla ihop dokument och data från
exempelvis olika organisationer. Detta för oss närmare den semantiska webben, som för
närvarande utvecklas i full fart när allt fler publicerar sina data efter riktlinjerna för Länkade
Data.
3
En av riktlinjerna för länkade data är att använda standarder som RDF (Resource Description
Framework) för att publicera och länka sina data. RDF är en datamodell baserad på tripletter
och den är en av grunderna för den semantiska webben. Med RDF blir det flexibelt att beskriva
företeelser exempelvis människor, platser och abstrakta koncept – och hur dessa relaterar till
andra företeelser. RDF knyter ihop data och semantik, vilket medför att informationen är både
läsbar för människor och att den automatiskt kan läsas av maskiner. Med enkla frågor kan data
som finns i flera RDF-databaser på webben sammanställas som om allt fanns på samma ställe.
Detta leder till att stora mängder av data får ett högre värde. Standardiserad semantik bedöms
ha goda möjligheter till smartare lösningar, program och visualiseringar.
2 Metod
Utförandet av denna studie har gjorts i sex steg.
2.3 Analys och strukturering av källdata (MSB och LM)
Försöka få en bild av hur dessa data är beskrivet, strukturerat och dess betydelse.
2.4 Identifiera möjliga identifierare för källdata
Att se vilka av attributen passar som en unik identifierare för respektive objekt.
2.5 Transformation från befintlig datastruktur till RDF
Skapande av tripletter från källdata samt skapa en universell identifierare (URI) av
objektens identifierare. Val av programvara för att utföra förstudien
2.6 Matchning mellan dessa datakällor
Automatiserad matchning av strängar i Google Refine.
2.7 Testa frågeställningar mot den hoplänkade datamängden (SPARQL)
Testa frågeställningar mot SPARQL-endpoint samt traversera länkarna mellan data med
RDF browsers.
Metoden beskrivs i sin helhet i bilaga A.
2.1
Lantmäteriets fastighetsregister
Fastighetsregistret är Sveriges officiella register över hur marken i vårt land är indelad, dess
ägarförhållanden etc. Registret innehåller även information om adresser, byggnader och
fastighetstaxering. Den typ av information som användes i denna studie var ett så kallat
standarduttag från detta register. Det var fem filer, ALTNAMN_52B, ADRPL_90A, KOORD,09A,
REGBYG_50A samt REGENH_01A. Dessa filer innehåller information om adresser, koordinater,
byggnaden samt den mark där byggnaden står.
4
2.2
Myndigheten för samhällsskydd och beredskap (MSB)
Skolbränder uppskattas kosta samhället minst 300 miljoner kronor varje år. Hälften av alla
skolbränder är anlagda och det sker idag ungefär en anlagd skolbrand om dagen i Sverige. I
MSB’s insatsregister finns information som adress, byggnadstyp, namn, fastighetsbeteckning, tid
för olyckan, koordinater, referenssystem, orsak, orsaksförlopp och eventuell skada med mera.
2.3
Länkade Data principer
Länkad Data är ett sätt att publicera och länka strukturerad data på webben. Tim Berners-Lee
tog fram dessa principer och de kallas nu ’Linked Data principles’. Principerna är: (översatt till
svenska)
1. Använda URI:er1 (Uniform Resource Identifier) som namn för ting. (personer, saker,
abstrakta koncept, relationer m.m.)
2. Använda HTTP URI:er, så att man kan referera till dessa namn.
3. När någon refererar till en URI, tillhandahåll användbar information, genom att använda
standarder (RDF, SPARQL).
4. Inkludera länkar till andras URI:er, så man kan upptäcka mer saker.
Matt B
subjekt
knows
predikat
Scott M
objekt
Figur 1. URI:er används för att identifiera människor och relationerna mellan dem. Exempel från www.linkeddatabook.com
http://biglynx.co.uk/people/matt-b ___________________ http://exampl.com/people/scott-m
http://xmlns.com/foaf/0.1/knows
Länkarna ovan visar ett exempel på en triplett i RDF. Två personer är identifierade med unika
URI:er och de känner varandra via predikatet (relationen) knows, som också har en unik URI.1
Flera tripletter bildar en graf.
1
En Uniform Resource Identifier är en dataprogrammeringsterm. Den består av en sträng av tecken som används för att
identifiera eller namnge en resurs. Den huvudsakliga orsaken för denna identifiering är att ge möjlighet att med särskilda
protokoll referera till resursen över ett nätverk, typiskt World Wide Web
http://sv.wikipedia.org/wiki/Uniform_Resource_Identifier
5
2.4
Programvaror
Följande programvaror användes i studien.




2.5
Google Refine (numera Open Refine)
Fuseki SPARQL 1.1 Server
Tabulator till Firefox (RDF-data browser)
BrownSauce (RDF-data browser)
Analys och strukturering av källdata (MSB, LM)
Data från såväl Lantmäteriet som MSB levererades i CSV-format. Första steget var således att
konvertera dessa data till RDF. Detta gjordes i verktyget Google Refine.
Entiteterna i Lantmäteriets filer hade en struktur med 1:M-relationer (en till många) med
varandra. Detta betyder att en sådan relation inte går att skapa med endast en triplett, utan
flera tripletter måste skapas, en för varje fil. Därför blev det först nödvändigt att försöka länka
ihop LMs data till en egen graf. LMs filer är hoplänkade via identifierarna Fastighetsnyckel samt
Riksnyckel. Vissa filer är ihopkopplade av Riksnyckeln och vissa med Fastighetsnyckeln.
URI = http://www.geotest.se/ALTNAMN_52B.rdf#UUID
URI = http://www.geotest.se/REGBYG_50A.rdf#UUID
REGBYG_50A
Riksnyckelid
Fastighetsnyckel
Byggnadsstatus
..
ALTNAMN_52B
Riksnyckelid
Namn
..
URI = http://www.geotest.se/REGENH_01A.rdf#UUID
REGENH_01A
Fastighetsnyckel
Tomträtt
Status
..
KOORD_09A
Fastighetsnyckel
Lon, Lat
..
ADRPL_90A
Riksnyckelid
Fastighetsnyckel
Adress
..
URI = http://www.geotest.se/ADRPL_90A.rdf
URI = http://www.geotest.se/KOORD_09A.rdf#UUID
Figur 2. Lantmäteriets data med deras interna struktur. Varje skolas identifierare, Universally Unique Identifier
(UUID) gjordes om till HTTP URI:er enligt principerna för Länkad Data.
För data från MSB’s har det unika rapportnumret använts som URI. Deras struktur är uppbyggd
där en rapport innehåller en viss mängd attribut och data. Denna struktur är praktisk i detta fall,
eftersom övergången till RDF och tripletter då blir mer naturlig. Se figur 3 för MSB’s strukturerat
i RDF.
6
Figur 3. Google Refine RDF-skelett för MSBs datastruktur. Här läggs relationer in mellan rapportnummret och dess attribut, ex.
rapportnummer har name objektsnamn (skolnamn). Foaf står för Friend of a Friend och är ett vokabulär som skapades för att
maskiner skall förstå vad relationer mellan personer och objekt betyder. Foaf:name är också beskriven i RDF i triplettstruktur.
2.6
Identifiera möjliga identifierare för källdata
De identifierare som MSB använder internt är rapportsnummer. En identifierare som görs om
till en URI skall vara unik. Lantmäteriets struktur av identifierare är något mer komplex. Deras
interna id-struktur bygger på att flera olika unika identifierare används i fler filer, se Figur 2. Här
ser vi att ALTNAMN inte har någon koppling till REGENH och KOORD. En REGENH kan dock ha
flera REGBYG och en REGBYG kan ha flera ADRPL. Detta betyder att en enhet som byggnader
står på kan ha flera adresser beroende på storlek. Den kan även ha flera byggnader. Detta visas i
RDF-browsern BrownSauce i Figur 7.
2.7
Transformation från befintlig datastruktur till RDF
Olika arbetsflöden kan användas för transformation av data till RDF-form, I denna studie var
båda parters data statiska textfiler i filformatet CSV. Eftersom denna transformation skall vara
så automatisk som möjligt användes det högra arbetsflödet i Figur 4. Det verktyg som användes
i denna studie var Google Refine. Detta program stödjer bland annat transformation från XML
eller CSV till RDF. Innan transformationen görs måste ett RDF-skelett skapas manuellt som
specificerar den RDF-struktur som transformationen skall skapa. Här väljer man även vilka
predikat (relationer) olika subjekt/objekt skall ha och vilka vokabulär dessa relationer beskrivs
av. När man publicerar länkade data bör man så mycket som möjligt återanvända befintliga
7
vokabulärer. I denna studie har befintliga vokabulärer används som finns tillgängliga på nätet.
Verktyget Google Refine erbjuder även funktioner för automatiserad matchning (reconicle) och
den kan också användas för text/datahantering.
Figur 4: Linked Data Publishing Options and Workflows. [1]
2.8
Matchning av datakällor
Målet med att matcha två datakällor med varandra är att skapa en länk mellan två URI:er i
respektive datamängd. Detta skapar en brygga mellan datamängderna och man kan traversera
mellan dessa data. För att matcha en fil mot en befintlig datamängd måste datamängden finnas
som en SPARQL-endpoint. SPARQL är ett frågespråk för RDF-databaser. En SPARQL-endpoint
identifieras med en URI som innehåller en stor graf av alla tripletter man valt att lägga in från sin
informationskälla. Tripletterna är baserade på en grafstruktur och en SPARQL-endpoint kan
således beskrivas som en stor graf många tripletter. Mot denna endpoint kan man ställa
SPARQL-frågor som hämtar ut det data man söker. I denna studie lades Lantmäteriets data upp i
en endpoint. Detta gjordes på en maskin med Ubuntu 12.10 med programvaran Fuseki SPARQL
1.1 Server. Dess URL anges sedan i Google Refine vid matchningen och länkningen. När
endpointen är tillgänglig i Refine kan matchningen från kolumnerna i MSB’S data börja matchas
mot LM’s endpoint. I denna process finns möjligheten att ”förlika” data, d.v.s. att tillåta viss
variation mellan de textsträngar som skall matchas mot varandra. I programmet väljs kolumnen
8
som man vill matcha och programmet kan sedan automatiskt hitta länkar. Det går att förlita sig
helt på programmet där det via smarta beslut försöker hitta den bästa matchningen. En sådan
förlikning valdes i denna studie, men en manuell granskning gjordes efteråt. Eftersom
länkningen görs via matchning av strängar kan programmet missa ställen där tidigare manuell
inmatning har samma semantik men en annan syntax. Ett exempel är att resurs A innehåller
”Polhemsskolan – P1” och skall matchas med resurs B’s ”Polhemsskolan, P1-P2”.
2.9 Testa frågeställningar mot den hoplänkade datamängden
(SPARQL)
När MSB’s data har matchas mot LMs endpoint läggs MSB’s fil upp i en ny graf i endpointen. Nu
kan frågor ställas mot den sammanlänkade datamängden. Via villkor och filter i SPARQL kan en
fråga som berör två helt externa databaser ställas och svar returneras. Detta möjliggörs av att
objekt identifieras med URI:er. Dessa använder sig av standardprotokollet HTTP och all
travestering sker alltså via webben. De båda intressenternas URI:er ligger i endpointen men
eftersom det sker via webben traverserar SPARQL-frågorna över webben till intressenternas
URL:er (platsen på servern där data finns) via URI:erna och hämtar data och sedan skapar en ny
temporär graf av dessa tripletter. Denna graf som nu innehåller svaren från frågorna kan
givetvis sparas ner. Traverseringen behöver inte endast vara via SPARQL-frågor. Det kan även
göras via RDF-browser där användaren klickar sig fram mellan datakällor.
3 Resultat
Denna förstudie har haft som syfte att länka ihop externa datakällor via semantisk webb-teknik
och med användning av standarder inom området. Målet var att undersöka om detta förenklar
hanteringen av data och information men även samarbete mellan informationskällor. Studien
har genomförts hos Future Position X, FPX. Detta innebar att en ny miljö för både MSB och LM’s
data skapades. Denna miljö skapades med hjälp av Google Refine där data konverteras till RDF
och sedan länkades via strängmatchning. Inför strängmatchningen definierades ett set av regler
som den automatiska exekveringen sedan utför.
Det gjordes även manuella granskningar i efterhand för att fånga upp semantiska missar. För att
få dessa datakällor länkade måste en brygga byggas mellan dem. I detta fall användes relationen
owl:sameAs , från OWL-ontologin (Web Ontology Language). Denna relation är definierad i RDF
och säger att resurs A är samma sak som resurs B. Denna länkning var den grundläggande i
studien och detta gjordes på skolnamn från MSB och LM och adresser mellan MSB och LM. När
resurs A och B definieras som samma sak kan maskiner följa dessa bryggor och hämta mer
information om resursen. Resurs A, t.ex., Solängsskolan från Lantmäteriets filer innehåller
9
attribut i form av fastighetsinformation medan Resurs B från MSB’s filer innehåller attribut om
brand. I detta scenario får Resurs A tillgång till attribut från resurs B och vice versa.
Figur 5. Google Refine, översikt av MSB:s data
Figur 5 visar resultat av matchning av strängar mellan MSB och LM. 63 % av skolnamnen kunde
matchas och 67 % av gatuadresserna hade en matchning. Kolumnen ”objektsnamn” (skolnamn)
innehåller namnet på skolan från MSB. Kolumnen ”objektsnamn LM” skapas efter matchning på
skolnamn från LM’s filer. Där en match sker hämtas URI:er till resursen, t.ex. Solängsskolan från
LM. Detta syns även på kolumnerna ”adress” och ”Adress LMADRPL”.
Figur 6. RDF-browsern BrownSauce visar en rapport från MSB i RDF-format. Name och streetadress är URIer som
har owl:sameAs-länkar till LM’S URI:er. Se Figur 7 nedan.
10
Figur 7. Här ser vi att Kaserngatan är definierad som owl:sameAS som en fil hos LM, nämligen adresspl. Här går det
att klicka sig vidare och kolla på data ur Lantmäteriets adresspl. Vi ser även att denna adress har fler ”skolor” alltså
fler fastighetsdelar av Polhemsskolan, byggnad P1 och P5 med flera.
Via RDF-browser sker traversering mellan datakällor manuellt. Ett annat sätt är att använda sig
av standarden SPARQL.
Figur 8. Skärmdump av Fuseki SPARQL Servers interface för frågor.
SPARQL-frågan i Figur 8 skall från MSB hämta namn, olycksorsak och region. Från Lantmäteriet
hämtar vi URI:er om fastigheten med mer information och regionen (Gävleborg) hämtar vi
information från en annan extern datakälla, DBPedia. DBPedia innehåller nästan all data från
11
Wikipedia i RDF-format. Eftersom URI:en från MSB om Gävle är på webben definierar vi den
som owl:sameAs med DBPedia Gävle. Nu kan vi få all information om Gävle från Wikipedia och
även förklarad på 15 olika språk.
Figur 9. Svaren från SPARQL-frågan i Figur 8.
4 Diskussion
Resultatet av denna förstudie visar på vissa problem vid matchning av texter, men tydliggör
också effektivitetsvinster som uppkommer när standarder används med tillhörande uppsättning
av verktyg. Förutom textmatchning gjordes en undersökning angående geometrimatchning.
Tanken är att ha en punkt som identifierare där datakällor med information vid samma punkt
kan matchas. Detta går att åstadkomma med hjälp av mer avancerade skript. Ett sådan prov är
dock inte med i denna förstudie.
Ett annat publiceringssätt är till exempel en Länkad data-wrapper (se Figur 4) på en
relationsdatabas. Detta publiceringssätt, eller liknande, rekommenderas att användas vid
implementation. Det tillåter leverantören att ha liknande struktur som i sin relationsdatabas. I
avsnitt 5 behandlas detta ytterligare. Det blir även enkelt att publicera ut data. Ett scenario
skulle kunna vara att ha en databas för leverans, en för backup, en för nuvarande publicering
(t.ex. API:er) och en Länkad Data-databas.
Studien har ingått som ett testexempel inom Smart City Playground vid klusterorganisationen
FPX, där GeoTest ingått som ett delprojekt.
5 Slutsatser och rekommendationer
Förstudien skall primärt ge svar på följande frågor:
12




Hur kan standarder inom semantisk webb-teknik underlätta och förenkla hanteringen av
data och information?
Vad är fördelarna med att använda sig av Länkade Data?
Hur mycket går att matcha mellan dessa datakällor på automatiserad väg?
Vilka problem och svårigheter uppstår, både tekniska och datarelaterade?
5.1 Hur kan standarder inom semantisk webb-teknik underlätta och
förenkla hanteringen av data och information? - Vad är fördelarna?
Strukturerad data finns idag tillgängligt på webben, exempelvis som CSV, Excel spreadsheets,
och en hel del andra domänspecifika dataformat. Strukturerade data finns inbakade i HTMLsidor via t.ex. Microformats och en del dataleverantörer ger direktåtkomst till deras databaser
via Web API:er.
Fördelarna med att använda sig av Länkade Data istället är att RDF är en mer flexibel och
generisk modell som gör det lättare för konsumenter av data att hitta och integrera data från
många olika källor.
Länkad Data ger oss: [1]
En enande datamodell. RDF är en enhetlig datamodell. Genom användning av globalt unika
identifierare av resurser och genom att tillåta att olika scheman används parallellt för att
representera data är RDF speciellt lämpad för global datadelning.
En standardiserad mekanism för åtkomst av data. Länkade Data använder sig av httpprotokollet. Detta stöder åtkomst via databrowsers och tillåter hela datakällor att bli sökbara via
sökmotorer.
Hyperlänkbaserad data sökning. Genom att använda URI:er som globala identifierare kan
hyperlänkar sättas mellan entiteter vid olika datakällor. Dessa länkar binder samman all länkad
data till en enda global datarymd där applikationer kan upptäcka nya datakällor i run-time.
Detta i motsats med Webb API:er och datadumpar som med sitt låsta format förblir isolerade.
Självbeskrivande data. Länkade Data underlättar integration av data från olika källor genom att
förlita sig på delade vokabulärer, vilket gör semantiken delad och känd.
13
5.2 Hur mycket går att matcha mellan dessa datakällor på
automatiserad väg?
Som Figur 5 visar kunde 63% av skolnamnen matchas och 67% av gatuadresserna hade en
matchning. I Google Refine matchades MSBs data mot LMs data genom Refines
“förlikningsprocess”. LMs data ligger som en stor graf på en SPARQL-server i en endpoint. MSB
graf ställs mot LM’s och matchningen sker automatiskt efter att en kolumn har valts. Ett
intressant tillägg är att andras externa endpoints på webben också provades. Ett exempel är
DBPedias graf. Regionnamnet Gävle matchades mot DBPedias information om Gävle (se Figur 8
och 9). Ett till exempel är att ordet LMVK (Lantmäteriverket) , skapare av vissa entiteter i LM’s
filer, där LMVK matchades mot en definition av Land Survey från DBPedia. Detta provades även
på entiteter där Gävle Kommun var skapare, där Gävle Kommun matchades mot Gävle
Municipality från DBPedia.
5.3 Vilka problem och svårigheter uppstår, både tekniska och
datarelaterade?
En del tekniska svårigheter uppstod i arbetet. Strukturen på data från Lantmäteriet gör det svårt
att länka ihop dessa data med en annan datamängd , främst beroende på att Lantmäteriets data
är utspridda i olika filer. Problemet är att utdraget är från en relationsdatabas med
primärnycklar och främmande nycklar men det tillhandahålls i CSV-format i olika filer. Det är
samma struktur men inte samma miljö. Internt hos Lantmäteriet är data hoplänkad och det är
därför en rekommendation att vid implementering lägga ett Länkad data-lager ovanpå deras
miljö, exempelvis LD-wrapper (se Figur 4). Resultatet av förstudien visar att vi inte ännu har
lyckats nyttja den fulla potentialen hos Länkade data.
Om implementering sker i befintlig struktur, t.ex. en relationsdatabas-miljö, kan i princip samma
struktur användas i Länkade Data konceptet. Det blir då ett tillägg till ordinarie struktur. En
relationsdatabas som hanteras med SQL och en Länkad data-wrapper ovanpå
relationsdatabasen som gör det möjligt att sätta HTTP-URI:er på identifierarna och beskriva data
i tripletter men även möjliggöra frågeställning via SPARQL. Wrappern tar hand om SPARQLfrågor och gör om dem till SQL-frågor. Detta betyder att komplicerade JOIN-frågor i SQL i
relationsdatabasen körs via argumenten som SPARQL-frågorna letar efter.
I Länkade Data konceptet används vokabulär för att visa hur entiteter är relaterade till varandra.
En vokabulär är en definierad uppsättning predikat (relationer) som kan användas inom
exempelvis en viss domän. Vokabulär kan definieras genom att skapa en ontology file , vilket
också är ett RDF-dokument som beskriver alla predikat för ex. en datamängd . En ontologi
definierar inte bara predikaten själva men definierar även datatyp och om det finns, relationer
14
till andra predikat, för varje predikat. En vokabulär liknar således ett schema genom att den
definierar en uppsättning element som kan användas.
Eftersom URI:er även används för predikat är det möjligt att återanvända andras , mer kända,
vokabulär som kanske redan har definierat en relation som önskas användas. Men det går även
att skapa nya predikat inom en annan domän, t.ex. Lantmäteriets domän. Förutom
rekommendationen att implementera Länkad Data konceptet i sin egen miljö rekommenderas
att även definiera sina predikat (relationer) om det finns ett behov för det. Det finns ord och
relationer som är vanliga inom Lantmäteriet men mer eller mindre okända utanför. Dessa bör
därför beskrivas i RDF så att andra människor och maskiner förstår hur fastigheter och andras
specifika begrepp relateras till varandra.
Figur 10 nedan är ett exempel på en RDF ontology file. Den definierar en e-mailadress-relation.
Denna relation används inom en domän, UserInfo där en Organizational-Person är en User.
<rdf:Description rdf:about="#E-mail-Address">
<rdf:type>
<rdf:Description rdf:about="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
</rdf:type>
<rdfs:domain>
<rdf:Description rdf:about="#UserInfo"/>
</rdfs:domain>
<rdfs:domain>
<rdf:Description rdf:about="#Organizational-Person"/>
</rdfs:domain>
<rdfs:range>
<rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#string"/>
</rdfs:range>
</rdf:Description>
Figur 10. RDF/XML-fil som definerar relationen ”E-mail-Address”.
15
6 Referenser
[1] http://linkeddatabook.com/editions/1.0/ - “Linked Data: Evolving the Web into a Global
Data Space” Tom Heath, Talis & Christian Bizer, Freie Universität Berlin
16
7 Bilaga A - Metod
Detta är en beskrivning av hur data har behandlats i Google Refine. Google Refine användes i
denna förstudie för att konvertera CSV-data till RDF-data med fungerande länkar mellan två
datakällor. För nedladdning och installation av Google Refine se deras hemsida:
https://code.google.com/p/google-refine/
Refine RDF-extension: http://refine.deri.ie/
Figur 7:1. Google Refine, MSB:s data inlagt och separerat (CSV)
Denna figur visar MSB:s data inlagt och strukturerat i Google Refine. Även utan RDF-extension
till Refine är det ett väldigt kraftfullt verktyg. Det stödjer kraftfulla konverteringar, kalkylationer,
massediteringar, sortering och sammanlänkning bara för att nämna några. Detta första steg
gjordes för både MSB:s data och LM:s data.
17
Figur 7:2. Google Refine RDF-skeleton
När RDF-extension installerats kan man börja strukturera upp en skelettstruktur och även
förhandsgranska hur RDF-filen kommer att se ut. Här kan man även sätta bas-URI till
identifierarna och även skapa länkar mellan attribut via relationer m. ha vokabulär.
18
Figur 7:3. Google Refine RDF-preview
Här är en tidig förhandsgranskning av RDF-filen. Rootelementet som innehåller bas-URI:n och
den unika identifieraren, MSB:s rapportnummer innehåller all info som valts att beskrivas i RDF.
Nu är data från en rapport (rapportnummer) unik identifierat och dess innehåll beskrivet i RDF.
Koordinaterna ligger nu i varje rapport (URI är rapportnummer) och beskrivna via vokabuläret
geo:lat och geo:long.
19
Figur 7:4. Google Refine, Skapade av ny SPARQL-endpoint.
Efter att LM:s data har beskrivits på detta sätt läggs allt upp på en SPARQL-server. SPARQL är ett
frågespråk som hanterar ett sätt att hämta data från grafer. Triplett-datastrukturen är uppbyggd
i grafstruktur. Det är mot denna graf vi ställer MSB:s graf och börjar matcha ihop data.
När både MSB:s och LM:s data beskrivits på detta sätt kan matchningen börja. Eftersom MSB:s
skolnamn är identiskt med LM:s skolnamn för den specifika skolan kan de då sägas vara samma
sak. Detta görs via vokabuläret owl:sameAs. Via denna länk kan data hämtas från båda källor.
20
Figur 7:5. Google Refine, manuell matchning av MSB:s skolnamn ”Kastet skola” mot Lantmäteriets URI:er
Här är ett exempel på matchning mellan två skolnamn. MSB:s data matchas mot LM:s data, mer
exakt LM:s graf av data. Denna graf är uppsatt på en server med programvaran Fuseki SPARQL
Server. Google Refine söker då på strängar i LM:s graf och visar om vi får en matchning. Detta
går att göra automatiskt där programmet tar bästa matchning baserat på olika algoritmer och
villkor. I detta fall gjordes detta automatiskt med en manuell påläggning efteråt.
21
Figur 7:6. Google Refine, skapade av ny kolumn baserat på uthämtade URI:er från strängmatchningen.
När matchningen är färdig är nästa steg att lägga in de nya länkarna i RDF-skelettet. Men innan
det måste vi hämta ut URI:erna från strängmatchningen så vi får identifieraren för den resursen.
Detta görs även i Refine med kommandot cell.recon.match.id. Nu kan vi lägga in owl:sameAs
länkar i skelettet, se Figur 3.
22
Figur 7:7. Google Refine, översikt av MSB:s data.
Figuren ovan visar procentuellt hur många skolnamn och gatuadresser som kunde matchas. I
detta fall var det 63% av skolnamnen och 67% av gatuadresser.
Figur 7:8. Fuseki SPARQL server, exempelfråga som hämtar data från både MSB och LM via owl:sameAs.
När båda graferna har länkats ihop har vi SPARQL till hjälp att ställa frågor som traverserar
mellan länkarna och hämtar det specifika data vi vill ha. För nedladdning och installation se
deras hemsida: http://jena.apache.org/documentation/serving_data/#download-fuseki
23
Figur 7:9. Fuseki SPARQL server, resultat av exempelfrågan.
Figur 7:10 BrownSauce RDF-browser.
För installation och nedladdning av RDF-browsern BrownSauce se deras hemsida:
http://brownsauce.sourceforge.net/
24