Datorer och kunskap - Den semantiska webben Robert Herber

Datorer och kunskap - Den semantiska webben
Robert Herber
[email protected]
Vetenskapsmetodik, CDT212
Mälardalens Högskola
2010-03-05
1
Sammanfattning
Denna rapport behandlar nästa steg i Internets utveckling, den semantiska webben. Vi tar upp
vad visionen om den semantiska webben innebär både som idé och hur den i sin tur kan
påverka hur vi använder oss av Internet. Vi tar upp var vi befinner oss idag inom området och
vad vi kan hoppas på för utveckling de kommande åren.
Vi tar även upp några exempel på tjänster som idag erbjuder semantisk data, och även några
av de möjligheter som finns när det gäller att utveckla egna semantiska lösningar.
2
Innehållsförteckning
Inledning .................................................................................................................................... 3 Den semantiska webben ........................................................................................................ 4 Från då till nu ........................................................................................................................ 4 Web 1.0 - Länkade resurser................................................................................................ 4 Web 2.0 - Interaktiva resurser ............................................................................................ 4 Web 3.0 - Integrerade resurser ........................................................................................... 5 Semantisk beskrivning av data .......................................................................................... 5 Resource Description Framework ...................................................................................... 5 Description Logic ............................................................................................................... 5 Web Ontology Language ................................................................................................... 6 Triplestores ........................................................................................................................... 6 SPARQL............................................................................................................................. 6 DBpedia .............................................................................................................................. 6 Sökmotorer ........................................................................................................................... 7 Wolfram Alpha ................................................................................................................... 7 SenseBot ............................................................................................................................. 8 Mjukvaruutveckling .............................................................................................................. 8 Slutsatser .................................................................................................................................. 8 Bibliography ............................................................................ Error! Bookmark not defined. Bilder ...................................................................................................................................... 9 Inledning
Semantik betyder läran om uttryckets betydelse (enligt NE http://www.ne.se/semantik), den
semantiska webben innebär alltså att på något sätt kunna uttyda meningen med innehåll på
webben. Webben är idag uppbyggd av i huvudsak HTML, ett designspråk som på ett väldigt
enkelt sätt kan presentera information för oss människor.
Det som den nuvarande dokumentbaserade webben saknar är ett bra sätt att tydligt deklarera
vad resursen (informationen) är, dess egenskaper, och dess relation till andra resurser. Det
finns meta-taggar, men det kan inte ge en exakt beskrivning av enskilda data i dokumentet
utan enbart om dokumentet i sin helhet.
Den semantiska webben är till början ett förvirrande begrepp för många. En stor anledning till
detta är att det inte bara finns en idé om hur det kommer att fungera, utan det är ett myller av
olika tekniker och visioner. Detta har gjort att kunskapen ofta inte är särskilt stor kring ämnet,
och även om mycket händer inom området dröjer det paradigmskifte som många inom
området väntar på. Men det händer mycket inom området och de närmaste åren kommer att
bli väldigt spännande, och det går utmärkt att redan nu börja skapa applikationer som drar
nytta av nya semantiska tekniker samtidigt som man skaffar sig värdefull kunskap inför
framtiden.
För att sammanfatta visionerna om den semantiska webben kort:
•
information ska ha exakt mening
•
information ska kunna förstås och behandlas av datorer
•
informationskällor ska integreras
3
Den semantiska webben
Från då till nu
För att få lite perspektiv på informationsutbytet på nätet tar vi en snabb tillbakablick för att
sen blicka vidare framåt. Internet har utvecklats väldigt mycket sen dess början. De olika
stadierna i denna utveckling har i huvudsak varit som följer:
Det började med direkt kommunikation mellan två datorer. För att ladda ner en fil anslöt man
sig direkt till den andra datorn.
Web 1.0 - Länkade resurser
Webben fick sitt genomslag 1991 (Wikipedia - Web 1.0, 2010) och det blev möjligt att
navigera mellan olika resurser anslutna till Internet på ett smidigt sätt. Från en början var det
inget som privatpersoner hade hemma, men det utvecklades snart. Det man skapade var ett nät
av resurser, därav "web". Sökmotorer gjorde att information blev lättare att hitta.
Figur 1: Länkade resurser
Web 2.0 - Interaktiva resurser
Nästa steg i informationsutveckling på Internet var att alla fick chansen att bli delaktiga i
informationsutbytet. Man brukar säga att detta inleddes 2004 (Wikipedia - Web 2.0 2010).
Det började publiceras bloggar, sociala nätverkssidor, wikis och CMS (Content Management
System) vid sidan av de statiska hemsidorna. Det är här vi är nu, och idag har de flesta
webbsidorna vi besöker något interaktivt inslag.
4
Figur 2: Interaktiva resurser
Web 3.0 - Integrerade resurser
Nästa steg i webbens utveckling tror många alltså är att resurser börjar integreras med
varandra, och det är just detta som kallas den semantiska webben. Istället för att enbart länka
till en annan webbsida pekar man vidare till precis det data saken gäller.
Semantisk beskrivning av data
Resource Description Framework
En viktig del av att beskriva data semantiskt är att definiera relationen mellan data. Detta kan
göras med RDF (Resource Description Framework), en standard framtagen av W3C (World
Wide Web Consortium) 2004 för detta ändamål.
Med RDF beskrivs data i formen subjekt, predikat och objekt där predikatet beskriver
relationen i sig. Detta sätt att ge data betydelse ger en bra grund för semantiska data som på
grund av sin abstrakta form teoretiskt sätt kan beskriva så gott som alla relationer, och detta
med en logik som kan förstås och tolkas av datorer. (RDF - Semantic Web Standards, 2004)
Med en stor mängd data relaterade till varandra bildar dessa tripplar en graf av relationer
mellan olika data, där alla data i grafen får en mening. Denna mening kan datorer förstå
utifrån dess relationer till annan data i grafen.
Så här skulle en enkel beskrivning av filmen Avatar kunna se ut i RDF med XML-syntax:
<Description id="Avatar">
<title>Avatar</title>
<director about="http://www.rdfmovies.com/directors.rdf#James_Cameron" />
</Description>
I det här fallet är filmen Avatar subjektet. Filmen har en relation (predikat) till regissören
James Cameron (objekt) som ligger i en annan fil och som innehåller vidare information om
honom. Filmen kan på samma sätt ha flera relationer som bildar flera tripplar, men detta är
endast ett kort exempel.
Description Logic
DL (Description Logic) är en samling av språk som används för kunskapsrepresentation.
Dessa språk är mer uttrycksfulla än den satslogik som finns inom matematiken, men är
5
effektivare än predikatlogik för att lösa beslutsproblem. DL har använts inom Artificiell
Intelligens, Bioinformatik men är kanske viktigast inom Informationsvetenskapen där den
semantiska webben är ett viktigt område. DLs uppgift är att modellera relationerna mellan
koncept, roller och individer. (Wikipedia - Description Logic, 2010)
Web Ontology Language
OWL (Web Ontology Language) är en påbyggnad av RDF som lägger till möjligheten att
beskriva klasser, egenskaper och objekt. Det bygger på Description Logic och kan beskrivas
som en objekt-orienterad påbyggnad av RDF. Det är uppdelat i tre underspråk med lite olika
användningsområden: OWL Lite, OWL DL och OWL Full.
OWL Full innehåller hela OWL-syntaxen samt RDF-syntaxen utan några begränsningar i
användning. Till exempel finns ingen tydlig skillnad mellan klass och instans eftersom detta
inte finns i RDF, en "Airbus 330" klassas alltså i samma kategori som "flygplan" istället för
som en individuell förekomst av klassen. Detta gör att OWL Full kanske inte är optimalt att
arbeta med, men det har fördelen att vara fullständigt bakåtkompatibelt med RDF. (OWL
Reference, 2004)
OWL DL, där DL står för Description Logic, innehåller samma funktionalitet som OWL Full
men med vissa begränsningar. Skillnad görs mellan klass och instans till skillnad från OWL
Full, vilket ger tydligare klasshierarkier. Mycket av RDF-syntaxen går inte att använda enligt
DL-specifikationen. (OWL Reference - OWL DL, 2004)
OWL Lite är den enklaste varianten av språket. Det har samma begränsningar som DLspecifikationen och har några ytterligare begränsningar utöver den, tanken med detta är att
erbjuda en minimalistisk variant av OWL där endast de viktigaste språk-elementen finns
representerade. Detta finns främst för att underlätta för verktygsutvecklare.
Triplestores
Triplestores är ett begrepp som inkluderar alla databaser som innehåller RDF-data. Det finns
två kategorier av triplestores, dels har vi sådana som bygger på SQL-databaser i grunden och
alltså inte är byggda för RDF från början, sedan finns det de som är byggda för RDF från
början. (Rusher)
SPARQL
För att ställa frågor till triplestores så har W3C tagit fram en specifikation för frågespråket
SPARQL. SPARQL är en rekursiv akronym som står för SPARQL Protocol and RDF Query
Language. Frågespråket har alltså stöd för att ställa frågor till så kallade triplestores och är en
motsvarighet till det utbredda SQL för traditionella relationsdatabaser. (Wikipedia SPARQL, 2010)
DBpedia
Att börja bygga in semantik i sin egna webbtjänst utan någon relation till annan data skulle
vara ganska ointressant, för det är ju både innehållet och relationen till andra data som ger
data dess betydelse. Intressant nog så finns det ett RDF-interface med Wikipedia-data som
heter DBpedia. DBpedia hade i november 2009 2,9 miljoner ämnen i sin databas, med 479
miljoner fakta kopplat till detta. Detta gör att den som är intresserad på ett smidigt sätt redan
idag kan bygga tjänster med stora mängder semantiska data och det ger ett mycket bra
utgångsläge att kunna komma åt en stor databas med information och data som täcker många
ämnesområden. (DBpedia Wiki, 2009)
6
DBpedia är även sammanlänkat med andra semantiska databaser som till exempel World
Factbook (fakta om länder), Projekt Gutenberg (bokdatabas med böcker utan copyright),
Friend-Of-A-Friend (semantiskt socialt nätverkande), Geonames (geografisk databas) och
många fler. (DBpedia Wiki, 2010)
Sökmotorer
Sökmotorer är bland det mest centrala på nätet idag, och så fort man ska hitta något går de
flesta direkt till en sökmotor. Det är nästan svårt att minnas hur man letade information innan
Google. De flesta sökmotorer bygger i dagsläget på sökord, vilket inte kräver överdrivet
komplicerade algoritmer, eller åtminstone algoritmer som går att greppa. Det innebär att det
oftast inte gör någon skillnad om man söker på de tre orden "pizzeria i västerås" eller de två
orden "västerås pizzeria". För alla som är vana med detta känns det inte konstigt, och nästan
effektivare än att formulera en vanlig mening.
Men tänk vilka möjligheter det skulle innebära om sökmotorerna faktiskt förstod vad vi
menade och kunde tolka det. Tänk om vi skulle kunna fråga när filmen går på bio och i
samma mening fråga efter en buss hem efteråt. Då finns även möjligheten att när teknologi för
röststyrning är bättre utvecklad än idag ställa frågor verbalt direkt till datorn, och få ett
intelligent svar på detta.
Det finns ett antal olika sökmotorer som arbetar med semantiska data idag, de är ingen
ersättning för traditionella sökmotorer ännu, även om de helt klart komplettera dessa. Dessa
resultat är
Wolfram Alpha
Wolfram Alpha är en sökmotor som försöker ge svar på vad vi frågar istället för att lista
webbsidor som i sin tur kan ge svaret på vår fråga. Det är ett spännande projekt som har
kommit långt, tyvärr är antalet områden som sökmotorn kan svara på än så länge få. Man kan
få fram mycket spännande fakta som skulle kräva mycket mer ansträngning via traditionell
sökning.
För att ta ett exempel, "distance to mars" listar inte bara km mellan jorden och Mars utan även
hur lång tid det tar för ljuset att färdas denna sträcka, vilket är 6,5 minuter. Utöver detta listas
information om hur lång tid det tar för Mars att fullborda sitt omlopp runt solen.
Ännu mer imponerande blir det när sökmotorn förstår "distance between mars and the sun",
där svarar sökmotorn på liknande sätt och vi får direkt reda på att ljuset tar 14 minuter på sig
att färdas mellan solen och Mars.
Wolfram Alpha erbjuder mycket data inom statistiktunga områden, och även områden som
kräver snabba uppdateringar såsom väder och aktiedata.
Problemet med Wolfram Alpha är att mängden data fortfarande är ganska begränsad. Detta
beror på att den inte likt traditionella sökmotorer "crawlar" webben med robotar. Detta skulle
ge mycket information men idag finns ingen algoritm som klarar av att plocka ut semantiska
data ur detta och samtidigt säkerställa samma kvalitet som Wolfram Alphas resultat ger.
Målet med Wolfram Alpha att redovisa vetenskapligt korrekta resultat, något som inte skulle
vara möjligt på detta sätt.
Det Wolfram Alpha gör istället är att hämta data från erkända källor och databaser, dessa
källor redovisas sedan i varje sökning. Information om filmer hämtas exempelvis bland annat
från IMDb, Freebase och Wikipedia. Data om jordbävningar hämtas från bland annat
7
EarthquakeDB. Det är på detta sätt som Wolfram Alpha kan presentera exakta data där
traditionella sökmotorer endast listar webbsidor.
SenseBot
SenseBot är en intressant sökmotor som arbetar med Text Mining, och försöker utvinna
semantisk information direkt ur vanliga webbsidor. SenseBots sökresultat ser vid ett snabbt
ögonkast ut som det vi skulle få ut från Google, men istället för att länka till andra sidor så
gör SenseBot ett försök att sammanfatta informationen. För varje sökresultat får man upp en
mening där SenseBot försöker ge ett svar på frågan man ställde utan att man ska behöva
navigera till webbsidan. Länken till webbsidan är istället bara en referens till källan.
Det fungerar på flera frågor riktigt bra, och idén är helt klart lovande. Men det är inte
tillräckligt för att byta från traditionella sökmotorer. (Semantic Engines LLC)
Mjukvaruutveckling
För de som är intresserade av mjukvaruutveckling är det inte helt lätt att veta var man ska
börja för att utveckla semantiska applikationer. Semantiska applikationer är inte begränsade
till en speciell typ av applikationer, utan semantiska tekniker kommer i framtidens webb vara
centralt i hur data behandlas. Därför är det viktigt för utvecklare inriktade på data-tunga
applikationer att bygga upp en förståelse för semantisk datahantering. Det går redan idag att
utveckla mycket intressanta applikationer, det är bara fantasin som sätter gränserna. Med till
exempel DBpedia som vi har tagit upp tidigare i denna rapport kan man få tillgång till en stor
mängd data.
Här är en tabell över några av de programmeringsbibliotek som kan vara intressanta att kolla
närmare på:
Bibliotek
SemWeb
Programspråk
C#/.NET
Triplestore
Ja
RAP
PHP
Ja
RDF-Core
Redland RDF
Libraries
Soprano
LINQ to RDF
Perl
C
Ja
Ja
C++
C#/.NET
Länk
http://razor.occams.info/code/semweb
/
http://www4.wiwiss.fuberlin.de/bizer/rdfapi/
http://search.cpan.org/dist/RDF-Core/
http://librdf.org/
Ja (via plugins) http://soprano.sourceforge.net/
Ja (via LINQ)
http://code.google.com/p/linqtordf/
Tabell 1: Programmeringsbibliotek
Slutsatser
Den semantiska webben är ingen ny idé, och det har tagit lång tid för idén att mogna. Men nu
pekar mycket på att vi är på väg mot ett genombrott, och flera tjänster finns på nätet som
erbjuder och drar nytta av semantiska data. Det kommer att dröja några år innan det slagit
igenom på bred front eftersom mycket fortfarande är halvfärdigt och det tar tid innan alla
utvecklare är med på spåret.
Färdigt att användas idag för vardagsanvändare är helt klart Wolfram Alpha när man söker
efter exakt information inom de ämnesområden som sökmotorn täcker. SenseBot når inte
riktigt ända fram men är väldigt spännande projekt att följa eftersom det med sitt arbetssätt
8
har tillgång till i princip obegränsade mängder data, och om det lyckas blir det säkerligen en
Google-konkurrent.
För mjukvaruutvecklare, speciellt för webbutvecklare, är det helt klart värt att börja titta på
RDF och OWL eftersom det är grunden för att arbeta med semantisk data. Det finns mycket
data att arbeta med redan nu, till exempel genom DBpedia.
Referenser
DBpedia Wiki. den 23 Februari 2010.
http://wiki.dbpedia.org/Interlinking (använd den 24 Februari 2010).
DBpedia Wiki. den 23 November 2009.
http://wiki.dbpedia.org/About (använd den 24 Februari 2010).
OWL Reference - OWL DL. den 10 Februari 2004.
http://www.w3.org/TR/owl-ref/#OWLDL (använd den 2 Mars 2010).
OWL Reference - OWL Full. den 10 Februari 2004.
http://www.w3.org/TR/owl-ref/#OWLFull (använd den 2 Mars 2010).
RDF - Semantic Web Standards. den 10 Februari 2004.
http://www.w3.org/RDF/ (använd den 5 Mars 2010).
Rusher, Jack. w3.org - Triple store. den 13 November 2003.
http://www.w3.org/2001/sw/Europe/events/20031113-storage/positions/rusher.html (använd
den 18 Februari 2010).
Semantic Engines LLC. About SenseBot.
http://www.sensebot.net/about.htm (använd den 27 Februari 2010).
Wikipedia - Description Logic. den 2 Mars 2010.
http://en.wikipedia.org/wiki/Description_logic (använd den 5 Mars 2010).
Wikipedia - SPARQL. den 2 Februari 2010.
http://en.wikipedia.org/wiki/SPARQL (använd den 4 Mars 2010).
Wikipedia - Web 1.0. den 5 Mars 2010.
http://en.wikipedia.org/wiki/Web_1.0 (använd den 5 Mars 2010).
Wikipedia - Web 2.0. den 5 Mars 2010.
http://en.wikipedia.org/wiki/Web_2.0 (använd den 5 Mars 2010).
Bilder
Omslagsbild http://www.javaworld.com/javaworld/jw-04-2009/images/jw-lod-datasets.jpg
Figur 1: Länkade resurser http://www.howtoweb.com/pics/googlemapped.gif
Figur 2: Interaktiva resurser http://apptech.files.wordpress.com/2008/04/web2-0starfish.jpg
9