Semantisk web

utvidet World Wide Web

Semantisk web (eller semantisk vev, på engelsk: Semantic Web) er en utvidelse av verdensveven («World Wide Web», WWW) slik at ikke bare mennesker, men også datamaskiner kan dra nytte av informasjonen.[1] Den semantiske veven ble først foreslått av Tim Berners-Lee, oppfinneren av den opprinnelige veven og direktør i World Wide Web Consortium (W3C). Nyere utviklinger som bygger på de samme ideene og teknologiene er lenkede åpne data, dataveven og kunnskapsgrafer.

FOAF-vokabularet beskrevet i RDF/XML-format

Bakgrunn rediger

Da Tim Berners-Lee la frem idéen om den opprinnelige verdensveven («Plain Old Web», «POW») i mars 1989 var tanken at menneskelige brukere skulle få fri tilgang til informasjon gjennom et nett av sammenlenkede noder - det vi i dag kaller dokumenter eller nettsider/vevsider. I det opprinnelige forslaget var det altså interaksjonen mellom brukerne og informasjonen som stod i sentrum[2]: Berners-Lee laget den opprinnelige veven for mennesker, ikke for maskiner.

Berners-Lee la så frem ideen om en semantisk vev på slutten av 1990-tallet, i boken «Weaving the Web»[3]. Han pekte på at de enorme datamengdene på veven ikke ble optimalt utnyttet siden det var for vanskelig å knytte sammen data fra ulike vevsider, selv når de handlet om det samme. Og siden datamengden på veven vokste raskt ble det stadig vanskeligere for menneskelige brukere å utnytte alle mulighetene som bød seg. Berners-Lee ønsket derfor å utvide veven slik at det alltid ville være klart når to opplysninger hadde med hverandre å gjøre, selv når de var hentet fra forskjellige vevsider, laget av forskjellige mennesker/organisasjoner for forskjellige formål, og publisert forskjellige steder i verden:[3]

 Jeg har en drøm for weben. En drøm hvor datamaskiner er i stand til å analysere alle data på weben - innholdet, lenkene, relasjonene mellom folk og maskiner. En «semantisk web», som skal gjøre alt dette mulig har fortsatt ikke vist seg, men når den gjør det, vil dag-til-dag mekanismer i handel, byråkrati og våre daglige liv bli håndtert av maskiner som snakker med maskiner. De «intelligente agentene» som folk har snakket om i årevis vil til slutt materialisere seg. 

I 2001 publiserte Tim Berners-Lee sammen med James Hendler og Ora Lassila (en av utviklerne av RDF, se under) den første vitenskapelige artikkelen om den semantiske veven i tidsskriftet Scientific American.[1]

Sentrale ideer rediger

Mens den opprinnelige veven er sentrert rundt dokumenter (dvs vevsider) som er lenket til andre dokumenter til nytte for mennesker, består den semantiske veven av data som er lenket til andre data til nytte for maskiner. I tillegg til å bruke de vanlige vevprotokollene HTTP og HTTPS, bygger den semantiske vevn på flere nye ideer og teknikker:

  • Semantisk merking av vevsider vil si at data utvides med detaljerte opplysninger om hva dataene handler om. I stedet for kun å skrive ordene «Bob Dylan», som de fleste mennesker vil forstå, legger man til semantiske merker som sier f eks at Bob Dylan er en person og en artist, at Bob er et fornavn og at Dylan er et etternavn. Disse merkene gjør informasjonen enklere å bruke for maskiner, samtidig som de kan holdes usynlige for menneskelige lesere.
  • Vokabularer er standarder for semantiske merker, som person, artist, fornavn og etternavn. På den semantiske veven brukes URI-er til merking, f eks er http://xmlns.com/foaf/0.1/Person et mye brukt standardmerke for data om personer. Det finnes hundrevis av vokabularer for ulike områder, som personinformasjon, vevsider, produkter osv.
  • Programvareagenter leter hele tiden gjennom veven for å finne, samle inn og sette sammen semantisk merkede data. Andre programvareagenter forsøker å utnytte allerede innsamlede data for å tilby nye informasjonstjenester. Noen slike agenter, som bruker teknikker fra maskinlæring og kunstig intelligens, kalles intelligente agenter.
  • Semantiske datasett er samlinger av semantisk merkede data. De kan være samlet inn og satt sammen fra semantisk merkede vevsider av programvareagenter eller de kan være laget på andre måter. DBpedia er et semantisk uttrekk av semantiske data fra Wikipedia. Wikidata er et søsterprosjekt til Wikipedia som har til formål å lage et stort encyclopedisk semantisk datasett. GeoNames er et stort geografisk datasett laget gjennom nettdugnad («crowdsourcing») og som finnes i en semantisk versjon.
  • Resource Description Framework (RDF) er et format som representerer semantiske datasett som grafer der nodene er informasjons- og andre ressurser og kantene er merker som beskriver hvordan ressursene henger sammen. Det finnes også spesielle databaser (kalt trippellagre), spørrespråk (SPARQL) og programmeringsbibliotekter (f eks Jena) for data på RDF-format. RDF definerer også ulike serialiseringer for å lagre og utveksle semantiske datasett som filer. Det finnes flere utvidelser av RDF, blant annet RDFS og OWL, som gjør det mulig å beskrive vokabularer som semantiske datasett.
  • AAA-slagordet sier at alle på den semantiske veven kan bidra med alt de vil om alle tema. Som den opprinnelige veven legger den semantiske veven dermed til rette for nettdugnad, og det blir en viktig oppgave å holde orden på hvor troverdige ulike semantiske datasett er. Den finnes egne vokabularer for semantiske troverdighetsdata (f eks Provenance) som kan hjelpe med dette.

Nedenfor skal vi se på disse ideene og teknikkene i større detalj, men først et eksempel på bruk av den semantiske veven.

Anvendelser rediger

I artikkelen fra 2001, gir Berners-Lee, Hendler og Lassila følgende eksempel på hvordan de ser for seg en semantisk webb:[1]

 Underholdningssystemet skrek ut The Beatles' «We Can Work It Out» da telefonen begynte å ringe. Da Pete tok telefonen skrudde telefonen ned volumet på alle lokale enheter som hadde volumkontroll. Søsteren hans, Lucy, var i den andre enden av legekontoret: «Mor trenger å møte en spesialist og deretter ha flere timer med fysisk terapi. Ukentlig eller lignende.» Pete sa seg umiddelbart enig i å dele på kjøringen.

På legekontoret ga Lucy instruksjoner til sin Semantiske Webb-agent gjennom en håndholdt nettleser. Agenten mottok hurtig informasjon om morens anbefalte behandling og bladde opp flere lister med steder som kunne tilby tjenesten. I tillegg sjekket agenten dem opp i mot behandlingssteder som støttet morens forsikringsplan, som var innenfor en rekkevidde av 20 mil i radius fra hennes hjem og som var rangert fra utmerket til god av en ratingtjeneste man stoler på. Deretter begynte den å se på avtaletider (angitt av tjenestene gjennom deres nettsider) sammenlignet med Pete og Lucys travle tidsplan. (Ordene i kursiv er nøkkelord som kan være knyttet opp mot en terminologi som er angitt, semantisk, i en agent gjennom en semantisk web).

Innen få minutter hadde agenten presentert den med en plan. Pete likte den ikke – University Hospital var helt på andre siden av byen fra morens hus, og han ville vært nødt til å kjøre tilbake midt i rushtiden. Han satt agenten sin til å søke på nytt, bare med strengere grenser på sted og tid. Lucys agent som er innstilt på å ha fullstendig tillit til Petes agent vedrørende den aktuelle oppgaven deler sertifikater for tilgang og snarveier til data den allerede hadde sortert.

Nesten umiddelbart ble den nye tidsplanen presentert: en klinikk som lå mye nærmere og en tidligere legetime – men det var to advarsler: Først måtte Pete endre et par av sine mindre viktige avtaler. Han sjekket hva de gjaldt – ingen problemer. Den andre advarselen gjaldt forsikringselskapet: de hadde ikke angitt tjenesten under fysisk terapi: «Tjenestetypen og forsikringsplanen har blitt sikkert verifisert med andre midler» – ga agenten beskjed om. «Detaljer?»

Lucy bekreftet tidsplanen samtidig som Pete mumlet: «Spar meg detaljene», og alt var avgjort. 

Eksemplet viser hvordan Lucy and Pete, støttet av hver sin intelligente agent, nærmest automatisk henter informasjon fra flere kilder som de organiserer, presenterer og deler med hverandre. Ovennevnte eksempel er i dagens web ikke mulig, for data er beskrevet og presentert for å være leselig for mennesker. Maskiner vil ikke klare å vite hva som er en person anser som viktig, eller hva som er hjem.

Semantisk merking rediger

En sentral ide bak den semantiske veven er semantisk merking av data. Semantiske merker («semantic tags») er data som sier hva andre data handler om, for eksempel at noen data handler om en bestemt person, at en tegnstreng er navnet på personen, at en annen tegnstreng er et telefonnummer, og at telefonnummeret tilhører en bestemt person. Semantiske merker er dermed en form for (semantiske) metadata, som kan brukes av maskiner for å sette data sammen på nye måter og generere ny informasjon.

For å merke data på den semantiske veven benyttes URI-er (eller rettere sagt IRI-er). For eksempel kan URI-en http://xmlns.com/foaf/0.1/Person brukes til å merke at noen data handler om en person, og URI-en http://xmlns.com/foaf/0.1/phone kan merke denne personens telefonnummer. Individer som personer, organisasjoner og steder kan også identifiseres unikt av en URI eller IRI. For eksempel kan http://dbpedia.org/resource/Sissel_Kyrkjebø brukes til å merke personen Sissel Kyrkjebø og http://dbpedia.org/resource/Bergen byen Bergen. Alle som vil kan foreslå nye merker og vokabularer, men verdien av semantiske data er størst når de bruker vanlige merker og vokabularer. Derfor er det god og vanlig praksis når man foreslår nye merker og vokabularer å lenke dem klart til eksisterende merker og vokabularer (og det finnes egne vokabularer for å lenke samme vokabularer).

Merking av HTML rediger

HTML har ingen innebygget funksjonalitet for å definere betydningen av innholdet i dokumentet. Man kan til dels beskrive metadata om dokumentet og innholdet i dokumentet gjennom <meta> taggen; man kan benytte attributter for å fortelle nettlesere og søkemotorer visse ting om dokumentet, slik som tegnsett, forfatter, beskrivelse av dokument, nøkkelord, osv. Det er imidlertid begrenset hva dette tillater, i tillegg til at hverken beskrivelse av dokument eller nøkkelord faktisk gir innholdet noen betydning, annet enn å knytte det til noen tilfeldige nøkkelord og en tekst-strenge. For eksempel, hvis følgende nøkkelord er spesifisert, "Doktor,Hartman,klinikk,fysisk,terapi", så vil ikke en maskin forstå at Doktor Hartman jobber i en klinikk for fysisk terapi. Den vil knytte ordene til dokumentet, men ikke ha noen formening om hva en doktor er, eller hvilken relasjon det er mellom nøkkelordene.

Det finnes fire formater man kan bruke for å merke HTML-dokumenter semantisk; nemlig mikroformater, RDFa, Mikrodata, og JSON-LD. De benytter seg av eksterne kontrollerte vokabularer, som definerer konsepter og begreper innenfor spesifike domener[4]. Det finnes mange ulike vokabularer og hele samlinger med vokabularer, som definerer mange forskjellige domener. Dublin Core, FOAF, Schema.org er noen eksempler på dette.

Mikroformater rediger

Mikroformater bruker eksisterende XHTML/HTML-koder for å legge til semantiske opplysninger som GPS-koordinater, visittkort, lyd- og videofiler og kalendernotater. Til sammenligning med andre semantiske oppmerkinger er mikroformater hovedsakelig beregnet for å være enkelt leselig for mennesker, slik at maskiner kommer i andre rekke.[5]

Mer typiske semantiske formater som RDF, OWL og XML, er spesifikt designet for publisering av data. Sammen med (X)HTML skal disse enten være en supplement til World Wide Web, eller en erstatter. Berners-Lee kaller dette nettverket Giant Global Graph (GGG), men spesifiserer i et dokument at en semantisk web ikke er tenkt på som en erstatter av World Wide Web, men heller en samarbeidspartner.[6]

Eksempel: HTML meta-tagger vs. semantisk oppmerking med RDFa rediger

For å vise forskjellene mellom HTML og semantisk oppmerking ved bruk av RDFa, vurder følgende eksempler som skal forklare at en artikkel er skrevet av Bob Dylan og skal forklare at han kjenner Neil Young og Joan Baez

 ...
 <meta name="keywords" content="bob dylan, joan baez, neil young, personlig hjemmeside, om meg"/>
 <meta name="description" content="Min personlige hjemmeside"/>
 <meta name="author" content="Bob Dylan"/>
 Denne artikkelen ble skrevet av Bob Dylan og handler om mine venner: Neil Young og Joan Baez. 
 ...

I det ovennevnte eksempelet kan en agent lese hvem som er skribenten, en beskrivelse av nettsiden og noen nøkkelord til å binde til nettsiden. I eksempelet nedenfor har vokabularene Dublin Core og FOAF blitt brukt for å forklare til agenter hva som er meningen bak innholdet innenfor hver tagg.

 <html xmlns:foaf="http://xmlns.org/foaf/0.1" xmlns:dc="http://purl.org/dc/elements/1.1/">
 ...
 Denne artikkelen ble skrevet av <span property="dc:author"><span property="foaf:Person">Bob Dylan</span>
</span>, og handler om mine venner: <span property="foaf:knows"><span property="foaf:Person"><span 
property="foaf:name">Neil Young</span> og <span property="foaf:name">Joan Baez</span>
 ...

I det eksempelet kan en datamaskin lese at skribenten av dokumentet er Bob Dylan og at Neil Young og Joan Baez er to personer og har to forskjellige navn. I FOAF-vokabularet kan man også spesifisere mer bestemt fornavn, etternavn og lignende. I dette eksempelet har vi prøvd å holde det så enkelt som mulig.

Vokabularer rediger

Vokabularer er standarder for semantiske merker, som person, artist, fornavn og etternavn. På den semantiske veven brukes URI-er til merking, f eks er http://xmlns.com/foaf/0.1/Person et mye brukt standardmerke for data om personer. Det finnes hundrevis av vokabularer for ulike områder, som personinformasjon, vevsider, produkter osv.

Dokumenter kan bli markert med semantiske tagger (pr. dags dato er det kun <meta>-taggene, beskrevet ovenfor, som er standardisert i HTML) for å beskrive de forskjellige egenskapene til dataen presentert i dokumentet. For eksempel kan man markere opp ting som hvem som har skapt dokumentet ved å ha en "skaper" eller "skribent"-tagg. Når maskiner leser denne vil de forstå at skaperen av dokumentet er personen, eller personene innenfor nevnte tagger. Det finnes et bredt utvalg av slike vokabular som kan definere egenskaper på en hel rekke ting. Alt kan bli definert gjennom bruken av URIer, slik at en semantisk web kan skille mellom (f.eks.) plasser, mennesker, dyr og mat.

Åpne vokabularer gir skribenter av et dokument en indeks over hvilke klasser kan bli tilegnet forskjellige egenskaper for å være leselig for agenter. Sett at man har en skribent som skriver et dokument som omhandler en forfatter og boken forfatteren har skrevet. For at en semantisk web og dens agenter skal klare å forstå forskjellen på disse to skribentene eller forfatterne lages det individuelle ontologier. én kan for eksempel være skribentForDokument hvor den andre kan være forfatterAvBok. Når en agent leser de to klassene vil den forstå at en skribent og en forfatter (som regel kun ett ord i HTML, author) ikke er den samme.

FOAF rediger

FOAF (Friend of a Friend) er et populært vokabular for semantisk merking av data om personer, organisasjoner og sosiale relasjoner. Med FOAF kan agenter se sammenhengen mellom personer, som f.eks. om de er kjent gjennom jobb, skole, organisasjoner eller privat. Man kan til og med spesifisere foreldre og barn. Siden hele sammenhengen av de forskjellige personene og alle deres relasjoner vil det være nærmest umulig for mennesker å se sammenhengen mellom alt. Dette er derimot noe en agent ville klart å sett sammenhengen i på kort tid.

Programvareagenter rediger

Programvareagenter leter hele tiden gjennom veven for å finne, samle inn og sette sammen semantisk merkede data. Andre programvareagenter forsøker å utnytte allerede innsamlede data for å tilby nye informasjonstjenester. Noen slike agenter, som bruker teknikker fra maskinlæring og kunstig intelligens, kalles intelligente agenter.

Semantiske datasett rediger

Semantiske datasett er samlinger av semantisk merkede data. Eksempler er DBpedia, Wikidata og Geonames.

For å gjøre nettet mer brukbart, automatisert og tilkoblet gjennom sine ressurser har det blitt lagt opp til flere måter å omvende tjenester og ikke-semantiske ressurser til semantiske formater. Flere tjenere sitter allerede på store mengder data i flere formater. Av den grunn har det blitt produsert flere applikasjoner som konverterer andre dataformater til RDF-formater.

DBpedia rediger

DBpedia har som mål å hente ut data fra Wikipedia og gjøre det tilgjengelig i et semantisk RDF-format. Resultatet blir publisert og blir lagt ut fritt tilgjengelig med GNU Free Documentation License. Dette tillater semantiske agenter til å sende spørringer til datasettet og lenke og bruke materialet tilgjengelig i egne datakilder.

Resource Description Framework (RDF) rediger

Resource Description Framework (RDF) er et format som representerer semantiske datasett som grafer der nodene er informasjons- og andre ressurser og kantene er merker som beskriver hvordan ressursene henger sammen. Det finnes egne databasehåndteringsystemer for å lagre RDF-grafer, såkalte trippellagre. RDF består dessuten av en hel familie av spesifikasjoner fra W3C, som blant annet definerer:

  • spørrespråket SPARQL som definerer er en protokoll og et språk beregnet på å gjøre operasjoner som å stille spørringer mot semantiske datakilder;
  • ulike serialiseringer for å lagre og utveksle RDF-grager som filer (f eks RDF/XML, N3 og Turtle);
  • RDF Skjema som utvider RDF et vokabular for å beskrive klasser og egenskaper for RDF-baserte ressurser; og
  • OWL som gir enda større vokabular for å beskrive egenskaper og klasser. Blant annet relasjonene mellom klasser, større muligheter for beskrivelse av egenskaper, symmetri og nummere klasser.

Lignende begreper rediger

Fordi den fokuserer på å knytte sammen data snarere enn dokumenter, kalles den semantiske veven også dataveven («Web of Data»)[7]. En tilsvarende utvikling er lenkede data («Linked Data», LD) og lenkede åpne data («Linked Open Data», LOD), som legger vekt på å gjøre åpne og andre datasett tilgjengelige på lenkede formater som kan benyttes av maskiner[8]. Et selskap som Google bruker også semantiske teknologier i stort omfang under betegnelsen kunnskapsgrafer.

Utfordringer rediger

Det er mange lag med hindringer som man må beherske for å få til en fullstendig semantisk web. Internett har rundt 24 milliarder sider.[9] Terminologier som SNOMED CT inneholder over 370 000 navn på forskjellige klasser og nåværende teknologi har enda ikke vært i stand til å skille ut duplikater i semantiske betydninger.

Enkelte ord i språket er veldig vage og upresise. Ung og høy er et eksempelet på dette. Dette gjør at spørringer mot en semantisk datakilde gjør det veldig vanskelig å få korrekt informasjon siden konseptene "ung" og "høy" har variable betydninger hos folk. Som regel bli reguleringsprinsippet "fuzzy logic", eller uskarp logikk, anvendt for å avgjør hva det er brukeren faktisk spør om.

I motsatt retning har man også de veldig presise og nøyaktige spørringene som gjør at man ofte må anvende seg av sannsynlighetsregning for å finne ut de spesifikke resultatene man vil ha. Et eksempel på en situasjon som kan oppstå er ved å se på en pasient som har blitt presentert et sett av symptomer. Det kan finnes flere diagnoser på akkurat de symptomene, men en agent med en algoritme for sannsynlighet vil kunne regne ut hvilken diagnose er mest sannsynlig basert på symptomene angitt.

Inkonsistens er også et dilemma når det eksisterer flere vokabular fra forskjellige ontologier bli kombinert i ett dokument. Deduksjon feiler når inkonsistensen er tilstedeværende i et dokument med flere separate vokabular.

Et siste hinder er ren menneskelig bedrageri. Falsk informasjon satt inn i semantiske egenskaper. Kryptografi blir normalt sett utøvd for å forhindre bedrageri.

Mange av teknikkene nevnt her vil kreve en utvidelse av Web Ontology Language (OWL) for å bli løst.

Se også rediger

Referanser rediger

  1. ^ a b c ««The Semantic Web», artikkel i Scientific American». Besøkt 14. juni 2010. 
  2. ^ «"WorldWideWeb: Proposal for a HyperText Project"». Besøkt 15. juni 2010. 
  3. ^ a b Tim Berners-Lee og Mark Fischetti (1999). «12». Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by its Inventor. Britain: Orion Business. ISBN 0-7528-2090-7. 
  4. ^ Sikos, Leslie F. (2015). «2». Mastering Structured Data on the Semantic Web: From HTML5 Microdata to Linked Open Data. Apress. ISBN 1484210492. 
  5. ^ «"Om Mikroformater"». Besøkt 16. juni 2010. 
  6. ^ «"Linked Data av Tim Berners-Lee"». Besøkt 16. juni 2010. 
  7. ^ Dean Allemang og James Hendler (2011). Semantic Web for the Working Ontologist: Effective Modeling in RDFS and OWL. Elsevier. 
  8. ^ Christian Bizer, Tom Heath og Tim Berners-Lee (2009). «Linked data-the story so far». Semantic Services, Interoperability and Web Applications: Emerging Concepts: 205-227. 
  9. ^ «"World Wide Web Size"». Besøkt 17. juni 2010. 

Eksterne lenker rediger