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 och vad vi kan
hoppas på för utveckling de närmaste åren.
Vi tar 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 ............................................................................................................................. 7
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 meningen med informationen
utan enbart om dokumentet i sig.
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

integration mellan informationskällor
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:
Det började med kommunikation direkt 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 så 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, med egenskapen titel satt till Avatar. Filmen har
även en relation till regissören James Cameron som ligger i en annan fil och som innehåller
vidare information om honom.
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
effektivare än predikatlogik för att lösa beslutsproblem. DL har använts inom Artificiell
5
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, det är ju 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 otroliga mängder semantiska data och det ger ett mycket bra utgångsläge att
kunna komma åt en såpass stor databas med information om både det ena och det andra.
(DBpedia Wiki, 2009)
6
DBpedia är även sammanlänkat med andra semantiska databaser till exempel World Factbook
(fakta om länder), Projekt Gutenberg (bokdatabas med böcker utan copyright), Friend-Of-AFriend (semantiskt socialt nätverkande) och Geonames (geografisk databas) och många fler.
(DBpedia Wiki, 2010)
Sökmotorer
Sökmotorer är bland det mest centrala på nätet idag, så fort man ska hitta något går man direkt
till en sökmotor. Det är nästan svårt att minnas hur man letade information innan Google. De
flesta sökmotorer idag bygger idag 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
Det finns ett antal olika sökmotorer som arbetar med semantiska data idag, de är ingen
ersättning för traditionella sökmotorer ännu, men kan helt klart komplettera dessa.
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.
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.
7
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
Som programmerare är det lätt att undra vad man ska börja med om man vill utveckla
semantiska applikationer. Här är en tabell över några av de programmeringsbibliotek som kan
vara intressanta att kolla närmare på:
Bibliotek
SemWeb
RAP
Programspråk
C#/.NET
PHP
Triplestore
Ja
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, flera tjänster finns ute 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 har
tillgång till i princip obegränsade mängder data, om det lyckas blir det säkerligen en Googlekonkurrent.
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).
8
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).
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