SlideShare une entreprise Scribd logo
1  sur  104
Dejan Lavbič
                    Univerza v Ljubljani
Fakulteta za računalništvo in informatiko
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
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
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
Vsebina predstavitve            (4)



 Dobre in slabe prakse modeliranja
 Kam naprej?
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?
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
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)
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
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.
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)
Različni pogledi in pričakovanja
 Splet podatkov, predstavljenih v RDF ali
  OWL,
 RDF zamenjajo mikroformati,
 Spletne storitve –
  umetna inteligenca,
 uporabniška
  vrednost.
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
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
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/
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/
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/
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/
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
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.
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)
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.
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
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
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
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
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.
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
RDF
Sintaksa   (2)


   Imenski prostor in okrajšave:
     LD:IvanCankar
     http://amor.fri.uni-lj.si/dejan/SW/tutorial/
      LiterarnaDela.owl#IvanCankar
     :IvanCankar
   Vnaprej opredeljeni imenski prostori (W3C):
     xsd, xlmns, rdf, rdfs, owl
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.
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
    …                   …           …
RDF
Tabelarični podatki       (3)


   Poskrbimo za ustrezne tip.
    Osebek              Predikat   Predmet
    LD:naslov           rdf:type   rdf:Property
    LD:avtor            rdf:type   rdf:Property
    LD:tip              rdf:type   rdf:Property
    LD:leto             rdf:type   rdf:Property
    LD:LiterarnoDelo1   rdf:type   LD:LiterarnoDelo
    LD:LiterarnoDelo2   rdf:type   LD:LiterarnoDelo
    …                   …          …
RDF
Primer

   http://amor.fri.uni-lj.si/dejan/SW/tutorial/
    LiterarnaDela.owl
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.
RDF
Arhitektura aplikacij semantičnega spleta   (2)


   Primeri RDF shramb:
     Jena SDB (SPARQL, 650 mil. trojčkov),
     Jena TDB (SPARQL, dodatki, 1,7 mrd. trojčkov),
     Joseki (HTTP, SPARQL),
     Sesame (fleksibilen, sklepanje)
     OWLIM (SAIL dodatek za Sesame)
      ○ SwiftOWLIM (interni spomin, zelo hiter),
      ○ BigOWLIM (neposredna persistenčna raven, 3 mrd.
        trojčkov).
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
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
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 . }
RDF
Primer SPARQL poizvedbe

   http://amor.fri.uni-lj.si/dejan/SW/tutorial/
    LiterarnaDela.owl
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
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?
RDF
Primer sklepanja v RDF

   http://amor.fri.uni-lj.si/dejan/SW/tutorial/
    MoskaOblacila.owl
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)
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.
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.
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?
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 .
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?
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 .
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 .
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)
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)
RDF/S
Kombinacija rdfs:domain in rdfs:subClassOf

   Primer
    :PorocenaZenska rdfs:subClassOf :Zenska .
    :dekliskiPriimek rdfs:domain :PorocenaZenska .


   Če dodamo naslednje                                                        :Zenska

    dejstvo, mehanizem                                                     rdfs:subClassOf



    sklepanja vrne:                     :dekliskiPriimek   .rdfs:domain.   :PorocenaZenska




    :Marija :dekliskiPriimek :Golez .

                :Marija rdf:type :PorocenaZenska .
                :Marija rdf:type :Zenska .
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.
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).
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.
RDF/S
Vzorci modeliranje – klasifikacija na podlagi def. obm.                                                                  (2)


   Rešitev:
     uporaba gradnikov rdfs:domain,
     zgolj zapišemo podatke iz tabele, pripadnost
     razredom se določi samodejno s sklepanjem.
                                                                                     :QEII
                                                                       rdf:type
                                      :datumNaslednjePlovbe                         :datumPrvePlovbe = 02.05.1969
                                                                                    :datumNaslednjePlovbe = 04.03.2010
                                                                        rdf:type
                                            .rdfs:domain.
                                                                       .rdf:type     :Constitution
                                         :LadjaVPopravilu
                                                                                    :datumPrvePlovbe = 22.07.1987
                   rdfs:subClassOf                                     rdf:type     :datumNaslednjePlovbe = 12.01.2009
       :Ladja       rdfs:subClassOf              :IzplutaLadja
                   rdfs:subClassOf                                     rdf:type      :Titanic

                      .rdfs:domain.       :NeaktivnaLadja              .rdf:type.
                                                                                    :datumPrvePlovbe = 10.04.1912
                                                                                    :datumUnicenja = 14.04.1912
       :datumPrvePlovbe          .rdfs:domain.     .rdfs:domain.        rdf:type
                                                                                     :Berengaria
                :datumPrenehanjaPlovbe                :datumUnicenja   rdf:type
                                                                                    :datumPrvePlovbe = 16.06.1913
                                                                                    :datumPrenehanjaPlovbe = 1938
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)
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.
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 .
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 .
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
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.
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 .
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 .
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)
OWL
Inverzna funkcijska lastnost              (2)


        Podatki iz 1. vira                             Podatki iz 2. vira
p:Izdelek1   p:stModela   »B-1430« .    mfg:Produkt1   mfg:stevilka   »ZX-3« .
p:Izdelek2   p:stModela   »B-1431« .    mfg:Produkt2   mfg:stevilka   »ZX-3P« .
p:Izdelek3   p:stModela   »M13-P« .     mfg:Produkt3   mfg:stevilka   »ZX-3S« .
p:Izdelek4   p:stModela   »ZX-3S« .     mfg:Produkt4   mfg:stevilka   »B-1430« .
p:Izdelek5   p:stModela   »ZX-3« .      mfg:Produkt5   mfg:stevilka   »B-1430X« .
p:Izdelek6   p:stModela   »TC-43« .     mfg:Produkt6   mfg:stevilka   »B-1431« .
p:Izdelek7   p:stModela   »B-1430X« .   mfg:Produkt7   mfg:stevilka   »DBB-12« .
p:Izdelek8   p:stModela   »SP-1234« .   mfg:Produkt8   mfg:stevilka   »SP-1234« .
p:Izdelek9   p:stModela   »1180-M« .    mfg:Produkt9   mfg:stevilka   »SPX-1234« .

         mfg:stevilka rdf:type owl:InverseFunctionalProperty .
         p:stModela owl:equivalentProperty mfg:stevilka .


                   p:Izdelek1   owl:sameAs   mfg:Produkt4   .
                   p:Izdelek2   owl:sameAs   mfg:Produkt6   .
                   p:Izdelek4   owl:sameAs   mfg:Produkt3   .
                   p:Izdelek5   owl:sameAs   mfg:Produkt1   .
                   p:Izdelek7   owl:sameAs   mfg:Produkt5   .
                   p:Izdelek8   owl:sameAs   mfg:Produkt8   .
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
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
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.«
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«
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.
OWL
Omejitve z owl:allValuesFrom                                                           (2)


   Posodobimo ontologijo
     :OmogocenoVprasanje                          :omogoca

                                          rdfs:range   rdfs:domain

         rdfs:subClassOf.           :Vprasanje                  :Odgovor                        .rdfs:subClassOf.


                            rdfs:domain                                rdfs:domain
                                          rdfs:range rdfs:domain

            :besediloVprasanja                                             :besediloOdgovora                  :IzbranOdgovor
                                                 :jeMozenZa
                                                                                                                    .rdfs:range.
                                               owl:inverseOf


                                                :imaMoznost              .rdfs:subPropertyOf.               :imaIzbranoMoznost




   in dodamo                                                   :CTV
                                                               :besediloOdgovor =
                                                                                                     :Oboje
                                                                                                   :besediloOdgovor = »oboje«
                                                                  »kabelska TV«
    primerke                                                                   :omogoca
                                                                                                     :omogoca



                                                                       :TVSimptom
                                                                     :besediloVprasanja = »Kakšni simptomi ...«
OWL
Omejitve z owl:allValuesFrom                                                                (3)

:IzbranOdgovor rdfs:subClassOf
[rdf:type owl:Restriction;
   owl:onProperty :omogoca;
   owl:allValuesFrom :OmogocenoVprasanje].

                                 :omogoca                          :OmogocenoVprasanje

                                      owl:onProperty      owl:allValuesFrom


                                  :omogoca vsi :OmogocenoVprasanje
                                                                                                        Dodamo
                                                 rdfs:subClassOf
                                                                                rdf:type
                                                                                                        omejitev
     :Odgovor          .rdfs:subClassOf.         :IzbranOdgovor
                                                                                                       za razred
            rdf:type                  rdf:type
 rdf:type

             :CTV
                                                             :TVSimptom
            :besediloOdgovor =             .:omogoca.
                                                          :besediloVprasanja = »Kakšni simptomi ...«
               »kabelska TV«
                                              :omogoca

  :Oboje
 :besediloOdgovor = »oboje«
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 ...«
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
OWL
Primer omejitev

   http://amor.fri.uni-lj.si/dejan/SW/tutorial/
    VprasanjaOdgovori.owl
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
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?
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)
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 .
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 .
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 .
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
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 .
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]
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)
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]] .
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 .
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)
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 .
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 .
OWL
Primer uporabe mnoţic

   http://amor.fri.uni-lj.si/dejan/SW/tutorial/
    JamesDean.owl
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:
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)
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.
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
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.
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.
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
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”
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
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

Contenu connexe

En vedette (9)

Web 1.0 2.0-3.0-4.0 Overview
Web 1.0 2.0-3.0-4.0 OverviewWeb 1.0 2.0-3.0-4.0 Overview
Web 1.0 2.0-3.0-4.0 Overview
 
Web1, web2 and web 3
Web1, web2 and web 3Web1, web2 and web 3
Web1, web2 and web 3
 
The Social Semantic Web
The Social Semantic WebThe Social Semantic Web
The Social Semantic Web
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic Web
 
The Semantic Web
The Semantic WebThe Semantic Web
The Semantic Web
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic Web
 
Web 3.0 The Semantic Web
Web 3.0 The Semantic WebWeb 3.0 The Semantic Web
Web 3.0 The Semantic Web
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Ontologije in tehnologije semantičnega spleta

  • 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
  • 5. Vsebina predstavitve (4)  Dobre in slabe prakse modeliranja  Kam naprej?
  • 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
  • 29. RDF Sintaksa (2)  Imenski prostor in okrajšave:  LD:IvanCankar  http://amor.fri.uni-lj.si/dejan/SW/tutorial/ LiterarnaDela.owl#IvanCankar  :IvanCankar  Vnaprej opredeljeni imenski prostori (W3C):  xsd, xlmns, rdf, rdfs, owl
  • 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 … … …
  • 32. RDF Tabelarični podatki (3)  Poskrbimo za ustrezne tip. Osebek Predikat Predmet LD:naslov rdf:type rdf:Property LD:avtor rdf:type rdf:Property LD:tip rdf:type rdf:Property LD:leto rdf:type rdf:Property LD:LiterarnoDelo1 rdf:type LD:LiterarnoDelo LD:LiterarnoDelo2 rdf:type LD:LiterarnoDelo … … …
  • 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.
  • 35. RDF Arhitektura aplikacij semantičnega spleta (2)  Primeri RDF shramb:  Jena SDB (SPARQL, 650 mil. trojčkov),  Jena TDB (SPARQL, dodatki, 1,7 mrd. trojčkov),  Joseki (HTTP, SPARQL),  Sesame (fleksibilen, sklepanje)  OWLIM (SAIL dodatek za Sesame) ○ SwiftOWLIM (interni spomin, zelo hiter), ○ BigOWLIM (neposredna persistenčna raven, 3 mrd. trojčkov).
  • 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 . }
  • 39. RDF Primer SPARQL poizvedbe  http://amor.fri.uni-lj.si/dejan/SW/tutorial/ LiterarnaDela.owl
  • 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)
  • 53. RDF/S Kombinacija rdfs:domain in rdfs:subClassOf  Primer :PorocenaZenska rdfs:subClassOf :Zenska . :dekliskiPriimek rdfs:domain :PorocenaZenska .  Če dodamo naslednje :Zenska dejstvo, mehanizem rdfs:subClassOf sklepanja vrne: :dekliskiPriimek .rdfs:domain. :PorocenaZenska :Marija :dekliskiPriimek :Golez . :Marija rdf:type :PorocenaZenska . :Marija rdf:type :Zenska .
  • 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.
  • 57. RDF/S Vzorci modeliranje – klasifikacija na podlagi def. obm. (2)  Rešitev:  uporaba gradnikov rdfs:domain,  zgolj zapišemo podatke iz tabele, pripadnost razredom se določi samodejno s sklepanjem. :QEII rdf:type :datumNaslednjePlovbe :datumPrvePlovbe = 02.05.1969 :datumNaslednjePlovbe = 04.03.2010 rdf:type .rdfs:domain. .rdf:type :Constitution :LadjaVPopravilu :datumPrvePlovbe = 22.07.1987 rdfs:subClassOf rdf:type :datumNaslednjePlovbe = 12.01.2009 :Ladja rdfs:subClassOf :IzplutaLadja rdfs:subClassOf rdf:type :Titanic .rdfs:domain. :NeaktivnaLadja .rdf:type. :datumPrvePlovbe = 10.04.1912 :datumUnicenja = 14.04.1912 :datumPrvePlovbe .rdfs:domain. .rdfs:domain. rdf:type :Berengaria :datumPrenehanjaPlovbe :datumUnicenja rdf:type :datumPrvePlovbe = 16.06.1913 :datumPrenehanjaPlovbe = 1938
  • 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)
  • 67. OWL Inverzna funkcijska lastnost (2) Podatki iz 1. vira Podatki iz 2. vira p:Izdelek1 p:stModela »B-1430« . mfg:Produkt1 mfg:stevilka »ZX-3« . p:Izdelek2 p:stModela »B-1431« . mfg:Produkt2 mfg:stevilka »ZX-3P« . p:Izdelek3 p:stModela »M13-P« . mfg:Produkt3 mfg:stevilka »ZX-3S« . p:Izdelek4 p:stModela »ZX-3S« . mfg:Produkt4 mfg:stevilka »B-1430« . p:Izdelek5 p:stModela »ZX-3« . mfg:Produkt5 mfg:stevilka »B-1430X« . p:Izdelek6 p:stModela »TC-43« . mfg:Produkt6 mfg:stevilka »B-1431« . p:Izdelek7 p:stModela »B-1430X« . mfg:Produkt7 mfg:stevilka »DBB-12« . p:Izdelek8 p:stModela »SP-1234« . mfg:Produkt8 mfg:stevilka »SP-1234« . p:Izdelek9 p:stModela »1180-M« . mfg:Produkt9 mfg:stevilka »SPX-1234« . mfg:stevilka rdf:type owl:InverseFunctionalProperty . p:stModela owl:equivalentProperty mfg:stevilka . p:Izdelek1 owl:sameAs mfg:Produkt4 . p:Izdelek2 owl:sameAs mfg:Produkt6 . p:Izdelek4 owl:sameAs mfg:Produkt3 . p:Izdelek5 owl:sameAs mfg:Produkt1 . p:Izdelek7 owl:sameAs mfg:Produkt5 . p:Izdelek8 owl:sameAs mfg:Produkt8 .
  • 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.
  • 73. OWL Omejitve z owl:allValuesFrom (2)  Posodobimo ontologijo :OmogocenoVprasanje :omogoca rdfs:range rdfs:domain rdfs:subClassOf. :Vprasanje :Odgovor .rdfs:subClassOf. rdfs:domain rdfs:domain rdfs:range rdfs:domain :besediloVprasanja :besediloOdgovora :IzbranOdgovor :jeMozenZa .rdfs:range. owl:inverseOf :imaMoznost .rdfs:subPropertyOf. :imaIzbranoMoznost  in dodamo :CTV :besediloOdgovor = :Oboje :besediloOdgovor = »oboje« »kabelska TV« primerke :omogoca :omogoca :TVSimptom :besediloVprasanja = »Kakšni simptomi ...«
  • 74. OWL Omejitve z owl:allValuesFrom (3) :IzbranOdgovor rdfs:subClassOf [rdf:type owl:Restriction; owl:onProperty :omogoca; owl:allValuesFrom :OmogocenoVprasanje]. :omogoca :OmogocenoVprasanje owl:onProperty owl:allValuesFrom :omogoca vsi :OmogocenoVprasanje Dodamo rdfs:subClassOf rdf:type omejitev :Odgovor .rdfs:subClassOf. :IzbranOdgovor za razred rdf:type rdf:type rdf:type :CTV :TVSimptom :besediloOdgovor = .:omogoca. :besediloVprasanja = »Kakšni simptomi ...« »kabelska TV« :omogoca :Oboje :besediloOdgovor = »oboje«
  • 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 .
  • 93. OWL Primer uporabe mnoţic  http://amor.fri.uni-lj.si/dejan/SW/tutorial/ JamesDean.owl
  • 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

Notes de l'éditeur

  1. 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.
  2. 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.
  3. 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.
  4. 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).
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. Tabela predstavlja vir podatkov, ki bi ga radi porazdelili po različnih računalnikih.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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
  19. 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.
  20. 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.
  21. 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.
  22. Pokaži:imenski prostori (uporabljan in uvoženi)razredno strukturo,lastnosti,primerke invizualizacijo(Jambalaya).
  23. 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.
  24. 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.
  25. 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.
  26. Č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.
  27. 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.
  28. Pokaži SPARQL poizvedbo.Protege  Reasoning  Open SPARQL Query PanelSELECT ?oseba1 ?oseba2WHERE { ?LD :naslov “Otelo” . ?LD :avtor ?oseba1 . {?oseba1 :porocil ?oseba2} UNION {?oseba2 :porocil ?oseba1} .}
  29. 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.
  30. 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?
  31. 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
  32. 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.
  33. 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.
  34. 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.
  35. 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 .
  36. 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.
  37. Zaposlitvena razmerja prikazana na sliki lahko v RDF/S zapišemo takole::delaNaCrznoZardfs:subPropertyOf :delaPogodbenoZa .:delaPrekoAJZardfs:subPropertyOf :delaPogodbenoZa .:delaPogodbenoZardfs:subPropertyOf :delaZa .:jeZaposlenPrirdfs:subPropertyOf :delaZa .
  38. Č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 .
  39. 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)
  40. 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)
  41. 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.
  42. Č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.
  43. 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.
  44. 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.
  45. Č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.
  46. Ž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 .
  47. 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 .
  48. 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.
  49. 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.
  50. 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 .
  51. 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)
  52. 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.
  53. Začeli bomo z enostavnimi vprašanji, ki jih potrebujemo pri podpori uporabnikom kabelskega operaterja. Vprašanji sta naslednji:
  54. 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].
  55. 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.
  56. 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
  57. Odvisnost med odgovori in vprašanji v našem kratkem vprašalniku so tako prikazani na naslednji sliki.
  58. 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].
  59. Pokaži primerke KaksnaTezava in TVSimptomKako opredelimo omejitevVprasanjeZVisokoPrioritetoimaPrioritetohas Visoka(delete in premik vprašanja pod necessary)R in =
  60. 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.
  61. 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.
  62. 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 .
  63. 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 .
  64. 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 .
  65. Dialog o filmih James Dean-a z rezultati sklepanja je prikazan na spodnji sliki.
  66. 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 .
  67. 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 .
  68. 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.
  69. 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]] .
  70. 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 .
  71. Poglejmo si to na primeru filmov.
  72. 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.
  73. 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 .
  74. Poglej omejitveJamesDeanFilmOseba in spodajprimerke sklepanja
  75. 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.
  76. 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.
  77. 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).
  78. 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).
  79. 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.
  80. 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.
  81. 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).