1. Dejan Lavbič
Univerza v Ljubljani
Fakulteta za računalništvo in informatiko
2. Vsebina predstavitve (1)
Uvod
Dilema Web 1.0, Web 2.0, Web 3.0
Semantični splet
Različni pogledi in pričakovanja
semantičnega spleta
Najbolj odmevni produkti semantičnega
spleta v letu 2008
Ogrodja in orodja
3. Vsebina predstavitve (2)
Jeziki semantičnega spleta
RDF
○ Porazdelitev podatkov na svetovnem spletu
○ RDF sintaksa
○ Arhitektura aplikacij semantičnega spleta
○ Poizvedovanje po RDF s pomočjo SPARQL
○ Sklepanje v RDF
4. Vsebina predstavitve (3)
Jeziki semantičnega spleta
RDF/S
○ Funkcija sheme
○ Prenos razmerij
○ Tip podatkov
○ Vzorci modeliranja
OWL
○ Osnovni gradniki (RDF/S Plus)
○ Ostale funkcionalnosti
○ Uporaba
6. Uvod
Dilema Web 1.0, Web 2.0, Web 3.0, Semantični splet
Je splet eden ali jih je več?
Ali je številčenje različic spleta zgolj
marketinška poteza?
7. Uvod
Enostavna opredelitev (1)
Web 1.0
branje
Web
Web 2.0 3.0
branje
Web
pisanje 2.0
Web 3.0 Web
branje 1.0
pisanje
izvajanje
8. Uvod
Yahoo-jeva formula 4 C-jev (2)
Web 3.0 = (4C + P + VS)
kjer velja …
○ 3C = Content, Commerce, Community
(vsebina, trgovanje, skupnost)
○ 4. C = Context (kontekst)
○ P = Personalization (personifikacija)
○ VS = Vertical Search (vertikalno iskanje)
9. Uvod
Enostaven primer
Web 1.0 nakup juhe Cao Lâu
Web 2.0 juho kuhamo sami doma in
povabimo prijatelje
Semantični splet
planirana večerja in
upoštevanje dejstev, da je
Pia alergična na gluten,
Vasilij je do četrtka
nedosegljiv in Andrej je
vegetarijanec
10. Semantični splet
Trenutna različica svetovnega spleta:
mnoţica med seboj povezanih dokumentov.
Ideja semantičnega spleta:
izboljšati trenutni splet,
računalniki podatke procesirali,
interpretirali in povezovali,
pomagali ljudem pri iskanju
znanja,
vzpostavitev skupnega ogrodja.
11. Semantični splet
Sklad tehnologij
Uporabniški vmesniki in aplikacije
Zaupanje
Sklepanje, dokazovanje
Poenotena logika
Ontologije (OWL) Pravila (RIF/SWRL)
Kriptografija
Poizvedovanje
(SPARQL)
Taksonomije (RDF/S)
Izmenjava podatkov (RDF)
Sintaksa podatkov (XML) Imenski prostor (XML shema)
Identifikatorji (URI) Nabor znakov (UNICODE)
12. Različni pogledi in pričakovanja
Splet podatkov, predstavljenih v RDF ali
OWL,
RDF zamenjajo mikroformati,
Spletne storitve –
umetna inteligenca,
uporabniška
vrednost.
13. Različni pogledi in pričakovanja
Potrošnik in organizacija
Potrošnik – išče se “killer application”
otipljiva, enostavna aplikacija, ki
prinaša dodano vrednost,
akademsko okolje gospodarstvo.
Organizacije – bolj tehnična usmeritev
semantične tehnologije inteligenca
trţenje “naši produkti so boljši in
pametnejši, ker uporabljamo semantični splet”
standardizacija komunikacije (RDF), temelji na
XML in ima dobro osnovo za opredelitev
semantike
14. Različni pogledi in pričakovanja
Iskalne tehnologije
Eden večjih potencialov uporabe
semantičnega spleta.
Napredek opazen pri dveh konkurentih:
○ Hakia,
○ Powerset.
A ni dovolj že Google?
Zmagovalna kombinacija
semantika + inovativna predstavitev + sledenje
uporabniku
15. Najboljši SW produkti 2008 (1)
Rešitev Opis
SearchMonkey Razvijalcem omogoča gradnjo aplikacij na podlagi
(Yahoo!) iskalne platforme Yahoo! ter objavljanje
strukturiranih podatkov, uporaba semantičnih
oznak (mikroformati, RDF), standardiziranih XML
virov, API-jev in luščenje podatkov iz spletnih
strani.
http://developer.yahoo.com/searchmonkey/
Powerset Spletni iskalnik, ki temelji na naravnem jeziku.
(Microsoft)
http://www.powerset.com/
16. Najboljši SW produkti 2008 (2)
Rešitev Opis
Open Calais Paket orodij, ki omogoča uporabnikom
(Thomson Reuters) vključevanje semantičnih funkcionalnosti znotraj
blogov, sistemov za obvladovanje vsebine,
spletnih strani ali aplikacij.
http://www.opencalais.com/
Dapper Opredeli področje na spletni strani, kjer se prikaţe
MashupAds naslov filma in sedaj prikazuje oglasno sporočilo,
ki je povezano s poljubnim filmom, ki je povezan z
omenjeno stranjo.
http://www.dapper.net/mashupads/
17. Najboljši SW produkti 2008 (3)
Rešitev Opis
Hakia Spletni iskalnik, ki temelji na procesiranju
naravnega jezika in poskuša vrniti smiselne
rezultate iskanja.
http://www.hakia.com/
TripIt Aplikacija za obvladovanje načrtovanja potovanj.
http://www.tripit.com/
BooRah Spletna stran z ocenami restavracij, ki temelji na
analizi blogov s področja prehrane. Iz opisov zna
prepoznati hvala in kritiko in na ta način oceniti
restavracijo.
http://boorah.com/
18. Najboljši SW produkti 2008 (4)
Rešitev Opis
BlueOrganizer Vrne dodatne informacije o spletni strani, ki jo
(AdaptiveBlue) pregledujemo in ponudi uporabne povezave glede
na temo spletne strani.
http://www.adaptiveblue.com/
Zemanta Orodje za pomoč pri pisanju blogov, kjer lahko
dodamo povezane podatke posameznim
zapisom.
http://www.zemanta.com/
UpTake Poenostavlja proces rezervacije potovanj preko
spleta.
http://www.uptake.com/
19. Ogrodja in orodja
Protégé
Odprtokodni urejevalnik ontologij in
ogrodje za obvladovanje znanja.
http://protege.stanford.edu
Eden najbolj
priljubljenih orodij
Razširljiv s pomočjo
zavihkov
20. Ogrodja in orodja
Jena
Odprtokodno ogrodje za manipulacijo z
ontologijami
http://jena.sourceforge.net
Uporablja se tudi v orodju Protégé
Podpora sklepanju:
tranzitivno,
RDF/S,
OWL,
generična pravila.
21. Jeziki semantičnega spleta
Uporabniški vmesniki in aplikacije
Zaupanje
Sklepanje, dokazovanje
Poenotena logika
Ontologije (OWL) Pravila (RIF/SWRL)
Kriptografija
Poizvedovanje
(SPARQL)
Taksonomije (RDF/S)
Izmenjava podatkov (RDF)
Sintaksa podatkov (XML) Imenski prostor (XML shema)
Identifikatorji (URI) Nabor znakov (UNICODE)
22. RDF
Porazdelitev podatkov na svetovnem spletu (1)
Različne strategije za porazdelitev
podatkov na svetovnem spletu
Del podatkov predstavljen na enem
računalniku, ostali pa na drugih računalnikih.
Strategije
pristop po vrsticah,
pristop po stolpcih in
pristop po celicah.
23. RDF
Porazdelitev podatkov na svetovnem spletu (2)
ID Naslov Avtor Tip Leto
1 Otelo William Shakespeare tragedija 1603
2 Hamlet William Shakespeare tragedija 1604
3 Pohujšanje v dolini Ivan Cankar drama 1908
šentflorjanski
4 Bela krizantema Ivan Cankar esej 1910
5 Hlapec Jernej in Ivan Cankar povest 1907
njegova pravica
6 Čaša opojnosti Oton Ţupančič pesem 1899
7 Zdravljica France Prešeren pesem 1844
8 Sonetni venec France Prešeren pesem 1834
24. RDF
Pristop po vrsticah
Vsak računalnik skrbi za določene vrstice.
Porazdelitev prostorske zahtevnosti.
Potrebujemo skupno shemo,
da določimo stolpce.
6 Čaša opojnosti Oton Župančič pesem 1899
1 Otelo William Shakespeare tragedija 1603
4 Bela krizantema Ivan Cankar esej 1910
2 Hamlet William Shakespeare tragedija 1604
3 Pohujšanje v dolini šentflorjanski Ivan Cankar drama 1908
8 Sonetni venec France Prešeren pesem 1834
25. RDF
Pristop po stolpcih
Vsak računalnik skrbi za določene stolpce.
Enostavno dodajanje novih podatkov o entitetah.
Potrebujemo referenco na entiteto,
da povemo o kateri govorimo.
Avtor Leto Tip Naslov
William Shakespeare 1603 tragedija Otelo
William Shakespeare 1604 tragedija Hamlet
Ivan Cankar 1908 drama Pohujšanje v dolini šentflorjanski
Ivan Cankar 1910 esej Bela krizantema
Ivan Cankar 1907 povest Hlapec Jernej in njegova pravica
Oton Župančič 1899 pesem Čaša opojnosti
France Prešeren 1844 pesem Zdravljica
France Prešeren 1834 pesem Sonetni venec
26. RDF
Pristop po celicah (1)
Vsak računalnik skrbi za določene celice.
Zdruţitev prej omenjenih pristopov.
Potrebujemo tako skupno shemo kot
referenco na entiteto.
Tip
Vrstica 5 povest Naslov
Leto
Vrstica 5 Hlapec Jernej in njegova pravica
Vrstica 7 1844
Avtor
Vrstica 8 France Prešeren
Naslov
Vrstica 6 Čaša opojnosti
27. RDF
Pristop po celicah (2)
Prilagodljivost pristopa po celicah je potrebna
za AAA slogan, ki je zelo pomemben del
semantičnega spleta:
Moţnost vseh sodelujočih, da izrazijo svoje
mnenje o poljubni temi.
○ Anyone can say Anything about Any topic (AAA)
Zato se pri jeziku RDF uporablja pristop po
celicah.
28. RDF
Sintaksa (1)
Osnovni gradnik je trojček (ang. triple), ki je v
obliki (osebek, predikat, predmet).
Dodana vrednost je pri mnoţici trojčkov, ki
opisujejo isto entiteto Ivan Cankar
gradimo semantično naslov
naslov
Bela krizantema
mreţo. naslov
Hlapec Jernej in njegova pravica
Pohujšanje v dolini šentflorjanski
Osebek Predikat Predmet
LD:IvanCankar LD:naslov LD:BelaKrizantema
LD:IvanCankar LD:naslov LD:HlapecJernejInNjegovaPravica
LD:IvanCankar LD:naslov LD:PohujsanjeVDoliniSentflorjanski
30. RDF
Tabelarični podatki (1)
Tabela literarnih del, ki jih ţelimo zapisati v
RDF obliki.
Vsaka vrstica je enolična entiteta.
○ ID uporabimo za enolični identifikator.
○ Vsaka celica je svoj RDF zapis.
○ Poskrbimo za ustrezne tipe.
31. RDF
Tabelarični podatki (2)
Vsaka celica je svoj RDF zapis.
Osebek Predikat Predmet
LD:LiterarnoDelo1 LD:naslov Otelo
LD:LiterarnoDelo1 LD:avtor William Shakespeare
LD:LiterarnoDelo1 LD:tip tragedija
LD:LiterarnoDelo1 LD:leto 1603
LD:LiterarnoDelo2 LD:naslov Hamlet
LD:LiterarnoDelo2 LD:avtor William Shakespeare
LD:LiterarnoDelo2 LD:tip tragedija
LD:LiterarnoDelo2 LD:leto 1604
… … …
33. RDF
Primer
http://amor.fri.uni-lj.si/dejan/SW/tutorial/
LiterarnaDela.owl
34. RDF
Arhitektura aplikacij semantičnega spleta (1)
Večino komponent je moţno dobiti v
komercialni ali odprtokodni različici:
RDF razčlenjevalnik/serializator,
○ Razčlenjevalnik prebere podatke in jih predstavi v
obliki trojčkov.
○ Serializator izvaja obraten proces.
RDF shramba podatkov,
○ Triplestore-i, ki so podatkovne baze, optimizirane za
shranjevanje in poizvedovanje po RDF trojčkih.
RDF stroj za poizvedovanje,
○ Podatki na podlagi strukturiranih poizvedb.
36. RDF
Poizvedovanje s SPARQL (1)
Dostop do podatkov v aplikaciji semantičnega
spleta je s pomočjo poizvedovalnega jezika
SPARQL.
Temeljili bomo na primeru literarnih del.
Otelo Hamlet Čaša opojnosti
naslov naslov naslov
Anne Hathaway .porocil. William Shakespeare Oton Župančič
France Prešeren Ivan Cankar
naslov
naslov naslov
naslov
Bela krizantema
Zdravljica Sonetni venec naslov
Hlapec Jernej in njegova pravica
Pohujšanje v dolini šentflorjanski
37. RDF
Poizvedovanje s SPARQL (2)
Vprašajmo se naslednje:
“Poišči osebo, ki je z nekom poročena in je med
drugim napisala Otelo”
V obliki vzorca grafa je to:
{ ?oseba1 :porocil ?oseba2 .
?oseba1 :naslov :Otelo . }
Otelo Hamlet
:Otelo
naslov naslov naslov
?oseba2 .porocil. ?oseba1
Anne Hathaway .porocil. William Shakespeare
38. RDF
Poizvedovanje s SPARQL (3)
Presenetljivo nam poizvedba vrne prazen
rezultat.
Pojavi se zaradi
semantične neizraznosti Otelo Hamlet
jezika RDF (to bomo naslov naslov
popravili pri jeziku OWL). Anne Hathaway .porocil. William Shakespeare
Vzorec grafa SPARQL rezultat
{ ?oseba1 :porocil ?oseba2 . brez rezultatov
?oseba1 :naslov :Otelo . }
{{?oseba1 :porocil ?oseba2} UNION ?oseba1 = William Shakespeare
{?oseba2 :porocil ?oseba1} . ?oseba2 = Anne Hathaway
?oseba1 :naslov :Otelo . }
40. RDF
Sklepanje (1)
Mehanizem sklepanja
lepilo, ki drţi skupaj semantični splet
ob upoštevanju AAA slogana, je to način,
kako informacije poveţemo med sabo,
predpostavka odprtega sveta.
Več vrst trojčkov
opredeljeni – zapisani v RDF modelu
izpeljani – do njih pridemo z mehanizmom
sklepanja
41. RDF
Sklepanje (2)
Primer
Kupujemo srajco tipa Chamois.
Iščemo po kategoriji srajca, a jo kasneje najdemo
v kategoriji tr:MoškoOblačilo
srajca tipa
tr:Srajca
Henley.
tr:SrajcaSKratkimiRokavi tr:SrajcaTipaHenley tr:SrajcaTipaOxford
Kako naredimo
iskanje tr:SrajcaChamoisHenley tr:SrajcaKlasicniOxford
pametnejše?
42. RDF
Primer sklepanja v RDF
http://amor.fri.uni-lj.si/dejan/SW/tutorial/
MoskaOblacila.owl
43. Kaj smo spoznali?
Uporabniški vmesniki in aplikacije
Zaupanje
Sklepanje, dokazovanje
Poenotena logika
Ontologije (OWL) Pravila (RIF/SWRL)
Kriptografija
Poizvedovanje
(SPARQL)
Taksonomije (RDF/S)
Izmenjava podatkov (RDF)
Sintaksa podatkov (XML) Imenski prostor (XML shema)
Identifikatorji (URI) Nabor znakov (UNICODE)
44. RDF/S
Funkcija sheme (1)
Številne uspešne sheme iz prakse:
XML shema
○ Ugotoviti ali izbrani XML dokument ustreza shemi.
Shema podatkovne baze
○ Podatki o glavi in ključni podatki o relacijskih tabelah.
○ Vsi podatki, ki nakazujejo pomen so v shemi in so
neodvisnih od relacij.
Razredni diagrami
○ Opisujejo podatke in omogočajo sistematičen način
opisovanja podatkov in transformacij za te podatke.
45. RDF/S
Funkcija sheme (2)
Vse sheme imajo skupno:
povedo nekaj o podatkih, izraţenih v sistemu,
predstavljajo podatke o podatkih.
Namen RDF sheme (RDF/S):
podatkom dodati pomen,
način, s katerim to doseţemo, je mehanizem
sklepanja.
46. RDF/S
Prenos razmerij z rdfs:subClassOf (1)
Najbolj osnoven prenos razmerij je z
gradnikom podrazred rdfs:subClassOf
Primer
Imamo igralca Union Olimpije, ki je tudi igralec lige
UPC in podatek, da je Miha Zupan igralec Union
Olimpije.
○ Pričakujemo, da bomo sposobni izpeljati, da je Miha
Zupan tudi igralec lige UPC.
○ Kako je to izvedljivo v RDF/S?
47. RDF/S
Prenos razmerij z rdfs:subClassOf (2)
Zapišemo dejstva
:IgralecUnionOlimpije rdfs:subClassOf :IgralecLigeUPC .
:MihaZupan rdf:type :IgralecUnionOlimpije .
Upoštevamo pravilo od prej
ČE (?A rdfs:subClassOf ?B) IN (?x rdf:type ?A)
POTEM (?x rdf:type ?B)
S pomočjo mehanizma sklepanja ugotovimo
:MihaZupan rdf:type :IgralecLigeUPC .
48. RDF/S
Prenos razmerij z rdfs:subPropertyOf (1)
Za povezovanje razredov uporabljamo
lastnosti, kjer nam RDF/S ravno tako
omogoča mehanizem za opredelitev hierarhije
s pomočjo rdfs:subPropertyOf
Primer
Zaposlovanje ljudi v večjem podjetju, kjer imamo
številna zaposlitvena razmerja.
Kako lahko s pomočjo mehanizma sklepanja
ugotovimo izvedena zaposlitvena razmerja?
49. RDF/S
Prenos razmerij z rdfs:subPropertyOf (2)
Dejstva o :delaZa
zaposlitvenih :delaPogodbenoZa :jeZaposlenPri
razmerij lahko :delaNaCrnoZa :delaPrekoAHZa
zapišemo kot:
:delaNaCrnoZa rdfs:subPropertyOf :delaPogodbenoZa .
:delaPrekoAHZa rdfs:subPropertyOf :delaPogodbenoZa .
:delaPogodbenoZa rdfs:subPropertyOf :delaZa .
:jeZaposlenPri rdfs:subPropertyOf :delaZa .
50. RDF/S
Prenos razmerij z rdfs:subPropertyOf (3)
:delaZa
Dodajmo še nekaj :delaPogodbenoZa :jeZaposlenPri
primerov: :delaNaCrnoZa :delaPrekoAHZa
:Miha :jeZaposlenPri :UniverzaLjubljana .
:Anja :delaNaCrnoZa :Istrabenz .
:Jernej :delaPrekoAHZa :Krka .
Rezultati sklepanja so:
:Miha :delaZa :UniverzaLjubljana .
:Anja :delaPogodbenoZa :Istrabenz .
:Jernej :delaPogodbenoZa :Krka .
:Anja :delaZa :Istrabenz .
:Jernej :delaZa :Krka .
51. RDF/S
Tip podatkov z rdfs:domain
S pomočjo gradnika rdfs:domain lahko
točno opredelimo iz katerega razreda,
določena lastnost izhaja
Analogija iz matematike: definicijsko
območje (ang. domain) funkcije
Pri sklepanju velja naslednje pravilo:
ČE (?P rdfs:domain ?D) IN (?x P ?y)
POTEM (?x rdf:type ?D)
52. RDF/S
Tip podatkov z rdfs:range
Podobno s pomočjo gradnika
rdfs:range opredelimo na kateri razred
lastnost kaţe
Analogija iz matematike: zaloga vrednosti
(ang. range) funkcije
Pri sklepanju velja naslednje pravilo:
ČE (?P rdfs:range ?R) IN (?x P ?y)
POTEM (?y rdf:type ?R)
54. RDF/S
Vzorci modeliranja – ponovna uporaba
Uporaba obstoječe ontologije, kjer je del naše
problemske domene ţe predstavljen:
uporabimo prenos razmerij.
Primer ontologije Dublin Core (opisovanje
bibliografskih podatkov)
:avtor rdfs:subPropertyOf dc:creator .
vse logične omejitve iz Dublin Core se ohranijo,
ko dodamo izjave o lastnosti :avtor, posredno
dodamo tudi za dc:creator.
55. RDF/S
Vzorci modeliranja – ne-načrtovalske lastnosti
Ne-načrtovalske lastnosti se ne uporabljajo
pri sklepanju, so pa kljub temu pomembne za
uporabnike:
rdfs:label za prikazovanje imen konceptov v
prijaznejši obliki,
rdfs:comment za podrobnejši komentar
določenega koncepta,
rdfs:seeAlso za opredelitev dodatnih virov
informacij (npr. Wikipedia zapis o modeliranem
konceptu).
56. RDF/S
Vzorci modeliranje – klasifikacija na podlagi def. obm. (1)
Primer podatkov o ladjah
Naslednja Začetek
Ime ladje Prva plovba Uničenje Poveljnik
plovba neaktivnosti
Berengaria 16.06.1913 1938 Johnson
QEII 02.05.1969 04.03.2010 Warwick
Titanic 10.04.1912 14.03.1912 Smith
Constitution 22.07.1798 12.01.2009 Preble
Samodejna klasifikacija ladij, glede na podatke?
Ţeleli bi imeti 3 skupine ladij: izpluta ladja, ladja v
popravilu in neaktivna ladja.
58. Kaj smo spoznali?
Zaupanje
Sklepanje, dokazovanje
Poenotena logika
Ontologije (OWL) Pravila (RIF/SWRL)
Kriptografija
Poizvedovanje
(SPARQL)
Taksonomije (RDF/S)
Izmenjava podatkov (RDF)
Sintaksa podatkov (XML) Imenski prostor (XML shema)
Identifikatorji (URI) Nabor znakov (UNICODE)
59. OWL
Osnovni gradniki
Osnovne gradnike jezika OWL včasih
poimenujemo tudi RDF/S Plus:
inverzna lastnost,
simetrična lastnost,
tranzitivna lastnost,
ekvivalenca (razredov, lastnosti in
primerkov),
funkcijska lastnost,
inverzna funkcijska lastnost.
60. OWL
Inverzna lastnost
Primer opredelitve nad-razreda:
:nadRazred owl:inverseOf rdfs:subClassOf .
za vsako relacijo B :nadRazred A, velja tudi
A rdfs:subClassOf B.
Primer relacije “poročen z”
relacija je inverzna sama sebi
:porocenZ owl:inverseOf :porocenZ .
:Shakespeare :porocenZ :AnneHathaway .
:AnneHathaway :porocenZ :Shakespeare .
61. OWL
Simetrična lastnost
Relacija “poročen z” je tudi simetrična
lastnost, za katero velja:
ČE (P rdf:type owl:SymmetricProperty)
POTEM (P owl:inverseOf P)
Isto funkcionalnost prejšnjega primera
lahko tako doseţemo z:
:jePorocenZ rdf:type owl:SymmetricProperty .
62. OWL
Tranzitivna lastnost
Za tranzitivno lastnost velja
ČE (P rdf:type owl:TransitiveProperty) IN
(X P Y) IN (Y P Z)
POTEM (X P Z)
Primer:
:imaPrednika rdf:type owl:TransitiveProperty .
:Marija :imaPrednika :Janez .
:Tone :imaPrednika :Marija .
Tone
.imaPrednika.
:Tone :imaPrednika :Janez . Marija .imaPrednika.
.imaPrednika.
Janez
63. OWL
Ekvivalenca (1)
Ekvivalenco razredov lahko doseţemo
tudi z naslednjo zvijačo:
:Analitik rdfs:subClassOf :Raziskovalec .
:Raziskovalec rdfs:subClassOf :Analitik .
za isto funkcionalnost obstaja OWL gradnik
:Analitik owl:equivalentClass :Raziskovalec .
Primerki enega ekvivalentnega razreda
pripadajo tudi drugemu in obratno.
64. OWL
Ekvivalenca (2)
Ekvivalenco lastnosti zapišemo kot
:izposodil owl:equivalentProperty :prevzel .
Zelo uporaben je gradnik za ekvivalenco
med primerki
več primerkov, ista stvar, različna poimenovanja
zdruţevanje podatkov iz različnih virov
:Preseren owl:sameAs :FrancePreseren .
65. OWL
Funkcijska lastnost
Funkcijska lastnost ima pri istem definicijskem
območju vedno isto zalogo vrednosti
ČE (P rdf:type owl:FunctionalProperty) IN
(X P A) IN (X P B)
POTEM (A owl:sameAs B)
Primer
lit:Shakespeare :imaOceta bio:JohannesShakespeare .
lit:Shakespeare :imaOceta bio:JohnShakespeare .
:imaOceta rdf:type owl:FunctionalProperty .
bio:JohannesShakespeare owl:sameAs bio:JohnShakespeare .
66. OWL
Inverzna funkcijska lastnost
Inverzna funkcijska lastnost je eden
najpomembnejših konstruktov jezika OWL
integracija podatkov iz različnih virov,
ima podobno vlogo kot identifikator pri relacijskih
podatkovnih bazah,
○ za razliko od PB pri istem identifikatorju ne dobimo
napake, ampak OWL sklepa, da gre za isti entiteti
Pravilo
ČE (P rdf:type owl:InverseFunctionalProperty) IN
(A P X) IN (B P X)
POTEM (A owl:sameAs B)
68. OWL
Ostale funkcionalnosti (1)
Ostale funkcionalnosti si oglejmo na primeru
vprašanj in odgovorov pri vprašalniku:
Imamo številna vprašanja, kjer ima lahko vsak
določeno število odgovorov.
Shema problemske domene v ontologiji:
:Vprasanje :Odgovor
.rdfs:domain. .rdfs:domain.
rdfs:range .rdfs:domain.
:besediloVprasanja :besediloOdgovora
:jeMozenZa
owl:inverseOf
:imaMoznost rdfs:subPropertyOf :imaIzbranoMoznost
69. OWL
Ostale funkcionalnosti (2)
Podpora uporabnikom kabelskega operaterja:
Pri katerih sistemih se vam pojavljajo teţave?
○ kabelska TV
○ širokopasovni internet
○ oboje
Kakšni simptomi se pojavljajo na televiziji?
○ ni slike
○ ni zvoka
○ inicializacija
○ slab sprejem
70. OWL
Ostale funkcionalnosti (3)
Vprašalnik :KaksnaTezava
:besediloVprasanja = »Pri katerih ...«
zapišemo v :imaIzbranoMoznost :imaMoznost :imaMoznost
ontologijo v :CTV
:besediloOdgovor =
:Internet
:besediloOdgovor =
:Oboje
:besediloOdgovor = »oboje«
»kabelska TV« »širokopasovni internet«
obliki
primerkov:
:TVSimptom
:besediloVprasanja = »Kakšni simptomi ...«
:imaMoznost :imaMoznost
:NiSlike :imaMoznost :imaMoznost :SlabSprejem
:besediloOdgovor = :besediloOdgovor =
»Na televiziji ni slike.« »Na zasloni sneži.«
:NiZvoka :Inicializacija
:besediloOdgovor = :besediloOdgovor =
»Slika je, vendar ni zvoka.« »Peščena ura, ki ne izgine.«
71. OWL
Omejitve z owl:someValuesFrom
Omejitev, kjer imajo vsi primerki vsaj eno
vrednost lastnosti P iz razreda C.
:OdgovorjenoVprasanje owl:equivalentClass
[rdf:type owl:Restriction;
owl:onProperty :imaIzbranoMoznost;
owl:someValuesFrom :Odgovor].
:imaIzbranoMoznost
owl:onProperty
:imaIzbranoMoznost nekaj :Odgovor .owl:someValuesFrom. :Odgovor
owl:equivalentClass
:OdgovorjenoVprasanje rdf:type
rdf:type
:CTV
:KaksnaTezava
.:imaIzbranoMoznost. :besediloOdgovor =
:besediloVprasanja = »Pri katerih ...«
»kabelska TV«
72. OWL
Omejitve z owl:allValuesFrom (1)
Omejitev, kjer imajo vsi primerki vse
vrednosti lastnosti P iz razreda C.
Primer:
Uporabnik odgovori na vprašanje.
Vsa odvisna vprašanja postanejo
omogočena.
75. OWL
Omejitve z owl:allValuesFrom (4)
Odvisnosti med odgovori in vprašanji v
našem kratkem vprašalniku:
:KaksnaTezava
:besediloVprasanja = »Pri katerih ...«
:imaIzbranoMoznost :imaMoznost :imaMoznost
:CTV :Oboje :Internet
:besediloOdgovor = :besediloOdgovor = »oboje« :besediloOdgovor =
»kabelska TV« »širokopasovni internet«
:omogoca :omogoca
:omogoca :omogoca
:TVSimptom :InternetSimptom
:besediloVprasanja = »Kakšni simptomi ...«
76. OWL
Omejitve z owl:hasValue
Omejitev, kjer imajo vsi primerki vrednost A
lastnosti P.
Poseben primer uporabe owl:someValuesFrom.
:VprasanjeZVisokoPrioriteto owl:equivalentClass
[rdf:type owl:Restriction;
owl:onProperty :imaPrioriteto;
owl:hasValue :Visoka].
:VprasanjeZVisokoPrioriteto
owl:equivalentClass
:imaPrioriteto ima :Visoka :Prioriteta
owl:onProperty .owl:hasValue. rdf:type rdf:type rdf:type
:imaPrioriteto :Visoka :Srednja :Nizka
77. OWL
Primer omejitev
http://amor.fri.uni-lj.si/dejan/SW/tutorial/
VprasanjaOdgovori.owl
78. OWL
Mnoţice
Teorija mnoţic – zelo močno orodje pri
jeziku OWL
A owl:unionOf B
A B
A owl:intersectionOf B owl:complementOf A
79. OWL
Štetje in zapiranje sveta (1)
Pri semantičnem spletu operiramo s
predpostavko odprtega sveta
štetje elementov mnoţice je zelo teţko,
ţe vprašanje ali primerek pripada razredu je
problematično,
○ Kaj če v naslednjem trenutku odkrijemo
trojček, ki trdi ravno to?
80. OWL
Štetje in zapiranje sveta (2)
Primer dialoga med dvema ljubiteljema
filmov (Pia in Vasilij):
Oseba Vprašanje ID
Pia Zadnjič sem gledala film od James Dean-a. (1)
Vasilij Prav gotovo si gledala film »Giant«. (2)
Pia Ne. (3)
Vasilij Potem pa mogoče »East of Eden«? (4)
Pia Ne. (5)
Vasilij Glede na to, da obstajajo samo trije filmi od James Dean-a, (6)
si morala gledati »Rebel without a cause«.
Pia Res je. (7)
81. OWL
owl:oneOf (1)
To sklepanje je moţno le pri predpostavki, da
je James Dean igral v le 3 filmih.
V jeziku OWL imamo za to na voljo gradnik
owl:oneOf.
:JamesDeanFilm owl:Class;
owl:oneOf (:Giant :EastOfEden :Rebel ).
:Giant rdf:type :JamesDeanFilm .
:EastOfEden rdf:type :JamesDeanFilm .
:Rebel rdf:type :JamesDeanFilm .
82. OWL
owl:oneOf (2)
Vnesimo film, ki si ga je ogledala Pia:
:FilmOdPie rdf:type JamesDeanFilm .
Ko Vasilij predvideva “Prav gotovo si gledala
film Giant”, se v ontologijo doda trditev:
:FilmOdPie owl:sameAs :Giant .
Pia to negira, tako da popravimo prejšnjo trditev
:FilmOdPie owl:differentFrom :Giant .
83. OWL
owl:oneOf (3)
Vasilij znova poskusi z vprašanjem “Potem pa
mogoče East of Eden”, vendar Pia to znova
zanika.
:FilmOdPie owl:differentFrom :EastOfEden .
Mehanizem sklepanja nam ponudi odgovor
:FilmOdPie owl:sameAs :Rebel .
84. OWL
owl:oneOf (4)
Dialog o filmih James Dean-a z rezultati
sklepanja
[:Giant, :EastOfEden, :Rebel]
owl:oneOf
:JamesDeanFilm
rdf:type rdf:type rdf:type
rdf:type
:EastOfEden :Giant :Rebel
owl:differentFrom
owl:differentFrom
.owl:sameAs.
:FilmOdPie
85. OWL
Kardinalnost (1)
Nadaljevanje filmskega dialoga
Oseba Vprašanje ID
Pia Ali imaš ti kupljen kakšen film od James Dean-a? (8)
Vasilij Njegovi filmi so edini filmi, ki sem jih kdaj kupil. (9)
Pia Potem verjetno nimaš veliko filmov. Nič več kot 3. (10)
:Vasilij
rdf:type rdf:type
:EkskluzivniLastnikJamesDeanFilmov :LastnikMajhnegaStevilaFilmov
owl:equivalentClass owl:equivalentClass
ugotovitev
:imaVLastiFilm vsi :JamesDeanFilm :imaVLastiFilm max 3 Pie (10)
owl:allValuesFrom owl:onProperty owl:onProperty
:JamesDeanFilm :imaVLastiFilm
:Vasilij rdf:type :LastnikMajhnegaStevilaFilmov .
86. OWL
Kardinalnost (2)
Dialog se nadaljuje
Oseba Vprašanje ID
Pia Koliko filmov imaš torej v lasti? (11)
Vasilij 3. (12)
Pia Potem imaš vse :EastOfEden (13)
filme od James :imaVLastiFilm :Giant
:imaVLastiFilm
Dean-a in tudi :Vasilij .:imaVLastiFilm. :Rebel
tistega, ki sem ga rdf:type rdf:type
gledala včeraj, :LastnikTrehFilmov :EkskluzivniLastnikJamesDeanFilmov
“Rebel without a owl:equivalentClass owl:equivalentClass
cause”. :imaVLastiFilm natanko 3 :imaVLastiFilm vsi :JamesDeanFilm
owl:onProperty owl:onProperty owl:allValuesFrom
:imaVLastiFilm :JamesDeanFilm
owl:oneOf
[:Giant, :EastOfEden, :Rebel]
87. OWL
Komplement mnoţice (1)
Komplement mnoţice so tisti elementi, ki v
prvotni mnoţici niso vsebovani.
:Razred1 owl:complementOf :Razred2 .
Dialog z Vasilijevim prijateljem Andrejem
Oseba Vprašanje ID
Andrej Ali se pogovarjate o James Dean-u? Meni je zelo všeč! (14)
Imam vse njegove filme.
Pia Nisi pa obseden z njim? Imaš vse njegove filme, ampak prav (15)
gotovo imaš še kakšen drug film?
Vasilij Jaz nisem obseden z James Dean-om! (16)
Andrej Seveda imam tudi nekaj filmov, ki niso od James Dean-a. (17)
Vasilij Torej moraš imeti vsaj 4 filme. (18)
88. OWL
Komplement mnoţice (2)
Potrebujemo novo inverzno lastnost
:jeVLastiOsebe owl:inverseOf :imaVLastiFilm .
in opredelimo Andrejev film
[Film,
:AndrejevFilm .owl:intersectionOf.
jeVLastiOsebe ima Andrej]
rdfs:subClassOf
:JamesDeanFilm
in za primerek Andrej zahtevamo
:Andrej rdf:type
[rdf:type owl:Restriction;
owl:onProperty :imaVLastiFilm;
owl:someValuesFrom
[owl:complementOf :JamesDeanFilm]] .
89. OWL
Komplement mnoţice (3)
Opredelimo lastnika večjega števila
filmov
:Andrej
rdf:type rdf:type
:LastnikVecjegaStevilaFilmov :imaVLastiFilm nekaj ne :JamesDeanFilm
owl:equivalentClass
:imaVLastiFilm min 4
S sklepanjem pridemo do potrditve, da
ima Andrej v lasti najmanj 4 filme:
:Andrej rdf:type :LastnikVecjegaStevilaFilmov .
90. OWL
Razdruţene mnoţice (1)
Nadaljujmo naš dialog
Oseba Vprašanje ID
Andrej Sem velik ljubitelj filmov. Ne samo, da imamo vse James (19)
Dean-ove filme, ampak imam tudi filme, kjer igrajo Judy
Garland, Tom Cruise, Dame Judi Dench in Antonio
Banderas!
Vasilij Potem moraš imeti vsaj 7 filmov! (20)
Andrej Kako si pa to vedel? (21)
Vasilij Zato ker noben od teh igralcev ni igral skupaj v kakšen filmu. (22)
91. OWL
Razdruţene mnoţice (2)
Od Andreja izvemo, da ima tudi filme drugih
igralcev in Vasilij pripomni, da omenjeni igralci
niso nikoli igrali skupaj, lahko zapišemo:
:JamesDeanFilm owl:disjointWith :JudyGarlandFilm .
:JamesDeanFilm owl:disjointWith :TomCruiseFilm .
:JamesDeanFilm owl:disjointWith :DameJudiDenchFilm .
:JamesDeanFilm owl:disjointWith :AntonioBanderas .
:JudyGarlandFilm owl:disjointWith :TomCruiseFilm .
:JudyGarlandFilm owl:disjointWith :DameJudiDenchFilm .
:JudyGarlandFilm owl:disjointWith :AntonioBanderas .
:TomCruise owl:disjointWith :DameJudiDenchFilm .
:TomCruise owl:disjointWtih :AntonioBanderas .
:DameJudiDenchFilm owl:disjointWith :AntonioBanderas .
92. OWL
Razdruţene mnoţice (3)
Opredelimo še lastnika 7 filmov:
:LastnikSedmihFilmov rdf:type owl:Restriction;
owl:onProperty :imaVLastiFilm;
owl:minCardinality 7 .
:JudyGarlandFilm
.owl:someValuesFrom.
:imaVLastiFilm nekaj :JudyGarlandFilm
rdf:type
:imaVLastiFilm nekaj :DameJudiDenchFilm
rdf:type
owl:disjointWith
:Andrej rdf:type :imaVLastiFilm nekaj :AntonioBanderasFilm
rdf:type
.owl:someValuesFrom.
rdf:type :imaVLastiFilm nekaj :TomCruiseFilm
:LastnikSedmihFilmov :AntonioBanderasFilm
Rezultat sklepanja:
:Andrej rdf:type :LastnikSedmihFilmov .
94. OWL
Uporaba
owl:import – vse ontologije, ki so poleg
osnovne, se tudi naloţijo
večkratni uvoz (naloţimo samo 1x)
Primer
FEARMO ontologija
srm: brm2prm:
owl:imports
owl:imports
owl:imports owl:imports prm:
owl:imports
trm: owl:imports brm:
owl:imports
owl:imports
feac:
95. Kaj smo spoznali?
Uporabniški vmesniki in aplikacije
Zaupanje
Sklepanje, dokazovanje
Poenotena logika
Ontologije (OWL) Pravila (RIF/SWRL)
Kriptografija
Poizvedovanje
(SPARQL)
Taksonomije (RDF/S)
Izmenjava podatkov (RDF)
Sintaksa podatkov (XML) Imenski prostor (XML shema)
Identifikatorji (URI) Nabor znakov (UNICODE)
96. Prakse modeliranja
Več pristopov:
iskanje obstoječega modela na internetu,
ki ustreza zahtevam,
uporaba informacijskih virov, ki ţe imajo
vrednost za organizacijo (sheme, slovarji,
podatkovne baze ipd.),
razvoj ontologije od začetka.
97. Ponovna uporaba
Problem razumljivih in poţeljivih imen (1)
izogibanje poţeljivim imenom,
upoštevanje “de facto” standarde za
poimenovanje (W3C):
poimenovanje virov v CamelCase obliki
○ brez presledkov, beseda z veliko začetnico,
○ npr. rdfs:subClassClassOf,
owl:InverseFunctionalProperty,
ime razreda se začne z veliko začetnico
○ npr. owl:Restriction, owl:Class
98. Ponovna uporaba
Problem razumljivih in poţeljivih imen (2)
ime lastnosti se začne z majhno začetnico,
○ npr. owl:inverseOf
ime primerka se začne z veliko začetnico,
○ npr. tr:MoskoOblacilo,
pri imenih razredov uporabljamo ednino,
○ npr: owl:SymmetricProperty, tr:Srajca.
99. Ponovna uporaba
Obvladovanje razredov in primerkov
Najbolj pogosta dilema: Kdaj zmodeliramo
koncept kot razred ali kot primerek?
odvisno od zahtev, če :VprasanjeZVisokoPrioriteto
potrebujemo oboje owl:equivalentClass
:imaPrioriteto ima :Visoka
○ vzorec razred-primerek owl:onProperty .owl:hasValue.
razred je mnoţica primerkov
:imaPrioriteto :Visoka
○ vsebuje naj vsaj 1 primerek,
najprej se odločimo kaj bomo modelirali, potem ali
gre za razred ali primerek in na koncu izberemo
ime.
100. Pogoste napake modeliranja (1)
preobširna uporaba razredov,
vsak koncept je razred,
orodja to spodbujajo,
ekskluzivnost,
vsi primerki pod-razreda tudi primerki nad-
razreda, :Mesto
ni pa res, da so edini rdfs:subClassOf
:jePovezanZ nekaj :Ocean
:PristaniskoMesto .owl:equivalentClass.
kandidati za nad-razred :Mesto
owl:intersectionOf
primerki pod-razreda [:jePovezanZ nekaj :Ocean,
Mesto]
rešitev: vzorec preseka
101. Pogoste napake modeliranja (2)
objektivizacija,
omejevanje na isti pomen in delovanje, kot je pri
objektnem modelu,
obvladovanje razrednih identifikatorjev,
uporaba owl:AnnotationProperty,
vsiljiva konceptualizacija,
idejo “načrtovanje za ponovno uporabo”
pomešamo z “povej vse kar lahko”
102.
103. Vpliv informacijskih povezav
Spletni OS Web 4.0
2020 - 2030
Inteligentni osebni agenti
Semantični splet
SWRL
Web 3.0 Porazdeljeno iskanje
OWL 2010 - 2020
OpenID AJAX SPARQL Semantične podatkovne baze
Semantično iskanje Widgeti
RSS ATOM
P2P RDF
JavaScript
SOAP XML Flash Web 2.0 Office 2.0
Java 2000 - 2010 Spletni blogi Skupna raba multimedijskih vsebin
Svetovni splet HTML
HTTP Portali Wikiji Socialno mreženje
VR
Iskanje s ključnimi besedami
BBS Gopher Web 1.0
1990 - 2000
Spletne strani Enostavno sodelovanje
MMO MacOS SQL Groupware
Namizje SGML Podatkovne baze
Windows
Datotečni strežniki
Email
FTP IRC
Doba računalnikov
1980 - 1990
USENET
Osebni
računalnik Datotečni sistemi
Vpliv socialnih povezav
104. Dejan Lavbič
Univerza v Ljubljani
Fakulteta za računalništvo in informatiko
http://amor.fri.uni-lj.si/dejan/SW/tutorial
Dejan.Lavbic@fri.uni-lj.si
Hinweis der Redaktion
Mnenja o tem ali je splet eden ali jih je več so deljena. Prav tako številčenje različic spleta večina ljudi vidi zgolj kot marketinško potezo.Slika prikazuje trend iskalnih nizov »Web 3.0«, »Web 2.0«, »Web 1.0« in »Semantic Web« od leta 2004 do 2009. Jasno vidimo, da je do leta 2005 imel primat semantični splet, medtem ko ga je takrat krepko prehitel Web 2.0, ki je v tem trenutku kar 22x bolj iskana ključna beseda od semantičnega spleta.
Web 2.0 je v bistvu fenomen določene niše z ogromno majhnimi prispevki, ki so se ukvarjali z enim od treh C-jev. V zadnjem času je največji poudarek na zadnjem C-ju – skupnosti, s katero so povezana številna podjetja MySpace, Facebook, Piczo, Xanga, Flixster idr.Pri Web 1.0 je bila gonilna sila trgovanje in nastala so podjetja kot je Amazon, eBay, enaA, mimoVrste idr. V okviru Web 1.0 je prišlo tudi do poka dotcom balona, zaradi prevelikih pričakovanj.V istem obdobju, kot je pridobival na popularnosti Web 2.0, so se izvajale večje investicije v vertikalno iskanje, kot je npr. Sidestep za domeno potovanja.Kar se tiče personifikacije, so bili določeni premiki pri MyYahoo razvojni ekipi in Netvibes, vendar je področje konteksta še vedno zelo slabo raziskano.Naloga Web 3.0 je združevanje vseh teh konceptov in dajanje večjega poudarka na kontekst.
Web 1.0 si lahko razlagamo kot nakup vietnamske juhe CaoLâu.Web 2.0 je kot da bi sami doma kuhali juho CaoLâu in povabimo prijatelje.Pri semantičnem spletu pa lahko analogijo iščemo v večerji, ki jo planiramo in upoštevamo dejstva, da je Pia alergična na gluten, Vasilij je do četrtka nedosegljiv, ker je na službenem potovanju in Andrej je vegetarijanec.
Trenutna različica svetovnega spleta (WWW) je ogromna množica med seboj povezanih dokumentov, ki jih prenašajo računalniki in predstavljajo ljudje. Nastali so iz povezanih sistemov z razliko, da lahko vsak prispeva svoj del. To pa tudi pomeni, da kvalitete informacij ali celo trajne hrambe dokumentov ne moremo vedno zagotoviti. Trenutni splet vsebuje številne podatke, informacije in znanja, vendar je vloga računalnikov v tem trenutku zgolj dostavljanje in predstavitev vsebine dokumentov, ki opisujejo to znanje. Ljudje moramo povezati vse vire pomembnih informacij in jih sami interpretirati.Ideja semantičnega spleta je izboljšati trenutni splet, v tej meri, da bodo računalniki lahko procesirali podatke na spletu, jih interpretirali, povezali in na takšen način pomagali ljudem pri iskanju zahtevanega znanja. Na isti način kot je svetovni velik porazdeljen povezan sitem, je namen semantičnega spleta zagotoviti veliko porazdeljeno bazo znanja. Semantični splet se osredotoča na skupno rabo podatkov in ne dokumentov. Z drugimi besedami gre pri tem projektu za vzpostavitev skupnega ogrodja, ki bi omogočalo skupno rabo podatkov in ponovno uporabo med aplikacijami, podjetji in mejami skupnosti. Gre za skupno sodelovanje, ki ga vodi WorldWide Web konzorcij (W3C).
Slika prikazuje arhitekturo semantičnega spleta v obliki sklada. Najnižja raven temelji na URI in UNICODE, ki sta pomembna elementa obstoječega svetovnega spleta. UNICODE je standard za zapis množice mednarodnih znakov in omogoča, da lahko na spletu uporabljamo poljuben svetovni jezik (za pisanje in branje) v standardizirani obliki. URI je niz v standardizirani obliki, ki omogoča enolično poimenovanje virov (npr. dokumentov). Podmnožica URI-ja je URL, ki določa mehanizem dostop in (omrežno) lokacijo dokumenta (npr. http://amor.fri.uni-lj.si/dejan/). Uporaba URI-ja je zelo pomembna v porazdeljenem internetnem okolju, saj je z njegovo pomočjo izvedena identifikacija vseh virov. Mednarodna različica URI-ja je IRI, ki omogoča pri identifikatorju uporabo UNICODE znakov.Naslednja raven z jezikom XML se ukvarja predvsem s sintakso podatkov in z XML shemo opredelitvijo imenskega prostora. XML je označevalni jezik za splošno uporabo, ki se uporablja za opis dokumentov s strukturirano vsebino. XML dokument vsebuje elemente, ki jih lahko gnezdimo in lahko imajo atribute ter vsebino. S pomočjo XML imenskega prostora pa lahko opredelimo različne označevalne slovarje v okviru istega XML dokumenta. XML shema se uporablja za izražanje sheme določene množice XML dokumentov.Osnovni format za zapis podatkov na semantičnem spletu je RDF (ResourceDescriptionFramework), ki je ogrodje za predstavitev podatkov o virih v obliki grafa. Prvotni namen jezika je bila predstavitev metapodatkov o virih na svetovnem spletu, kot so npr. naslov, avtor in datum spremembe strani, vendar ga lahko uporabimo za shranjevanje vseh ostalih podatkov. Temelji na trojčkih osebek-predikat-predmet, ki sestavljajo graf podatkov. Vsi podatki na semantičnem spletu uporabljajo RDF kot primarni jezik za predstavitev podatkov. Normativna sintaksa za serializacijo RDF-a je XML v obliki RDF/XML.RDF se uporablja za opis grafa, ki je sestavljen iz trojčkov. Vsak lahko opredeli slovar izrazov, ki se uporablja za bolj podroben opis. RDF shema (RDF/S) je naslednja raven, ki je nastala z namenom, da imamo na voljo standardiziran način za opis taksonomij. Formalna semantika RDF sheme je zapisana v jeziku RDF. RDF/S se uporablja za opis razrednih taksonomij in taksonomij lastnosti – na ta način lahko razvijemo »lahke ontologije«.Bolj podrobne ontologije lahko opredelimo v jeziku OWL (Web OntologyLanguage). Jezik OWL temelji na opisni logiki in ima na voljo več konstruktov kot RDF/S. Sintaktično je integriran v RDF, tako da kot RDF/S prinaša dodaten standardiziran slovar. OWL najdemo v treh oblikah – OWL Lite za opredelitev taksonomij in enostavnih omejitev, OWL DL za polno podporo opisni logiki in OWL Full za največjo izrazno moč.RDF/S in OWL imata opredeljeno semantiko, ki je uporabna za sklepanje na ravni ontologij in baz znanj, opisanih s tema jezikoma. Za podporo pravilom, poleg konstruktov že omenjenih jezikov, ki so že na voljo, na področju semantičnega spleta ravno tako obstajajo standardizirani jeziki za pravila. Trenutno sta najbolj uporabljana standarda RIF in SWRL.Za poizvedovanje po RDF podatkih in RDF/S ter OWL ontologijah je na voljo SPARQL (SimpleProtocoland RDF QueryLanguage). SPARQL poizvedovalni jezik je podoben SQL-u, vendar uporablja RDF trojčke in vire za predstavitev poizvedbe in za vrnjene rezultate. Ker RDF/S in OWL temeljita na RDF, je SPARQL neposredno uporaben tudi za poizvedovanje po ontologijah. SPARQL pa ni le poizvedovalni jezik, ampak je tudi protokol za dostop do RDF podatkov.Vsa semantika in pravila se izvajata na ravneh pod ravnjo zaupanja, rezultati mehanizma sklepanja pa se bodo uporabili za dokazovanje sklepov. Formalen dokaz, skupaj z zaupanjem vrednimi viri bo pomenilo, da lahko rezultatom zaupamo, kar je prikazano na zgornji ravni sklada arhitekture semantičnega spleta. Za zagotavljanje zanesljivih virov se bo uporabljala kriptografija, kot so digitalni podpisi za preverjanje izvora virov. Nad vsemi temi ravnmi lahko tako gradimo aplikacije z uporabniškimi vmesniki.V nadaljevanju bomo dali poudarek na naslednjih tehnologijah – RDF, RDF/S, OWL in SPARQL.
Semantični splet ima različne interpretacije. Nekateri si ga predstavljajo kot splet podatkov, kjer so le-ti predstavljeni v RDF in OWL obliki. Nekateri RDF zamenjajo z mikroformati. Drugi razmišljajo o semantičnem spletu skozi oči spletnih storitev, za nekatere je semantični splet umetna inteligenca – računalniški programi, ki rešujejo kompleksne optimizacijske probleme, ki jih večina ljudi sploh ne razume. Poslovni uporabniki vedno opredelijo problem v pogledu uporabniške vrednosti in pravijo, karkoli je že, potrebuje enostavne in otipljive aplikacije za potrošnike in organizacije.Do takšnega nestrinjanja nismo prišli po naključju, saj so tehnologije in koncepti semantičnega spleta pokrivajo res zelo širok spekter. Veliko je res mogoče in veliko si lahko le predstavljamo.
Naslednja dimenzija pogleda na semantični splet je z vidika potrošnikov in organizacij. Kar se tiče potrošnika, se že od nekdaj išče »killerapplication« - nekaj otipljivega, ki potrošniku enostavno prinaša dodano vrednost. Ljudi ne zanima ali je aplikacija zgrajena na semantičnem spletu, vse kar šteje je koristnost in uporabnost. Zelo dolgo je bila ideja semantičnega spleta v akademski domeni, kjer so se vsi ukvarjali z opisovanje informacij, z namenom, da so razumljive računalnikom. Obljuba pa je, da bodo te informacije nekoč znale s pridom uporabljati aplikacije, zgrajene nad semantičnim spletom.Pri organizacijah je slika nekoliko drugačna, saj so le-te bolj navajene tehničnega jezika. Uporaba semantičnih tehnologij se v njihovih glavah preslika v nekaj inteligentnega, kar posledično pomeni tudi dobro trženje – trditev »naši produkti so boljši in pametnejši, ker uporabljamo semantični splet« je zelo dobra reklama za organizacije. Poleg tržne vrednosti se moramo zavedati, da RDF rešuje težave izmenjave podatke in to področje standardizira. Ta problem je prisoten že od nekdaj. Če pozabimo na semantiko in se osredotočimo zgolj na standarden protokol in standarden način pošiljanj podatkov med večimi programi, že to je za določene organizacije zelo veliko. RDF omogoča način komunikacije na temeljih že razširjenega jezika XML, poleg tega pa ima matematično osnovo za omogočanje semantike.
Mogoče je na začetku bilo zaslediti največji potencial semantičnega spleta ravno pri iskalnih tehnologijah, saj bi razumevanje spletnih strani močno izboljšalo rezultate iskanja.Na tem področju lahko najdemo dva konkurenta Hakia in Powerset, ki kažeta določen napredek. Vendar je težava v tem, da algoritem od Googla, ki temelji na statistični analizi še vedno dobro obvladuje entitet, kot so ljudje, mesta in organizacije. Ko ga vprašamo »Kaj je glavno mesto Slovenije?« nam odgovori popolnoma točno.Očitno je, da zgolj manjši napredek pri prikazovanju rezultatov iskanja ne bo dovolj, ampak bo zmagovalna kombinacija semantike, inovativne predstavitve in sledenja uporabniku.
Protégé je odprtokodni urejevalnik ontologij in ogrodje za obvladovanje znanja. Nastal je na StanfordMedicalInformatics, StanfordUniversitySchoolof Medicine.Je eden najbolj priljubljenih orodij in tudi zelo razširljiv s pomočjo zavihkov. Najdete ga na spletni strani http://protege.stanford.edu.
Jena je eno najbolj razširjenih odprtokodnih ogrodij za manipulacijo z ontologijami in se uporablja tudi v orodju Protégé.Najdemo ga na spletni strani http://jena.sourceforge.net. Ima tudi dobro podporo mehanizmom sklepanja na različnih ravneh:tranzitivni stroj za sklepanje (rdfs:subPropertyOf, rdfs:subClassOf)RDF/S stroj za sklepanjeOWL, OWL Mini in OWL mikro stroj za sklepanjeStroj za sklepanje na podlagi generičnih pravilPodprte različne strategije: forwardchaining, tabledbackwardchaining in hibridni način izvajanja.
Poglejmo si nekaj strategij za porazdelitev podatkov na svetovnem spletu. Pri vseh omenjenih pristopih bo del podatkov predstavljen na enem računalniku, ostali pa na drugih računalnikih.Ogledali si bomo naslednje načine:pristop po vrsticah,pristop po stolpcih inpristop po celicah.
Tabela predstavlja vir podatkov, ki bi ga radi porazdelili po različnih računalnikih.
Prvi je pristop po vrsticah, kjer vsak računalnik skrbi za določene vrstice v tabeli. S tem pristopom dosežemo določeno fleksibilnost, saj se med računalnike porazdeli prostorska zahtevnost predstavitve podatkov. Potrebno pa je poskrbeti za koordinacijo med računalniki. Poskrbeti pa je potrebno tudi, da vsi računalniki uporabljajo iste stolpce.
Drugi je pristop po stolpcih, kjer vsak računalnik skrbi za vse podatke določenega stolpca. En računalnik je lahko npr. odgovoren za podatke o letu nastanka in tipu literarnega dela, spet drugi pa za naslove. Če želimo dodati nove informacije o entitetah (npr. število strani literarnega dela), preprosto dodamo nov računalnik, ki skrbi za ta stolpec. Podobno kot pri prejšnjem primeru je potrebno tudi tukaj poskrbeti za koordinacijo med računalniki. Poskrbeti pa je potrebno tudi, da vsi računalniki poznajo identitete entitet, t.j. potrebujemo globalni identifikator entitet.
Pri tretjem pristopu po celicah pa gre za združitev obeh prejšnjih pristopov, kjer vsak računalnik skrbi za le določene podatke izbrane entitete. Ta pristop združuje prilagodljivost obeh pristopov.
Omenjena prilagodljivost je nujno potrebna, če želimo slediti AAA sloganu, vendar s tem podedujemo tudi slabosti obeh procesov – za predstavitev vsake celice potrebujemo tri podatke: globalna referenca na vrstico, globalna referenca na stolpec in dejanska vrednost.AAA slogan (ang. AnyonecansayAnythingaboutAnytopic) daje možnost vsem sodelujočim, da izrazijo svoje mnenje o poljubni temi.
Pri jeziku RDF se uporablja strategija s pristopom po celicah. Osnovni gradnik RDF-a se imenuje trojček in sicer v obliki (osebek, predikat, predmet). Dodana vrednost imamo šele pri množici trojčkov, ki opisujejo isto entiteto, s čimer gradimo semantično mrežo. Poglejmo si primer iz literarnih del. Če se omejimo zgolj na osebek Avtor, predmet Naslov in predikat naslov ter nas zanima samo avtor Ivan Cankar, dobimo trojčke prikazane na naslednjem diagramu.Za identifikacijo entitet uporabljamo že uveljavljeno rešitev URI, ki je razširjena že na svetovnem spletu. URI je globalni identifikator, zato je ravno primeren za predstavitev podatkov v jeziku RDF.
V zgornjem primeru smo entiteto označili v obliki LD:IvanCankar, kar je identično zapisu http://amor.fri.uni-lj.si/dejan/SW/tutorial/LiterarnaDela.owl#IvanCankar. LD je torej zgolj okrajšava za celoten imenski prostor, ki ga uporabljamo pri opredelitvi entitet v naši ontologiji. Nastavimo lahko tudi privzet imenski prostor. To bi v našem primeru pomenilo, da lahko do entitet dostopamo kar :IvanCankar.Pri gradnji ontologij bomo temeljili na že opredeljenih imenskih prostorih, ki se uporabljajo pri različnih jezikih svetovnega in semantičnega spleta. Nastali so pod okriljem organizacije W3C in so naslednji:xsd se uporablja za opredelitev XML sheme,xlmns se uporablja za XML imenske prostore,rdf označuje identifikatorje, ki se uporabljajo pri jeziku RDF in v njem opredeljujejo tipe in lastnosti,rdfs označuje identifikatorje, ki se uporabljajo pri jeziku RDF/S in razširja jezik RDFowl označuje identifikatorje, ki se uporabljajo pri jeziku OWL
Recimo, da imamo tabelo literarnih del, ki jo želimo zapisati v RDF obliki. Podatkov ne smemo izgubiti, želimo pa izvajati poizvedbe in biti pripravljeni na bodoče integracije z različnimi viri. Kako zapišemo tabelarične podatke v RDF jeziku?Glede na to, da vsak vrstica predstavlja enolično entiteto, je opravilo zelo enostavno; ID vsake vrstice uporabimo pri enoličnem identifikatorji in nato predstavimo vsako celico v RDF zapisu ter poskrbimo za ustrezne tipe.
Recimo, da imamo tabelo literarnih del, ki jo želimo zapisati v RDF obliki. Podatkov ne smemo izgubiti, želimo pa izvajati poizvedbe in biti pripravljeni na bodoče integracije z različnimi viri. Kako zapišemo tabelarične podatke v RDF jeziku?Glede na to, da vsak vrstica predstavlja enolično entiteto, je opravilo zelo enostavno; ID vsake vrstice uporabimo pri enoličnem identifikatorji in nato predstavimo vsako celico v RDF zapisu ter poskrbimo za ustrezne tipe.
Recimo, da imamo tabelo literarnih del, ki jo želimo zapisati v RDF obliki. Podatkov ne smemo izgubiti, želimo pa izvajati poizvedbe in biti pripravljeni na bodoče integracije z različnimi viri. Kako zapišemo tabelarične podatke v RDF jeziku?Glede na to, da vsak vrstica predstavlja enolično entiteto, je opravilo zelo enostavno; ID vsake vrstice uporabimo pri enoličnem identifikatorji in nato predstavimo vsako celico v RDF zapisu ter poskrbimo za ustrezne tipe.
Pokaži:imenski prostori (uporabljan in uvoženi)razredno strukturo,lastnosti,primerke invizualizacijo(Jambalaya).
Do zdaj smo spoznali način porazdeljene predstavitve podatkov, ki se uporablja na semantičnem spletu. Preden začnemo z gradnjo aplikacij semantičnega spleta se moramo zavedati katere komponente jih sestavljamo. Večino komponent lahko dobimo tako pri komercialnih podjetjih oz. so na voljo tudi odprtokodne rešitve. Komponente aplikacije semantične spleta so:RDF razčlenjevalnik/serializator. Zelo veliko način serializacije v RDF je že pripravljeno s strani W3C organizacije in temeljijo na jeziku XML. RDF razčlenjevalnik prebere podatke v enem od formatov in jih interpretira kot trojčke v RDF modelu. RDF serializator počne ravno nasprotno.RDF shramba podatkov.Persistenčni sistem za shranjevanje RDF trojčkov imenujemo tudi triplestore. V bistvu gre za podatkovno bazo, ki je optimizirana za shranjevanje in poizvedovanje po trojčkih. RDF stroj za poizvedovanje omogoča pridobivanje podatkov iz RDF shrambe podatkov glede na strukturirano poizvedbo.
RDF shramba podatkov.Persistenčni sistem za shranjevanje RDF trojčkov imenujemo tudi triplestore. V bistvu gre za podatkovno bazo, ki je optimizirana za shranjevanje in poizvedovanje po trojčkih.Jena SDB je ena od komponent Jena ogrodja za shranjevanje RDF podatkov s podporo SPARQL poizvedbam. Podpira številne relacijske podatkovne baze (PostreSQL, MySQL, Oracle, MS SQL Server, HSQLDB in Apache Derby). Dostop je mogoč preko ukazne vrstice ali Jena API-jem. Naložiti je mogoče do 650 milijonov trojčkov.Jena TDB je ena od komponent Jena ogrodja za shranjevanje RDF podatkov s popolno podporo SPARQL poizvedbam z raznimi dodatki (agregati, filtri XSD vrednosti za enostavne podatkovne tipe ipd.). Dostop je mogoč preko ukazne vrstice ali Jena API-jem. Naložiti je mogoče 1,7 milijarde trojčkov. Joseki je strežnik, ki preko HTTP protokola omogoča izvajanje SPARQL poizvedb. Sesame je ogrodje za shranjevanje, sklepanje in povpraševanje po RDF podatkih. Njegova struktura je zelo fleksibilna, saj ga lahko uporabimo s številnimi relacijskimi bazami, internim spominom, datotečnim sistemom ipd. OWLIM je dodatek v obliki StorageandInferenceLayer (SAIL) za Sesame. Obstajata dve različici: SwiftOWLIM in BigOWLIM. SwiftOWLIM uporablja za sklepanje in poizvedbe interni spomin, medtem ko se podatki črpajo iz podatkovne baze in je ena najhitrejših oblik RDF/S in OWL strojev za sklepanje. BigOWLIM ima neposredno persistečno raven in omogoča sklepanje z 3 milijardami nevtralnih OWL trojčkov.
Do podatkov v aplikaciji semantičnega spleta ponavadi dostopamo s poizvedovalnim jezikom SPARQL. Pri prikazu funkcionalnosti jezika SPARQL bomo temeljili na primeru literarnih del in grafični prikaz najdemo na sliki.Osnovni gradnik SPARQL poizvedbe je vzorec trojčka. Ima obliko trojčka, vendar ima lahko na mestu osebka, predikata ali predmeta spremenljivko. Pri poizvedovanju ponavadi opredelimo več vzorcev trojčkov, kar imenujemo vzorec grafa.
Če se vprašamo naslednje: »Poišči osebo, ki je z nekom poročena in je med drugim napisala Otelo«, lahko to v obliki vzorca grafa zapišemo kot.
Presenetljivo nam ta poizvedba vrne prazen rezultat. Zakaj? Pričakovali bi odgovor ?oseba1 = William Shakespeare in ?oseba2 = Anne Hathaway, kar dejansko piše v zgodovinskih knjiga, a ta podatek ni zapisan v ontologiji. Zapisano je sicer, da je Anne Hathaway bila poročena z Williamom Shakespearom, ne pa obratno. Če bi uporabljali jezik OWL, bi lahko preprosto opredelili, da je relacija poročil inverzna in bi zadeva delovala. Ker tega nimamo, moramo posodobiti poizvedbo.
Mehanizem sklepanja je lepilo, ki drži skupaj semantični splet. Če upoštevamo AAA slogan, kjer lahko vsak pove svoje mnenje o poljubni temi, potem je sklepanje način, kako vse te informacije povežemo med sabo. Na ta način pridemo do dodane vrednosti, saj ne delujemo več na ravni posameznih primerkov, ampak jih povežemo med seboj in na podlagi tega poskušamo izluščiti nove ugotovitve.Pomembno je tudi ločevati med dvema vrstama trojčkov – opredeljeni in izpeljani. Kot že lahko ugotovimo iz imen, so opredeljeni trojčki tisti, ki so zapisani v RDF modelu, medtem ko do izpeljanih pridemo s pomočjo mehanizmov sklepanja.Predpostavka odprtega sveta Vedno lahko obstaja kakšen podatek, ki nam ni znan. Težavo imamo z negacijo. Ne moremo trditi, da oseba Janez Kranjski ne obstaja, če ga ni v naši bazi znanja. Lahko, da bo naslednja trditev to potrdila.
Recimo, da na spletu kupujemo srajco tipa Chamois. Ko izvedemo iskanje po kategoriji Srajca, dobimo prazno množico zadetkov. Vendar smo pri brskanju po katalogu bili prepričani, da trgovina takšno srajco prodaja. Ko nadaljujemo z iskanjem ugotovimo, da takšne srajce res imajo in sicer v kategoriji SrajcaTipaHenley. Popolnoma nelogično se nam zdi, da smo pri prvotnem iskanju dobili prazen zadetek, saj je kategorija SrajcaTipaHenley podkategorija od Srajca. Kako takšno iskanje naredimo pametnejše, brez da bi morali za vsak primerek moškega oblačila eksplicitno zapisati kateri kategoriji pripada?
Pokaži:razrede, ki predstavljajo kategorije,primerke, opredeljene samo na najnižjih ravnehprazne množice s primerki na najvišjih ravneh in potem polne po izvedbi sklepanjaTR prefixReasoning Pellet 1.5.2
V praksi obstajajo številne uspešne opredelitve shem v bolj pogosto uporabljanih jezikih. Vloga XML sheme je npr. ugotoviti ali izbrani XML dokument ustreza tej shemi. Shema podatkovne baze zagotavlja podatke o glavi in ključne podatke o tabelah v relacijski podatkovni bazi. V sami relacijski tabeli ni nobenega podatka, ki bi nakazoval pomen informacij v določenem stolpcu ali da je izbrani stolpec uporabljen kot indeks. Vsi ti podatki se nahajajo v shemi podatkovne baze, ki je neodvisna od relacije (se ne spreminja od zapisa do zapisa). Pri OO sistemih razredni diagrami ravno tako opisujejo podatke, vendar nam omogočajo še nekaj več – omogočajo sistematičen način opisovanja podatkov in transformacij za te podatke.
Vse sheme imajo nekaj skupnega in sicer na povejo nekaj o podatkih, ki so izraženi v sistemu. Shema predstavlja podatke o podatkih.Ključna ideja pri RDF shemi je ta, da naj bi podatkom dodala pomen in način, s katerim to dosežemo je mehanizem sklepanja. S sklepanjem lahko namreč pridemo do več podatkov, kot pa jih je dejansko neposredno zapisanih. S tem, ko ti izpeljani podatki postanejo eksplicitni, dodamo izvirnim podatkom nov pomen.
Najbolj osnoven prenos razmerij dosežemo z gradnikom podrazred rdfs:subClassOf. Poglejmo si primer, kjer je imamo IgralecUnionOlimpije, ki je tudi IgralecLigeUPC in podatek, da je MihaZupanIgralecUnionOlimpije. Pričakujemo, da bomo sposobno izpeljati, da je MihaZupan tudi IgralecLigeUPC.
Ta dejstva lahko zapišemo z naslednjimi trojčki::IgralecUnionOlimpijerdfs:subClassOf :IgralecLigeUPC .:MihaZupanrdf:type :IgralecUnionOlimpije .Če upoštevamo pravilo, ki smo ga že spoznali prej:ČE (?A rdfs:subClassOf ?B) IN (?x rdf:type ?A) POTEM (?x rdf:type ?B)Potem ugotovimo, da pridemo do želenega dejstva::MihaZupanrdf:type :IgralecLigeUPC .
Za povezovanje razredov med seboj uporabljamo lastnosti in RDF/S nam tudi pri lastnostih omogoča mehanizem za opredelitev hierarhije na podlagi katerega lahko kasneje sklepamo o novih podatkih. Gre za gradnik rdfs:subPropertyOf. Najlažje to predstavimo na primeru zaposlovanja ljudi v večjem podjetju, kjer imamo številna zaposlitvena razmerja.
Zaposlitvena razmerja prikazana na sliki lahko v RDF/S zapišemo takole::delaNaCrznoZardfs:subPropertyOf :delaPogodbenoZa .:delaPrekoAJZardfs:subPropertyOf :delaPogodbenoZa .:delaPogodbenoZardfs:subPropertyOf :delaZa .:jeZaposlenPrirdfs:subPropertyOf :delaZa .
Če dodamo še nekaj primerov zaposlencev::Miha :jeZaposlenPri :UniverzaLjubljana .:Anja :delaNaCrnoZa :Istrabenz .:Jernej :delaPrekoAHZa :Krka .Na podlagi omenjenih primerkov in zaposlitvenih razmerij lahko s pomočjo mehanizmov sklepanja ugotovimo še naslednja razmerja::Miha :delaZa :UniverzaLjubljana .:Anja :delaPogodbenoZa :Istrabenz .:Jernej :delaPogodbenoZa :Krka .:Anja :delaZa :Istrabenz .:Jernej :delaZa :Krka .
Ko želimo pri lastnosti opredeliti točno iz katerega razreda izhaja, lahko to storimo z uporabo rdfs:domain. Uporaba izhaja iz matematike, kjer je domena dejansko definicijsko območje določene funkcije. Pri sklepanju temeljimo na enostavnem pravilu, ki pravi:ČE (?P rdfs:domain ?D) IN (?x P ?y) POTEM (?x rdf:type ?D)
Podobno je z rdfs:range, s pomočjo katerega opredelimo na kateri razred lastnost kaže. Uporaba ravno tako izhaja iz matematike, kjer je range zaloga vrednosti določene funkcije. Pri sklepanju podobno temeljimo na enostavnem pravilu, ki pravi:ČE (?P rdfs:range ?R) IN (?x P ?y) POTEM (?y rdf:type ?R)
Poglejmo si primer kombinacije rdfs:domain in rdfs:subClassOf. Imamo zelo enostavno razredno strukturo, kjer je PorocenaZenska podrazred od Zenska. Pri razredu PorocenaZenska pa imamo opredeljeno še eno lastnost dekliskiPriimek.Če zapišemo to v obliki trojčkov, dobimo::PorocenaZenskardfs:subClassOf :Zenska .:dekliskiPriimekrdfs:domain :PorocenaZenska .Če v naš model vnesemo naslednji podatek::Marija :dekliskiPriimek :Golez .Dobimo naslednji rezultat::Marija rdf:type :PorocenaZenska .:Marija rdf:type :Zenska .To pomeni, da lahko kreiramo poljuben primerek in mu nastavimo vrednost lastnosti dekliskiPriimek in ta primerek bo vedno pripadal razredoma PorocenaZenska in Zenska.
Če želimo uporabiti obstoječo ontologijo, kjer je naša problemska domena že predstavljena in bi radi zgolj spremenili nekatere izraze, pri tem pa ohranili vse logične omejitve lahko to storimo na zelo enostaven način – uporabimo prenos razmerij. Primer je zelo razširjena ontologija Dublin Core, kjer se nahajajo standardizirani atributi potrebni pri opisovanju bibliografskih podatkov za knjižnične sisteme. Eden najbolj pogosto uporabljanih je dc:creator, ki označuje osebo, odgovorno za nastanek objavljenega vira. Če bi v naši ontologijo želeli obdržati vse ostale gradnike, le tega pa zamenjati z npr. :avtor to preprosto naredimo takole::avtorrdfs:subPropertyOfdc:creator .Ko dodajamo izjave o lastnosti :avtor posredno dodajamo tudi za dc:creator.
Pri jeziku RDF/S imamo na voljo številne ne-načrtovalske lastnosti, ki se ne uporabljajo pri sklepanju. Najbolj pogosto uporabljane so:rdfs:label se uporablja predvsem za prikazovanje imen konceptov v prijaznejši obliki.rdfs:comment se uporablja za opredelitev podrobnejšega komentarja določenega koncepta.rdfs:seeAlso je uporaben pri opredelitvi dodatnih virov informacij konceptu v določenem kontekstu. Primer bi lahko bila npr. povezava na Wikipedia zapis o konceptu, ki ga opisujemo.
Omenjeno funkcionalnost lahko dosežemo z uporabo gradnikov rdfs:domain. Koncept ladja ima opredeljene skupine ladij, ki nas zanimajo, vsaka pa je dodatno opisana z izbranimi atributi, ki so omejeni z rdfs:domain.Pri opredelitvi primerkov ladij zapišemo zgolj podatke, ki so na voljo v tabeli, ne opredeljujemo pa pripadnost razredom. Ta pripadnost se samodejno določi s pomočjo mehanizma sklepanja, predvsem na podlagi gradnikov rdfs:domain, kot lahko vidimo na sliki.
Če bi želeli nadgraditi jezik OWL, da bi nam le-ta omogočal opredelitve nad-razreda. Če se spomnimo, smo do sedaj lahko opredelili zgolj relacijo podrazred, s pomočjo konstrukta rdfs:subClassOf.To lahko naredimo preprosto z naslednjo trditvijo::nadRazredowl:inverseOfrdfs:subClassOf .S tem smo dosegli, da za vsako relacijo B :nadRazred A, velja tudi A rdfs:subClassOf B.Lahko pa opredelimo tudi lastnost, ki je inverzna sama sebi. Če npr. zapišemo, da je Shakespeare bil poročen z Anne Hathaway, potem velja tudi obratno – Anne Hathaway je bila poročena s Shakespearom. Primer je naslednji::porocenZowl:inverseOf :porocenZ .:Shakespeare :porocenZ :AnneHathaway .Iz te opredelitve inverzne relacije, sledi tudi :AnneHathaway :porocenZ :Shakespeare.
Že v prejšnjem primeru smo si pogledali primer relacije poročen z. To je simetrična lastnost za katero velja:ČE (P rdf:typeowl:SymmetricProperty)POTEM (P owl:inverseOf P)Za primer od prej, lahko isto funkcionalnost dosežemo na naslednji način::jePorocenZrdf:typeowl:SymmetricProperty .
Za tranzitivno lastnost velja naslednje pravilo:ČE (P rdf:typeowl:TransitiveProperty) IN (X P Y) IN (Y P Z)POTEM (X P Z)Primer tranzitivne lastnosti je::imaPrednikardf:typeowl:TransitiveProperty .:Marija :imaPrednika :Janez .:Tone :imaPrednika :Marija .Na podlagi teh trditev lahko sklepamo::Tone :imaPrednika :Janez .
Ekvivalenco razredov lahko dosežemo tudi z zvijačo, tako da opredelimo relacijo pod-razreda v obe smeri::Analitik rdfs:subClassOf :Raziskovalec .:Raziskovalec rdfs:subClassOf :Analitik .Podobno funkcionalnost dosežemo z gradnikom v jeziku OWL::Analitik owl:equivalentClass :Raziskovalec .Za ekvivalentne razrede velja, da primerki enega razreda pripadajo tudi drugemu in obratno.
Podobno kot pri razredih, imamo na voljo imamo tudi ekvivalenco lastnosti.:izposodil owl:equivalentProperty :prevzel .Zelo uporaben gradnik je owl:sameAs s katerim zapišemo ekvivalenco med primerki. Če imamo več primerkov, ki se nanašajo na isto stvar in so uporabljena zgolj različna poimenovanja lahko uporabimo::Preserenowl:sameAs :FrancePreseren .Gradniki za izražanje ekvivalence so uporabni pri združevanju podatkov iz različnih virov, kar si bomo pogledali v nadaljevanju.
Funkcijska lastnost ima lahko pri istem definicijskem območju vedno isto zalogo vrednosti. Pravilo je naslednje:ČE (P rdf:typeowl:FunctionalProperty) IN (X P A) IN (X P B)POTEM (A owl:sameAs B)Primer je lastnost ima očeta:lit:Shakespeare :imaOcetabio:JohannesShakespeare .lit:Shakespeare :imaOcetabio:JohnShakespeare .Če za relacijo :imaOceta zahtevamo, da je funkcijska::imaOcetardf:typeowl:FunctionalProperty .Potem velja:bio:JohannesShakespeareowl:sameAsbio:JohnShakespeare .
Inverzna funkcijska lastnost je ena najpomembnejših načrtovalskih konstruktov jezika OWL. Še posebej se veliko uporablja pri integraciji podatkov iz različnih virov. Ta lastnost ima podobno vlogo kot identifikator pri relacijskih podatkovnih bazah. Za razliko od relacijskih podatkovnih bazah pri relacijah, ki imata isti identifikator ne dobimo napake, ampak OWL sklepa, da gre za isti entiteti.Pravilo je naslednje:ČE (P rdf:typeowl:InverseFunctionalProperty) IN (A P X) IN (B P X)POTEM (A owl:sameAs B)
Poglejmo si primer, kjer imamo podatke iz dveh različnih virov in želimo ugotoviti, kateri primerki so identični. Spodnji primeri opisujejo izdelke v dveh različnih podatkovnih virih, ki jima je skupna edino oznaka izdelka, atributi in imena pa so si različna.p:Izdelek1 p:stModela »B-1430« .p:Izdelek2 p:stModela »B-1431« .p:Izdelek3 p:stModela »M13-P« .p:Izdelek4 p:stModela »ZX-3S« .p:Izdelek5 p:stModela »ZX-3« .p:Izdelek6 p:stModela »TC-43« .p:Izdelek7 p:stModela »B-1430X« .p:Izdelek8 p:stModela »SP-1234« .p:Izdelek9 p:stModela »1180-M« .mfg:Produkt1 mfg:stevilka »ZX-3« .mfg:Produkt2 mfg:stevilka »ZX-3P« .mfg:Produkt3 mfg:stevilka »ZX-3S« .mfg:Produkt4 mfg:stevilka »B-1430« .mfg:Produkt5 mfg:stevilka »B-1430X« .mfg:Produkt6 mfg:stevilka »B-1431« .mfg:Produkt7 mfg:stevilka »DBB-12« .mfg:Produkt8 mfg:stevilka »SP-1234« .mfg:Produkt9 mfg:stevilka »SPX-1234« .V ontologijo dodajmo še naslednje trditve za implementacijo integracije teh virov:mfg:stevilkardf:typeowl:InverseFunctionalProperty .p:stModela owl:equivalentPropertymfg:stevilka .S pomočjo mehanizma sklepanja pridemo do naslednjih ugotovitev:p:Izdelek1 owl:sameAsmfg:Produkt4 .p:Izdelek2 owl:sameAsmfg:Produkt6 .p:Izdelek4 owl:sameAsmfg:Produkt3 .p:Izdelek5 owl:sameAsmfg:Produkt1 .p:Izdelek7 owl:sameAsmfg:Produkt5 .p:Izdelek8 owl:sameAsmfg:Produkt8 .In ko npr. zahtevamo vse podatke o izdelku 1, dobimo kot rezultat integrirane podatke iz obeh virov (npr. iz enega vira bi črpali prodajne podatke, iz drugega pa tehnične podatke). Če bi integracijo na takšen način izvedli v relacijski tabeli, bi dobili napako, saj ne moremo imeti več relacij z istim identifikatorjem.
Začeli bomo z enostavnimi vprašanji, ki jih potrebujemo pri podpori uporabnikom kabelskega operaterja. Vprašanji sta naslednji:
Prva od omejitev je owl:someValuesFrom, s pomočjo katere lahko opredelimo omejitev, kjer imajo vsi primerki vsaj eno vrednost lastnosti P iz razreda C. Primer pri vprašanjih in odgovorih je naslednji::OdgovorjenoVprasanjeowl:equivalentClass[rdf:typeowl:Restriction;owl:onProperty :imaIzbranoMoznost;owl:someValuesFrom :Odgovor].
Druga omejitev je owl:allValuesFrom, s pomočjo katere opredelimo omejitev, kjer imajo vsi primerki vse vrednosti lastnosti P iz razreda C. Pri postavljanju vprašanj bi želeli, da v primeru, ko uporabnik poda odgovor na vprašanje, od katerega so odvisna tudi druga vprašanja, le ta postanejo omogočena. Naš primer bomo zato razširili kot je prikazano na spodnji sliki.
V ontologijo bomo dodali omejitev za razred, kjer se nahajajo izbrani odgovori in sicer::IzbranOdgovorrdfs:subClassOf [rdf:typeowl:Restriction;owl:onProperty :omogoca;owl:allValuesFrom :OmogocenoVprasanje].To je potrebno komentirati in sicer zakaj ni owl:equivalentClass.Ker je opredeljen še po drugi strani z rdfs:domain pri :imaIzbranoMoznost.IzbranOdgovor je tako pod-razred neimenovanega omejitvenega razreda. Ko uporabnik izbere odgovor :CTV, se pripadnost tega primerka nastavi na :IzbranOdgovor (:CTV rdf:type :IzbranOdgovor). Zaradi relacije rdfs:subClassOf, :CTV pripada omejitvenemu razredu, ki ustreza pogoju owl:allValuesFrom z lastnostjo :omogoca in vsemi vrednostmi iz :OmogocenoVprasanje. Ker velja :CTV :omogoca :TVSimptom, lahko z mehanizmom sklepanja ugotovimo tudi::TVSimptomrdf:type :OmogocenoVprasanje
Odvisnost med odgovori in vprašanji v našem kratkem vprašalniku so tako prikazani na naslednji sliki.
Tretja omejitev je owl:hasValue, s pomočjo katere opredelimo omejitev, kjer imajo vsi primerki vrednost A lastnosti P. Gre za poseben primer uporabe owl:someValuesFrom, kjer je razred C množica z enim elementom {A}. V našem primeru vprašanj in odgovorov lahko na takšen način vpeljemo prioriteto in sicer::VprasanjeZVisokoPrioritetoowl:equivalentClass[rdf:typeowl:Restriction;owl:onProperty :imaPrioriteto;owl:hasValue :Visoka].
Pokaži primerke KaksnaTezava in TVSimptomKako opredelimo omejitevVprasanjeZVisokoPrioritetoimaPrioritetohas Visoka(delete in premik vprašanja pod necessary)R in =
Pri jeziku OWL imamo na voljo zelo močno orodje, ki izhaja iz teorij množic. Za ta namen uporabljamo gradnika owl:unionOf in owl:intersectionOf.
Ker pri semantičnem spletu operiramo s predpostavko odprtega sveta, je štetje elementov množice zelo težko. Problem se pojavi že, ko se vprašamo ali primerek pripada razredu? Če sklepamo, da ne, lahko že v naslednjem trenutku odkrijemo trojček, ki trdi ravno to.
Takšno sklepanje je možno pod predpostavko, da je James Dean ustvaril le 3 filme. Kako to implementiramo v jeziku OWL? To nam omogoča gradnik owl:oneOf, s pomočjo katerega naštejemo primerke razreda.:JamesDeanFilmowl:Class;owl:oneOf (:Giant :EastOfEden :Rebel ).S pomočjo takšne opredelitve lahko izpeljemo, da vsi primerki pripadajo izbranemu razredu.:Giant rdf:type :JamesDeanFilm .:EastOfEdenrdf:type :JamesDeanFilm .:Rebel rdf:type :JamesDeanFilm .
V našo ontologijo tako vnesimo film, ki si ga je ogledala Pia::FilmOdPierdf:typeJamesDeanFilm .Ko Vasilij postavi 1. vprašanje (2), vnesemo v ontologijo trditev::FilmOdPie owl:sameAs :Giant .Pia nato odgovori (3) in naša ontologija se spremeni, da prejšnjo trditev spremenimo v::FilmOdPieowl:differentFrom :Giant .
Vasilij zopet poskusi z 2. vprašanjem (4) ter dobi od Pie odgovor (5) in trditev v ontologiji je naslednja::FilmOdPieowl:differentFrom :EastOfEden .V tem trenutku lahko s pomočjo mehanizma sklepanja pridemo do ugotovitve, ki jo Vasilij izjavi (6) in Pia potrdi (7)::FilmOdPieowl:sameAs :Rebel .
Dialog o filmih James Dean-a z rezultati sklepanja je prikazan na spodnji sliki.
Najlažje bi bilo, če si uporabo ogledamo na primer filmov o James Dean-u, ki smo ga začeli že prej in ga bomo na tem mestu zgolj nadaljevali.Če želimo omenjeni dialog zapisati v ontologijo, moramo dodati novo lastnost “ima v lasti film” in razred, kjer se nahajajo ekskluzivni lastniki filmov James Dean-a.Iz vprašanja (8) in odgovora (9) smo ugotovili, da Vasilij pripada razredu ekskluzivnih lastnikov James Dean filmov. Do sklepa (10) je Pia prišla tako, da je v ontologiji opredelila razred lastnika majhnega števila filmov, za katerega velja, da ima v lasti največ 3 filme. Rezultat sklepanja je tako trditev::Vasilij rdf:type :LastnikMajhnegaStevilaFilmov .
Pia ugotovi, da ima Vasilij v lasti 3 filme (12), zato kreira razred lastnikov treh filmov in Vasilija doda v omenjeni razred.Ker vemo, da je Vasilij tudi pripadnik ekskluzivnih lastnikov James Dean filmov, lahko iz tega sklepamo, da ima v lasti vse njegove filme in tudi “Rebelwithout a cause”, ki si ga je Pia ogledala včeraj.:Vasilij :imaVLastiFilm :Rebel .
Komplement množice so tisti elementi, ki v prvotni množici niso vsebovani. V jeziku OWL to opredelimo::Razred1 owl:complementOf :Razred2 .Najlažje to prikažemo na primeru dialoga o filmih, kjer se pogovoru pridruži še Vasilijev prijatelj Andrej.
Da lahko zapišemo nove podatke, ki smo ji dobili v okviru tega dialoga, moramo dopolniti našo ontologijo. Najprej dodamo inverzno lastnost::jeVLastiOsebeowl:inverseOf :imaVLastiFilm .Nato opredelimo Andrejev film kot presek razredov film in tistih razredov, ki imajo lastnost v lasti osebe vrednost Andrej.Potem pa za Andreja zahtevamo naslednjo omejitev::Andrej rdf:type [rdf:typeowl:Restriction;owl:onProperty :imaVLastiFilm;owl:someValuesFrom [owl:complementOf :JamesDeanFilm]] .
Opredelimo pa še razred lastnikov večjega števila filmov.Na podlagi tega modela lahko s pomočjo sklepanja pridemo do ugotovitve::Andrej rdf:type :LastnikVecjegaStevilaFilmov .
Poglejmo si to na primeru filmov.
Po Andrejevi izjavi (19) opredelimo omejitev primerka Andrej, kjer le ta pripada razredom, ki vsebujejo filme določenih igralcev. Na podlagi Vasilijeve izjave (22) lahko zapišemo, da so vsi ti opredeljeni razredi med seboj razdruženi.
Prav tako moramo opredeliti razred lastnikov sedmih filmov::LastnikSedmihFilmovrdf:typeowl:Restriction ;owl:onProperty :imaVLastiFilm ;owl:minCardinality 7 .Na podlagi omenjenih dejstev lahko s pomočjo mehanizma sklepanja ugotovimo naslednje::Andrej rdf:type :LastnikSedmihFilmov .
Poglej omejitveJamesDeanFilmOseba in spodajprimerke sklepanja
S pomočjo gradnika owl:import lahko opredelimo vse ontologije, ki naj se ob nalaganju obstoječe, prav tako naložijo. Če pride do večkratnega uvoza iste ontologije, se upošteva preprosto pravilo, da v primeru, da ontologija že obstaja, se uvoz ne zgodi.Slika prikazuje primer razvoja ontologije FEARMO, ki je sestavljena iz 4 osnovnih delov: srm:, prm:, brm: in trm:. Koncepti skupne domene so opredeljeni v feac:, ki jo vse ontologije uvažajo, medtem ko je npr. brm2prm: izpeljanka ontologij brm: in prm:.FEARMO (FederalEnterpriseArchitecture Reference Model Ontology) – za dosego koherentnosti med številnimi vladnimi inštitucijami na področju informacijskih sistemov.
Ko se lotimo razvoja ontologije, imamo na voljo 3 pristope:Iskanje obstoječega modela na internetu, ki ustreza zahtevam.Uporaba informacijskih virov, ki že imajo vrednost za organizacijo (sheme, slovarji ipd.).Razvoj ontologije od začetka.
Problem razumljivih imen in poželjivih imen. Pri načrtovanju se moramo izogibati poželjivih imen, zato upoštevajmo de facto standardne načine za poimenovanje entitet na semantičnem spletu (upoštevajo jih tudi pri W3C):Poimenovanje virov v CamelCase obliki (več besed zapišemo brez presledkov in vsako besedo z veliko začetnico, npr. rdfs:subClassOf, owl:InverseFunctionalProperty).Ime razreda se začne z veliko začetnico (npr. owl:Restriction, owl:Class).
Ime lastnosti se začne z majhno začetnico (npr. owl:inverseOf).Ime primerka se začne z veliko začetnico (npr. tr:MoskoOblacilo).Pri imenih razredov uporabljajo ednino (npr. owl:SymmetricProperty, tr:Srajca).
Obvladovanje razredov in primerkov. Najbolj pogosta dilema je kdaj zmodeliramo nekaj kot razred ali kot primerek?Odvisno od zahtev, če potrebujemo oboje, uporabimo zrcalni vzorec razred-primerek.Razred je množica primerkov, zato ga načrtujemo tako, da vsebuje vsaj 1 primerek.Najprej se odločimo kaj bomo modelirali (npr. samega avtorja, njegova dela, njegovo družino ipd.), potem se odločimo ali gre za razred ali primerek in na koncu izberem ime, ki je skladno s to odločitvijo.
Predvsem pri začetnikih, ki se šele spoznavajo s semantičnim modeliranjem, se pojavljajo podobne napake, ki jih naredijo pri modeliranju. V nadaljevanju bodo te napake predstavljene kot načrtovalski protivzorci.Preobširna uporaba razredovVsak koncept, s katerim se srečamo, opredelimo kot razred. To pogosto napako dejansko spodbuja večina orodij za načrtovanje ontologij, saj je kreiranje razredov ponavadi prva enostavna operacija, ki se jo uporabnik nauči.Načrtovalec se mora najprej odločiti kaj dejansko želi z izjavo povedati in jezik OWL mu omogoča, da to zapiše na jasen način.EkskluzivnostPravila, ki se uporabljajo pri RDF/S mehanizmih sklepanja pravijo, da so vsi primerki pod-razreda tudi primerki nad-razreda. Zmota pri tem pravilu je predvidevanje, da so edini kandidati za pripadnost nad-razredu samo tisti primerki, ki pripadajo tudi pod-razredu.Za rešitev tega problema se priporoča vzorca preseka.
ObjektivizacijaKo gradimo model semantičnega spleta, se omejimo na isti pomen in delovanje kot bi ga imel objektni model. Objektni model ni namenjen delu v kontekstu treh osnovnih predpostavk semantičnega spleta: AAA, odprti svet in neenolično poimenovanje. Razred je v objektnem svetu predloga na podlagi katere kreiramo objekte. Pri modelu semantičnega spleta pa lahko npr. lastnosti obstajajo neodvisno od razreda, razredi so prikazani kot množice, tako da je pripadnost več razredom običajna praksa.Obvladovanje razrednih identifikatorjevPriporoča se uporaba owl:AnnotationProperty, ki pri mehanizmih sklepanja ne igra vloge.Vsiljiva konceptualizacijaIdeja »načrtovanje za ponovno uporabo« se zameša z idejo »povej vse kar lahko«. Več podatkov, ki jih vključite v model, bolj omejite nekoga, ki bi rad vaš model razširil. Vse možnih scenarijev je nemogoče predvideti, zato se je pri načrtovanju ontologij dobro držati načela KISS (Keep It SimpleStupid).