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