Szótárak #
Szótár #
A tudásgráfok alkalmazásának egyik fő előnye, hogy a segítségükkel leírt tudás-területek ismeretanyagát a szimbolikus térben tárgyalja, vagyis olyan kódolási, és reprezentációs formákat alkalmaz, ami az emberek számára is érthetővé teszi a fogalmak, dolgok egyértelmű azonosítását.
Amikor egy entitást megnevezünk, vagy állításokat teszünk, predikátumok alkalmazásával, a gépnek és az embernek ugyanazt a jelentéstartalmat kell értenie a kifejezések mögött. Ahhoz, hogy a kifejezések jelentése is egyértelmű legyen, szótárakat hozunk létre. A szótárak definiálják mindazokat a azonosítókat és predikátumokat, amelyek a szótár hatáskörébe tartoznak. A szótárak a legtöbb esetben IRI-ket sorolnak fel, azok jelentésével és alkalmazási lehetőségeivel, szabályaival.
A szótárakban szereplő IRI-k általában angol szavak, vagy rövidítések. Ugyanaz a szó akár egy entitás azonosítására használjuk, akár predikátumként egy viszony vagy tulajdonság kifejezésére, különböző szövegkörnyezetekben mást és mást jelenthet. Pl. az a szó, hogy robot egy autó-összeszerelő ipari üzemben szerelő robotot fog jelenteni, de egy sci-fi novellában már egy intelligens droidot.
Az eddig bemutatott predikátumaink, mint <knows>
, <Person>
, tehát nem eléggé precízek, és egyértelműek.
Azért, hogy az IRI-k globális érvényessége ne sérüljön, és, hogy a jelentés egyértelmű legyen, az egyes szakterületekre külön-külön szótárakat hoznak létre. Ezek a szótárak lehetnek általános fogalmakat (ember
, barát
, ismer
, szülő
, gyerek
, stb.) leíró szótárak, és fókuszálhatnak egy szűk területre, pl. gyógyszerkutatás. Az is lehetséges, hogy ugyanaz a szó több szótárban is szerepel, hasonló, vagy némileg eltérő jelentéssel.
Jó példa egy szótárra a FOAF, ami jól használható emberek és szervezetek profiljának leírására.
Amikor használjuk az IRI-ket, akkor azt is jelezzük, hogy melyik szótár értelmezésében értjük azt. Ezt úgy tehetjük meg, hogy megadjuk a szótár azonosítóját, ami egy egyedi string, többnyire egy URL. Ezt a szótár azonosítót az IRI elejére illesztjük.
Ha most átalakítjuk a predicate-ként használt IRI-jeinket, úgy, hogy azok megfeleljenek a FOAF szótárnak, akkor az alábbi formát fogják ölteni:
<http://xmlns.com/foaf/0.1/#age>
<http://xmlns.com/foaf/0.1/#familyName>
<http://xmlns.com/foaf/0.1/#givenName>
<http://xmlns.com/foaf/0.1/#Person>
Névtartományok #
Az előző fejezetben bevezetett szótár azonosító string (pl.: http://xmlns.com/foaf/0.1/#
) egyértelműen meghatároz egy név-tartományt, angolul namespace-t, amiben pontosan definiáltuk a szó azonosságát, és jelentését. Az IRI-k ebben a hosszú formában nem túl kényelmesen olvashatóak ember számára, ezért azokban a reprezentációkban, amiket szerkeszteni, vagy olvasni akarunk, és nem csak a gépek olvasnak, lehet egy rövidebb változatot is alkalmazni, amit prefix-nek nevezünk. A FOAF szótár esetében jellemzően a foaf:
prefixet használjuk, tehát:
- namespace:
http://xmlns.com/foaf/0.1/
- prefix:
foaf
A prefix-es változatban a predikátumaink a következőképpen festenek:
<foaf:age>
<foaf:familyName>
<foaf:givenName>
<foaf:Person>
A prefixes és a teljes namespace-szel leírt formák azonosak egymással. A különbség az, hogy a teljes változatot bárhol használhatjuk, mert az a teljes információt és azonosságot magában hordozza. A prefix-es változatnál minden esetben jeleznünk kell az adott reprezentációban (forrás file), a prefix definícióját. Erre minden reprezentációs formátumnak (RDF, Turtle, stb.) ami megengedi a prefix-ek alkalmazását meghatározott nyelvi elemei vannak.
Fontos szótárak, amelyek alapértelmezésben a Cayley -ben is definiálva vannak:
prefix | namespace |
---|---|
owl |
http://www.w3.org/2002/07/owl# |
rdf |
http://www.w3.org/1999/02/22-rdf-syntax-ns# |
rdfs |
http://www.w3.org/2000/01/rdf-schema# |
schema |
http://schema.org/ |
xsd |
http://www.w3.org/2001/XMLSchema# |
Mi magunk is létre tudunk hozni namespace-eket és prefix-eket. Például a StarWars univerzum számára bevezethetjük a következő párost:
- namespace:
http://starwars.universe/#
- prefix:
starwars
és ezen túl, ebben tudjuk értelmezni a resource-ainkat:
<starwars:Luke-Skywalker>
<starwars:Leia-Organa>
A szótárakat egy adott tudásreprezentációs file-on, ill. adatbázison belül kombináltan használhatjuk egymással, a kijelentésekben. A prefixekkel kiegészített kijelentéseink az alábbiak lesznek:
<starwars:Luke-Skywalker> <rdf:type> <Person> .
<starwars:Luke-Skywalker> <foaf:givenName> "Luke" .
<starwars:Luke-Skywalker> <foaf:familyName> "Skywalker" .
<starwars:Luke-Skywalker> <foaf:age> 23 .
<starwars:Leia-Organa> <rdf:type> <Person> .
<starwars:Leia-Organa> <foaf:givenName> "Leia" .
<starwars:Leia-Organa> <foaf:familyName> "Organa" .
<starwars:Leia-Organa> <knows> <starwars:Luke-Skywalker> .
Ontológiák #
A teljesség kedvéért fontos megemlíteni, hogy a szótárak az esetek jelentős részében jóval több mindent tartalmaznak, mint a nevek listáját, és szöveges értelmezését.
A szemantikus web technológiájával olyan erőforrásokat és predikátumokat is használunk, amelyek meta információt tartalmaznak más erőforrásokról, és predikátumokról. Pl. a predikátumoknak, mint relációknak leírhatóak a tulajdonságai (reflexív, tranzitív, stb.). Ezek olyan tudás-leírások, amelyek a következtetés végrehajtásához szükséges meta információkat is tartalmazzák, és megfelelő eszköz, pl. következtető gép segítségével olyan adatok is kinyerhetőek ezekből a gráfokból, amelyek explicit módon nincsenek leírva, de implicit módon ki lehet következtetni őket. Az ilyen leírásokat ontológiáknak nevezzük.
Például ha a <foaf:knows>
kapcsolatról tudjuk, hogy az reflexív, akkor elegendő azt kijelenteni, hogy
<starwars:Luke_Skywalker> <foaf:knows> <starwars:Leia_Organa> .
Megfelelő séma alkalmazása esetén, ebből a kijelentésből, a logika szabályai alapján, kikövetkeztethető, hogy az alábbi állítás is igaz:
<starwars:Leia_Organa> <foaf:knows> <starwars:Luke_Skywalker> .
Kapcsolódó oldalak: