SZEMANTIKUS WEB, ONTOLÓGIÁK
4. Előadás
Méréstechnika és Információs Rendszerek Tanszékhttps://www.mit.bme.hu/oktatas/targyak/vimiac04
1
2
„Szintakitikus” web
[Hendler & Miller 02]
3
Szemantikus web
4
Szemantikus web – új felhasználók
Szemantikus annotációk Ontológiák Logikai
támogatás
Nyelvek Eszközök Alkalmazások szolgáltatások
Web tartalom
FelhasználókSzerzőkWWW
Szemantikus web
Szemantikus web
FelhasználókSZW építése
Szerzők alkalmazások
ágensek
5
A szemantikus web koncepció"The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation."
-- Tim Berners-Lee
DBPedia: Wikipedia adatok
@prefix dbpedia <http://dbpedia.org/resource/>.@prefix dbterm <http://dbpedia.org/property/>.
dbpedia:Amsterdamdbterm:officialName “Amsterdam” ;dbterm:longd “4” ;dbterm:longm “53” ;dbterm:longs “32” ;...dbterm:leaderTitle “Mayor” ; dbterm:leaderName dbpedia:Job_Cohen ;...dbterm:areaTotalKm “219” ;...
dbpedia:ABN_AMROdbterm:location dbpedia:Amsterdam ;...
@prefix dbpedia <http://dbpedia.org/resource/>.@prefix dbterm <http://dbpedia.org/property/>.
dbpedia:Amsterdamdbterm:officialName “Amsterdam” ;dbterm:longd “4” ;dbterm:longm “53” ;dbterm:longs “32” ;...dbterm:leaderTitle “Mayor” ; dbterm:leaderName dbpedia:Job_Cohen ;...dbterm:areaTotalKm “219” ;...
dbpedia:ABN_AMROdbterm:location dbpedia:Amsterdam ;...
Automatikus, felderíthető kapcsolatok
<http://dbpedia.org/resource/Amsterdam>owl:sameAs <http://rdf.freebase.com/ns/...> ;owl:sameAs <http://sws.geonames.org/2759793> ;...
<http://dbpedia.org/resource/Amsterdam>owl:sameAs <http://rdf.freebase.com/ns/...> ;owl:sameAs <http://sws.geonames.org/2759793> ;...
<http://sws.geonames.org/2759793>owl:sameAs <http://dbpedia.org/resource/Amsterdam>wgs84_pos:lat “52.3666667” ;wgs84_pos:long “4.8833333” ;geo:inCountry <http://www.geonames.org/countries/#NL> ;
...
<http://sws.geonames.org/2759793>owl:sameAs <http://dbpedia.org/resource/Amsterdam>wgs84_pos:lat “52.3666667” ;wgs84_pos:long “4.8833333” ;geo:inCountry <http://www.geonames.org/countries/#NL> ;
...
Szolgáltatások maguk döntik el honnan gyűjtenek információt
SKOS Core és az OWL OWL egyW3C ajánlás
Logika orientát Erős következteés pontos szemantika
SKOS Nyelv orientált
Egyszerűbb következtetés Rugalmas szemantika
Fogalom
Preferált címkék, leírások (labels)
Alternatív címkék
Leírás(Note)
Pl. definíció, szkóp, háttér információk
FogalomSzemantikus kapcsolat
Fogalom sémák
SKOS alapvető elemei
Ontológiák, az OWL nyelv
12
OWL logika igény példa Állatok két csoportja: Male (hím) és Female (nőstény).
<rdfs:Class rdf:ID="Male"><rdfs:subClassOf rdf:resource="#Animal"/>
</rdfs:Class>
A subClassOf kifejezés felhasználásával definiálhatjuk, hogy a #Male osztály alosztálya az #Animal osztálynak
<rdfs:Class rdf:ID="Female"><rdfs:subClassOf rdf:resource="#Animal"/><owl:disjointWith rdf:resource="#Male"/>
</rdfs:Class>
Nőstény állatok és alosztályát alkotják az állatok osztálynak, de tudjuk hogy nincs közös elem a hím osztállyal(disjointWith elem használata).
13
OWL elemek, példák
Osztályok Person superclass Man, Woman subclasses
Tulajdonságok (egyedi) isWifeOf, isHusbandOf
Tulajdonság jellemzők, korlátok inverseOf domain range Cardinality
Osztályok közti relációk disjointWith
14
OWL Example in Protégé (2)
15
OWL Example in Protégé (3)
Ontológiák RDFS hasznos, de nem ad megoldást az elvárásokra, a szemantika pontos leírására.
Összetett alkalmazások további igényei: Tulajdonságok leírása, jellemzése Különböző URI‐val rendelkező objektumok azonosságának leírása (ekvivalencia)
Osztályok diszjunkt vagy éppen ekvivalens jellege Osztályok konstruálása (nemcsak megnevezése) Következtetési igények támogatása:
Pl.:“Ha két «Person» erőforrás «A» és «B» azonos «foaf:email» tulajdonsággal rendelkeznek, akkor «A» és «B» identikus.
Ontológiák Az SZW világban az ontológiákat a következő értelemben használjuk:
Az RDFS is tekinthető egy egyszerű ontológia nyelvnek
Nyelvek definiálása mindig egyfajta kompromisszum- gazdag szemantika tudás gazdag alkalmazásokhoz- ésszerűség (fizibilitás, megvalósíthatóság (fordító, következtető)
Fogalmak és ezek relációnak definiálása egy adott tudásterület leírása céljából. Fogalmak és ezek relációnak definiálása egy adott tudásterület leírása céljából.
Web Ontology Language = OWL
OWL az SZW struktúrába egy újabb réteg, az RDFS bővítése Saját névterek, saját elemek, kifejezések RDFS‐re épül (tartalmazza)
Önálló SZW ajánlás “OWL 2” – 2010 óta gyakorlatilag csak ezt használjuk Akit a részletek érdekelnek: https://www.w3.org/TR/owl2‐overview/
Ekvivalencia relációk Osztályokra:
owl:equivalentClass: két osztálynak azonosak az elemei
owl:disjointWith: nincs közös elemük Tulajdonságokra:
owl:equivalentProperty Példa: a:author vs. f:auteur
owl:propertyDisjointWith
Egyedekre: owl:sameAs: két URI ugyanazt a fogalmat vagy egyedet reprezentálja
owl:differentFrom: negált kifejezése az owl:sameAskifejezésnek
…
Használat: owl:sameAs Utazási példából, Amsterdam leírása két forrásban:(Dbpedia és Geonames):
<http://dbpedia.org/resource/Amsterdam>owl:sameAs <http://sws.geonames.org/2759793>;
<http://dbpedia.org/resource/Amsterdam>owl:sameAs <http://sws.geonames.org/2759793>;
Példa logikai kapcsolatra
Ha a következő igaz két állításra::email rdf:type owl:InverseFunctionalProperty. <A> :email "mailto:[email protected]".<B> :email "mailto:[email protected]".
:email rdf:type owl:InverseFunctionalProperty. <A> :email "mailto:[email protected]".<B> :email "mailto:[email protected]".
Így új relációkhoz jutunk (RDFS-ben erre nem volt lehetőség)
<A> owl:sameAs <B>.<A> owl:sameAs <B>.
Akkor ebből levezethető:
Ha egy tulajdonság inverse-functional –nak lett definiálva, akkor, akkor a tulajdonság tárgya egyértelműen meghatározza a tulajdonság alanyát.
Osztályok az OWL‐ben RDFS: létező osztályokat alosztály struktúrába rendezhettük – osztályhierarchia építése, semmi több…
OWL osztályok konstruálhatók más osztályok vagy példányok alapjám, : Elemek felsorolásával Osztályok relációinak alkalmazásával: intersection, union, complement, stb.
Osztályok OWL Osztályok, egyedek (classes, individuals)
Önálló owl:Class osztály van definiálva (az rdfs:Class specializációjaként)
Egyedek (individuals) definiálása külön osztályban történik: owl:Thing
Pl. egy pontos definicióra:ex:Person rdf:type owl:Class.
<uri-for-Amitav-Ghosh> rdf:type owl:Thing;rdf:type owl:Person .
ex:Person rdf:type owl:Class.
<uri-for-Amitav-Ghosh> rdf:type owl:Thing;rdf:type owl:Person .
:£ rdf:type owl:Thing.:€ rdf:type owl:Thing.:$ rdf:type owl:Thing.:Currency
rdf:type owl:Class;owl:oneOf (:€ :£ :$).
:£ rdf:type owl:Thing.:€ rdf:type owl:Thing.:$ rdf:type owl:Thing.:Currency
rdf:type owl:Class;owl:oneOf (:€ :£ :$).
Unió
További lehetőségek: complementOf, intersectionOf, …
:Novel rdf:type owl:Class.:Short_Story rdf:type owl:Class.:Poetry rdf:type owl:Class.:Literature rdf:type owl:Class;
owl:unionOf (:Novel :Short_Story :Poetry).
:Novel rdf:type owl:Class.:Short_Story rdf:type owl:Class.:Poetry rdf:type owl:Class.:Literature rdf:type owl:Class;
owl:unionOf (:Novel :Short_Story :Poetry).
Példa…Ha:
:Novel rdf:type owl:Class.:Short_Story rdf:type owl:Class.:Poetry rdf:type owl:Class.:Literature rdf:type owl:Class;
owl:unionOf (:Novel :Short_Story :Poetry).
<myWork> rdf:type :Novel .
:Novel rdf:type owl:Class.:Short_Story rdf:type owl:Class.:Poetry rdf:type owl:Class.:Literature rdf:type owl:Class;
owl:unionOf (:Novel :Short_Story :Poetry).
<myWork> rdf:type :Novel .
<myWork> rdf:type :Literature .<myWork> rdf:type :Literature .
akkor
Eddig… OWL: erős leíró elemeket definiáltunk pl., adatbázisok összeköthetőek owl:sameAs,vagy inverse functional tulajdonságokkal.
Számos kapcsolatot felderíthetünk hagyományos következtetési eljárásokkal
Korltázások formálisan is… Létezik owl:Restriction osztály
Hivatkozva a korlátozandó tulajdonságokat Megadva a korlátozás tartalmát
Példa: subClass
:Listed_Price rdfs:subClassOf [rdf:type owl:Restriction;owl:onProperty p:currency;owl:allValuesFrom:Currency.
].
:Listed_Price rdfs:subClassOf [rdf:type owl:Restriction;owl:onProperty p:currency;owl:allValuesFrom:Currency.
].
Lehetséges felhasználás…Ha:
<something> rdf:type :Currency .<something> rdf:type :Currency .
Akkor a következő állítás igaz:
:Listed_Price rdfs:subClassOf [rdf:type owl:Restriction;owl:onProperty p:currency;owl:allValuesFrom:Currency.
].
:price rdf:type :Listed_Price .
:price p:currency <something> .
:Listed_Price rdfs:subClassOf [rdf:type owl:Restriction;owl:onProperty p:currency;owl:allValuesFrom:Currency.
].
:price rdf:type :Listed_Price .
:price p:currency <something> .
További korlátozások allValuesFrom helyettesíthető:
someValuesFrom Példa: valamelyik devizában fejezzük ki az árfolyamto(legalább egyben)
hasValue, legalább egy értéke kell, hogy létezzen Számosság korlátozások (értékvizsgálat helyett)
Pl. legalább egyszer elő kell, hogy forduljon egy elem egy kategóriában
OWL 2 Korlátozások definiáltak
classes, individuals, object , datatype properties ‐megkötésekkel
object properties csak individuals ‐re datatype property nincs tovább specifikálva …
Hatékony következtető algoritmus létezik!
OWL 2 Korlátozások betartásával nagy méretű ontológiák építhetők, és alkalmazhatóak pl. orvosi, robotika, biológia tárgyterületeken
OWL 2 lett a formális ontológiák nyelve Nem feltétlenül a weben használjuk
Ontológiák építése Technológia adott, feladat ontológiák létrehozása
Szükséges a tárgyterület alapos ismerete, rendszerezési képesség
Vannak közösségek, ahol jelentős tapasztalatok vannak (pl. könyvtárosok, orvosi tudományok)
Az OWL csak egy eszköz az ontológiák formalizálására Nagy méretű ontológiák építése gyakran történik elosztott, közösségi módszerekkel
Ontológiák létrehozásának elsődleges célja a megosztás, az újrafelhasználhatóság biztosítása névtér mechanizmusok által explicit import után
Ontológiák alkalmazása Nem kizárólag nagy méretű ontológiák építése célszerű Számos alkalmazás RDFS‐t használ és néhány kiegészítést OWL‐ből
Adatbázis analógia Ontológia axiómák analóg elemek az adatbázis sémákkal Séma definiálja a struktúrát és a megkötéseket
Ontológia példányok analóg elemek adatbázis tartalommal
De vannak különbségek…
Adatbázis ‐vs‐ OntológiaAdatbázis: Zárt világ feltételezés (CWA) Hiányzó információ „hamis” értéket képvisel
Egyedi megnevezés(unique name assumption, UNA) Minden egyed neve különböző
Séma kényszerekként értelmezhető
Ontológia: Nyílt világ feltételezés(OWA) Hiányzó információ nem ismertnek feltételezett
Nincs UNA Ontológiai axiómák implikációkként értelmezehetőek(következtetési szabályok alkalmazhatóak) Maga után vonzás alkalmazása
Ugyanaz a példa:Individual: HarryPotterFacts: hasFriend RonWeasley
hasFriend HermioneGrangerhasPet Hedwig
Individual: Draco Malfoy
Lekérdezés: Draco Malfoy barátja‐e HarryPotternek? Adatbázis: Nem Ontológia: Nem tudjuk
OWA (nem levezethető hogy nem létezik a kérdezett reláció)
Adatbázis ‐vs‐ Ontológia
Például, ha adottak tények/adatok:Individual: HarryPotterFacts: hasFriend RonWeasley
hasFriend HermioneGrangerhasPet Hedwig
Individual: Draco Malfoy
Lekérdezés: Hány barátja van HarryPotternek? Adatbázis: 2 Ontológia: Legalább 1
Nincs UNA: Ron és Hermione lehet akár ugyanaz a személy
Adatbázis ‐vs‐ Ontológia
Például, ha adottak tények/adatok:Individual: HarryPotterFacts: hasFriend RonWeasley
hasFriend HermioneGrangerhasPet Hedwig
Individual: Draco MalfoyDifferentIndividuals: RonWeasley HermioneGranger
Lekérdezés: Hány barátja van HarryPotternek? Adatbázis: 2 Ontológia: Legalább 2
OWA: Nem tudjuk, hogy van‐e még több itt meg nem nevezett barátja
Adatbázis ‐vs‐ Ontológia
Például, ha adottak tények/adatok:Individual: HarryPotterFacts: hasFriend RonWeasley
hasFriend HermioneGrangerhasPet Hedwig
Types: hasFriend only RonWeasley or HermioneGrangerIndividual: Draco MalfoyDifferentIndividuals: RonWeasley HermioneGranger
Lekérdezés: Hány barátja van HarryPotternek? Adatbázis: 2 Ontológia: 2!
Adatbázis ‐vs‐ Ontológia
Adjunk új tényeket a modellünkhöz:Individual: DumbledoreIndividual: Fawkes
Types: PhoenixFacts: isPetOf Dumbledore
Adatbázis válasza? A beillesztést visszautasítja, a megadott kényszerek alapján: A hasPet értékkészlete személy (individual); Dumbledore viszont egy varázsló (CWA)
Ontológia következtetés válasza? Levezeti, hogy Dumbledore személy (értékkészlet korlátozás)
Szintén levezeti, hogy Dumbledore egy varázsló (csak varázslónak lehet Phoenix típusú állata)
Adatbázis ‐vs‐ Ontológia
Adatbázis lekérdezés végrehajtása A séma nem határozza meg az eredményt
Az adatoknak a sémán értelmezett kényszereknek kell megfelelniük
A lekérdezés megválaszolása modell ellenőrzési feladat Adat megfelelések ellenőrzése
Hatékonyan implementálható
Ontológia lekérdezés végrehajtása Ontológia axiómák meghatározó szerepet játszanak
A válasz tartalmazhat implicit levezethető tényeket Megválaszolhatók koncepcionális és extenzionáliskérdések is: Például lehet‐e egy muglinak egy Phoenix a háziállata?
A lekérdezés megválaszolása tétel bizonyítási feladat Pl. logikai vonzatok levezetése
Akár NP teljes is lehet a kiértékelés Praktikus implementációk ennél azért jobban teljesítenek
Mikor használjunk ontológiát? Ontológia alkalmazása hasznos lehet, ha
A séma nagy vagy bonyolult, illetve ha lekérdezési időben szükség van kiértékelésére Következtetés használható a séma ellenőrzésére, kapcsolatok felderítésére
Nem lehetséges vagy nem praktikus teljes információs bázis létrehozása Pl. összetett struktúrák vagy folyamatok leírása
Megengedhető a hatékonyság csökkentése
Adatbázisok alkalmazása hasznos, ha Séma mérete, összetettsége kezelhető, nem vizsgálandó lekérdezési időben (kompromisszum: paraméterezett megoldások)
Teljes információ elérhető Pl. könyvelés, pénzügy, árukészletek
Teljesítmény garanciák szükségesek
OWL2: egy sikeres kompromisszum W3C OWL javaslat: OWL 2
Az OWL egy OWL szabvány néhány hasznos jellemzővel: Jelentős kifejezőerő néhány specifikus elem bevezetésével (pl. tulajdonságok)
Támogatás adattípusok és értékhalmazok definiálására Adatbázis típusú kulcsok Gazdag annotációs lehetőség
OWL 2 megengedi profilok definiálását Egy profil egy nyelvi részhalmaz (pl. Protege eszköz)
Hasznos számítási tulajdonságok Egyszerűbb támogatási lehetőségek
Szemantika
http://www.gocomics.com/frazz/2005/03/28