(Ez a ford韙醩 a W3C Magyar Irod醞醤ak megb韟醩醔髄,
az
Informatikai 閟 H韗k鰖l閟i Miniszt閞ium
t醡ogat醩醰al k閟z黮t)
K閞j黭, k鰒esse figyelemmel a dokumentum eredeti angol nyelv v醠tozat醨a vonatkoz hibajegyz閗et, mert ez normat韛 korrekci髃at is tartalmazhat.
A dokumentumr髄 tov醔bi ford韙醩ok is rendelkez閟re 醠lnak.
Copyright © 2004 W3C® (MIT, ERCIM, Keio), Minden jog fenntartva. Alkalmazand髃 a W3C felel鮯s間i, v閐jegyoltalmi, dokumentumhaszn醠ati 閟 szoftverlicenc el蹴r醩ai.
Az OWL Web Ontol骻ia Nyelv egy szemantikai jel鰈鮪yelv, mely ontol骻i醟 Weben t鰎t閚 publik醠醩醨a 閟 k鰖鰏 haszn醠at醨a szolg醠. Az OWL nyelvet az RDF (Resource Description Framework) sz髃閟zlet閚ek kiterjeszt閟ek閚t, a DAML+OIL nyelvb鮨 kiindulva fejlesztett閗 ki. Ez a dokumentum az OWL nyelvi konstrukci髃 teljes halmaz醤ak inform醠is le韗醩醫 tartalmazza, ez閞t referenciak閚t szolg醠hat azon felhaszn醠髃 sz醡醨a, akik ontol骻i醟at k韛醤nak 閜韙eni.
Ezt a dokumentumot a W3C Tagjai 閟 m醩 閞dekelt r閟ztvev鮧 ellen鮮izt閗, 閟 az Igazgat W3C Aj醤l醩k閚t hiteles韙ette. Az Aj醤l醩 elk閟z韙閟関el a W3C c閘ja 閟 szerepe az, hogy r醝r醤y韙sa a figyelmet a specifik醕i髍a, 閟 el鮯eg韙se annak sz閘es k鰎 alkalmaz醩醫. Ez megn鰒eli a Web haszn醠hat髎醙醫, 閟 jav韙ja a Weben t鰎t閚 egy黷tm鹝鰀閟t.
Ez a dokumentum annak a hat r閟zb鮨 醠l W3C Aj醤l醩nak egyik r閟ze, mely az OWL Web Ontol骻ia Nyelvet szabv醤yos韙ja. Ezt az Aj醤l醩t a W3C Szemantikus Web Munkaprogramja keret閎en a Web Ontol骻ia Munkacsoport dolgozta ki, 閟 2004. febru醨 10. d醫ummal publik醠ta. (L醩d a Munkaprogram-nyilatkozatot 閟 a Munkacsoport Alapszab醠y醫.)
Az OWL konstrukci骿醤ak a dokumentumok kor醔bi verzi骿醔an le韗t v醠tozat醫 jelent鮯en 醫dolgozt醟, s ez a konstrukci kiel間韙i a Munkacsoport technikai k鰒etelm閚yeit. A Munkacsoport megvizsg醠ta az 鰏szes be閞kezett 閟zrev閠elt, 閟 elv間ezte a sz黭s間es jav韙醩okat. Az Aj醤l醩tervezet 髏a a jelen Aj醤l醩 megsz黮et閟閕g a dokumentumon v間rehajtott m骴os韙醩okat a V醠toztat醩i napl螯/a> r閟zletezi.
A Munkacsoport sz韛esen fogadja az 閟zrev閠eleket a public-webont-comments@w3.org (E-mail arch韛um) c韒閚, az idev醙 technol骻i醟 醠tal醤os vit醞醫 pedig a www-rdf-logic@w3.org (E-mail arch韛um) c韒閚 folytatja.
Rendelkez閟re 醠l egy konszign醕i az ismert alkalmaz醩okr髄.
A W3C list醫 vezet tov醔b azokr髄 a felfedett szabadalmi ig閚yekr鮨 is, amelyek ehhez a munk醜oz kapcsol骴nak.
Ez a szekci a dokumentumnak a publik醠醩kor 閞v閚yes st醫us醫 r鰃z韙i. M醩 dokumentumok hat醠ytalan韙hatj醟 ezt a dokumentumot. A leg鷍abb W3C publik醕i髃 list醞a, valamint e technikai riport utols kiad醩a megtal醠hat a W3C technikai riportok index閎en, ahttp://www.w3.org/TR/ alatt.
A jelen dokumentum egyes r閟zei a "DAML+OIL (March 2001) Reference Description" [DAML+OIL] dokumentumb髄 sz醨maznak, amelyet a DAML+OIL W3C Note r閟zek閚t terjesztettek el? Ennek a dokumentumnak 閟 kor醔bi v醠tozatainak szponzorai k黮鰊leges k鰏z鰊etet 閞demelnek.
Jeremy Carroll, Jim Hendler, Brian McBride 閟 Peter Patel-Schneider l閚yegbev醙 lektori munk醫 v間eztek az anyagon, 閟 bizonyos sz鰒egr閟zek szerz鮥k閚t is k鰖rem鹝鰀tek. Jerome Euzenat bocs醫otta rendelkez閟黱kre a Felsorol醩 adatt韕ussal kapcsolatos egyik p閘d醫.
Ez a dokumentum azoknak a sz閘es k鰎 eszmecser閗nek 閟 egyeztet閟eknek az eredm閚ye, melyeket a Web Ontol骻ia Munkacsoporton mint eg閟zen bel黮 folytattunk. A r閟ztvev鮧 ebben a munkacsoportban: Yasser alSafadi, Jean-Fran鏾is Baget, James Barnette, Sean Bechhofer, Jonathan Borden, Frederik Brysse, Stephen Buswell, Jeremy Carroll, Dan Connolly, Peter Crowther, Jonathan Dale, Jos De Roo, David De Roure, Mike Dean, Larry Eshelman, J閞鬽e Euzenat, Tim Finin, Nicholas Gibbins, Sandro Hawke, Patrick Hayes, Jeff Heflin, Ziv Hellman, James Hendler, Bernard Horan, Masahiro Hori, Ian Horrocks, Jane Hunter, Francesco Iannuzzelli, R黡iger Klein, Natasha Kravtsova, Ora Lassila, Massimo Marchiori, Deborah McGuinness, Enrico Motta, Leo Obrst, Mehrdad Omidvari, Martin Pike, Marwan Sabbouh, Guus Schreiber, Noboru Shimizu, Michael Sintek, Michael K. Smith, John Stanton, Lynn Andrea Stein, Herman ter Horst, David Trastour, Frank van Harmelen, Bernard Vatant, Raphael Volz, Evan Wallace, Christopher Welty, Charles White 閟 John Yanosy.
Ez a dokumentum az OWL modellez nyelvi elemeinek szisztematikus 閟 t鰉鰎 informat韛 le韗醩醫 ny鷍tja az OWL sz醡醨a is 閞v閚yes RDF/XML adatcsere-szintaxis seg韙s間関el.
A jelen dokumentum annak az OWL Web Ontol骻ia Nyelv-le韗醩nak az egyik komponense, amelyet a W3C Web Ontol骻ia Munkacsoportja (WebOnt) k閟z韙. Az OWL 羣tekint閟 dokumentum 1.1 szekci骿a, "A javasolt olvas醩i sorrend" bemutatja az egyes r閟z-dokumentumokat, 閟 azt, hogy ezek mik閚t illeszkednek egym醩hoz. Azok az olvas髃, akik m間 nem ismerik az OWL-t, els鮧閚t elolvashatj醟 az [OWL 羣tekint閟] dokumentumot, majd folytathatj醟 az [OWL 趖mutat螯/a>] dokumentummal, mely olvasm醤yosabban mutatja be, 閟 p閘d醟kal illusztr醠ja a nyelv haszn醠at醫.
A jelen dokumentum felt閠elezi, hogy az olvas ismeri az RDF alapfogalmait [RDF Fogalmak], 閟 gyakorlati ismeretekkel is rendelkezik az RDF szintaxisa [RDF/XML Szintaxis], valamint az RDF S閙a, azaz az [RDF Sz髃閟zlet] ter黮et閚.
Az OWL nyelvi konstrukci髃 pontos szintaxis醤ak normat韛 defin韈i骿a az OWL Szemantika 閟 absztrakt szintaxis [OWL Sz&ASz] dokumentumban tal醠hat? Ugyanez a dokumentum tartalmazza – modell-elm閘eti szemantika form醞醔an – a nyelvi konstrukci髃 jelent閟閚ek prec韟 defin韈i骿醫 is. Ugyancsak ez a dokumentum t醨gyalja az olyan fogalmakat, mint Pl.: az OWL ontol骻i醟 konzisztenci醞a.
Az OWL nyelv alkalmaz醩i eseteit, illetve k鰒etelm閚yeit az [OWL K鰒etelm閚yek] dokumentum 韗ja le, az OWL eszk鰖鰇 tesztel閟i l閜閟eit pedig az [OWL Tesztsorozat] dokumentum specifik醠ja. Ebben tal醠hat髃 tesztsorozatok a k鰒etkeztet閟i helyess間 (entailment correctness) 閟 az ellentmond醩-mentess間 (konzisztencia) ellen鮮z閟閞e is.
Ahogy azt m醨 az [OWL 羣tekint閟] 閟 az [OWL 趖mutat螯/a>] dokumentum is t醨gyalta, az OWL nyelvnek k閠 specifikus r閟zhalmaza (alnyelve) van, amelyekr鮨 鷊y hissz黭, hogy el鮪y鰏ek lehetnek a nyelv implementorai 閟 felhaszn醠骾 sz醡醨a. Ezek k鰖黮 az OWL Lite-ot 鷊y tervezt閗 meg, hogy egyr閟zt k鰊nyen implement醠hat legyen, m醩r閟zt a nyelv olyan funkcion醠is r閟zhalmaz醫 val髎韙sa meg, mely seg韙i a felhaszn醠髏 az elindul醩ban. Az OWL DL-t – ahol a "DL" a Description Logic, (le韗 logika) r鰒id韙閟e – arra tervezt閗, hogy t醡ogassa a megl関 le韗 logikai 鼁leti szegmenst, 閟 olyan nyelvi r閟zhalmazt biztos韙son, mely a k鰒etkeztet rendszerek szempontj醔髄 kedvez kisz醡韙hat髎醙i tulajdons醙okkal rendelkezik. A teljes OWL nyelv (amelyet OWL Full-nak, azaz teljes OWL-nak nevez黱k, hogy megk黮鰊b鰖tess黭 a k閠 r閟zhalmazt髄) feloldja az OWL DL n閔醤y k鰐鰐ts間閠, amennyiben olyan opci髃at biztos韙, amelyek sok adatb醶iskezel 閟 tud醩醔r醶ol rendszer sz醡醨a el鮪y鰏ek, de amelyek 醫h醙j醟 a le韗 logikai k鰒etkeztet rendszerek hat醨ait.
MEGJEGYZ蒘: Az RDF dokumentumok 醠tal醔an OWL Full nyelven 韗骴nak, hacsak nem kifejezetten OWL DL-re vagy Lite-ra tervezt閗 鮧et.
Az OWL Full 閟 az OWL DL az OWL nyelvi konstrukci骾nak ugyanazt a halmaz醫 t醡ogatj醟. A k閠 alnyelv k黮鰊bs間e abban 醠l, hogy milyen korl醫oz醩ok mellett haszn醠hatj醟 ezeket a nyelvi konstrukci髃at, valamint abban, hogy kihaszn醠hatj醟-e az RDF alapvet tulajdons醙ait. Az OWL Full p閘d醬l lehet鮲 teszi az OWL 閟 az RDF S閙a vegyes haszn醠at醫, 閟 ugyan鷊y, mint az RDF S閙a, nem er鮨teti az oszt醠yok, tulajdons醙ok, egyedek 閟 adat閞t閗ek szigor sz閠v醠aszt醩醫. Az OWL DL azonban korl醫ozza a vegyes haszn醠atot, 閟 megk鰒eteli, hogy az oszt醠yok, tulajdons醙ok, egyedek 閟 adat閞t閗ek diszjunkt halmazokat alkossanak. Az OWL DL alnyelv l閠閠 az indokolja, hogy az eszk鰖fejleszt鮧 m醨 kor醔ban olyan ontol骻i醟 t醡ogat醩醨a szolg醠 nagy teljes韙m閚y k鰒etkeztet rendszereket fejlesztettek ki, amelyek korl醫oz醩ai 閜pen az OWL DL korl醫oz醩ait ig閚ylik. Az OWL Full 閟 az OWL DL k黮鰊bs間einek form醠is defin韈i骿醫 az OWL Szemantika 閟 absztrakt szintaxis [OWL Sz&ASz] dokumentum 8.2 "OWL DL" szekci骿a adja meg, mely 鰏szefoglalja az OWL Full 閟 az OWL DL k鰖鰐ti k黮鰊bs間eket is.
Az OWL Lite az OWL DL alnyelve, mely az OWL nyelvi konstrukci骾nak csup醤 egy r閟zhalmaz醫 t醡ogatja. Az OWL Lite-ot els鮯orban olyan eszk鰖fejleszt鮧nek sz醤t醟, akik t醡ogatni k韛醤j醟 az OWL-t, de els l閜閟ben a nyelvi konstrukci髃nak csak egy viszonylag egyszer? de alapvet r閟zhalmaz醫 szeretn閗 megc閘ozni. Az OWL Lite ugyanazokhoz a szemantikai korl醫oz醩okhoz tartja mag醫, mint az OWL DL, s ez lehet鮲 teszi, hogy a k鰒etkeztet鮣閜ek garant醠ni tudjanak bizonyos k韛醤atos tulajdons醙okat. Az OWL Lite-ban enged閘yezett nyelvi konstrukci髃 鰏szefoglal醩醫 a 8.3 szekci螯/a> tartalmazza. Az OWL Lite 醠tal t醡ogatott nyelvi konstrukci髃 form醠is le韗醩醫 az OWL Szemantika 閟 absztrakt szintaxis [OWL Sz&ASz] dokumentumban tal醠ja meg az olvas?
MEGJEGYZ蒘: Azok az RDF felhaszn醠髃, akik szeretn閚ek 醫醠lni az OWL-ra, vegy閗 figyelembe, hogy az OWL Lite nem puszt醤 csak egy kiterjeszt閟e az RDF S閙醤ak! Az OWL Lite val骿醔an egy "k鰊ny韙ett" v醠tozata az OWL DL-nek, mely korl醫ozza az RDF sz髃閟zlet haszn醠at醫 (pl. oszt醠yok, tulajdons醙ok stb. diszjunktivit醩a). Az OWL Full-t viszont 閜pen az RDF-fel val maxim醠is kompatibilit醩ra tervezt閗, 閟 韌y ez a megfelel nyelv, amellyel az RDF felhaszn醠髃 elindulhatnak. Amikor az OWL DL vagy az OWL Lite haszn醠at醫 fontolgatjuk, m閞legeln黱k kell, hogy az OWL DL/Light el鮪yei a k鰒etkeztet閟 t醡ogat醩醔an t鯾bet nyomnak-e a latban, mint az OWL DL/Light h醫r醤yai az OWL 閟 RDF konstrukci髃 korl醫ozott haszn醠at醔an.
MEGJEGYZ蒘: Az OWL Lite-ot ebben a dokumentumban 鷊y t醨gyaljuk, mint az OWL DL n閔醤y tov醔bi korl醫oz醩醫. Ez azt jelenti, hogy az OWL DL konstrukci髃 az OWL Lite-nak is r閟zei, hacsak kifejezetten m醩k閚t nem defini醠juk. A 8.3 szekci螯/a> foglalja 鰏sze az OWL Lite-ra vonatkoz t鯾bletkorl醫oz醩okat.
Egy OWL ontol骻ia tulajdonk閜pen egy RDF gr醘 [l醩d: RDF Fogalmak], mely RDF tripletekb鮨 醠l. Ugyan鷊y, mint b醨milyen RDF gr醘, az OWL ontol骻ia gr醘ja is sokf閘e szintaktikai form醔an le韗hat (L醩d az RDF/XML Szintaxis specifik醕i 鷍 kiad醩醔an [RDF/XML Szintaxis]). A jelen dokumentum (az 趖mutat骽oz hasonl骯n) az RDF/XML szintaxisnak egy specifikus form醞醫 haszn醠ja a tripletek 醔r醶ol醩醨a. Az OWL ontol骻ia jelent閟閠 azonban kiz醨髄ag az RDF gr醘 hat醨ozza meg. 蚲y teh醫 haszn醠hatunk b醨mi m醩 RDF/XML szintaxisform醫 is, ha ez ugyanazokat az alapvet RDF tripleteket produk醠ja. B醨milyen szintaxisforma, mely megfelel ennek a krit閞iumnak, ugyanazt a jelent閟tartalmat 醔r醶olja, mint a jelen dokumentumban haszn醠t forma.
Az al醔bi p閘da k閠 alternat韛 form醫 mutat be, melynek eredm閚ye ugyanaz az RDF triplet. Tekints黭 a k鰒etkez RDF/XML szintaxist:
<owl:Class rdf:ID="Continent"/>
Az al醔bi RDF/XML szintaxis
<rdf:Description rdf:about="#Continent"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/> </rdf:Description>
ugyanazt az RDF tripletet k骴olja, mint a fenti, 閟 ez閞t ugyanazt a jelent閟t hordozza.
Az OWL az RDF sz髃閟zlet (RDF vocabulary) kiterjeszt閟e [RDF Szemantika]. 蚲y teh醫 minden RDF gr醘 egy OWL Full ontol骻i醫 alkot. Ebb鮨 k鰒etkez鮡n az OWL 醠tal el踽ll韙ott RDF gr醘 jelent閟e ugyanaz, mint az RDF 醠tal el踽ll韙ott gr醘? Az OWL Full ontol骻i醟 ez閞t tetsz鮨eges RDF tartalmat foglalhatnak magukban, amelyek kezel閟e is konzisztens az RDF kezel閟関el. Az OWL azonban tov醔bi jelent閟t tulajdon韙hat egyes RDF tripleteknek. Az OWL Szemantika 閟 absztrakt szintaxis dokumentum [OWL Sz&ASz] specifik醠ja, hogy pontosan mely tripletekhez rendel specifikus jelent閟t az OWL, 閟 hogy mi ez a jelent閟.
MEGJEGYZ蒘 : Mint m醨 kor醔ban is eml韙ett黭, az OWL DL 閟 OWL Lite kiterjeszti az RDF sz髃閟zletet, de korl醫oz醩okat is bevezet e sz髃閟zlet haszn醠at醨a. Ez閞t az RDF dokumentumok 醠tal醔an OWL Full-ban is 閞v閚yes dokumentumok (kiv関e, ha kifejezetten OWL DL vagy Lite dokumentumk閚t k骴olt醟 鮧et).
A k鰊nyebb olvashat髎醙 kedv殚rt e dokumentum p閘d醝 felt閠elezik, hogy az
olyan XML entit醩ok, mint &rdf;
&rdfs;
&owl;
閟 &xsd;
(XML S閙a adatt韕us) el鮮e
defini醠va vannak oly m骴on, ahogy a B. F黦gel閗
ismerteti. Ugyanez 閞v閚yes az ezeknek megfelel olyan n関terekre is, mint az
rdf:
rdfs:
, owl:
閟
xsd:
.
A p閘d醟at ebben a dokumentumban csak az OWL nyelvi szerkezetek illusztr醠醩醨a sz醤tuk. Ezek itt nem alkotnak egy konzisztens ontol骻i醫. Egy komplettebb p閘d醫 tal醠hat az olvas az [OWL 趖mutat螯/a>] dokumentumban.
Az OWL-nak az a k閜ess間e, hogy ontol骻iai inform醕i髏 lehet vele
kifejezni olyan egyedekr鮨, amelyek t鯾b dokumentumb髄 sz醨maznak, szigor鷄n
szab醠yozott m骴on t醡ogatja az adatok 鰏szekapcsol醩醫. A nyelv be閜韙ett
szemantik醞a t醡ogatja az 鰏szekapcsolhat inform醕i髃 logikai feldolgoz醩醫
is, s ez nem v醨t eredm閚yekhez vezethet. K黮鰊鰏en igaz ez az owl:sameAs haszn醠at醨a, amellyel l醫sz髄ag k黮鰊b鰖
egyedekr鮨 azt 醠l韙hatjuk, hogy val骿醔an azonosak. Az owl:InverseFunctionalProperty
kifejez閟 szint閚 alkalmas arra, hogy seg韙s間関el egyedeket kapcsoljunk
鰏sze. Ha egy olyan tulajdons醙r髄, mint pl. a "TAJsz醡a
", azt
jelentj黭 ki, hogy Ford韙ott Funkcion醠is Tulajdons醙, akkor a k閠 k黮鰊b鰖
egyedet (pl. ugyanazon TAJ-sz醡 k閠 k黮鰊b鰖 n関en szerepl birtokos醫)
azonosnak lehet tekinteni azon az alapon, hogy ezen tulajdons醙uk 閞t閗e
azonos. Amikor az egyedekr鮨 ilyen m骴on meg lehet 醠lap韙ani, hogy azonosak,
akkor a vel黭 kapcsolatos, k黮鰊b鰖 forr醩okb髄 sz醨maz inform醕i髃
egyes韙het鮧. Ez az adategyes韙閟i (aggregation) funkci teh醫 arra is
haszn醠hat? hogy olyan t閚yeket is meg醠lap韙hassunk, amelyek egyik
forr醩ban sincsenek k鰖vetlen黮 醔r醶olva.
A Szemantikus Web-nek az a k閜ess間e, hogy t鯾b forr醩b髄 tudunk vele inform醕i髃at egyes韙eni, egy sz黭s間es 閟 rendk韛黮 gy黰鰈cs鰖 tulajdons醙, mely sok alkalmaz醩n醠 j髄 kihaszn醠hat? Azonban az a lehet鮯間, hogy k黮鰊b鰖 forr醩okb髄 adatokat lehet integr醠ni, az OWL k鰒etkeztet k閜ess間eivel kombin醠va mag醔an hordja a vissza閘閟 lehet鮯間閠 is. Az OWL felhaszn醠骾nak 閎ereknek kell teh醫 lenni黭, ha meg akarj醟 鮮izni a priv醫 szf閞醞uk integrit醩醫. A r閟zletes biztons醙i megold醩okat a Munkacsoport nem tekintette feladat醤ak. T鯾b olyan szervezet foglalkozik azonban ezekkel a k閞d閟ekkel, amelyek a biztons醙i- 閟 preferencia-megold醩ok k黮鰊b鰖 v醠tozatait k韓醠j醟 (l醩d, pl. SAML 閟 P3P).
Dokumentumunk v間閚 tal醠hat egy sor f黦gel閗, mely tov醔bi inform醕i髃at tartalmaz az anyag meg閞t閟閔ez.
A dokumentumban azok a linkek, amelyeket a nyelvi konstrukci髃 defin韈i骾n醠 megadtunk, k鰖vetlen黮 el閞het鮲 teszik a megfelel szemantikai le韗醩t az OWL Szemantika 閟 absztrakt szintaxis dokumentumban [OWL Sz&ASz]. Az A. f黦gel閗 a nyelvi konstrukci髃 neveinek, illetve hiperlinkjeinek olyan t醔l醶ata, mely kereszthivatkoz醩t teremt az 趖mutat? a Referencia 閟 a Szemantika dokumentum azon szekci骾 k鰖鰐t, amelyek ugyanazt a nyelvi konstrukci髏 t醨gyalj醟.
A B. f黦gel閗 az OWL nyelvi
konstrukci髃 RDF s閙醞醫 tartalmazza. Ez a s閙a inform醕i髃at szolg醠tat az
OWL sz髃閟zlet閞鮨, 閟 hasznos referenciapont lehet az ontol骻ia閜韙鮧 閟
eszk鰖fejleszt鮧 sz醡醨a. Azok a korl醫oz醩ok, amelyeket az OWL oszt醠yokkal
閟 tulajdons醙okkal kapcsolatban a s閙a k鰖鰈, csak informat韛 jelleg鹐k, 閟
nem teljesek. Tov醔b? ez a s閙a nem tesz k黮鰊bs間et az OWL Full, az OWL DL
閟 az OWL Lite k鰖鰐t sem. A hagyom醤yoknak megfelel鮡n, az oszt醠yok neveit
nagy kezd鮞et鹶el, a tulajdons醙ok閠 pedig kis kezd鮞et鹶el 韗juk. 蚲y teh醫
az owl:Ontology
egy oszt醠y, m韌 az owl:imports
egy
tulajdons醙.
MEGJEGYZ蒘: Az OWL ontol骻i醟ban nem sz黭s間es explicit m骴on
import醠ni (az owl:imports
seg韙s間関el) az RDF S閙a f醞lt. A
s閙a itt informat韛 jelleg? 閟 csak arra szolg醠, hogy rendelkez閟re
bocs醩sa azokat az oszt醠yokat 閟 tulajdons醙okat, amelyeket az RDF/XML
szintaxis haszn醠. Azok, akik m間is import醠j醟 ezt a s閙醫, sz醡韙sanak
arra, hogy az ontol骻i醞uk OWL Full ontol骻ia lesz.
A C. f黦gel閗 egy t醔l醶atos 醫tekint閟 az OWL sz髃閟zlet閞鮨, mely a nyelvi elemeket k閠 r閟zre (be閜韙ett OWL oszt醠yokra, illetve tulajdons醙okra) bontja. A tulajdons醙okn醠 az 閞v閚yess間i k鰎t 閟 az 閞t閗tartom醤yt is felt黱teti.
Azon olvas髃 sz醡醨a, akik ismerik a DAML+OIL nyelvet, a D. f黦gel閗 felsorolja a DAML+OIL 閟 az OWL k鰖鰐ti elt閞閟ek nagy r閟z閠.
蓅 v間黮 az E. f黦gel閗 egy gyakorlati vez閞fonalat ad az OWL DL-szint ontol骻i醟 RDF-ben t鰎t閚 specifik醠醩醜oz.
Egy OWL dokumentum (tipikusan) egy opcion醠is ontol骻ia-header-b鮨, plusz tetsz鮨eges sz醡 oszt醠yaxiom醔髄, tulajdons醙axiom醔髄 閟 egyeddel kapcsolatos t閚y醠l韙醩b髄 醠l. Megjegyzend? hogy az "axi髆a" egy form醠is kifejez閟, amelyet a Szemantika (Sz&ASz) dokumentum haszn醠. Az axi髆醟at kiss inform醠isabban "defin韈i髃nak" nevezz黭 az 趖mutat 閟 az 羣tekint閟 dokumentumban.
MEGJEGYZ蒘: Az OWL semmilyen m骴on nem korl醫ozza a komponensek sorrendj閠 az ontol骻i醤 bel黮. Persze, mindig haszn醠unk valamilyen sorrendet (p閘d醬l az ontol骻ia elej閞e tessz黭 a headert), de ennek nincs hat醩a a jelent閟閞e. Az ontol骻i醫 feldolgoz eszk鰖鰇 sem t閠elezhetnek fel semmilyen k鰐鰐t sorrendet.
Mint a legt鯾b RDF dokumentumn醠, az OWL-n醠 is minden elem az
rdf:RDF
elem al van rendelve. Ez a befogad elem tartalmazza
醠tal醔an az XML n関ter閠 閟 b醶isdeklar醕i骾t is. Egy ontol骻iadokumentum is
gyakran kezd鮠ik egy sor entit醩deklar醕i髒al. Az ilyen t韕us inform醕i髍a
tipikus p閘d醫 mutat be a Bor 閟 az 蓆el ontol骻ia, amelyet az [OWL 趖mutat螯/a>] t醨gyal.
Az OWL be閜韙ett sz髃閟zlet閠 az OWL n関t閞
http://www.w3.org/2002/07/owl#
defini醠ja, mely konvencion醠isan az owl
n関hez van
kapcsolva. Aj醤latos, hogy az ontol骻i醟 ebb鮨 a (t醙abb) n関t閞b鮨 kiz醨髄ag
a be閜韙ett sz髃閟zletet haszn醠j醟. Az OWL eszk鰖鰇 fejleszt鮥 teh醫 akkor
j醨nak el helyesen, ha a programjukb髄 figyelmeztet jelz閟t adnak, amikor a
felhaszn醠 m醩 neveket is haszn醠, de ezt k鰒et鮡n a programnak norm醠isan
tov醔b kell folytatnia a feldolgoz醩t.
A Web Ontol骻ia Munkacsoport nem ig閚yelt k黮鰊 MIME t韕ust az OWL
dokumentumok sz醡醨a. Ehelyett az RDF Core Munkacsoport 醠tal
ig閚yelt MIME t韕us haszn醠at醫 aj醤lja (nevezetesen az application/rdf+xml
[l醩d: RDF Fogalmak], vagy
alternat韛ak閚t az application/xml
MIME t韕ust).
F醞ln関-kiterjeszt閟k閚t az .rdf
vagy az .owl
kiterjeszt閟t aj醤lja a Munkacsoport.
Az oszt醠yok olyan absztrakci髎 mechanizmusok, amelyek seg韙s間関el csoportos韙hatjuk az azonos tulajdons醙 er鮢orr醩okat. Ugyan鷊y, mint az RDF-n閘, az OWL-n醠 is egy oszt醠yhoz egyedek halmaz醫 asszoci醠juk, s ezt az oszt醠y kiterjed閟閚ek nevezz黭. Az oszt醠y kiterjed閟閠 alkot egyedeket (angolul: individuals) m醩 szavakkal az oszt醠y p閘d醤yainak, eseteinek, vagy el鮢ordul醩ainak is h韛juk (angolul: "instances"). Az oszt醠y jelent閟e intenzion醠is (azaz absztrakt fogalmat takar), amely kapcsolatos ugyan, de nem azonos az oszt醠y kiterjed閟関el (ami extenzion醠is, teh醫 konkr閠 jelent閟?. 蚲y teh醫 k閠 oszt醠ynak lehet ugyanaz a kiterjed閟e, m間is k黮鰊b鰖 oszt醠yokat alkothatnak.
Amikor ebben a dokumentumban azt mondjuk, hogy "egyedek oszt醠ya", ezt 鷊y 閞tj黭, hogy "egy oszt醠y, amelynek az oszt醠ykiterjed閟e egyedekb鮨 醠l..."
MEGJEGYZ蒘: Az OWL Lite-ban 閟 az OWL DL-ben egy egyed nem lehet egyidej鹟eg oszt醠y is: az egyedek 閟 oszt醠yok itt diszjunkt fogalmi k鰎t alkotnak (mik閚t a tulajdons醙ok 閟 az adat閞t閗ek is). Ezzel szemben az OWL Full az RDF S閙衢hoz hasonl szabads醙ot biztos韙: egy oszt醠y fell閜het egy m醩ik (meta)oszt醠y egyedek閚t is.
Az OWL oszt醠yokat "oszt醠yle韗醩ok" seg韙s間関el defini醠juk, amelyek "oszt醠yaxi髆醟k? kombin醠hat髃. Az al醔biakban el鮯z鰎 az oszt醠yle韗醩okat ismertetj黭, majd pedig oszt醠yaxi髆醟k alak韙醩ukat t醨gyaljuk.
Ebben a dokumentumban (閟 az OWL Szemantika 閟 absztrakt szintaxis dokumentumban is) oszt醠yle韗醩ok alatt az oszt醠yaxi髆醟 alapvet 閜韙鮧鰒eit 閞tj黭. (Az oszt醠yaxi髆醟at, kev閟b form醠isan, oszt醠ydefin韈i髃nak h韛juk az 羣tekint閟 閟 az 趖mutat dokumentumban). Egy oszt醠yle韗醩 az oszt醠yt a nev閚ek, vagy a kiterjed閟閚ek a megad醩醰al 韗ja le. Az el鮞bi esetben neves韙ett, az ut骲bi esetben n関telen oszt醠yr髄 besz閘黱k.
Az OWL hatf閘e oszt醠yle韗醩t k黮鰊b鰖tet meg:
Az els t韕us k黮鰊leges abban az 閞telemben, hogy az oszt醠yt puszt醤 az oszt醠y nev関el 韗ja le (amit szintaktikailag egy URI hivatkoz醩 醔r醶ol). A t鯾bi 鰐 oszt醠yle韗醩 t韕us n関telen oszt醠yt 韗 le, m間pedig oly m骴on, hogy korl醫oz醩okat fogalmaz meg az oszt醠y kiterjed閟閞e (azaz a lehets間es egyedeire) vonatkoz骯n.
Az 2. t韕us olyan oszt醠yt 韗 le, amelyik pontosan 閟 kiz醨髄ag a felsorolt egyedekb鮨 醠l. A 3. t韕us olyan oszt醠yt hat醨oz meg, amelynek az egyedei kiel間韙enek egy bizonyos tulajdons醙korl醫oz醩t. A 4., az 5. 閟 a 6. t韕us olyan oszt醠yt specifik醠, mely m醩 oszt醠yle韗醩ok Boole-algebrai kombin醕i骿醤ak felel meg. (A metszet, az uni 閟 a komplemens rendre az 蒘, VAGY, illetve a NEM oper醫ornak felel meg.) Az utols n間y oszt醠yle韗醩 egym醩ba skatuly醶hat? 閟 韌y elvileg tetsz鮨egesen bonyolult oszt醠yle韗醩t alkothatnak. A gyakorlatban azonban az egym醩ba skatuly醶hat szintek sz醡醫 醠tal醔an korl醫ozz醟.
Az 1. t韕us oszt醠yle韗醩t szintaktikailag az owl:Class (az
rdfs:Class
: aloszt醠ya) egy neves韙ett egyed閚ek megad醩醰al
醔r醶oljuk:
<owl:Class rdf:ID="Human"/>
Ez a mondat az "ex:Human rdf:type owl:Class ."
tripletet
gener醠ja, ahol ex:
a Human fogalmat tartalmaz
t閙ater黮et ontol骻i醞醤ak a n関tere.
MEGJEGYZ蒘: Az OWL Lite-ban 閟 az OWL DL-ben az
owl:Class
(vagy a k閟鮞b ismertetend
owl:Restriction
) elem keret閎en adjuk meg az 鰏szes
oszt醠yle韗醩t.
MEGJEGYZ蒘: Az owl:Class
az
rdfs:Class
aloszt醠yak閚t van defini醠va. Annak az oka, hogy egy
k黮鰊 "OWL Class" konstrukci髏 haszn醠unk, az OWL DL 閟 az OWL Lite
korl醫aiban keresend? E korl醫ok miatt nem minden RDFS oszt醠y leg醠is OWL
DL oszt醠y is. Az OWL Full-ban ezek a korl醫oz醩ok nem 閞v閚yesek, ez閞t ott
az owl:Class
閟 az rdfs:Class
egyen閞t閗?
A m醩ik 鰐 oszt醠yle韗醩i forma RDF tripletek (gr醘-elemek) halmaz醔髄
醠l, ahol egy 黵es csom髉ont az 閜pen defini醠t oszt醠yt 醔r醶olja. Ennek az
黵es csom髉ontnak van egy rdf:type
tulajdons醙a, amelynek 閞t閗e
az owl:Class
.
MEGJEGYZ蒘: Ha egy RDF azonos韙髒al l醫juk el a felsorol醩, a metszet, az uni vagy a komplemens t韕us oszt醠yle韗醩t, akkor ezt m醨 nem oszt醠yle韗醩nak, hanem egy komplett oszt醠yt defini醠 oszt醠yaxi髆醤ak tekintj黭. A r閟zleteket l醩d a 3.2.3 szekci骲an.
MEGJEGYZ蒘: Ebben a dokumentumban a k鰊nyebb olvashat髎醙 kedv殚rt "oszt醠yle韗醩"-t 韗unk, amikor azt akarjuk mondani, hogy "az oszt醠y, amelyet az oszt醠yle韗醩sal defini醠unk". Szigor鷄n v関e ez k閠 k黮鰊b鰖 dolog a 2-6 t韕us oszt醠yle韗醩ok eset閎en: az oszt醠yt a megfelel 黵es csom髉ont 醔r醶olja; az oszt醠y le韗醩醫 pedig azok a tripletek 醔r醶olj醟, amelyeknek ez az 黵es csom髉ont az alanyuk.
K閠 OWL oszt醠yazonos韙髏 el鮮e defini醠 a nyelv; nevezetesen az owl:Thing 閟
az owl:Nothing
azonos韙髏. Az owl:Thing
oszt醠ykiterjed閟e az 鰏szes egyedek
halmaza, m韌 az owl:Nothing
oszt醠y kiterjed閟e az 黵es halmaz.
Ebb鮨 az k鰒etkezik, hogy minden oszt醠y az owl:Thing
aloszt醠ya, valamint az, hogy az owl:Nothing
minden m醩
oszt醠ynak aloszt醠ya. (Az aloszt醠yrel醕i jelent閟閠 l醩d az rdfs:subClassOf
szekci骲an.)
A "Felsorol醩" t韕us
oszt醠yle韗醩t az owl:oneOf
tulajdons醙 seg韙s間関el adjuk meg. Ennek a be閜韙ett OWL tulajdons醙nak az
閞t閗ei azon egyedek list醞a, amelyek az oszt醠yt
alkotj醟. Ez lehet鮲 teszi, hogy egy oszt醠yt defini醠hassunk az egyedeinek
a teljes felsorol醩醰al. Az owl:oneOf
seg韙s間関el le韗t oszt醠y
kiterjed閟e pontosan a felsorolt egyedeket tartalmazza; sem t鯾bet, sem
kevesebbet. Az egyedek list醞醫 tipikusan az
rdf:parseType="Collection"
RDF konstrukci髒al 醔r醶oljuk, mely
k閚yelmes r鰒id韙閟i lehet鮯間eket biztos韙 a listaelemek le韗醩醜oz.
P閘d醬l, az al醔bi RDF/XML szintaxis a kontinensek oszt醠y醫 defini醠ja:
<owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Eurasia"/> <owl:Thing rdf:about="#Africa"/> <owl:Thing rdf:about="#NorthAmerica"/> <owl:Thing rdf:about="#SouthAmerica"/> <owl:Thing rdf:about="#Australia"/> <owl:Thing rdf:about="#Antarctica"/> </owl:oneOf> </owl:Class>
Az <owl:Thing rdf:about="..."/>
RDF/XML szintaxis
valamilyen egyedre utal (eml閗ezz黱k, hogy minden egyed
automatikusan az owl:Thing
oszt醠y egyede).
Az adatt韕usokkal foglalkoz szekci骲an l醫ni fogjuk az
owl:oneOf
egy m醩 c閘 haszn醠at醫 is, nevezetesen, amikor adat閞t閗eket sorolunk fel a seg韙s間関el.
MEGJEGYZ蒘: a "Felsorol醩" elem az OWL Lite-ban nem haszn醠hat?
A tulajdons醙korl醫oz醩 az oszt醠yle韗醩 speci醠is form醞a, mely egy n関telen oszt醠yt 韗 le, nevezetesen: mindazon egyedek oszt醠y醫, amelyek megfelelnek az adott korl醫oz醩nak. Az OWL a tulajdons醙korl醫oz醩ok k閠 t韕us醫 k黮鰊b鰖teti meg: az 閞t閗korl醫oz醩t 閟 a kardinalit醩korl醫oz醩t.
Az 閞t閗korl醫oz醩 valamely tulajdons醙
閞t閗tartom醤y醫 hat醨ozza meg az 閜pen le韗t oszt醠yra 閞v閚yes
hat醠lyal. P閘d醬l ennek seg韙s間関el hivatkozhatn醤k azokra az
egyedekre, amelyekn閘 a "szomsz閐osMegy閖e
" tulajdons醙 閞t閗e
valamilyen Dun醤t鷏iMegye
, majd pedig haszn醠hatn醤k ezt a
hivatkoz醩t egy oszt醠yaxi髆醤 bel黮 (ak醨 m間 mag醤 a
Dun醤t鷏iMegye
oszt醠yaxi髆醞醤 bel黮 is). Figyelj黭 meg
azonban, hogy ez az 閞t閗korl醫oz醩 k黮鰊b鰖ik pl. az
rdfs:range
-t鮨, mely minden黷t hat醠yos, ahol az 醠tala
korl醫ozott tulajdons醙ot haszn醠juk.
A kardinalit醩korl醫oz醩
seg韙s間関el azt hat醨ozhatjuk meg az adott oszt醠yle韗醩 kontextus醤
bel黮 (azaz lok醠is 閞v閚nyel), hogy egy tulajdons醙 h醤y k黮鰊b鰖
閞t閗et vehet fel. P閘d醬l: megadhatn醤k azt, hogy a Futballcsapat nev
oszt醠y j醫閗osa
tulajdons醙醤ak 11 閞t閗e lehet (pl. a 11
j醫閗os neve). Egy kos醨labdacsapat eset閚 ugyanez a tulajdons醙 csak 5
閞t閗et vehetne fel.
Az OWL t醡ogat egy korl醫ozott sz醡 olyan konstrukci髏 is, nevezetesen az owl:FunctionalProperty 閟 az owl:InverseFunctionalProperty konstrukci髏, amelyek glob醠is 閞v閚nyel korl醫ozz醟 a tulajdons醙ok kardinalit醩醫 (l醩d a tulajdons醙okr髄 sz髄 szekci骲an).
A tulajdons醙korl醫oz醩ok 醠tal醤os form醞a a k鰒etkez鮧閜pen n閦 ki:
<owl:Restriction> <owl:onProperty rdf:resource="(valamilyen tulajdons醙)" /> (egy 閞t閗- vagy egy kardinalit醩korl醫oz醩, l醩d al醔b) </owl:Restriction>
Az owl:Restriction
(Korl醫oz醩) oszt醠yt az owl:Class
aloszt醠yak閚t defini醠t醟. Egy Restriction oszt醠ynak van egy, 閟
csak egy olyan tripletje, mely a korl醫oz醩t egy tulajdons醙hoz kapcsolja az
owl:onProperty
tulajdons醙 seg韙s間関el. 蓅 van egy, 閟 csak egy olyan tripletje, mely az
閞t閗korl醫ot vagy a kardinalit醩korl醫ot reprezent醠ja az adott
tulajdons醙ra vonatkoztatva (pl. azt, hogy a tulajdons醙 kardinalit醩a
pontosan 1).
Tulajdons醙korl醫oz醩okat alkalmazhatunk adatt韕us-tulajdons醙okra (amelyek 閞t閗e liter醠 t韕us? valamint objektumtulajdons醙okra (amelyek 閞t閗e egyed t韕us?. E megk黮鰊b鰖tet閟sel kapcsolatban l醩d a tulajdons醙okr髄 sz髄 szekci髏.
A ford韙 megjegyz閟e:
Annak 閞dek閎en, hogy az al醔b k鰒etkez p閘d醟 magyar醶at醤醠 a ford韙ott sz髍end angol 醠l韙醩okat logikailag helyesen ford韙hassuk magyarra, n閔a besz鷕unk egy tilde (~) karaktert a tulajdons醙ok (醠l韙m醤yok) nev閎e, amellyel el鮮eutalunk az 醠l韙醩 t醨gy醨a. Ha a tilde hely閞e k閜zelj黭 a tulajdons醙 閞t閗閚ek (a t醨gynak) a nev閠, akkor az 醠l韙醩 magyarul is helyes lesz (b醨 nem lesz igaz醤 eszt閠ikus). Pl. az X isBiologicalMotherOf Y angol tripletet term閟zetesen nem ford韙hatjuk 鷊y, hogy X "biol骻iaiAnyja" Y, mert ez teljesen t関es ford韙醩. Ehelyett 韌y 韗juk 醫 magyarra: X "biol骻iaiAnyja~nak" Y, 閟 鷊y olvassuk, hogy X biol骻iai anyja Y-nak. Ez nem t鷏 sz閜 magyar mondat, de ha a triplet magyar ford韙醩醔an el akarn醤k ker黮ni az ilyen ford韙ott sz髍endet, akkor a p閘d醫 mag醫 kellene megford韙anunk. Vagyis, meg kellene cser閘n黱k az alanyt 閟 a t醨gyat (s 韌y az 閞v閚yess間i k鰎t 閟 az 閞t閗tartom醤yt is), az 醠l韙m醤ynak pedig a ford韙ott jelent閟閠 kellene haszn醠nunk. 羗 ha ezt tenn閚k, az 鷍 p閘d醰al gyakran eg閟zen m醩t illusztr醠n醤k, mint ami a szerz鮧 eredeti sz醤d閗a volt. P閘d醬l, ha megford韙juk a fenti p閘d醫, akkor angolul az Y hasBiologicalMother X, magyarul pedig az Y biol骻iaiAnyja X form醫 kapjuk, s 韌y a k閠 kijelent閟 logikailag 閟 nyelvtanilag is konzisztens lesz, csakhogy ebben a form醔an m醨 nem igazolj醟 a bizony韙and t閠elt, t鰎t閚etesen azt, hogy "egy ford韙ott funkcion醠is tulajdons醙 t醨gya egy閞telm鹐n azonos韙ja az alany醫", ugyanis, egy any醤ak (a Woman oszt醠y X egyed閚ek) t鯾b gyermeke is lehet (a Human oszt醠y egyedei k鰖鰐t). Az eredeti p閘da m間 bizony韙 erej volt, mert egy embernek (Y) val骲an csak egy biol骻ia anyja lehet (X). (L醩d ezt a helyzetet a ford韙ott funkcion醠is tulajdons醙ot illusztr醠 p閘d醤醠.)
Megjegyezz黭 m間, hogy a tilde csak seg閐let a magyar ford韙醩hoz, 閟 nem r閟ze az OWL szintaxis醤ak. Ha OWL nyelven ford韙ott sz髍end magyar 醠l韙m醤yokat (tulajdons醙neveket) kell megfogalmaznunk, akkor tilde helyett egy olyan karaktert v醠asszunk, mely megengedett az ilyen nevek szintaxis醔an, 閟 megfelel a tilde szerep閚ek.
Az owl:allValuesFrom
閞t閗korl醫oz醩 egy be閜韙ett OWL tulajdons醙, mely egy korl醫oz醩oszt醠yt
egy oszt醠yle韗醩hoz vagy egy adat閞t閗-tartom醤yhoz kapcsol. Az
owl:allValuesFrom
(~minden蓃t閗e) 醠l韙m醤yt tartalmaz
korl醫oz醩t azon egyedek oszt醠y醤ak le韗醩醨a haszn醠juk, amelyek sz醡醨a az
閜pen korl醫ozott tulajdons醙 minden 閞t閗e: vagy az oszt醠yle韗醩
kiterjed閟閚ek a tagja, vagy pedig olyan adat閞t閗, mely egy (liter醠isan
megadott) 閞t閗tartom醤yon bel黮 helyezkedik el. M醩k閚t kifejezve: ez az
閞t閗korl醫oz醩 olyan X egyedek oszt醠y醫 defini醠ja, amelyekre 閞v閚yes,
hogy, ha az (X,Y) alany-t醨gy p醨os az 閜pen korl醫ozott P tulajdons醙
(醠l韙m醤y) egyik el鮢ordul醩a, akkor Y vagy az oszt醠yle韗醩 egyik egyede,
vagy egy adat閞t閗-tartom醤y egyik adat閞t閗e.
Egy egyszer p閘da:
<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:allValuesFrom rdf:resource="#Human" /> </owl:Restriction>
Ez a p閘da azon egyedek n関telen oszt醠y醫 韗ja le, amelyek eset閎en a
hasParent
(sz黮鮦e) tulajdons醙 csak a Human
(Ember)
oszt醠y egyede lehet. Jegyezz黭 meg, hogy ez az oszt醠yle韗醩 nem azt mondja
ki, hogy ez a tulajdons醙 mindig ebb鮨 az oszt醠yb髄 kaphat csak
閞t閗et, hanem azt, hogy ez a megk鰐閟 csak a n関telen korl醫oz醩oszt醠y
kiterjed閟閞e vonatkoztatva 閞v閚yes.
MEGJEGYZ蒘: Az OWL Lite-ban az owl:allValuesFrom
醠l韙m醤y t醨gyak閚t megadott oszt醠yle韗醩-t韕us csak egy oszt醠yn関
lehet.
Az owl:allValuesFrom
korl醫oz醩 jelent閟e l閚yeg閎en azonos az 韙閘etkalkulus univerz醠is
kvantor醤ak jelent閟関el ("minden elemre igaz"), minthogy a le韗t oszt醠y
minden egyed閞e igaz, hogy P tulajdons醙 minden 閞t閗閚ek ki kell el間韙enie
a megk鰐閟t. Vegy黭 閟zre azt is, hogy az owl:allValuesFrom
閟 az univerz醠is
kvantor abban is megfelelnek egym醩nak, hogy a P tulajdons醙 閞t閗eire
bevezetett owl:allValuesFrom
korl醫oz醩t egy olyan egyed is trivi醠is m骴on kiel間韙i, amelyiknek
egy醠tal醤 nincs 閞t閗e P-re. Hogy l醩suk, mi閞t van ez 韌y, vegy黭 閟zre,
hogy az owl:allValuesFrom
korl醫oz醩 azt k鰐i ki, hogy P minden 閞t閗e T t韕us legyen. Ha teh醫 nem
l閠ezik ilyen 閞t閗, akkor a korl醫oz醩 eleve megval髎ul.
Az owl:someValuesFrom
閞t閗korl醫oz醩 egy be閜韙ett OWL tulajdons醙, mely egy korl醫oz醩oszt醠yt
egy oszt醠yle韗醩hoz vagy egy adat閞t閗-tartom醤yhoz kapcsol. Az
owl:someValuesFrom
(~n閔醤y蓃t閗e) megk鰐閟t tartalmaz
korl醫oz醩 azon egyedek oszt醠y醫 韗ja le, amelyek sz醡醨a az 閜pen
korl醫ozott tulajdons醙nak legal醔b egy 閞t閗e az oszt醠yle韗醩
egyede, vagy egy adat閞t閗-tartom醤y valamelyik 閞t閗e. M醩k閚t fogalmazva:
ez az 閞t閗korl醫oz醩 olyan X egyedek oszt醠y醫 defini醠ja, amelyek sz醡醨a
l閠ezik egy olyan Y (az oszt醠yle韗醩 egyik egyede, vagy egy 閞t閗tartom醤y
egyik 閞t閗e) amelyn閘 az (X,Y) p醨 a P tulajdons醙 egyik el鮢ordul醩a. Ez a
megk鰐閟 nem z醨ja ki azonban, hogy P-nek lehetnek m醩 olyan (pl. X,Y')
el鮢ordul醩ai, amelyekn閘 Y' nem tartozik az adott oszt醠yle韗醩hoz vagy
adat閞t閗-tartom醤yhoz.
Az al醔bi p閘da olyan egyedek oszt醠y醫 defini醠ja, amelyeknek legal醔b
egyik "sz黮鮦e" (hasParent
) "Orvos" (Physician
):
<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:someValuesFrom rdf:resource="#Physician" /> </owl:Restriction>
Az owl:someValuesFrom
korl醫oz醩 l閚yeg閎en azonos az 韙閘etkalkulus egzisztenci醠is kvantor醰al,
mivel azt k鰐i ki az 閜pen defini醠t oszt醠y minden egyed閚ek P
tulajdons醙醨a, hogy "l閠ezz閗 legal醔b egy" olyan 閞t閗e, mely kiel間韙i a
korl醫oz醩t.
MEGJEGYZ蒘: Az OWL Lite-ban az
owl:someValuesFrom
醠l韙m醤y t醨gyak閚t megadott
oszt醠yle韗醩-t韕us csak egy oszt醠yn関 lehet.
Az owl:hasValue
閞t閗korl醫oz醩 egy be閜韙ett OWL tulajdons醙, mely egy korl醫oz醩oszt醠yt
egy olyan V 閞t閗hez kapcsol, amelyik vagy egy egyed, vagy egy adat閞t閗. Az
owl:hasValue
閞t閗korl醫oz醩 teh醫 azon egyedek oszt醠y醫 韗ja
le, amelyek sz醡醨a az 閜pen korl醫ozott tulajdons醙nak van legal醔b
egy olyan 閞t閗e, amelyik szemantikailag egyenl V-vel (de emellett
lehetnek m醩 閞t閗ei is).
MEGJEGYZ蒘: Az, hogy "szemantikailag egyenl?, adatt韕usok eset閎en azt jelenti, hogy a k閠 adat lexikai 醔r醶ol醩醤ak g閜i nyelvre t鰎t閚 leford韙醩a ugyanazt az 閞t閗et adja. Egyedek eset閎en pedig azt jelenti, hogy vagy azonos az URI hivatkoz醩uk, vagy k黮鰊b鰖 ugyan, de ezeket el鮶鮨eg azonosnak deklar醠tuk (l醩d: owl:sameAs).
MEGJEGYZ蒘: az owl:hasValue
閞t閗korl醫oz醩 nem
haszn醠hat az OWL Lite-ban.
Az al醔bi p閘da azon egy閚ek oszt醠y醫 韗ja le, akikn閘 a "sz黮鮦e" tulajdons醙 閞t閗e: Clinton.
<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:hasValue rdf:resource="#Clinton" /> </owl:Restriction>
Az OWL-ban az RDF-hez hasonl骯n felt閠elezz黭, hogy egy oszt醠y b醨melyik egyed閚ek tetsz鮨eges sz醡 (z閞? egy vagy t鯾b) 閞t閗e lehet egy adott tulajdons醙醨a. Annak 閞dek閎en, hogy egy adott oszt醠y egyedei sz醡醨a egy tulajdons醙ot felt閠len黮 sz黭s間esnek deklar醠hassunk (azaz megk鰒etelhess黭, hogy az legal醔b egy 閞t閗kel rendelkezz閗), vagy hogy egy tulajdons醙ot kitilthassunk (azaz kik鰐hess黭, hogy a tulajdons醙 legfeljebb z閞 sz醡 閞t閗kel rendelkezhet), vagy hogy el蹴rhassuk, hogy egy tulajdons醙 pontosan h醤y 閞t閗et vehet fel, kardinalit醩korl醫oz醩t alkalmazunk. Az OWL-ban h醨om konstrukci 醠l rendelkez閟re a tulajdons醙ok kardinalit醩醤ak helyi, azaz oszt醠yra 閞v閚yes korl醫oz醩醨a.
Megjegyz閟: Az OWL Lite tartalmazza a kardinalit醩 korl醫oz醩醤ak mind a h醨om t韕us醫, de a kardinalit醩 閞t閗e itt csak 0 vagy 1 lehet.
Az owl:maxCardinality
t韕us kardinalit醩korl醫oz醩 egy be閜韙ett OWL tulajdons醙, mely egy
korl醫oz醩oszt醠yt egy olyan adat閞t閗hez kapcsol, mely az XML S閙a
nonNegativeInteger
閞t閗ter閎e tartozik. Egy
owl:maxCardinality
megk鰐閟t tartalmaz korl醫oz醩 azon egyedek
oszt醠y醫 韗ja le, amelyeknek az 閜pen korl醫ozand tulajdons醙a
legfeljebb N sz醡? szemantikailag k黮鰊b鰖 閞t閗et (egyedet vagy
adat閞t閗et) kaphat, ahol N a kardinalit醩korl醫 閞t閗e. Szintaktikailag a
kardinalit醩korl醫oz醩t egy RDF tulajdons醙elemmel, 閟 a hozz tartoz
rdf:datatype
attrib鷗ummal 醔r醶oljuk.
Az al醔bi p閘da olyan egyedek oszt醠y醫 韗ja le, amelyeknek legfeljebb k閠 sz黮鮦黭 lehet:
<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:maxCardinality> </owl:Restriction>
Az RDF adatt韕usainak haszn醠at醫 r閟zletesebben a 6. szekci螯/a> t醨gyalja.
Az owl:minCardinality
t韕us kardinalit醩korl醫oz醩 egy be閜韙ett OWL tulajdons醙, mely egy
korl醫oz醩oszt醠yt egy olyan adat閞t閗hez kapcsol, mely az XML S閙a
nonNegativeInteger
閞t閗ter閎e tartozik. Egy
owl:minCardinality
megk鰐閟t tartalmaz korl醫oz醩 azon egyedek
oszt醠y醫 韗ja le, amelyeknek az 閜pen korl醫ozand tulajdons醙a
legal醔b N sz醡? szemantikailag k黮鰊b鰖 閞t閗et (egyedet vagy
adat閞t閗et) kell kapnia, ahol N a kardinalit醩korl醫 閞t閗e. Szintaktikailag
a kardinalit醩korl醫oz醩t egy RDF tulajdons醙elemmel, 閟 a hozz tartoz
rdf:datatype
attrib鷗ummal 醔r醶oljuk.
Az al醔bi p閘da olyan egyedek oszt醠y醫 韗ja le, amelyeknek legal醔b k閠 sz黮鮦黭 van:
<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:minCardinality> </owl:Restriction>
Jegyezz黭 meg, hogy ha az owl:minCardinality
閞t閗e nagyobb
vagy egyenl eggyel, az egyben azt is jelenti, hogy az adott oszt醠y
egyedein閘 ez a tulajdons醙 felt閠len黮 閞t閗et kell hogy kapjon.
Az owl:Cardinality
t韕us kardinalit醩korl醫oz醩 egy be閜韙ett OWL tulajdons醙, mely egy
korl醫oz醩oszt醠yt egy olyan adat閞t閗hez kapcsol, mely az XML S閙a
nonNegativeInteger
閞t閗ter閎e tartozik. Egy
owl:Cardinality
megk鰐閟t tartalmaz korl醫oz醩 azon egyedek
oszt醠y醫 韗ja le, amelyeknek az 閜pen korl醫ozand tulajdons醙a
pontosan N sz醡? szemantikailag k黮鰊b鰖 閞t閗et (egyedet vagy
adat閞t閗et) kell kapnia, ahol N a kardinalit醩korl醫 閞t閗e. Szintaktikailag
a kardinalit醩korl醫oz醩t egy RDF tulajdons醙elemmel, 閟 a hozz tartoz
rdf:datatype
attrib鷗ummal 醔r醶oljuk.
Ez a konstrukci tulajdonk閜pen redund醤s, hiszen b醨mikor helyettes韙het
egy owl:minCardinality
閟 egy
owl:maxCardinality
korl醫oz醩b髄 醠l p醨ral 鷊y, hogy mindkett鮪ek azonos 閞t閗et adunk. Ezt a
korl醫oz醩t韕ust csak a k閚yelem 閟 a t鰉鰎ebb 韗醩m骴 閞dek閎en vett閗 fel a
nyelvbe.
Az al醔bi p閘da olyan egyedek oszt醠y醫 韗ja le, amelyeknek pontosan k閠 sz黮鮦黭 lehet:
<owl:Restriction> <owl:onProperty rdf:resource="#hasParent" /> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:cardinality> </owl:Restriction>
Az ebben a szekci骲an t醨gyalt h醨om oszt醠yle韗醩-t韕us azokat a fejlettebb oszt醠ykonstruktorokat reprezent醠ja, amelyeket a le韗 logik醔an haszn醠nak. Ezeket 鷊y is tekinthetj黭, mint oszt醠yokra alkalmazott 蒘, VAGY 閟 NEM m鹶eleteket. Ez a h醨om m鹶elet a halmazoper醫orok szok醩os neveit viseli: metszet, uni 閟 komplemens. Ezek a nyelvi konstrukci髃 abban hasonl韙anak egym醩ra, hogy egym醩ba 醙yazott oszt醠yle韗醩okat tartalmaznak: vagy egyet (mint a komplemens eset閚), vagy pedig t鯾bet (mint az uni 閟 a metszet eset閚).
Az owl:intersectionOf
egy be閜韙ett OWL tulajdons醙, mely egy oszt醠yt kapcsol egy oszt醠yle韗醩-list醜oz. Az owl:intersectionOf
konstrukci
egy olyan oszt醠yt 韗 le, amelynek a kiterjed閟e pontosan azokb髄 az
egyedekb鮨 醠l, amelyek a list醔an szerepl minden oszt醠yle韗醩
kiterjed閟ben benne vannak.
P閘da:
<owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Tosca" /> <owl:Thing rdf:about="#Salome" /> </owl:oneOf> </owl:Class> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Turandot" /> <owl:Thing rdf:about="#Tosca" /> </owl:oneOf> </owl:Class> </owl:intersectionOf> </owl:Class>
Ebben a p閘d醔an az owl:intersectionOf
tulajdons醙 閞t閗e k閠
oszt醠yle韗醩: nevezetesen k閠 felsor醠醩 t韕us oszt醠yle韗醩, amelyek
mindegyike k閠-k閠 egyedet tartalmaz. Az eredm閚y黮 kapott metszet pedig egy
olyan oszt醠y, mely egyetlen egyedet tartalmaz, nevezetesen a
Tosca-t
, minthogy ez az egyetlen olyan egyed, amelyik k鰖鰏 a
k閠 felsorol醩ban.
MEGJEGYZ蒘: Ez felt閠elezi, hogy a h醨om egyed mind k黮鰊b鰖? Az OWL-ban azonban ez nem mag醫髄 閞tet鮠鮡n van 韌y. Ugyanis, k黮鰊b鰖 URI hivatkoz醩ok mutathatnak ugyanarra az egyedre, l関閚, hogy az OWL nem felt閠elez egyedi neveket. Az 5. szekci骲an olyan nyelvi konstrukci髃at tal醠hat az olvas? amelyekkel egyedek egyenl鮯間閠 閟 k黮鰊b鰖鮯間閠 deklar醠hatjuk.
MEGJEGYZ蒘: Ebben a p閘d醔an t鰎t閚etesen most csak felsorol醩okat haszn醠tunk, hogy 醫l醫hat髒 tegy黭 ennek a nyelvi konstrukci髇ak a jelent閟閠. 蒷etszer鸼b p閘d醟at tal醠hat azonban az olvas az [OWL 趖mutat螯/a>] dokumentumban.
MEGJEGYZ蒘: Az OWL Lite-nak vannak bizonyos korl醫ai az
owl:intersectionOf
haszn醠at醔an. A 3.2.3 szekci骲an k閟鮞b m間 sz髄unk err鮨.
Az owl:intersectionOf
a konjunkci (logikai 蒘) m鹶eletnek
felel meg.
Az owl:unionOf egy
be閜韙ett OWL tulajdons醙, mely egy oszt醠yt kapcsol egy oszt醠yle韗醩-list醜oz. Az
owl:unionOf
konstrukci egy olyan oszt醠yt 韗 le, amelynek a
kiterjed閟e pontosan azokb髄 az egyedekb鮨 醠l, amelyek a list醔an szerepl
oszt醠yle韗醩ok kiterjed閟einek legal醔b egyik閎en szerepelnek.
P閘da:
<owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Tosca" /> <owl:Thing rdf:about="#Salome" /> </owl:oneOf> </owl:Class> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Turandot" /> <owl:Thing rdf:about="#Tosca" /> </owl:oneOf> </owl:Class> </owl:unionOf> </owl:Class>
Ez az oszt醠yle韗醩 egy olyan oszt醠yt 韗 le, amelynek a kiterjed閟e h醨om
egyedet tartalmaz, nevezetesen a Tosca
, Salome
, 閟
Turandot
egyedet (felt閠elezve, hogy ezek mind k黮鰊b鰖鮡k).
MEGJEGYZ蒘: az owl:unionOf
nem haszn醠hat az
OWL Lite-ban.
Az owl:unionOf
a diszjunkci (logikai VAGY) m鹶eletnek felel
meg.
Az owl:complementOf
be閜韙ett OWL tulajdons醙 egy oszt醠yt 閟 egy oszt醠yle韗醩t kapcsol 鰏sze. Az
owl:complementOf
konstrukci egy olyan oszt醠yt 韗 le, amelynek
a kiterjed閟e pontosan azokb髄 az egyedekb鮨 醠l, amelyek nem
tartoznak annak az oszt醠yle韗醩nak a kiterjed閟閔ez, amelyet a kijelent閟
t醨gyak閚t adunk meg. Az owl:complementOf
a neg醕i (logikai
NEM) m鹶eletnek felel meg, hiszen azon egyedeket adja eredm閚y黮, amelyek NEM
tartoznak a t醨gyban megnevezett oszt醠yhoz.
J p閘da lehet a komplementer oszt醠yra a "not meat" (nem h鷖) oszt醠y, amelynek le韗醩醫 az al醔bi k骴r閟zlet mutatja be:
<owl:Class> <owl:complementOf> <owl:Class rdf:about="#Meat"/> </owl:complementOf> </owl:Class>
Ennek az oszt醠yle韗醩nak a kiterjed閟e mindazon egyedeket tartalmazza, amelyek nem tartoznak a Meat (H鷖) oszt醠yhoz.
MEGJEGYZ蒘: az owl:complementOf
nem haszn醠hat
az OWL Lite-ban.
Az oszt醠yle韗醩ok alkotj醟 azokat az 閜韙鮧鰒eket, amelyekb鮨
oszt醠yaxi髆醟 seg韙s間関el oszt醠yokat defin醠hatunk. Az oszt醠yaxi髆醟
legegyszer鸼b form醞a az els t韕us oszt醠yle韗醩, mely csup醤 az oszt醠y
l閠閠 閟 azonos韙 nev閠 deklar醠ja az owl:Class
konstruktor seg韙s間関el.
Az al醔bi p閘da egy oszt醠yaxi髆醫 醔r醶ol, amelyben egy OWL oszt醠yt a
"Human"
n関vel azonos韙unk [itt, az eredeti angol sz鰒egben nem
kompatibilis a p閘da 閟 a magyar醶ata, ez閞t a magyar醶atot 閞telemszer鹐n
m骴os韙ottuk – a ford.]:
<owl:Class rdf:ID="Human"/>
Ez egy teljesen szab醠yos OWL mondat, de nem sokat 醨ul el nek黱k a Human oszt醠yr髄. Az oszt醠yaxi髆醟 醠tal醔an tov醔bi komponenseket is tartalmaznak, amelyek megadj醟 egy oszt醠y sz黭s間es 閟/vagy el間s間es jellemz鮥t. Az OWL h醨om olyan nyelvi konstrukci髏 tartalmaz, amelyekkel az oszt醠yle韗醩ok oszt醠yaxi髆醟k kombin醠hat髃:
rdfs:subClassOf
seg韙s間関el azt jelenthetj黭 ki, hogy egy oszt醠yle韗醩 kiterjed閟e egy
m醩ik oszt醠yle韗醩 kiterjed閟閚ek a r閟zhalmaza.owl:equivalentClass
鷗j醤 azt mondhatjuk ki, hogy egy oszt醠yle韗醩 kiterjed閟e azonos egy
m醩ik oszt醠yle韗醩 kiterjed閟関el.owl:disjointWith
haszn醠at醰al azt deklar醠hatjuk, hogy egy oszt醠yle韗醩 kiterjed閟閎en
nincs egyetlen olyan egyed sem, mely egy m醩ik megadott oszt醠yle韗醩
kiterjed閟閎en is szerepel (azaz nincsenek k鰖鰏 egyedeik).Szintaktikailag ezek a nyelvi konstrukci髃 olyan tulajdons醙ok, amelyeknek az 閞v閚yess間i k鰎e 閟 az 閞t閗tartom醤ya is oszt醠yle韗醩. (Az al醔bi alszekci髃ban r閟zletesen t醨gyaljuk ezeket a tulajdons醙okat).
Az OWL megenged olyan oszt醠yaxi髆醟at is, amelyekben a felsorol醩 t韕us
閟 a halmazoper醫oros t韕us oszt醠yle韗醩oknak nevet adunk. Az ilyen
oszt醠yaxi髆醟 szemantikailag egyen閞t閗鹐k azokkal az oszt醠yaxi髆醟kal,
amelyekben az owl:equivalentClass
醠l韙m醤yt haszn醠juk. Erre
k閟鮞b m間 visszat閞黱k a 3.2.3 Axi髆醟 komplett
oszt醠yokhoz owl:equivalentClass haszn醠ata n閘k黮 c韒 szekci骲an).
AZ AXI覯A S蒑罦A: oszt醠yle韗醩
rdfs:subClassOf
oszt醠yle韗醩
Az rdfs:subClassOf
konstrukci髏 az RDF S閙a [RDF Sz髃閟zlet] r閟zek閚t defini醠t醟,
de a jelent閟e az OWL-ban is pontosan ugyanaz: ha a C1 oszt醠yle韗醩t a C2
oszt醠yle韗醩 aloszt醠y醤ak defini醠tuk, akkor akkor a C1 oszt醠ykiterjed閟閠
alkot egyedek halmaza a C2 oszt醠ykiterjed閟閠 alkot egyedek halmaz醤ak a
r閟zhalmaza kell hogy legyen. Egy oszt醠y, 閞telemszer鹐n, egyben 鰊mag醤ak a
r閟zhalmaza is (minthogy egy teljes halmaz is lehet r閟zhalmaz).
P閘da:
<owl:Class rdf:ID="Opera"> <rdfs:subClassOf rdf:resource="#MusicalWork" /> </owl:Class>
Ez az oszt醠yaxi髆a egy "aloszt醠y" viszonyt deklar醠t k閠 olyan OWL
oszt醠y k鰖鰐t, amelyek a nev黭kel vannak le韗va. Ez a k閠 oszt醠y az
Opera
閟 a MusicalWork
(Opera, illetve Zenem?. Az
aloszt醠yrel醕i biztos韙ja a sz黭s間es felt閠elt ahhoz, hogy egy
oszt醠yhoz tartoz醩t deklar醠jon. A p閘d醔髄 l醫hat蝥 ahhoz, hogy valami
Opera legyen, Zenem鹡ek kell lennie.
Megjegyz閟: Az OWL Lite-ban az rdfs:subClassOf
kijelent閟 alany醤ak oszt醠yazonos韙髇ak kell lennie, a t醨gya pedig
oszt醠yazonos韙 vagy tulajdons醙korl醫oz醩 lehet.
Egyetlen oszt醠y sz醡醨a tetsz鮨eges sz醡 subClassOf axi髆醫 adhatunk meg. Az Opera oszt醠yra p閘d醬l megadhatjuk az al醔bi axi髆醫:
<owl:Class rdf:about="#Opera"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasLibrettist" /> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
Ez az oszt醠yaxi髆a egy tulajdons醙korl醫oz醩t tartalmaz. L関閚, hogy az
owl:Restriction
egy be閜韙ett OWL
oszt醠y (az owl:Class
aloszt醠ya), a fenti p閘d醔an azt
jelentj黭 ki, hogy az Opera egy olyan n関telen OWL oszt醠ynak az aloszt醠ya,
amelynek kiterjed閟e azon egyedek halmaza, amelyek hasLibrettist
tulajdons醙a legal醔b egy 閞t閗kel rendelkezik. Ez t鰉鰎en azt akarja
kifejezni, hogy az opera olyan valami, aminek legal醔b egy sz鰒egk鰊yv韗骿a
van.
Az oszt醠yaxi髆醟 bonyolultabbakk v醠hatnak, ha az oszt醠yle韗醩ok
egym醩ba 醙yaz骴nak. P閘d醬l: az olyan t韕us tulajdons醙korl醫oz醩ok,
amelyek owl:allValuesFrom
vagy
owl:someValuesFrom
醠l韙m醤yt
tartalmaznak, b醨milyen oszt醠yle韗醩ra mutathatnak. Figyelj黭 meg az al醔bi
p閘d醫:
<owl:Class rdf:ID="TraditionalItalianOpera"> <rdfs:subClassOf rdf:resource="#Opera"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasOperaType"/> <owl:someValuesFrom> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#OperaSeria"/> <owl:Thing rdf:about="#OperaBuffa"/> </owl:oneOf> </owl:Class> </owl:someValuesFrom> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
Ez a p閘da egyebek k鰖t bemutatja az owl:oneOf
konstrukci
haszn醠at醫. A p閘dabeli oszt醠yaxi髆a a hagyom醤yos olasz oper醫 az oper醟
olyan aloszt醠yak閚t defini醠ja, amelyek "operaT韕usa" vagy
KomolyOpera vagy V韌opera. (Ha nem alkalmazunk k黮鰊
kardinalit醩korl醫oz醩t, akkor az "operaT韕usa" tulajdons醙 mindk閠 閞t閗et
megkaphatja). Tov醔bi p閘d醟 tal醠hat髃 az [OWL 趖mutat螯/a>] dokumentumban.
Az aloszt醠y-axi髆醟 csak r閟zbeni defin韈i髃at szolg醠tatnak, ugyanis
ezek csak a sz黭s間es, de nem az el間s間es felt閠elt biztos韙j醟
ahhoz, hogy valamely egyed oszt醠ytags醙醫 egy閞telm鹐n meg醠lap韙hassuk. A
k鰒etkez alszekci骲an l醫ni fogjuk, hogy a sz黭s間es 閟 el間s間es
felt閠el defini醠醩醜oz az OWL rendelkezik egy owl:equivalentClass
konstrukci髒al. Ugr骴eszkak閚t az ilyen axi髆醟hoz, tekints黭 a k鰒etkez
p閘d醫:
<owl:Class rdf:ID="Operetta"> <rdfs:subClassOf rdf:resource="#MusicalWork"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hasLibrettist" /> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Class> <owl:complementOf rdf:resource="#Opera"/> </owl:Class> </rdfs:subClassOf> </owl:Class>
Ez az oszt醠yaxi髆a 鷊y defini醠ja az Operettet, hogy az egy Zenem?
amelynek legal醔b egy sz鰒egk鰊yv韗骿a van, de nem Opera. Az "aloszt醠y"
rel醕i haszn醠ata nyitva hagyja azt a lehet鮯間et, hogy vannak m醩 zenem鹶ek
is, amelyeknek van egy sz鰒egk鰊yv韗骿uk, 閟 nem oper醟. Ha azt akarn醤k
mondani, hogy az operettek pontosan 閟 kiz醨髄ag azok a zenem鹶ek,
amelyeknek van sz鰒egk鰊yv韗骿uk, de nem oper醟, akkor sz黭s間黱k lenne az owl:equivalentClass
konstrukci髍a is.
AZ AXI覯A S蒑罦A: oszt醠yle韗醩
owl:equivalentClass
oszt醠yle韗醩
Egy oszt醠yaxi髆a t鯾b owl:equivalentClass
醠l韙醩t is tartalmazhat. Az owl:equivalentClass
egy be閜韙ett
tulajdons醙, mely egy oszt醠yle韗醩t egy m醩ik oszt醠yle韗醩hoz kapcsol. Az
ilyen oszt醠yaxi髆a jelent閟e az, hogy a benne szerepl k閠 oszt醠yle韗醩nak
ugyanaz a kiterjed閟e (vagyis, hogy pontosan ugyanazokat az egyedeket
tartalmazza).
Az equivalentClass t韕us axi髆a legegyszer鸼b form醞a az, amikor k閠 neves韙ett oszt醠y k鰖鰐t deklar醠 (a kiterjed閟黭re vonatkoz骯n) egyen閞t閗鹲間et. Egy p閘da erre:
<owl:Class rdf:about="#AzEgyes黮t羖lamokEln鰇e"> <equivalentClass rdf:resource="#AFeh閞H醶LegfontosabbLak骿a"/> </owl:Class>
MEGJEGYZ蒘: Az owl:equivalentClass
kifejez閟 nem
jelenti k閠 oszt醠y egyenl鮯間閠. K閠 oszt醠y egyenl鮯間e ugyanis
azt jelenti, hogy azonos az intenzion醠is jelent閟黭 (ugyanazt a fogalmat
jel鰈ik). A fenti p閘d醔an az "Egyes黮t 羖lamok eln鰇e" fogalom 鰏szef黦g
ugyan azzal a fogalommal, hogy a "Feh閞 H醶 legfontosabb lak骿a", de nem
egyenl vele. Egy 醠lam eln鰇閚ek a fogalma, 閟 az a fogalom, hogy valaki egy
bizonyos 閜黮et legfontosabb lak骿a, nem lehet azonos. (Itt csup醤 az a k閠
egyed azonos, aki a fenti p閘d醔an szerepl k閠, egyf鮯 oszt醠ynak a
k鰖鰏 tagja: az eln鰇 szem閘ye). A t閚yleges oszt醠yazonoss醙ot csak
az owl:sameAs
konstrukci髒al tudjuk
deklar醠ni. Minthogy azonban ez azt ig閚yli, hogy oszt醠yokat egyedk閚t is
kezelhess黱k, az ilyen egyenl鮯間et csak az OWL Full-ban tudjuk kifejezni.
Az owl:equivalentClass
seg韙s間関el fel閜韙ett axi髆a
alkalmas felsorol醩oszt醠yok defini醠醩醨a is oly m骴on, hogy egy 1. t韕us
oszt醠yle韗醩t (oszt醠yazonos韙髏) egy 2. t韕us oszt醠yle韗醩hoz
(felsorol醩hoz) kapcsol. Egy p閘da erre:
<owl:Class rdf:ID="DaPonteOperaOfMozart"> <owl:equivalentClass> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <Opera rdf:about="#Nozze_di_Figaro"/> <Opera rdf:about="#Don_Giovanni"/> <Opera rdf:about="#Cosi_fan_tutte"/> </owl:oneOf> </owl:Class> </owl:equivalentClass> </owl:Class>
Ez az axi髆a olyan oper醟 oszt醠y醫 defini醠ja
DaPonteOperaOfMozart
n関en, amelyek sz鰒eg韗骿a Da Ponte,
zeneszerz鮦e pedig Mozart (ez a zenetudom醤y egyik 閞dekes t閙醞a). Az
equivalentClass konstrukci髒al meg tudjuk adni a fenti oszt醠yhoz val
tartoz醩 sz黭s間es 閟 elegend felt閠eleit, amit ebben az esetben a h醨om
t閚yleges egyed egyszer felsorol醩a reprezent醠.
MEGJEGYZ蒘: Az OWL DL semmilyen m骴on nem korl醫ozza azoknak
az oszt醠yle韗醩oknak a t韕us醫, amelyek egy owl:equivalentClass
kijelent閟 alanyai, illetve t醨gyai lehetnek. Az OWL Lite-ban azonban az
alanynak oszt醠yn関nek kell lennie, a t醨gy pedig lehet ak醨 oszt醠yn関, ak醨
tulajdons醙korl醫oz醩.
MEGJEGYZ蒘: Hab醨 egy equivalentClass alanyak閚t tulajdonk閜pen k黮鰊b鰖 t韕us oszt醠yle韗醩ok is megadhat髃, a gyakorlatban ez 醠tal醔an egy oszt醠yazonos韙 szokott lenni. Ez a jelen szekci p閘d醝ra is is jellemz?
Egy oszt醠y defini醠醩醔an alkalmazhatunk t鯾b equivalentClass t韕us oszt醠yaxi髆醫 is. Ilyenkor azonban vigy醶ni kell! Mindegyik axi髆醤ak ugyanazt a v間eredm閚yt (ugyanazt a kiterjed閟t) kell produk醠nia. P閘d醬l, a Mozart Da Ponte oper醝t le韗 alternat韛 equivalentClass axi髆a az al醔bi is lehetne:
<owl:Class rdf:about="#DaPonteOperaOfMozart"> <owl:equivalentClass> <owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="#hasComposer"/> <owl:hasValue rdf:resource="#Wolfgang_Amadeus_Mozart"/> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#hasLibrettist"/> <owl:hasValue rdf:resource="#Lorenzo_Da_Ponte"/> </owl:Restriction> </owl:intersectionOf> </owl:Class> </owl:equivalentClass> </owl:Class>
Ez az axi髆a azt 醠lap韙ja meg, hogy a DaPonteOperaOfMozart
oszt醠y kiterjed閟e pontosan azokb髄 az oper醟b髄 醠l, amelyek komponist醞a
Mozart, 閟 a sz鰒eg韗骿a Lorenzo Da Ponte (intersection = metszet =
蒘). Ez az axi髆a teh醫 egy olyan oszt醠yt defini醠, amelynek ugyanazok az
egyedei, mint az el鮶 p閘d醔an szerepl oszt醠y?
MEGJEGYZ蒘: Ha az "A subClassOf B" t韕us axi髆醫 egy "A equivalentClass B" t韕us axi髆醰 k韛醤n醤k "feljav韙ani" (ami azt mondan ki, hogy A kiterjed閟e nem ak醨milyen r閟zhalmaz, hanem B kiterjed閟関el azonos halmaz), akkor kieg閟z韙hetn閚k egy m醩odik axi髆醰al (ez鷗tal "B subClassOf A" form醔an), mely egy黷t, a k閠 oszt醠yt 閞telemszer鹐n egyen閞t閗鹶 tenn (vagyis ugyanazt jelenten? mint "A equivalentClass B"). A nyelv explicite lehet鮲 teszi ilyen k鰈cs鰊鰏 aloszt醠yrel醕i髃 alkalmaz醩醫. Minthogy az OWL elosztott k鰎nyezetben is haszn醠hat? ez egy nagyon hasznos opci lehet.
AZ AXI覯A S蒑罦A: Egy 2. t韕us?/em> neves韙ett
oszt醠yle韗醩 (owl:oneOf
醠l韙m醤nyal), vagy pedig egy
4-6. t韕us?/em> neves韙ett oszt醠yle韗醩
(owl:intersectionOf
, owl:unionOf
vagy
owl:complementOf
醠l韙m醤nyal).
Az OWL lehet鮲 teszi, hogy a felhaszn醠 egy oszt醠yaxi髆醫 defini醠jon 鷊y, hogy oszt醠ynevet rendel egy felsorol醩 t韕us vagy egy halmazm鹶elet t韕us oszt醠yle韗醩hoz. Az ilyen oszt醠yaxi髆a sz黭s間es 閟 elegend felt閠elt biztos韙 az oszt醠yhoz tartoz醩 meg醠lap韙醩醨a. Egy kor醔br髄 kiss m醨 ismert p閘da erre:
<owl:Class rdf:ID="DaPonteOperaOfMozart"> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Nozze_di_Figaro"/> <owl:Thing rdf:about="#Don_Giovanni"/> <owl:Thing rdf:about="#Cosi_fan_tutte"/> </owl:oneOf> </owl:Class>
Ezt az oszt醠yaxi髆醫 鷊y kell 閞telmezn黱k, hogy a DaPonteOperaOfMozart oszt醠y kiterjed閟閠 pontosan 閟 v間legesen defini醠ja a megadott felsorol醩.
Ez az oszt醠yaxi髆a szemantikailag egyen閞t閗 az el鮶 szekci els opera
p閘d醞醰al, amelyik m間 egy owl:equivalentClass
醠l韙m醤yt is
tartalmazott. Ilyen axi髆醫 az owl:intersectionOf
, az
owl:unionOf
閟 az
owl:complementOf
醠l韙m醤nyal
is
el踽ll韙hatunk. Egy p閘da az uni alkalmaz醩醰al:
<owl:Class rdf:ID="LivingBeing"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Plant"/> <owl:Class rdf:about="#Animal"/> </owl:unionOf> </owl:Class>
Ez az oszt醠yaxi髆a azt jelenti ki, hogy az 蒷鮨閚y
(LivingBeing
) oszt醠y kiterjed閟e megegyezik a N鰒閚y 閟 az
羖lat (Plant
閟 Animal
) oszt醠y kiterjed閟閚ek
uni骿醰al.
MEGJEGYZ蒘: Az OWL Lite csak ilyen t韕us oszt醠yaxi髆醟at
ismer, amelyeket az owl:intersectionOf
tulajdons醙gal
konstru醠unk. Itt az intersectionOf list醞醤ak 閞t閗ei csak oszt醠yazonos韙髃
閟/vagy tulajdons醙korl醫oz醩ok lehetnek. 蚲y teh醫 komplett
oszt醠yt defini醠 axi髆醟 (mint a felsorol醩, a komplemens 閟 az uni?
az OWL Lite-ban nem alkalmazhat髃.
AZ AXI覯A S蒑罦A: class description
owl:disjointWith
class description
Egy oszt醠yaxi髆a (t鯾b) owl:disjointWith
(diszjunkt/idegen oszt醠y) 醠l韙醩t tartalmazhat. Az
owl:disjointWith
egy be閜韙ett tulajdons醙, amelynek
閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya egy-egy oszt醠yle韗醩. Minden egyes
owl:disjointWith
醠l韙m醤y azt jelenti ki, hogy az 醠l韙醩ban
szerepl k閠 oszt醠yle韗醩 kiterjed閟閎en nincsenek k鰖鰏 egyedek. Ugyan鷊y,
mint egy "aloszt醠y" viszony deklar醠醩a (rdfs:subClassOf
), a
"diszjunkt" viszony deklar醠醩a (owl:disjointWith
) is csak
parci醠is defin韈i髏 eredm閚yez. Ez is csak a sz黭s間es, de nem az el間s間es
felt閠elt szolg醠tatja az oszt醠yhoz tartoz醩 meg醠lap韙醩醜oz.
Egy n閜szer p閘da diszjunkt oszt醠yokra:
<owl:Class rdf:about="#Man"> <owl:disjointWith rdf:resource="#Woman"/> </owl:Class>
Hogy ez az 醠l韙醩 t閚ylegesen igaz-e, annak eld鰊t閟e a biol骻usokra tartozik. A k鰒etkez p閘da aloszt醠y-hierarchi醟on mutatja be a diszjunktivit醩 egyszer alkalmaz醩醫:
<owl:Class rdf:about="#MusicDrama"> <owl:equivalentClass> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Opera"/> <owl:Class rdf:about="#Operetta"/> <owl:Class rdf:about="#Musical"/> </owl:unionOf> </owl:Class> </owl:equivalentClass> </owl:Class> <owl:Class rdf:about="#Opera"> <rdfs:subClassOf rdf:resource="#MusicDrama"/> </owl:Class> <owl:Class rdf:about="#Operetta"> <rdfs:subClassOf rdf:resource="#MusicDrama"/> <owl:disjointWith rdf:resource="#Opera"/> </owl:Class> <owl:Class rdf:about="#Musical"> <rdfs:subClassOf rdf:resource="#MusicDrama"/> <owl:disjointWith rdf:resource="#Opera"/> <owl:disjointWith rdf:resource="#Operetta"/> </owl:Class>
Itt az owl:disjointWith
醠l韙醩t a owl:unionOf
醠l韙醩sal egy黷t haszn醠tuk
annak 閞dek閎en, hogy defini醠hassuk egy f鮫szt醠y k鰈cs鰊鰏en diszjunkt 閟
komplett aloszt醠yait. Term閟zetes nyelven fogalmazva, itt azt mondtuk ki:
miden Zenedr醡a vagy Opera, vagy Operett, vagy Musical (az oszt醠yok
sz閠v醠aszt醩a teljes), 閟 hogy azok az egyedek, amelyek az
egyik aloszt醠yhoz (pl. Opera) tartoznak, nem tartozhatnak m醩 aloszt醠yhoz
is (mint pl. Musical), vagyis, ezek diszjunkt, nem 醫fed aloszt醠yok. Ez egy
醠tal醤osan ismert modellez閟i fogalom, amelyet sok adatmodellez nyelvben
alkalmaznak.
MEGJEGYZ蒘: Az OWL Lite nem enged閘yezi az
owl:disjointWith
haszn醠at醫.
Az OWL a tulajdons醙ok k閠 kateg髍i醞醫 k黮鰊b鰖teti meg, amelyeket az ontol骻iafejleszt haszn醠hat:
MEGJEGYZ蒘: Az OWL haszn醠 olyan fogalmakat is, mint
annot醕i髏ulajdons醙 (owl:AnnotationProperty
) 閟
ontol骻iatulajdons醙 (owl:OntologyProperty
). Ezeket az
OWL DL ig閚yli, szemantikai okokb髄. L醩d a 7.
szekci骲an, valamint az OWL Szemantika 閟 absztrakt szintaxis [OWL Sz&ASz] dokumentumban.
Egy objektumtulajdons醙ot az owl:ObjectProperty
nev be閜韙ett OWL oszt醠y tagjak閚t, egy adatt韕us-tulajdons醙ot pedig az owl:DatatypeProperty
tagjak閚t defini醠hatunk. Mind az owl:ObjectProperty
, mind az
owl:DatatypeProperty
az rdf:Property
nev RDF
oszt醠y tagja (l醩d a B. f黦gel閗ben).
MEGJEGYZ蒘: Az OWL Full-ban az objektumtulajdons醙ok 閟 az
adatt韕us-tulajdons醙ok nem alkotnak diszjunkt halmazokat. Mivel itt az
adat閞t閗ek egyedk閚t kezelhet鮧, az adatt韕us-tulajdons醙 l閚yeg閎en az
objektumtulajdons醙 aloszt醠yak閚t funkcion醠. Az OWL Full-ban az
owl:ObjectProperty
gyakorlatilag egyen閞t閗 az
rdf:Property
-vel; ez f鮨eg az owl:InverseFunctionalProperty
haszn醠ata eset閚 j醨 k鰒etkezm閚yekkel. L醩d az OWL Full jellemz閟閠 a 8.1 szekci骲an.
Egy tulajdons醙axi髆a egy tulajdons醙 jellemz鮥t defini醠ja. A tulajdons醙axi髆a a legegyszer鸼b form醞醔an csup醤 a tulajdons醙 l閠閠 defini醠ja. P閘d醬l:
<owl:ObjectProperty rdf:ID="hasParent"/>
Ez a p閘da egy tulajdons醙ot defini醠 azzal a kik鰐閟sel, hogy annak 閞t閗ei csak oszt醠yok egyedei lehetnek.
A tulajdons醙axi髆醟 azonban t鯾bnyire egy閎 jellemz鮧et is megadnak a tulajdons醙ok le韗醩醤醠. Az OWL az al醔bi konstruktorokat ny鷍tja a tulajdons醙axi髆醟 defini醠醩醜oz:
rdfs:subPropertyOf
,
rdfs:domain
閟 rdfs:range
owl:equivalentProperty
閟 owl:inverseOf
owl:FunctionalProperty
閟
owl:InverseFunctionalProperty
owl:SymmetricProperty
閟
owl:TransitiveProperty
Az al醔bi alszekci髃ban r閟zletesen t醨gyaljuk a k黮鰊f閘e tulajdons醙axi髆醟at.
MEGJEGYZ蒘: Ebben a szekci骲an az "oszt醠ykiterjed閟" fogalm醜oz hasonl骯n haszn醠juk a "tulajdons醙kiterjed閟" fogalm醫. A tulajdons醙 kiterjed閟e a tulajdons醙 azon eseteinek (el鮢ordul醩ainak) a halmaza, amelyek a tulajdons醙hoz kapcsol骴nak. Egy tulajdons醙 esetei nem egyed黮醠l elemek, hanem a tulajdons醙hoz (mint 醠l韙m醤yhoz) tartoz alany-t醨gy p醨ok. (A rel醕i髎 adatb醶isok fogalomk鰎閎en a tulajdons醙 eseteit egy bin醨is rel醕i – azaz tulajdons醙 – tuple-jainak nevezn閚k.)
Az ebben a szekci骲an szerepl konstrukci髃at az RDF S閙a [RDF Sz髃閟zlet] r閟zletesen t醨gyalja. Ez a szekci ez閞t ink醔b csak a konstrukci髃 szinopszis醫 閟 OWL-specifikus aspektusait ismerteti.
Egy rdfs:subPropertyOf
axi髆a azt defini醠ja, hogy egy
tulajdons醙 egy m醩iknak altulajdons醙a. Form醠isan ez azt jelenti, hogy ha
P1 altulajdons醙a P2-nek, akkor P1 kiterjed閟e (alany-醠l韙m醤y p醨jainak
halmaza) P2 hasonl p醨okb髄 醠l kiterjed閟閚ek a r閟zhalmaza.
P閘da:
<owl:ObjectProperty rdf:ID="hasMother"> <rdfs:subPropertyOf rdf:resource="#hasParent"/> </owl:ObjectProperty>
Ez azt 醠lap韙ja meg, hogy a "anyja" (hasMother) tulajdons醙 kiterjed閟閎en el鮢ordul elemek (p醨ok) egyben a "sz黮鮦e" (hasParent) tulajdons醙 kiterjed閟閚ek elemei is.
Az altulajdons醙-axi髆醟 mind adatt韕us-tulajdons醙okhoz, mind objektumtulajdons醙okhoz alkalmazhat髃.
MEGJEGYZ蒘: Az OWL DL-ben egy altulajdons醙-axi髆醤ak az alanya 閟 t醨gya csak azonos t韕us tulajdons醙 (vagy adatt韕us-tulajdons醙, vagy objektumtulajdons醙) lehet.
Egy tulajdons醙 sz醡醨a egy vagy t鯾b rdfs:domain
("閞v閚yess間i k鰎e") axi髆醫 defini醠hatunk. Szintaktikailag az
rdfs:domain
egy be閜韙ett tulajdons醙, mely egy tulajdons醙ot,
az rdf:Property
oszt醠y valamelyik eset閠, egy oszt醠yle韗醩hoz kapcsolja. Egy
rdfs:domain
axi髆a azt jelenti ki, hogy az ilyen
tulajdons醙axi髆醟 alanyainak a megadott oszt醠yle韗醩 kiterjed閟閔ez kell
tartozniuk.
T鯾b rdfs:domain
axi髆a is megadhat ugyanarra a
tulajdons醙ra, amelyeket 鷊y kell 閞telmezni, hogy konjunkci髏 alkotnak:
vagyis, a tulajdons醙 閞v閚yess間i k鰎閠 azokra az egyedekre korl醫ozz醟,
amelyek az egyes rdfs:domain
oszt醠yaxi髆醟 metszet閔ez
tartoznak. Ha azt akarn醤k kifejezni, hogy egy tulajdons醙 閞v閚yess間i k鰎e
t鯾b oszt醠yra terjed ki, akkor egy owl:unionOf
t韕us oszt醠yle韗醩t
kellene haszn醠nunk. P閘d醬l: ha azt akarn醤k kifejezni, hogy a
"banksz醡l醞a" (hasBankAccount
) tulajdons醙 egyar醤t 閞v閚yes a
"V醠lalat" (Corporation
) oszt醠yban 閟 a "Szem閘y"
(Person
) oszt醠yban, akkor ilyen kijelent閟eket kellene
tenn黱k:
<owl:ObjectProperty rdf:ID="hasBankAccount"> <rdfs:domain> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Person"/> <owl:Class rdf:about="#Corporation"/> </owl:unionOf> </owl:Class> </rdfs:domain> </owl:ObjectProperty>
MEGJEGYZ蒘: Az OWL Lite-ban az rdfs:domain
tulajdons醙 閞t閗e csak oszt醠yazonos韙 lehet.
Egy tulajdons醙 sz醡醨a egy vagy t鯾b rdfs:range
("閞t閗tartom醤ya") axi髆醫 defini醠hatunk. Szintaktikailag az
rdfs:range
egy be閜韙ett tulajdons醙, mely egy tulajdons醙ot, az
rdf:Property
oszt醠y valamelyik eset閠, egy oszt醠yle韗醩hoz vagy egy adat閞t閗-tartom醤yhoz kapcsolja. Egy
rdfs:range
axi髆a azt jelenti ki, hogy az adott tulajdons醙
lehets間es 閞t閗einek a megadott oszt醠yle韗醩 kiterjed閟閔ez, vagy a
megadott adat閞t閗-tartom醤yhoz kell tartozniuk.
Ha t鯾b rdfs:range
t韕us korl醫oz醩t adunk meg ugyanarra a
tulajdons醙ra, akkor ezzel azt jelentj黭 ki, hogy a tulajdons醙
閞t閗tartom醤ya a megadott 閞t閗tartom醤yok metszete (oszt醠yle韗醩ok
kiterjed閟閚ek a metszete, vagy adat閞t閗-tartom醤yok metszete) legyen. Az rdfs:domain
-hez hasonl骯n t鯾b alternat韛
閞t閗tartom醤yt specifik醠hatunk egy owl:unionOf
t韕us oszt醠yle韗醩
keret閎en is (l醩d a p閘d醫 az el鮶 szekci骲an).
Figyelj黭 meg, hogy – szemben az 鰏szes 閞t閗korl醫oz醩sal, amelyet az
oszt醠yle韗醩okr髄 sz髄 szekci骲an t醨gyaltunk – az
rdfs:range
korl醫oz醩ok glob醠isak. Az olyan
閞t閗korl醫oz醩okat, mint az owl:allValuesFrom
, csak az
oszt醠yle韗醩okban haszn醠juk, 閟 csak akkor hat醠yosak az adott
tulajdons醙ra, amikor a le韗t oszt醠y egyedeivel kapcsolatban haszn醠juk
鮧et. Az rdfs:range
viszont mindig 閞v閚yes az adott
tulajdons醙ra, f黦getlen黮 att髄, hogy melyik oszt醠y egyedeire alkalmazzuk.
Ez閞t az rdfs:range
haszn醠ata 髒atoss醙ot ig閚yel.
MEGJEGYZ蒘: Az OWL Lite-ban az rdfs:range
t醨gyak閚t kiz醨髄ag oszt醠yneveket haszn醠hatunk.
Az owl:equivalentProperty
("egyen閞t閗 tulajdons醙") konstrukci seg韙s間関el azt fejezhetj黭 ki, hogy
k閠 tulajdons醙nak ugyanaz a tulajdons醙kiterjed閟e. Szintaktikailag az
owl:equivalentProperty
egy be閜韙ett OWL tulajdons醙, amelynek
az 閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya egyar醤t az rdf:Property
oszt醠y.
MEGJEGYZ蒘: A tulajdons醙ok egyen閞t閗鹲間e nem azonos a
tulajdons醙ok egyenl鮯間関el. Az egyen閞t閗 tulajdons醙oknak ugyanaz az
"閞t閗黭" (ugyanaz a kiterjed閟黭), de az intenzion醠is jelent閟黭 k黮鰊b鰖
lehet (k黮鰊b鰖 fogalmakat jel鰈hetnek). A tulajdons醙ok egyenl鮯間閠 az owl:sameAs
konstrukci髒al deklar醠hatjuk.
De mivel ez megk鰒eteli, hogy tulajdons醙okat egyedk閚t is kezelhess黱k, az
ilyen axi髆醟 csak az OWL Full-ban haszn醠hat髃.
A tulajdons醙oknak ir醤yuk van, mely az 閞v閚yess間i k鰎t鮨 az 閞t閗tartom醤y fel mutat. A gyakorlatban azonban hasznos lehet, ha mindk閠 ir醤yban defini醠hatunk tulajdons醙okat: pl. 趓vezet "g閜kocsija", illetve G閜kocsi "tulajdonosa". Az owl:inverseOf konstrukci髏 haszn醠juk az ilyen ford韙ott vagy inverz tulajdons醙 defini醠醩醨a (inform醠isan 韗va: "g閜kocsija" inverseOf "tulajdonosa").
Szintaktikailag az owl:inverseOf
egy be閜韙ett OWL
tulajdons醙, amelynek az 閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya egyar醤t az
owl:ObjectProperty
oszt醠y. Egy "P1 owl:inverseOf
P2
" form醫um axi髆a azt deklar醠ja, hogy a P1
tulajdons醙 kiterjed閟閚ek minden (x,y) p醨ja sz醡醨a
l閠ezik egy (y,x) p醨 a P2 tulajdons醙 kiterjed閟閎en, 閟
megford韙va. Az owl:inverseOf
teh醫 egy szimmetrikus
tulajdons醙. Az al醔bi p閘da azt deklar醠ja, hogy a "gyermeke"
(hasChild
) tulajdons醙 a "sz黮鮦e" (hasParent
)
tulajdons醙 ford韙ottja:
<owl:ObjectProperty rdf:ID="hasChild"> <owl:inverseOf rdf:resource="#hasParent"/> </owl:ObjectProperty>
A funkcion醠is tulajdons醙 olyan speci醠is tulajdons醙, amelynek csak
egyetlen (azaz: egyed黮醠l? y 閞t閗e lehet minden x egyed
sz醡醨a. Vagyis, nem l閠ezhet k閠 olyan k黮鰊b鰖 y1 閟 y2
閞t閗 鷊y, hogy mind az (x,y1), mind az (x,y2) p醨 ennek a
tulajdons醙nak az esete lenne. Mind az objektumtulajdons醙okat, mind az
adatt韕us-tulajdons醙okat deklar醠hatjuk funkcion醠isnak. Erre a c閘ra az OWL
defini醠 egy owl:FunctionalProperty
nev be閜韙ett oszt醠yt, mely az rdf:Property
RDF oszt醠y
speci醠is aloszt醠ya.
Az al醔bi axi髆a kijelenti, hogy a "f閞je" (husband) tulajdons醙 funkcion醠is, vagyis, hogy egy Asszonynak (Woman) legfeljebb egy f閞je lehet (ez egyben j p閘da az ontol骻i醟nak a k黮鰊b鰖 kult鷕醟t髄 val f黦g鮯間閞e is):
<owl:ObjectProperty rdf:ID="husband"> <rdf:type rdf:resource="&owl;FunctionalProperty" /> <rdfs:domain rdf:resource="#Woman" /> <rdfs:range rdf:resource="#Man" /> </owl:ObjectProperty>
Mint 醠tal醔an, itt is vari醠hat a szintaxis. A fenti defin韈i szemantikailag ekvivalens az al醔bival:
<owl:ObjectProperty rdf:ID="husband"> <rdfs:domain rdf:resource="#Woman" /> <rdfs:range rdf:resource="#Man" /> </owl:ObjectProperty> <owl:FunctionalProperty rdf:about="#husband" />
Ha egy tulajdons醙ot ford韙ott funkcion醠isnak deklar醠unk, akkor a tulajdons醙gal megfogalmazott 醠l韙醩 t醨gya egy閞telm鹐n meghat醨ozza az alanyt (valamilyen egyedet). Form醠isabban fogalmazva: ha kijelentj黭, hogy P egy ford韙ott funkcion醠is tulajdons醙 (Inverse Functional Property), akkor ez azt garant醠ja, hogy egy y 閞t閗 csup醤 egyetlen x egyed P tulajdons醙醤ak az 閞t閗e lehet, vagyis, nem l閠ezhet k閠 olyan k黮鰊b鰖? x1 閟 x2 egyed oly m骴on, hogy mind az (x1,y), mind (x2,y) p醨os a P tulajdons醙 esete lenne.
Egy ford韙ott funkcion醠is tulajdons醙axi髆醫 szintaktikailag 鷊y adunk
meg, hogy az adott tulajdons醙ot az owl:InverseFunctionalProperty
be閜韙ett OWL oszt醠y egyed閚ek deklar醠juk. Ez az oszt醠y egy閎k閚t az
owl:ObjectProperty
OWL oszt醠y aloszt醠ya.
MEGJEGYZ蒘: Mivel az OWL Full-ban az adatt韕us-tulajdons醙ok az objektumtulajdons醙ok aloszt醠y醫 k閜ezik, ez閞t itt a ford韙ott funkcion醠is jellemz鮰 adatt韕us-tulajdons醙okra is alkalmazhatjuk. Az OWL DL-ben azonban az objektumtulajdons醙ok 閟 az adatt韕us-tulajdons醙ok diszjunkt halmazokat alkotnak, s 韌y az adatt韕us-tulajdons醙ok nem deklar醠hat髃 ford韙ott funkcion醠isnak. (l醩d a 8.1. szekci骲an 閟 a 8.2. szekci骲an is).
Egy tipikus p閘da ford韙ott funkcion醠is tulajdons醙ra:
<owl:InverseFunctionalProperty rdf:ID="isBiologicalMotherOf"> <rdfs:domain rdf:resource="#Woman"/> <rdfs:range rdf:resource="#Human"/> </owl:InverseFunctionalProperty>
Ez a p閘da azt mondja, hogy az "isBiologicalMother
Of"
("biol骻iaiAnyja~nak") kijelent閟 minden egyes t醨gya (valamelyik
Human/Ember) sz醡醨a egy閞telm鹐n azonos韙hat egy alany (valamelyik
Woman/Asszony). Ez閞t az ilyen tulajdons醙ok eml閗eztetnek az adatb醶isok
"kulcsaira", amelyek egy閞telm鹐n azonos韙anak egy egyedet.
Az "egyenes" 閟 a ford韙ott funkcion醠is tulajdons醙 k鰖鰐ti egyik k黮鰊bs間 az, hogy az ut骲bi defin韈i骿醜oz nem sz黭s間es m間 egy tov醔bi objektumtulajdons醙-axi髆a vagy adatt韕ustulajdons醙-axi髆a: a ford韙ott funkcion醠is tulajdons醙 ugyanis eleve csak objektumtulajdons醙 lehet.
Vegy黭 閟zre, hogy az owl:FunctionalProperty,
valamint az
owl:InverseFunctionalProperty
glob醠is kardinalit醩korl醫oz醩t val髎韙 meg. Azaz mindegy, hogy 閜pen melyik
oszt醠y egyedeit jellemezz黭 vele, a korl醫oz醩 mindig 閞v閚yben marad. Ez
teh醫 k黮鰊b鰖ik azokt髄 a kardinalit醩korl醫oz醩okt髄, amelyeket a Tulajdons醙korl醫oz醩ok c. szekci骲an ismertett黱k.
Ezek ugyanis mind oszt醠yle韗醩ok, s ez閞t csak helyileg, az 閜pen le韗t
oszt醠yra 閞v閚yesek.
Amikor egy P tulajdons醙ot tranzit韛nak deklar醠unk, ez annyit jelent, hogy ha egy (x,y) p醨 閟 egy (y,z) p醨 is P-nek egy-egy el鮢ordul醩a, akkor ebb鮨 az k鰒etkezik, hogy az (x,z) p醨 szint閚 egy el鮢ordul醩a P-nek.
Szintaktikailag egy tulajdons醙ot oly m骴on defini醠unk tranzit韛nak, hogy
az owl:TransitiveProperty
nev be閜韙ett OWL oszt醠y egyed関 tessz黭. (Ezt a be閜韙ett OWL oszt醠yt az
owl:ObjectProperty
aloszt醠yak閚t defini醠ja az OWL nyelv.)
A tranzit韛 tulajdons醙ok tipikus p閘d醝 azok a tulajdons醙ok, amelyek egy
bizonyos r閟z-eg閟z rel醕i髏 醔r醶olnak. P閘d醬l: mondhatn醤k, hogy a
subRegionOf
(alr間i骿a~nak) tulajdons醙 r間i髃 k鰖鰐ti
rel醕i髃閚t tranzit韛:
<owl:TransitiveProperty rdf:ID="subRegionOf"> <rdfs:domain rdf:resource="#Region"/> <rdfs:range rdf:resource="#Region"/> </owl:TransitiveProperty>
Ebb鮨 egy OWL k鰒etkeztet鮣閜nek le kell tudnia vezetni, hogy ha pl.
Chianti, Toscana 閟 It醠ia egy-egy r間i (Region
), 閟 Chianti
alr間i骿a (subregionOf
) Toscan帱code>nak
,
akkor Chianti alr間i骿a It醠i醤ak is.
Jegyezz黭 meg, hogy mivel az owl:TransitiveProperty
oszt醠y
az owl:ObjectProperty
oszt醠y aloszt醠ya, az al醔bi p閘da
egyen閞t閗 a fentivel:
<owl:ObjectProperty rdf:ID="subRegionOf"> <rdf:type rdf:resource="&owl;TransitiveProperty"/> <rdfs:domain rdf:resource="#Region"/> <rdfs:range rdf:resource="#Region"/> </owl:ObjectProperty>
MEGJEGYZ蒘: Az OWL DL nem engedi meg, hogy egy tranzit韛 tulajdons醙ra (vagy egy ilyennek a ford韙ottj醨a, szupertulajdons醙醨a, vagy a ford韙ottja szupertulajdons醙醨a) ak醨 lok醠is, ak醨 glob醠is kardinalit醩korl醫oz醩t deklar醠junk.
A szimmetrikus tulajdons醙 egy olyan tulajdons醙, amelyre 閞v閚yes a
k鰒etkez meg醠lap韙醩: ha egy (x,y) p醨 a P tulajdons醙
egyik el鮢ordul醩a, akkor az (y,x) p醨 szint閚 egy el鮢ordul醩a
P-nek. Szintaktikailag egy tulajdons醙ot 鷊y deklar醠unk
szimmetrikusnak, hogy azt az owl:SymmetricProperty
nev be閜韙ett OWL oszt醠y aloszt醠y醰 tessz黭. (Ezt a be閜韙ett OWL
oszt醠yt az owl:ObjectProperty
aloszt醠yak閚t
defini醠ja az OWL nyelv.)
A szimmetrikus tulajdons醙ra n閜szer p閘da a friendOf
(bar醫ja) rel醕i蝥
<owl:SymmetricProperty rdf:ID="friendOf"> <rdfs:domain rdf:resource="#Human"/> <rdfs:range rdf:resource="#Human"/> </owl:SymmetricProperty>
A szimmetrikus tulajdons醙ok 閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya azonos.
Egyedeket un. t閚yaxi髆醟kal defini醠hatunk (ezeket n閔a egyszer鹐n csak "t閚yeknek" nevezz黭). A t閚yek k閠 csoportj醨髄 besz閘het黱k:
A legt鯾b t閚y tipikusan olyan kijelent閟, mely egyedek oszt醠ytags醙醨髄 (oszt醠yhoz tartoz醩醨髄), vagy a tulajdons醙aik 閞t閗閞鮨 sz髄. P閘dak閜pen tekints黭 az al醔bi kijelent閟ek csokr醫, amelyben az Opera oszt醠y egyik egyed閞鮨 tesz黱k t閚y醠l韙醩okat.
<Opera rdf:ID="Tosca"> <hasComposer rdf:resource="#Giacomo_Puccini"/> <hasLibrettist rdf:resource="#Victorien_Sardou"/> <hasLibrettist rdf:resource="#Giuseppe_Giacosa"/> <hasLibrettist rdf:resource="#Luigi_Illica"/> <premiereDate rdf:datatype="&xsd;date">1900-01-14</premiereDate> <premierePlace rdf:resource="#Roma"/> <numberOfActs rdf:datatype="&xsd;positiveInteger">3</numberOfActs> </Opera>
Ez a p閘da ilyen t閚yeket tartalmaz a Tosc醨髄, az Opera oszt醠y egyik
egyed閞鮨, mint hogy a Tosca
szerz鮦e Giacomo Puccini, hogy az
oper醤ak h醨om sz鰒egk鰊yv韗骿a van (Sardou, Giacosa 閟 Illica) 閟 韌y
tov醔b. Itt a "bemutat驞醫uma" (premiereDate) tulajdons醙 az oper醫 egy
tipiz醠t liter醠hoz, az XML S閙a "date
" adatt韕us醜oz kapcsolja.
(Az [XML S閙a Adatt韕usok]
dokumentum tartalmazza a relev醤s inform醕i髏 ennek az adatt韕usnak a
szintaxis醨髄 閟 szemantik醞醨髄).
A t閚yaxi髆醟 nem sz黭s間szer鹐n sz髄nak neves韙ett egyedekr鮨: n関telen
egyedekre is vonatkozhatnak. P閘dak閜pen n閦z黭 meg az al醔bi RDF/XML
k骴r閟zletet. A p閘da n閔醤y t閚yt k鰖鰈 a M閞閟 (Measurement
)
oszt醠y egy n関telen egyed閞鮨 (egy m閞閟iadat-rekordr髄), ahol a m閞閟hez,
mint kvantitat韛 megfigyel閟hez, ilyen t閚yek list醞a tartozik: a megfigyelt
alany (observedSubject
), a megfigyelt jelens間
(observedPhenomenon
), a m閞t閗egys間
(quantityUnit
), a megfigyelt 閞t閗 (QuantityValue
),
閟 a megfigyel閟 id鮬ontja (TimeStamp
).
<Measurement> <observedSubject rdf:resource="#JaneDoe"/> <observedPhenomenon rdf:resource="#Weight"/> <observedValue> <Quantity> <quantityValue rdf:datatype="&xsd;float">59.5</quantityValue> <quantityUnit rdf:resource="#Kilogram"/> </Quantity> </observedValue> <timeStamp rdf:datatype="&xsd;dateTime">2003-01-24T09:00:08+01:00</timeStamp> </Measurement>
Ez a t閚yaxi髆a k閠 n関telen egyedet tartalmaz: valamilyen
Measurement
-et 閟 valamilyen Quantity
-t.
Term閟zetes nyelven a p閘da ezt mondja: "a Jane Doe nev alany
eset閎en a tests鷏y (Weight
) nev jelens間 m閞t 閞t閗e
egy olyan mennyis間, amelynek m閞t閗egys間e a Kilogramm, az 閞t閗e
pedig 59.5. A m閞閟 ideje 2003. janu醨 14-閚 reggel, 8
perccel 9 髍a ut醤, az UTC+1 髍醩 z髇aid鮞en (Amszterdam, Berlin, P醨izs t閘i
id鮯z醡韙醩a szerint)". Mint az el鮞bi p閘d醔an a date
adatt韕us, az itteni float
閟 dateTime
adatt韕usok
is XML S閙a adatt韕usok. (Az [XML S閙a
Adatt韕usok] dokumentum tartalmazza a sz黭s間es inform醕i髏
ezeknek az adatt韕usoknak a szintaxis醨髄 閟 szemantik醞醨髄).
Sok nyelv 閘 az "egyedi nevek felt閠elez閟閚ek" m骴szer関el, mely azt jelenti, hogy a nyelv elv醨ja: a k黮鰊b鰖 nevek k黮鰊b鰖 dolgokra hivatkozzanak a vil醙ban. A Weben azonban ilyen felt閠elez閟 nem lehets間es, hiszen pl. ugyanarra a szem閘yre k黮鰊b鰖 URI-k seg韙s間関el hivatkozhatunk. Emiatt az OWL nem is haszn醠 ilyen felt閠elez閟t. Hacsak explicite nem jelentj黭 ki (OWL nyelven), hogy k閠 URI hivatkoz醩 ugyanarra, vagy hogy k閠 k黮鰊b鰖 egyedre mutat, akkor az OWL-t t醡ogat eszk鰖鰇nek defaultk閚t azt kell felt閠elezni黭, hagy b醨melyik eset el鮢ordulhat.
Az OWL h醨om olyan nyelvi konstrukci髏 tartalmaz, amellyel t閚yeket jelenthet黱k ki az egyedek azonoss醙醰al kapcsolatban:
owl:sameAs
azt jelenti ki, hogy k閠 URI hivatkoz醩
ugyanarra az egyedre mutat.owl:differentFrom
seg韙s間関el azt 醠l韙juk, hogy k閠
URI hivatkoz醩 k黮鰊b鰖 egyedekre mutat.owl:AllDifferent
pedig egy olyan fogalmat takar,
amellyel egyedek egy megadott list醞醨髄 kijelenthetj黭, hogy abban
minden egyed k黮鰊b鰖ik a t鯾bit鮨.Az owl:sameAs
be閜韙ett OWL tulajdons醙 egy egyedet egy m醩ik egyedhez kapcsol. Egy
owl:sameAs
kijelent閟 azt deklar醠ja, hogy k閠 URI hivatkoz醩
t閚ylegesen ugyanarra az egyedre mutat (az egyedeknek ugyanaz az
"identit醩uk").
Olyan egyedek eset閎en, mint pl. "emberek", ezt a fogalmat viszonylag k鰊ny meg閞teni. P閘d醬l, 醠l韙hatn醤k azt, hogy a k鰒etkez k閠 URI t閚ylegesen ugyanarra a szem閘yre hivatkozik:
<rdf:Description rdf:about="#William_Jefferson_Clinton"> <owl:sameAs rdf:resource="#BillClinton"/> </rdf:Description>
Az owl:sameAs
醠l韙m醤yt gyakran haszn醠juk, amikor k閠
ontol骻ia k鰖鰐ti lek閜ez閟eket defini醠unk. Nem realisztikus ugyanis
elv醨ni, hogy mindenki ugyanazzal a n関vel hivatkozz閗 egy bizonyos egyedre.
(Ez egy grandi髗us tervet ig閚yelne, ami ellenkezik a Web szellem関el).
Az OWL Full-ban, ahol oszt醠yokat m醩 (meta)oszt醠yok egyedek閚t is
kezelhet黱k, az owl:sameAs
konstrukci髏 haszn醠hatjuk oszt醠yok
egyenl鮯間閚ek a deklar醠醩醨a is, kimondva ily m骴on azt, hogy a k閠 fogalom
intenzion醠is jelent閟e azonos. Egy p閘da:
<owl:Class rdf:ID="FootballTeam"> <owl:sameAs rdf:resource="http://sports.org/US#SoccerTeam"/> </owl:Class>
Elk閜zelhetj黭 ezt az axi髆醫, pl. egy hipotetikus "Eur髉ai sportok
ontol骻i醞a" elemek閚t. A k閠 oszt醠yt itt egyednek tekintj黭 (az
owl:Class egyed閚ek
). Ez lehet鮲 teszi nek黱k, hogy
kijelents黭: a FootballTeam
oszt醠y az Eur髉ai sportok
ontol骻i醞醔an ugyanazt a fogalmat jel鰈i meg, mint a SoccerTeam
az Amerikai sportok ontol骻i醞醔an. Vegy黭 閟zre azonban a jelent閟 elt閞閟閠
az al醔bi kijelent閟ben:
<footballTeam owl:equivalentClass us:soccerTeam />
Ez ugyanis azt mondja, hogy a k閠 oszt醠y oszt醠ykiterjed閟e azonos, de a k閠 oszt醠y nem sz黭s間szer鹐n jelenti ugyanazt a fogalmat.
MEGJEGYZ蒘: Az URI hivatkoz醩ok 鰏szehasonl韙醩醤ak r閟zleteivel kapcsolatban l醩d az [RDF Fogalmak]. dokumentum megfelel szekci骿醫.
Az owl:differentFrom
be閜韙ett OWL tulajdons醙 egy egyedet egy m醩ik egyedhez kapcsol. Egy
owl:differentFrom
kijelent閟 azt deklar醠ja, hogy k閠 URI
hivatkoz醩 k黮鰊b鰖 egyedekre mutat.
P閘da:
<Opera rdf:ID="Don_Giovanni"/> <Opera rdf:ID="Nozze_di_Figaro"> <owl:differentFrom rdf:resource="#Don_Giovanni"/> </Opera> <Opera rdf:ID="Cosi_fan_tutte"> <owl:differentFrom rdf:resource="#Don_Giovanni"/> <owl:differentFrom rdf:resource="#Nozze_di_Figaro"/> </Opera>Ez a p閘da azt deklar醠ja, hogy a fenti h醨om Mozart opera k黮鰊b鰖?
Az olyan ontol骻i醟, amelyek egyedi neveket felt閠eleznek, val髎z韓鹟eg
nagy sz醡ban alkalmaznak owl:differentFrom
醠l韙醩okat, hiszen
az egyedek minden lehets間es p醨kombin醕i骿醨髄 k黮鰊-k黮鰊 ki kell
mondaniuk, hogy k黮鰊b鰖鮡k. Ilyen esetekre az OWL-nak van egy speci醠is
idi髆醞a, amelyet az owl:AllDifferent
konstrukci realiz醠. Az owl:AllDifferent
egy speci醠is,
be閜韙ett OWL oszt醠y, amelyhez defini醠tak egy owl:distinctMembers
tulajdons醙ot is. Ez a tulajdons醙 az owl:AllDifferent
oszt醠y
egyik egyed閠 m醩 egyedek egy megadott list醞醜oz kapcsolja. Az ilyen
konstrukci sz醤d閗olt jelent閟e az, hogy a list醔an szerepl minden egyed
k黮鰊b鰖ik a lista t鯾bi egyed閠鮨.
P閘d醬l:
<owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> <Opera rdf:about="#Don_Giovanni"/> <Opera rdf:about="#Nozze_di_Figaro"/> <Opera rdf:about="#Cosi_fan_tutte"/> <Opera rdf:about="#Tosca"/> <Opera rdf:about="#Turandot"/> <Opera rdf:about="#Salome"/> </owl:distinctMembers> </owl:AllDifferent>
Ez a p閘da azt 醠lap韙ja meg, hogy ez a hat URI hivatkoz醩 hat k黮鰊b鰖酎/em> oper醨a mutat.
MEGJEGYZ蒘: az owl:distinctMembers
egy speci醠is
szintaktikai konstrukci? egy olyan 醠l韙m醤y, amelyet k閚yelmi okokb髄
vettek fel a nyelvbe, 閟 amelynek alanya mindig egy
owl:AllDifferent
egyed.
Ebben a dokumentumban t鯾b helyen tal醠kozhattunk azzal a fogalommal, hogy adat閞t閗-tartom醤y, amikor adat閞t閗ek egy bizonyos halmaz醫 kellett specifik醠nunk. Az OWL az adat閞t閗tartom醤y-specifik醕i髃 h醨om t韕us醫 tartalmazza:
owl:oneOf
konstrukci felhaszn醠醩醰al.Az adatt韕usok minim醠is eszk鰖t醡ogat醩醫 a 6.3. szekci螯/a> t醨gyalja.
Az OWL az RDF adattipiz醠醩i s閙醞醫 alkalmazza, mely tartalmaz egy mechanizmust az XML S閙a adatt韕usaira t鰎t閚 hivatkoz醩hoz [XML S閙a adatt韕usok]. Ezek r閟zletesebb le韗醩醫 megtal醠ja az olvas az RDF dokumentumokban, pl. az [RDF Fogalmak] dokumentum醔an. Az olvas t醞閗oztat醩醨a itt most csak az RDF adatt韕usok szinopszis醫 adjuk meg.
Az adat閞t閗ek az rdfs:Literal
RDF S閙a oszt醠y
egyedei
. A liter醠ok lehetnek egyszer鹐k (adatt韕us n閘k黮iek),
vagy tipiz醠tak. Az adatt韕usok az rdfs:Datatype
oszt醠y egyedei. Az RDF/XML-ben egy liter醠 t韕us醫 egy
rdf:datatype
attrib鷗ummal specifik醠juk, amelynek az 閞t閗e
aj醤latos, hogy az al醔biak valamelyike legyen:
http://www.w3.org/2001/XMLSchema#NAMEahol "NAME" egy egyszer? be閜韙ett XML S閙a adatt韕us neve, ahogy azt az [XML S閙a Adatt韕usok] 3. szekci骿a defini醠ja, az al醔b specifik醠t kik鰐閟ekkel.
rdf:XMLLiteral
adatt韕us URI hivatkoz醩a. Ezt az
adatt韕ust haszn醠juk, ha XML tartalmat akarunk be閜韙eni egy RDF/OWL
dokumentumba. Ennek az adatt韕usnak az URI hivatkoz醩a:
http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteralErr鮨 az adatt韕usr髄 tov醔bi r閟zletek tal醠hat髃 az [RDF Fogalmak] dokumentum醔an.
Az [RDF Szemantika] dokumentum 5. fejezete az al醔bi be閜韙ett XML S閙a adatt韕usok haszn醠at醫 aj醤lja:
xsd:string
elemi adatt韕ust, plusz az xsd:string
-b鮨 sz醨maztatott
k鰒etkez adatt韕usokat: xsd:normalizedString
,
xsd:token
,
xsd:language
,
xsd:NMTOKEN
,
xsd:Name
閟 xsd:NCName
.xsd:boolean
elemi adatt韕ust.xsd:decimal
,
xsd:float
閟 xsd:double
,
valamint az xsd:decimal adatt韕usb髄 deriv醠t 鰏szes adatt韕ust (xsd:integer
,
xsd:positiveInteger
.
xsd:nonPositiveInteger
,
xsd:negativeInteger
,
xsd:nonNegativeInteger
,
xsd:long
,
xsd:int
,
xsd:short
,
xsd:byte
,
xsd:unsignedLong
,
xsd:unsignedInt
,
xsd:unsignedShort
,
xsd:unsignedByte
).xsd:dateTime
,
xsd:time
,
xsd:date
,
xsd:gYearMonth
,
xsd:gYear
,
xsd:gMonthDay
,
xsd:gDay
閟 xsd:gMonth
.xsd:hexBinary
,
xsd:base64Binary
閟 xsd:anyURI
.MEGJEGYZ蒘: nem illeg醠is ugyan, de nem is aj醤latos, hogy az
alkalmaz醩ok saj醫 adatt韕usokat defini醠janak az rdfs:Datatype
egyedek閚t. Az ilyen adatt韕usokat "ismeretlennek" min鮯韙i a nyelv, 閟
hasonl m骴on kezeli 鮧et, mint a "nem t醡ogatott" adatt韕usokat (L醩d a
r閟zleteket a 6.3. szekci骲an arr髄, hogy az
OWL szoftvereszk鰖einek hogyan kell kezelni黭 ezeket az eseteket.)
Amikor adatt韕usokat haszn醠unk, ne felejts黭 el, hogy az RDF/XML elv醨ja,
hogy egy adatt韕us-tulajdons醙 閞t閗閚ek haszn醠at醤醠 az adat閞t閗re mindig
megadjuk az adatt韕ust, m間 akkor is, ha m醨 defini醠tuk ennek az
adatt韕us-tulajdons醙nak az 閞t閗tartom醤y醫. P閘da lehet erre a
timeStamp
tulajdons醙, amelyet kor醔ban m醨 haszn醠tunk a M閞閟
(Measurement
) p閘d醤醠. (Figyelj黭 meg, hogy egyszer a
tulajdons醙 閞t閗tartom醤yak閚t (rdf:range
) deklar醠juk a
"dateTime" adatt韕ust, majd az 閞t閗ad醩n醠 adatt韕usk閚t
(rdf:datatype
) 鷍b髄 megadjuk):
<owl:DatatypeProperty rdf:about="#timeStamp"> <rdfs:domain rdf:resource="#Measurement"/> <rdf:range rdf:resource="&xsd;dateTime"/> </owl:DatatypeProperty> <Measurement> <timeStamp rdf:datatype="&xsd;dateTime">2003-01-24T09:00:08+01:00</timeStamp> </Measurement>
Az RDF adatt韕usok mellett az OWL tartalmaz egy tov醔bi konstrukci髏 is
adat閞t閗-tartom醤yok defini醠醩醨a, nevezetesen a "felsorol醩" adatt韕ust.
Ezt az adatt韕us form醫umot az owl:oneOf
konstrukci髒al
deklar醠juk, amelyet egy閎k閚t felsorol醩oszt醠yok le韗醩醨a is haszn醠unk.
Felsorol醩-adatt韕us eset閚 az owl:oneOf
alanya egy owl:DataRange
oszt醠y 黵es gr醘csom髉ont, a t醨gya pedig liter醠ok list醞a. Sajnos, itt
nem haszn醠hatjuk az rdf:parseType="Collection"
idi髆醫 a
liter醠ok list醞醤ak megad醩醨a, mivel az RDF elv醨ja, hogy egy kollekci RDF
csom髉onti elemek list醞a legyen. Ez閞t az adat閞t閗ek list醞醫 az elemi
listakonstrukci髃 (az rdf:first
, az rdf:rest
閟 az
rdf:nil
) seg韙s間関el specifik醠juk.
MEGJEGYZ蒘: Felsorol醩 adatt韕usokat az OWL Lite-ban nem haszn醠hatunk.
Az al醔bi p閘da a tennisGameScore
(teniszj醫szma-eredm閚y)
tulajdons醙 adat閞t閗-tartom醤y醫 eg閟z sz醡ok list醞醰al {0, 15, 30, 40}
specifik醠ja:
<owl:DatatypeProperty rdf:ID="tennisGameScore"> <rdfs:range> <owl:DataRange> <owl:oneOf> <rdf:List> <rdf:first rdf:datatype="&xsd;integer">0</rdf:first> <rdf:rest> <rdf:List> <rdf:first rdf:datatype="&xsd;integer">15</rdf:first> <rdf:rest> <rdf:List> <rdf:first rdf:datatype="&xsd;integer">30</rdf:first> <rdf:rest> <rdf:List> <rdf:first rdf:datatype="&xsd;integer">40</rdf:first> <rdf:rest rdf:resource="&rdf;nil" /> </rdf:List> </rdf:rest> </rdf:List> </rdf:rest> </rdf:List> </rdf:rest> </rdf:List> </owl:oneOf> </owl:DataRange> </rdfs:range> </owl:DatatypeProperty>
Az OWL-t t醡ogat szoftvereszk鰖鰇 k黮鰊b鰖鮡k lehetnek att髄 f黦g鮡n,
hogy mik閚t t醡ogatj醟 az adatt韕us-k鰒etkeztet閟 fogalm醫. A
szoftvereszk鰖鰇nek ezt az opci髏 legal醔b az xsd:string
閟 az
xsd:integer
XML S閙a adatt韕usok vonatkoz醩醔an t醡ogatniuk
kell. Az OWL Full eszk鰖鰇nek ezen fel黮 t醡ogatniuk kell az
rdf:XMLLiteral
adatt韕ust is. A nem t醡ogatott adatt韕usok
eset閚 a lexikailag azonos liter醠okat egyenl鮧nek kell tekinteni, m韌 a
lexikailag k黮鰊b鰖 liter醠okr髄 azt kell felt閠elezni, hogy vagy egyenl鮧,
vagy nem. Az "ismeretlen" adatt韕usokat ugyan鷊y kell kezelni, mint a "nem
t醡ogatott" adatt韕usokat.
Az OWL Full semmilyen form醔an nem korl醫ozza az annot醕i髃at (fontos megjegyz閟eket) egy ontol骻i醔an. Az OWL DL lehet鮲 teszi az annot醕i髃at oszt醠yokkal, tulajdons醙okkal, egyedekkel, 閟 ontol骻ia-headerekkel kapcsolatban, de csak az al醔bi felt閠elekkel:
dc:creator
nem lehet egyidej鹟eg adatt韕us-tulajdons醙 閟
annot醕i髏ulajdons醙 is.AnnotationPropertyID rdf:type owl:AnnotationProperty .
Az OWL-ban 鰐 annot醕i髏ulajdons醙 van el鮮e defini醠va, nevezetesen:
owl:versionInfo
(verzi?inform醕i?rdfs:label
(c韒ke)rdfs:comment
(komment醨)rdfs:seeAlso
("L醩d ~t is")rdfs:isDefinedBy
("defini醠ta:")蚼e egy p閘da egy annot醕i髏ulajdons醙 leg醠is haszn醠at醨a OWL DL-ben:
<owl:AnnotationProperty rdf:about="&dc;creator"/> <owl:Class rdf:about="#MusicalWork"> <rdfs:label>Musical work</rdfs:label> <dc:creator>N.N.</dc:creator> </owl:Class>
A p閘da felt閠elezi, hogy a &dc;
illetve a
dc:
prefix a Dublin Core URI-ra, illetve n関t閞re mutat. 蚲y a
Dublin Core tulajdons醙ok annot醕i髏ulajdons醙k閚t t鰎t閚 haszn醠ata OWL
DL-ben egy explicit tipiz醠 tripletet ig閚yel. Ez biztos韙ja, hogy az OWL DL
k鰒etkeztet鮣閜ek szemantikailag korrekt m骴on haszn醠j醟 az annot醕i髃at (a
r閟zleteket l醩d az OWL Szemantika 閟 absztrakt szintaxis [OWL Sz&ASz] dokumentumban).
Ha m醨 egyszer a dc:creator-t
annot醕i髏ulajdons醙k閚t
deklar醠tuk, az OWL DL m醨 nem engedi ezt tulajdons醙axi髆醟ban korl醫ozni
– pl. az 閞t閗tartom醤ya tekintet閎en – l醩d al醔b:
<-- Ez p閘d醬l illeg醠is OWL DL eset閚 --> <owl:AnnotationProperty rdf:about="&dc;creator"> <rdfs:range rdf:resource="&xsd;string"/> </owl:AnnotationProperty>
Jegyezz黭 meg azonban, hogy annot醕i髏ulajdons醙-deklar醕i髃ban az adat閞t閗ek liter醠 t韕us醫 az閞t szabad specifik醠nunk:
<Opera rdf:about="#Tosca"> <dc:creator rdf:datatype="&xsd;string">Giacomo Puccini</dc:creator> </Opera>
Egy dokumentum, mely egy ontol骻i醫 韗 le, 醠tal醔an tartalmaz inform醕i髏 mag醰al az ontol骻i醰al kapcsolatban is. Az ontol骻ia egy adatforr醩, s 韌y az le韗hat olyan tulajdons醙okkal, amelyeket az OWL n関ter閎鮨, vagy m醩 n関terekb鮨 vesz黱k. P醠d醬l:
<owl:Ontology rdf:about=""> <owl:versionInfo> ... </owl:versionInfo> <rdfs:comment>...</rdfs:comment> <owl:imports rdf:resource="..."/> </owl:Ontology>
Az ilyen inform醕i骲lokkot ontol骻ia-headernek nevezz黭, 閟 醠tal醔an az RDF/XML dokumentumok elej閞e tessz黭. Az al醔bi sor:
<owl:Ontology rdf:about="">
kijelenti, hogy ez a blokk a jelenlegi ontol骻i醫 韗ja le. Pontosabban:
azt mondja, hogy a jelenlegi dokumentum b醶is URI-ja az
owl:Ontology
oszt醠y egyik egyed閠 azonos韙ja. Aj醤latos, hogy a
b醶is URI-t a dokumentum legelej閚 tal醠hat <rdf:RDF
>
elem xml:base
attrib鷗uma seg韙s間関el explicit m骴on
defini醠juk.
Egy ontol骻ia-header pl. 韌y n閦ne ki:
<owl:Ontology rdf:about=""> <owl:versionInfo>v 1.17 2003/02/26 12:56:51 mdean</owl:versionInfo> <rdfs:comment>An example ontology</rdfs:comment> <owl:imports rdf:resource="http://www.example.org/foo"/> </owl:Ontology>
A k鰒etkez szekci髃 le韗j醟 azokat a k黮鰊b鰖 deklar醕i髃at, amelyeket tipikusan a headeren bel黮 haszn醠unk.
MEGJEGYZ蒘: Az owl:imports
ontol骻ia import醠 konstrukci髏 閟 az owl:priorVersion, owl:backwardCompatibleWith, owl:incompatibleWith ontol骻ia-verzi髃ezel
konstrukci髃at az OWL sz髃閟zlete defini醠ja az owl:OntologyProperty
oszt醠y
egyedeik閚t. Az owl:OntologyProperty
oszt醠y egyedeinek
閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya egyar醤t az owl:Ontology
oszt醠y kell hogy legyen. Szabad m醩 ontol骻iatulajdons醙okat is defini醠ni
az owl:OntologyProperty
egyedei mell? Az OWL DL-ben az
ontol骻iatulajdons醙okra ugyanazok a megk鰐閟ek 閞v閚yesek, mint a 7.1 szekci骲an ismertetett
annot醕i髏ulajdons醙okra.
Az owl:imports
kijelent閟 egy m醩ik ontol骻i醨a hivatkozik, mely olyan defin韈i髃at
tartalmaz, amelyek jelent閟tartalma az import醠 ontol骻ia
jelent閟tartalm醤ak r閟z閠 k閜ezi. Minden ilyen hivatkoz醩 egy URI-b髄 醠l,
mely azt specifik醠ja, hogy honnan import醠juk az ontol骻i醫. Szintaktikailag
az owl:imports
egy tulajdons醙, amelynek az 閞v閚yess間i k鰎e 閟
az 閞t閗tartom醤ya egyar醤t az owl:Ontology
oszt醠y.
Az owl:imports
醠l韙醩ok tranzit韛ak, azaz, ha az A
ontol骻ia import醠ja B-t, 閟 B import醠ja C-t,
akkor A import醠ja B-t 閟 C-t is.
Az, hogy egy OWL szoftvereszk鰖nek be kell-e t鰈tenie az import醠t ontol骻i醫 a befogad ontol骻i醔a, vagy sem, az mindig az eszk鰖 rendeltet閟閠鮨 f黦g. Ha az eszk鰖 egy teljes k鰒etkeztet rendszer (mely teljes konzisztencia-ellen鮮z閟t is tartalmaz), akkor be kell t鰈tenie az import醠t ontol骻i醟at. Egy閎 eszk鰖鰇, mint p閘d醬l az egyszer szerkeszt programok 閟 a nem teljes k鰒etkeztet rendszerek d鰊thetnek 鷊y is, hogy az import醠t ontol骻i醟b髄 csak n閔醤yat t鰈tenek be, vagy ak醨 egyetlenegyet sem.
Hab醨 az owl:imports
deklar醕i髃 閟 a n関t閞deklar醕i髃
redund醤snak t鹡hetnek, ezek val骿醔an k黮鰊b鰖 c閘okra szolg醠nak. A
n関t閞deklar醕i髃 egyszer鹐n csak r鰒id韙閟eket kre醠nak, amelyekkel
adatforr醩-azonos韙髃ra lehet hivatkozni. Ezek implicite nem 閜韙ik be az
ontol骻i醔a annak a dokumentumnak a jelent閟tartalm醫, amelyet a hivatkozott
adaforr醩-azonos韙 (URI) megc韒ez. Az owl:imports viszont nem produk醠 olyan
r鰒id韙閟eket, amelyekkel az import醠t dokumentum azonos韙骾ra lehetne
hivatkozni. Ez閞t bevett szok醩, hogy mindig megadjuk az import醠t
ontol骻i醟nak megfelel n関t閞deklar醕i髃at is.
MEGJEGYZ蒘: az owl:imports
az
owl:OntologyProperty
egyede.
Az owl:versionInfo
醠l韙m醤yhoz tartoz t醨gy 醠tal醔an egy karakterl醤c, mely inform醕i髃at
tartalmaz a jelenlegi ontol骻ia-verzi髍髄 (ezek lehetnek p閘d醬l RCS/CVS
kulcsszavak). Egy ilyen 醠l韙醩 semmit nem tesz hozz az ontol骻ia
jelent閟tartalm醜oz azon fel黮, amit az RDF(S) model theory (az RDF
S閙a form醠is, modell-elm閘eti szemantik醞a) defini醠.
Az owl:versionInfo
tulajdons醙ot tipikusan arra haszn醠juk,
hogy ontol骻i醟r髄 k鰖鰈j黱k vele verzi?inform醕i髃at, de alkalmazhatjuk
b醨milyen m醩 OWL konstrukci髃 eset閎en is. P閘d醬l egy OWL oszt醠yhoz is
csatolhatn醤k egy owl:versionInfo
deklar醕i髏.
MEGJEGYZ蒘: Az owl:versionInfo
az
owl:AnnotationProperty
oszt醠y egyede.
Az owl:priorVersion
kijelent閟 egy olyan URI hivatkoz醩t tartalmaz, mely egy m醩ik ontol骻i醨a
mutat. Ez azt mondja ki a hivatkozott ontol骻i醨髄, hogy az a jelen ontol骻ia
el鮶 verzi骿a. Ennek a kijelent閟nek a modell-elm閘eti szemantik醔an nincs
egy閎 jelent閟e, mint amit az RDF(S) model theory hozz醨endel. A
szoftver azonban j髄 haszn醠hatja ezt az inform醕i髏 az ontol骻i醟 verzi髃
szerinti szervez閟閔ez.
Az owl:priorVersion
egy be閜韙ett OWL tulajdons醙, amelynek
閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya egyar醤t az owl:Ontology
oszt醠y.
MEGJEGYZ蒘: az owl:priorVersion
az
owl:OntologyProperty
oszt醠y egyede.
Az owl:backwardCompatibleWith
kijelent閟 egy olyan URI hivatkoz醩t tartalmaz, mely egy m醩ik ontol骻i醨a
mutat. Ez azt 醠l韙ja a hivatkozott ontol骻i醨髄, hogy a jelen ontol骻ia
el鮶 verzi骿a, 閟 hogy a jelen ontol骻ia verzi visszamen鮨egesen
kompatibilis ezzel az el鮠j関el. A visszamen鮨eges kompatibilit醩 f鮨eg azt
jelzi, hogy az el鮶 verzi骲an haszn醠t 鰏szes azonos韙髇ak ugyanaz az
interpret醕i骿a az 鷍 verzi骲an is. Egy ilyen kijelent閟 teh醫 fontos jelz閟
lehet azok sz醡醨a, akik az el鮶 verzi髏 haszn醠t醟, hiszen ebb鮨 l醫hatj醟,
hogy biztons醙osan 醫醠lhatnak az 鷍 verzi髍a, el間 csak megv醠toztatniuk a
n関t閞deklar醕i髃at, valamint az owl:imports
deklar醕i髏 oly
m骴on, hogy ezek az 鷍 verzi URL-j閠 haszn醠j醟.
Ha az owl:backwardCompatibleWith
nincs deklar醠va k閠 verzi
sz醡醨a, akkor a kompatibilit醩t nem szabad felt閠elezn黱k.
Az owl:backwardCompatibleWith
kijelent閟nek a modell-elm閘eti
szemantik醔an nincs egy閎 jelent閟e, mint amit az RDF(S) model
theory hozz醨endel.
Az owl:backwardCompatibleWith
egy be閜韙ett OWL tulajdons醙,
amelynek 閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya egyar醤t az
owl:Ontology
oszt醠y.
MEGJEGYZ蒘: az
az
owl:backwardCompatibleWith
owl:OntologyProperty
oszt醠y egyede.
Az owl:incompatibleWith
kijelent閟 egy m醩ik ontol骻i醨a hivatkozik, 閟 azt mondja r髄a, hogy az a
jelen ontol骻ia el鮶 verzi骿a, 閟 hogy a jelen verzi visszamen鮨egesen
nem kompatibilis az el鮠j関el. Ez els鮯orban azoknak az
ontol骻iaszerz鮧nek lehet fontos inform醕i? akik biztosak akarnak lenni
abban, hogy nem 醠lhatnak 醫 az 鷍 ontol骻ia verzi haszn醠at醨a annak
ellen鮮z閟e n閘k黮, hogy sz黭s間es-e v醠toztatniuk a saj醫 ontol骻i醞ukon,
vagy sem.
Az owl:incompatibleWith
kijelent閟nek a modell-elm閘eti
szemantik醔an nincs egy閎 jelent閟e, mint amit az RDF(S) model
theory hozz醨endel.
Az owl:incompatibleWith
egy be閜韙ett OWL tulajdons醙,
amelynek 閞v閚yess間i k鰎e 閟 閞t閗tartom醤ya egyar醤t az
owl:Ontology
oszt醠y.
MEGJEGYZ蒘: az
az owl:incompatibleWith
owl:OntologyProperty
oszt醠y egyede.
Az elavultat醩
(deprecation) egy 醠tal醤osan haszn醠t fogalom a verzi髃ezel szoftverek
ter黮et閚 annak jelz閟閞e, hogy egy bizonyos, elavult nyelvi elemet csak a
visszamen鮨eges kompatibilit醩 miatt tartunk meg, 閟 hogy ez az elem
feltehet鮡n kimarad a nyelv k閟鮞bi verzi骾b髄 (l醩d pl. a Java programoz醩i
nyelvn閘). Ezzel a k閠 nyelvi konstrukci髒al egy azonos韙髍髄 azt
醠l韙hatjuk, hogy owl:DeprecatedClass
t韕us? vagy owl:DeprecatedProperty
t韕us? ahol az owl:DeprecatedClass
az rdfs:Class
aloszt醠ya, az owl:DeprecatedProperty
pedig az
rdf:Property
aloszt醠ya. Azzal, hogy elavultnak nyilv醤韙unk egy
kifejez閟t, azt akarjuk jelezni, hogy az ontol骻iafejleszt鮧 ne haszn醠j醟 az
鷍abb dokumentumaikban, ha ezek a dokumentumok f黦genek a jelen ontol骻i醫髄
(閟 annak k閟鮞bi verzi骾t髄). Ez az opci lehet鮲 teszi, hogy az ontol骻i醟
fenntarthass醟 a visszamen鮨eges kompatibilit醩t, de az閞t fokozatosan
lecser閘hess閗 az elavult sz髃閟zletet (韌y az elavultat醩nak csak a
visszamen鮨eges kompatibilit醩 fenntart醩醰al egy黷t van 閞telme). Ennek
eredm閚yek閚t k鰊nyebb a r間i adatokat 閟 alkalmaz醩okat 醫醠l韙ani az 鷍abb
ontol骻ia verzi髍a. Az elavults醙ot deklar醠 kijelent閟eknek a
modell-elm閘eti szemantik醔an nincs t鯾b jelent閟黭, mint amit az RDF(S)
model theory hozz醞uk rendel. Az ontol骻iafejleszt rendszerek azonban
felhaszn醠hatj醟 ezeket arra, hogy felh韛j醟 a felhaszn醠髃 figyelm閠 a
sz黭s間es ellen鮮z閟ekre.
Egy elavultat醩i p閘da:
<owl:Ontology rdf:about=""> <rdfs:comment>J醨m Ontologia, v. 1.1</rdfs:comment> <owl:backwardCompatibleWith rdf:resource="http://www.example.org/J醨m?1.0"/> <owl:priorVersion rdf:resource="http://www.example.org/j醨m?1.0"/> </owl:Ontology> <owl:DeprecatedClass rdf:ID="Aut?> <rdfs:comment>Modernebb a Szem閘yg閜kocsi kifejez閟</rdfs:comment> <owl:equivalentClass rdf:resource="#Szem閘yg閜kocsi"/> <!-- Megjegyz閟: az equivalentClass csak annyit jelent, hogy ugyanaz a kiterjed閟e, teh醫 NEM k鰒etkezik bel鮨e, hogy a Szem閘yg閜kocsi szint閚 elavult kifejez閟 volna --> </owl:DeprecatedClass> <owl:Class rdf:ID="Szem閘yg閜kocsi" /> <owl:DeprecatedProperty rdf:ID="sof鮮je"> <rdfs:comment>inverse property drives is now preferred</rdfs:comment> <owl:inverseOf rdf:resource="#~g閜kocsitVezet" /> </owl:DeprecatedProperty> <owl:ObjectProperty rdf:ID="~g閜kocsitVezet" />
Ebben a p閘d醔an J醨m ontol骻ia 1.1 verzi骿醫 visszamen鮨egesen
kompatibilisnak deklar醠tuk az 1.0 verzi骿醰al. Ugyanakkor elavultnak
min鮯韙ett黭 a r間i verzi骲an szerepl Automobil oszt醠yt, amelyet az 鷍
verzi骲an (azonos oszt醠ykiterjed閟sel) m醨 a Szem閘yg閜kocsi oszt醠y
helyettes韙. Ugyancsak elavultt min鮯韙i a p閘da a "sof鮮je"
tulajdons醙ot, 閟 helyette a "~g閜kocsitVezet"
tulajdons醙
ford韙ottj醫 vezeti be, ami ugyan az XML k骴ban nem szerepel, de
valami ilyesmi lehet, mint "g閜kocsiVezet鮦e". [A magyar ford韙醩ban a tilde (~) karakter
el鮮eutal醩 a tulajdons醙hoz tartoz t醨gyra. (Pl. egy ilyen triplet: "J醤os
~g閜kocsitVezet BMW" 韌y olvasand蝥 J醤os BMW g閜kocsit vezet. A ford韙ott
tulajdons醙gal a triplet: "BMW g閜kocsiVezet鮦e J醤os") – a
ford.]
A bevezet閟ben r鰒iden m醨 t醨gyaltuk az OWL h醨om alnyelv閠. Ez a fejezet informat韛 m骴on specifik醠ja a nyelv ezen h醨om "alfaj醤ak" k黮鰊bs間eit. A k黮鰊bs間ek form醠is kimutat醩醫 az OWL Szemantika 閟 absztrakt szintaxis dokumentum [OWL Sz&ASz] tartalmazza.
Az OWL Full val骿醔an nem egy alnyelv. Az OWL Full tartalmazza az 鰏szes
OWL nyelvi konstrukci髏, tov醔b lehet鮲 teszi az RDF konstrukci髃 szabad 閟
korl醫lan haszn醠at醫. Az OWL Full-ban az owl:Class
nev
er鮢orr醩 enyen閞t閗 az rdfs:Class
er鮢orr醩sal. Ez nem 韌y van
az OWL DL 閟 OWL Lite alnyelvben, ahol az owl:Class
az
rdfs:Class
-nak egy megfelel aloszt醠ya (ami azt jelenti, hogy
az OWL DL 閟 OWL Lite eset閎en nem minden RDF oszt醠y egyben OWL oszt醠y is).
Az OWL Full lehet鮲 teszi tov醔b? hogy oszt醠yokat egyedk閚t is
kezelhess黱k. P閘d醬l: az OWL Full-ban teljesen leg醠is, hogy van egy
"Fokker-100" azonos韙髇k, mely egyszer 鷊y m鹝鰀ik, mint egy oszt醠yn関
(ilyenkor pl. a vil醙ban rep黮 konkr閠 Fokker-100 g閜ek halmaz醫 jelenti),
m醩kor meg 鷊y, mint egy egyednek a neve (ilyenkor pl. a Rep黮鮣閜T韕usok
oszt醠y醤ak egyik egyed閠 azonos韙ja).
Az OWL Full-ban az 鰏szes adat閞t閗et egyszersmind egyednek is tekintj黭.
Az OWL Full-ban az egyedek univerzuma az 鰏szes er鮢orr醩b髄 (resource) 醠l.
(Az owl:Thing
egyen閞t閗 az rdfs:Resource
-szal).
Ez azt jelenti, hogy az objektumtulajdons醙ok 閟 az adatt韕us-tulajdons醙ok
itt nem alkotnak diszjunkt halmazokat. Az OWL Full-ban az
owl:ObjectProperty
egyen閞t閗 az rdf:Property
-vel.
Ennek k鰒etkezm閚ye az, hogy az adatt韕us-tulajdons醙ok t閚ylegesen az
objektumtulajdons醙ok aloszt醠y醫 k閜ezik. Ennek nem mond ellent az a t閚y
sem, hogy az owl:ObjectProperty
閟 az
owl:DatatypeProperty
az rdf:Property
aloszt醠yai.
Az OWL Full tipikusan azok sz醡醨a hasznos, akik kombin醠ni szeretn閗 az OWL Full kifejez鮧閜ess間閠 az RDF flexibilit醩醰al 閟 metamodellez k閜ess間eivel. Az OWL Full lehet鮯間einek a kihaszn醠醩a azonban azt is jelenti, hogy bizonyos m閞t閗ig elvesz韙j黭 azokat a garanci醟at (l醩d al醔b) amelyeket az OWL DL 閟 az OWL Lite tud ny鷍tani a k鰒etkeztet rendszerek sz醡醨a.
MEGJEGYZ蒘: Az RDF dokumentumok 醠tal醔an OWL Full szint dokumentumoknak tekinthet鮧, hacsak nem specifikusan OWL DL-nek vagy OWL Lite-nak tervezt閗 鮧et.
MEGJEGYZ蒘: 蚲y az OWL Full-ban az owl:Thing
egyen閞t閗 az rdfs:Resource
-szal, az owl:Class
az
rdfs:Class
-szal, az owl:ObjectProperty
pedig az
rdf:Property
-vel.
Az OWL DL az OWL alnyelve, mely bizonyos korl醫okat vezet be az OWL nyelvi konstrukci骾nak hszn醠at醨a. Ezek a korl醫ok r鰒iden a k鰒etkez鮧:
Az ut骲bi kik鰐閟 azt is jelenti, hogy minden oszt醠y 閟 tulajdons醙, amelyre hivatkozunk, kifejezetten csak OWL oszt醠y, illetve tulajdons醙 lehet. P閘d醬l: ha az ontol骻ia az al醔bi komponenst tartalmazza:
<owl:Class rdf:ID="C1"> <rdfs:subClassOf rdf:resource="#C2" /> </owl:Class>
akkor az ontol骻i醤ak (vagy egy 醠tala import醠t m醩ik ontol骻i醤ak)
tartalmaznia kell egy owl:Class
tripletet a C2
sz醡醨a
.
Ezek az OWL DL korl醫ok v閘etlenszer鹐knek t鹡hetnek, de m間sem azok. A felsorolt korl醫oz醩ok a le韗 logikai k鰒etkeztet rendszerek ter黮et閚 v間zett fejleszt閟eken alapulnak, amelyek az閞t ig閚ylik ezeket a korl醫oz醩okat, hogy megfelel k鰒etkeztet閟i t醡ogat醩sal l醫hass醟 el az ontol骻ia 閜韙鮧et 閟 felhaszn醠髃at. Konkr閠abban: az OWL DL korl醫oz醩ok lehet鮲 teszik, hogy az OWL Full lehet legnagyobb r閟zhalmaz醫 kihaszn醠hassuk, de 鷊y, hogy az閞t ennek logikai feldolgoz醩醨a (a kutat醩ok mai 醠l醩a szerint) egy eld鰊thet k鰒etkeztet elj醨醩t lehessen kidolgozni.
MEGJEGYZ蒘: Az E. f黦gel閗 gyakorlati ir醤ymutat醩t ad arra n閦ve, hogy mik閚t lehet OWL DL ontol骻i醟at k閟z韙eni RDF-ben.
Az OWL Lite is tartja mag醫 azokhoz a megk鰐閟ekhez, amelyeket az OWL DL fogalmaz meg az OWL nyelvi konstrukci髃 haszn醠at醰al lkapcsolatban. Ezen t鷏men鮡n, az OWL Lite tiltja az al醔bi konstrukci髃 haszn醠at醫 is:
Az OWL Lite elv醨ja tov醔b? hogy:
owl:equivalentClass
tripletek alanya oszt醠yn関, a
t醨gya pedig oszt醠yn関 vagy korl醫oz醩 legyen;rdfs:subClassOf
tripletek alanya szint閚 oszt醠yn関, a
t醨gya pedig oszt醠yn関 vagy korl醫oz醩 legyen;owl:intersectionOf
konstrukci髏 csak egyn閘 t鯾b elemet
tartalmaz list醟ra alkalmazzuk, ahol a lista-elemek oszt醠ynevek vagy
korl醫oz醩ok;
MEGJEGYZ蒘: Ez egy iskolap閘da arra, hogy hogyan
haszn醠juk OWL Lite-ban az owl:intersectionOf
konstrukci髏:
<owl:Class rdf:ID="Woman"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Female"/> <owl:Class rdf:about="#Human"/> </owl:intersectionOf> </owl:Class/>
owl:allValuesFrom
閟 az owl:someValuesFrom
tripletek t醨gya oszt醠yn関 vagy adatt韕usn関 legyen;rdf:type
triplet t醨gya oszt醠yn関 vagy korl醫oz醩
legyen;rdfs:domain
triplet t醨gya oszt醠yn関 legyen; valamint,
hogyrdfs:range
triplet t醨gya oszt醠yn関 vagy adatt韕usn関
legyen.Az OWL Lite limit醠t kifejez鮧閜ess間e m鰃鰐t az a gondolat h鷝骴ik meg, hogy legyen egy olyan minim醠is, de hasznos r閟zhalmaza az OWL nyelvnek, amelyet az eszk鰖fejleszt鮧 m間 viszonylag egyszer鹐n t醡ogatni k閜esek. Az OWL Lite nyelvi konstrukci骾 tartalmazz醟 az alapvet elemeket aloszt醠yhierarchi醟 閜韙閟閔ez is (aloszt醠ydefin韈i髃 閟 tulajdons醙korl醫oz醩ok form醞醔an). Emellett az OWL Lite lehet鮲 teszi, hogy a tulajdons醙okat opcion醠iss vagy k鰐elez鮲 tegy黭. Az OWL Lite-ot a korl醫ai az OWL DL-n閘 alacsonyabb komplexit醩i oszt醠yba sorolj醟. Ez pozit韛 hat醩sal lehet az OWL Lite k鰒etkeztet鮣閜ek hat閗onys醙醨a is.
Azok az OWL implement醕i髃, amelyek csak az OWL Lite sz髃閟zlet閠 t醡ogatj醟, de egy閎k閚t laz韙anak az OWL DL k鰐鰐ts間ein, nem tarthatnak ig閚yt a teljes sz醡韙hat髎醙ra a konzisztencia biztos韙醩a 閟 a komplexit醩 kezelhet鮯間e tekintet閎en. Mindenesetre, az ilyen implement醕i髃 hasznosak lehetnek abban, hogy lehet鮲 teszik az OWL rendszerek egy黷tm鹝鰀閟閠 az RDFS modellekkel, adatb醶isokkal, jel鰈 eszk鰖鰇kel 閟 m醩, nem k鰒etkeztet c閘 eszk鰖鰇kel. A Web Ontol骻ia Munkacsoport nem adott nevet az ilyen implement醕i髃 potenci醠isan hasznos r閟zhalmaz醤ak.
MEGJEGYZ蒘: Ez a f黦gel閗 csak az OWL-specifikus konstrukci髃at tartalmazza. Az RDF/RDFS konstrukci髃 tekintet閎en l醩d az RDF dokument醕i髏, k黮鰊鰏en az RDF S閙a dokumentumot [RDF Sz髃閟zlet].
Az olvas az 1.7 szekci骲an tal醠ja meg annak le韗醩醫, hogy milyen c閘okat szolg醠 ez a f黦gel閗. A f黦gel閗 RDF/XML v醠tozata megtal醠hat a W3C weblapj醤: http://www.w3.org/2002/07/owl
<?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > <!ENTITY owl "http://www.w3.org/2002/07/owl#" > ]> <rdf:RDF xmlns ="&owl;" xmlns:owl ="&owl;" xml:base ="http://www.w3.org/2002/07/owl" xmlns:rdf ="&rdf;" xmlns:rdfs="&rdfs;" > <Ontology rdf:about=""> <imports rdf:resource="http://www.w3.org/2000/01/rdf-schema"/> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/" /> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/TR/2004/REC-owl-test-20040210/" /> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/TR/2004/REC-owl-features-20040210/" /> <rdfs:comment>This file specifies in RDF Schema format the built-in classes and properties that together form the basis of the RDF/XML syntax of OWL Full, OWL DL and OWL Lite. We do not expect people to import this file explicitly into their ontology. People that do import this file should expect their ontology to be an OWL Full ontology. </rdfs:comment> <versionInfo>10 February 2004</versionInfo> </Ontology> <rdfs:Class rdf:ID="Class"> <rdfs:label>Class</rdfs:label> <rdfs:subClassOf rdf:resource="&rdfs;Class"/> </rdfs:Class> <Class rdf:ID="Thing"> <rdfs:label>Thing</rdfs:label> <unionOf rdf:parseType="Collection"> <Class rdf:about="#Nothing"/> <Class> <complementOf rdf:resource="#Nothing"/> </Class> </unionOf> </Class> <Class rdf:ID="Nothing"> <rdfs:label>Nothing</rdfs:label> <complementOf rdf:resource="#Thing"/> </Class> <rdf:Property rdf:ID="equivalentClass"> <rdfs:label>equivalentClass</rdfs:label> <rdfs:subPropertyOf rdf:resource="&rdfs;subClassOf"/> <rdfs:domain rdf:resource="#Class"/> <rdfs:range rdf:resource="#Class"/> </rdf:Property> <rdf:Property rdf:ID="disjointWith"> <rdfs:label>disjointWith</rdfs:label> <rdfs:domain rdf:resource="#Class"/> <rdfs:range rdf:resource="#Class"/> </rdf:Property> <rdf:Property rdf:ID="equivalentProperty"> <rdfs:label>equivalentProperty</rdfs:label> <rdfs:subPropertyOf rdf:resource="&rdfs;subPropertyOf"/> </rdf:Property> <rdf:Property rdf:ID="sameAs"> <rdfs:label>sameAs</rdfs:label> <rdfs:domain rdf:resource="#Thing"/> <rdfs:range rdf:resource="#Thing"/> </rdf:Property> <rdf:Property rdf:ID="differentFrom"> <rdfs:label>differentFrom</rdfs:label> <rdfs:domain rdf:resource="#Thing"/> <rdfs:range rdf:resource="#Thing"/> </rdf:Property> <rdfs:Class rdf:ID="AllDifferent"> <rdfs:label>AllDifferent</rdfs:label> </rdfs:Class> <rdf:Property rdf:ID="distinctMembers"> <rdfs:label>distinctMembers</rdfs:label> <rdfs:domain rdf:resource="#AllDifferent"/> <rdfs:range rdf:resource="&rdf;List"/> </rdf:Property> <rdf:Property rdf:ID="unionOf"> <rdfs:label>unionOf</rdfs:label> <rdfs:domain rdf:resource="#Class"/> <rdfs:range rdf:resource="&rdf;List"/> </rdf:Property> <rdf:Property rdf:ID="intersectionOf"> <rdfs:label>intersectionOf</rdfs:label> <rdfs:domain rdf:resource="#Class"/> <rdfs:range rdf:resource="&rdf;List"/> </rdf:Property> <rdf:Property rdf:ID="complementOf"> <rdfs:label>complementOf</rdfs:label> <rdfs:domain rdf:resource="#Class"/> <rdfs:range rdf:resource="#Class"/> </rdf:Property> <rdf:Property rdf:ID="oneOf"> <rdfs:label>oneOf</rdfs:label> <rdfs:domain rdf:resource="&rdfs;Class"/> <rdfs:range rdf:resource="&rdf;List"/> </rdf:Property> <rdfs:Class rdf:ID="Restriction"> <rdfs:label>Restriction</rdfs:label> <rdfs:subClassOf rdf:resource="#Class"/> </rdfs:Class> <rdf:Property rdf:ID="onProperty"> <rdfs:label>onProperty</rdfs:label> <rdfs:domain rdf:resource="#Restriction"/> <rdfs:range rdf:resource="&rdf;Property"/> </rdf:Property> <rdf:Property rdf:ID="allValuesFrom"> <rdfs:label>allValuesFrom</rdfs:label> <rdfs:domain rdf:resource="#Restriction"/> <rdfs:range rdf:resource="&rdfs;Class"/> </rdf:Property> <rdf:Property rdf:ID="hasValue"> <rdfs:label>hasValue</rdfs:label> <rdfs:domain rdf:resource="#Restriction"/> </rdf:Property> <rdf:Property rdf:ID="someValuesFrom"> <rdfs:label>someValuesFrom</rdfs:label> <rdfs:domain rdf:resource="#Restriction"/> <rdfs:range rdf:resource="&rdfs;Class"/> </rdf:Property> <rdf:Property rdf:ID="minCardinality"> <rdfs:label>minCardinality</rdfs:label> <rdfs:domain rdf:resource="#Restriction"/> <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/> </rdf:Property> <rdf:Property rdf:ID="maxCardinality"> <rdfs:label>maxCardinality</rdfs:label> <rdfs:domain rdf:resource="#Restriction"/> <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/> </rdf:Property> <rdf:Property rdf:ID="cardinality"> <rdfs:label>cardinality</rdfs:label> <rdfs:domain rdf:resource="#Restriction"/> <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/> </rdf:Property> <rdfs:Class rdf:ID="ObjectProperty"> <rdfs:label>ObjectProperty</rdfs:label> <rdfs:subClassOf rdf:resource="&rdf;Property"/> </rdfs:Class> <rdfs:Class rdf:ID="DatatypeProperty"> <rdfs:label>DatatypeProperty</rdfs:label> <rdfs:subClassOf rdf:resource="&rdf;Property"/> </rdfs:Class> <rdf:Property rdf:ID="inverseOf"> <rdfs:label>inverseOf</rdfs:label> <rdfs:domain rdf:resource="#ObjectProperty"/> <rdfs:range rdf:resource="#ObjectProperty"/> </rdf:Property> <rdfs:Class rdf:ID="TransitiveProperty"> <rdfs:label>TransitiveProperty</rdfs:label> <rdfs:subClassOf rdf:resource="#ObjectProperty"/> </rdfs:Class> <rdfs:Class rdf:ID="SymmetricProperty"> <rdfs:label>SymmetricProperty</rdfs:label> <rdfs:subClassOf rdf:resource="#ObjectProperty"/> </rdfs:Class> <rdfs:Class rdf:ID="FunctionalProperty"> <rdfs:label>FunctionalProperty</rdfs:label> <rdfs:subClassOf rdf:resource="&rdf;Property"/> </rdfs:Class> <rdfs:Class rdf:ID="InverseFunctionalProperty"> <rdfs:label>InverseFunctionalProperty</rdfs:label> <rdfs:subClassOf rdf:resource="&owl;ObjectProperty"/> </rdfs:Class> <rdfs:Class rdf:ID="AnnotationProperty"> <rdfs:subClassOf rdf:resource="&rdf;Property"/> </rdfs:Class> <AnnotationProperty rdf:about="&rdfs;label"/> <AnnotationProperty rdf:about="&rdfs;comment"/> <AnnotationProperty rdf:about="&rdfs;seeAlso"/> <AnnotationProperty rdf:about="&rdfs;isDefinedBy"/> <rdfs:Class rdf:ID="Ontology"> <rdfs:label>Ontology</rdfs:label> </rdfs:Class> <rdfs:Class rdf:ID="OntologyProperty"> <rdfs:subClassOf rdf:resource="&rdf;Property"/> </rdfs:Class> <rdf:Property rdf:ID="imports"> <rdfs:label>imports</rdfs:label> <rdf:type rdf:resource="#OntologyProperty"/> <rdfs:domain rdf:resource="#Ontology"/> <rdfs:range rdf:resource="#Ontology"/> </rdf:Property> <rdf:Property rdf:ID="versionInfo"> <rdfs:label>versionInfo</rdfs:label> <rdf:type rdf:resource="#AnnotationProperty"/> </rdf:Property> <rdf:Property rdf:ID="priorVersion"> <rdfs:label>priorVersion</rdfs:label> <rdf:type rdf:resource="#OntologyProperty"/> <rdfs:domain rdf:resource="#Ontology"/> <rdfs:range rdf:resource="#Ontology"/> </rdf:Property> <rdf:Property rdf:ID="backwardCompatibleWith"> <rdfs:label>backwardCompatibleWitesh</rdfs:label> <rdf:type rdf:resource="#OntologyProperty"/> <rdfs:domain rdf:resource="#Ontology"/> <rdfs:range rdf:resource="#Ontology"/> </rdf:Property> <rdf:Property rdf:ID="incompatibleWith"> <rdfs:label>incompatibleWith</rdfs:label> <rdf:type rdf:resource="#OntologyProperty"/> <rdfs:domain rdf:resource="#Ontology"/> <rdfs:range rdf:resource="#Ontology"/> </rdf:Property> <rdfs:Class rdf:ID="DeprecatedClass"> <rdfs:label>DeprecatedClass</rdfs:label> <rdfs:subClassOf rdf:resource="&rdfs;Class"/> </rdfs:Class> <rdfs:Class rdf:ID="DeprecatedProperty"> <rdfs:label>DeprecatedProperty</rdfs:label> <rdfs:subClassOf rdf:resource="&rdf;Property"/> </rdfs:Class> <rdfs:Class rdf:ID="DataRange"> <rdfs:label>DataRange</rdfs:label> </rdfs:Class> </rdf:RDF>
Oszt醠yok az OWL sz髃閟zlet閎en:
Tulajdons醙ok az OWL sz髃閟zlet閎en (a t醔l醶at tartalmazza a tulajdons醙ok 閞v閚yess間i k鰎閠 (domain) 閟 閞t閗tartom醤y醫 (range) is):
rdf:Property | rdfs:domain | rdfs:range |
---|---|---|
owl:allValuesFrom | owl:Restriction | rdfs:Class |
owl:backwardCompatibleWith | owl:Ontology | owl:Ontology |
owl:cardinality | owl:Restriction | xsd:nonNegativeInteger |
owl:complementOf | owl:Class | owl:Class |
owl:differentFrom | owl:Thing | owl:Thing |
owl:disjointWith | owl:Class | owl:Class |
owl:distinctMembers | owl:AllDifferent | rdf:List |
owl:equivalentClass | owl:Class | owl:Class |
owl:equivalentProperty | rdf:Property | rdf:Property |
owl:hasValue | owl:Restriction | |
owl:imports | owl:Ontology | owl:Ontology |
owl:incompatibleWith | owl:Ontology | owl:Ontology |
owl:intersectionOf | owl:Class | rdf:List |
owl:inverseOf | owl:ObjectProperty | owl:ObjectProperty |
owl:maxCardinality | owl:Restriction | xsd:nonNegativeInteger |
owl:minCardinality | owl:Restriction | xsd:nonNegativeInteger |
owl:oneOf | owl:Class | rdf:List |
owl:onProperty | owl:Restriction | rdf:Property |
owl:priorVersion | owl:Ontology | owl:Ontology |
owl:sameAs | owl:Thing | owl:Thing |
owl:someValuesFrom | owl:Restriction | rdfs:Class |
owl:unionOf | owl:Class | rdf:List |
owl:versionInfo |
Ez a f黦gel閗 鰏szefoglalja azokat a v醠toztat醩okat, amelyek a [DAML+OIL]-r髄 az OWL-ra t鰎t閚 醫alakul醩 sor醤 keletkeztek.
rdfs:domain
vagy rdfs:range
tulajdons醙 megad醩醫 鷊y kezeli az OWL mint metszetet<size> <xsd:integer rdf:value="10"/> </size>Ehelyett az OWL-ban ezt haszn醠juk:
<size rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10</size>
daml:List
konstrukci? amelyet z醨t kollekci髃
醔r醶ol醩醨a haszn醠t a DAML+OIL, nagym閞t閗ben 醫ker黮t az RDF-be
rdf:parseType="daml:collection"
konstrukci髏
felv醠tja az rdf:parseType="Collection"
konstrukci螯/li>
daml:List
, daml:first
,
daml:rest
, 閟 daml:nil
hely閎e
az rdf:List
, rdf:first
,
rdf:rest
閟 rdf:nil
l閜.a daml:item
konstrukci髏 nem t醡ogatja az OWL.
Mivel tipikusan ezt haszn醠t醟 tipiz醠t list醟 醔r醶ol醩醨a, az
al醔biakban bemutatunk egy p閘d醫 arr髄, hogy mik閚t kre醠hatunk
egy ilyen list醫 daml:item
haszn醠ata n閘k黮:
<rdfs:Class rdf:ID="OperaList"> <rdfs:subClassOf rdf:resource="&rdf;List"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="&rdf;first"/> <owl:allValuesFrom rdf:resource="#Opera"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="&rdf;rest"/> <owl:allValuesFrom rdf:resource="#OperaList"/> </owl:Restriction> </rdfs:subClassOf> </rdfs:Class>Ebben a p閘d醔an egy list醫 defini醠tunk, amelynek az elemei oper醟. Ezt k閠 korl醫oz醩 seg韙s間関el val髎韙ottuk meg: az egyik az
rdf:first
閞t閗re vonatkozik (mely a
lista-elem t韕us醫 醔r醶olja), a m醩ik pedig az
rdf:rest
閞t閗re (mely a defini醠t lista nev閠 adja
meg).daml:cardinalityQ
daml:hasClassQ
daml:maxCardinalityQ
daml:minCardinalityQ
DAML+OIL | OWL |
---|---|
daml:differentIndividualFrom |
owl:differentFrom |
daml:equivalentTo |
owl:sameAs |
daml:sameClassAs |
owl:equivalentClass |
daml:samePropertyAs |
owl:equivalentProperty |
daml:hasClass |
owl:someValuesFrom |
daml:toClass |
owl:allValuesFrom |
daml:UnambiguousProperty |
owl:InverseFunctionalProperty |
daml:UniqueProperty |
owl:FunctionalProperty |
Az owl:SymmetricProperty
beleker黮t
a nyelvbe.owl:AnnotationProperty
,
az owl:OntologyProperty
閟 az owl:DataRange
konstrukci髃at.owl:DatatypeProperty
lehet
owl:InverseFunctionalProperty
is.daml:comment
daml:domain
daml:label
daml:isDefinedBy
daml:Literal
daml:Property
daml:range
daml:seeAlso
daml:subClassOf
daml:subPropertyOf
daml:type
daml:value
daml:disjointUnionOf
konstrukci髏 t鰎鰈t閗 a nyelvb鮨,
hiszen ez megval髎韙hat az owl:unionOf
vagy rdfs:subClassOf
閟 az owl:disjointWith
kombin醕i骿醰al.daml:equivalentTo
kifejez閟 az owl:sameAs
nevet kapta, 閟 egyben megsz鹡t
az owl:equivalentClass
閟
az owl:equivalentProperty
szupertulajdons醙a lenni.Az OWL Szemantika 閟 absztrakt szintaxis dokumentum [OWL Sz&ASz] adja meg az OWL ontol骻i醟 pontos le韗醩醫 absztrakt szintaxis, illetve RDF tripletekre t鰎t閚 lek閜ez閟 form醞醔an.
Az al醔bi szab醠yok azon felt閠elek inform醠is le韗醩醫 adj醟, amelyek teljes黮閟e eset閚 egy RDF gr醘 DL szint ontol骻i醤ak min鮯韙het? Ezzel nem sz醤d閗unk helyettes韙eni azt a form醠is le韗醩t, amelyet az Sz&ASz dokumentum ad, hanem csak 醠tal醤os fog骴z髏 k韛醤unk adni. Nem c閘unk ezzel azt sem elmondani, hogy mik閚t lehet a tripletes 醔r醶ol醩t az absztrakt szintaxishoz k鰖elebb 醠l alakra hozni. Puszt醤 csak azt k韛醤juk mindezzel sugallni, hogy ha az olvas betartja az itt megadott szab醠yokat, akkor nagy val髎z韓鹲間gel OWL DL szint ontol骻i醟at fog produk醠ni.
A be閜韙ett tulajdons醙okat 閟 oszt醠yokat ne akarjuk 鷍radefini醠ni. Ez 醠tal醔an teljes黮, ha az OWL, az RDF 閟 az RDFS n関t閞ben szerepl dolgokat nem szerepeltetj黭 tripletek alanyak閚t.
Mindennek kell, hogy legyen egy t韕usa1. Ha
b醨milyen x URI hivatkoz醩t haszn醠unk ott, ahol egy oszt醠ynak kell
szerepelnie, a gr醘nak kell tartalmaznia egy ilyen tripletet:
x rdf:type owl:Class
Hasonl髃閜pen, ha egy p
tulajdons醙ot haszn醠unk
ott, ahol a nyelv egy objektumtulajdons醙ot v醨 el, akkor lennie kell egy
ilyen tripletnek is:2
p rdf:type owl:ObjectProperty
Vagy, ha egy q
tulajdons醙ot haszn醠unk ott, ahol
egy adatt韕us-tulajdons醙ot v醨 a nyelv, akkor szerepelnie kell egy ilyen
tripletnek is:
q rdf:type owl:DatatypeProperty
Ha egy o
tulajdons醙ot haszn醠unk ott, ahol egy
ontol骻iatulajdons醙nak kell szerepelnie, akkor o-nak egy ilyen
be閜韙ett tulajdons醙nak kell lennie, mint owl:imports
,
owl:priorVersion
, owl:backwardCompatibleWith
, vagy
owl:incompatibleWith
), vagy pedig meg kell adni egy ilyen
tripletet:
o rdf:type owl:OntologyProperty
Ha egy olyan a tulajdons醙ot haszn醠unk ott, ahol egy
annot醕i髏ulajdons醙ot v醨 a nyelv, akkor a-nak egy be閜韙ett
annot醕i髏ulajdons醙nak (owl:versionInfo
,
rdfs:label
, rdfs:comment
, vagy
rdfs:seeAlso
vagy rdfs:isDefinedBy
) kell lennie,
vagy pedig defini醠nunk egy ilyen tripletet az a tulajdons醙ra:
a rdf:type owl:AnnotationProperty
Minden egyed sz醡醨a, amelyik megjelenik az ontol骻i醔an legal醔b egy t韕ust specifik醠ni kell, azaz, egy i egyed sz醡醨a meg kell adni egy ilyen tripletet:
i rdf:type c
ahol c
egy owl:Class
vagy egy
owl:Restriction
.
Az oszt醠yoknak, az objektum-, adatt韕us-, ontol骻ia- 閟 annot醕i髏ulajdons醙oknak, valamint az egyedek URI hivatkoz醩ainak diszjunkt halmazokat kell alkotniuk. Az al醔bi m骴on teh醫 nem adhatunk meg t韕usokat:
x rdf:type owl:Class x rdf:type owl:ObjectProperty
蓅 k黮鰊鰏en: nem haszn醠hatunk oszt醠yokat egyed szerepben, ahogyan pl. az al醔bi p閘da teszi:
x rdf:type owl:Class y rdf:type owl:Class x rdf:type y
Ez ugyanis nem leg醠is az OWL DL-ben. Az 醠tal醤os szab醠y itt az, hogy ha van a gr醘ban egy x csom髉ont egy ilyen tripletben:
x rdf:type owl:Class
akkor x
nem jelenhet meg alanyk閚t egy m醩ik olyan
tripletben, amelynek 醠l韙m醤ya rdf:type
.3
Ha egy x
csom髉ont t韕usa korl醫oz醩
(x rdf:type owl:Restriction
), akkor az x
csom髉onttal kapcsolatban az al醔bi helyzetnek kell fenn醠lnia:
rdf:type
3.owl:onProperty
, m間pedig 鷊y,
hogy a tripletnek a t醨gya vagy owl:ObjectProperty
vagy
owl:DatatypeProperty
t韕us?owl:someValuesFrom
. Ebben az esetben, az
owl:onProperty
triplet t醨gyak閚t szerepl
tulajdons醙nak ezzel adekv醫nak kell lennie. Ez azt jelenti, hogy ha
a triplet t醨gya egy adatt韕us, akkor a tulajdons醙nak
owl:DatatypeProperty
t韕us鷑ak kell lennie; ha pedig a
t醨gy egy oszt醠yle韗醩, akkor
a tulajdons醙nak
owl:ObjectProperty
t韕us鷑ak kell lennie. Ez a tipiz醠
inform醕i sohasem maradhat el (a fentebb eml韙ett megk鰐閟 miatt).owl:allValuesFrom
. Itt ugyanazok a megk鰐閟ek
閞v閚yesek, mint az owl:someValuesFrom
eset閎en.owl:hasValue
. Ha az owl:onProperty
tripletben megadott tulajdons醙 t韕usa
owl:ObjectProperty
, akkor ennek a tripletnek a t醨gya
egy egyed kell hogy legyen. Ha pedig az owl:onProperty
tripletben megadott tulajdons醙 t韕usa
owl:DatatypeProperty
, akkor a triplet黱k t醨gy醤ak egy
liter醠nak kell lennie.owl:minCardinality
. E triplet t醨gy醤ak egy
adat-liter醠nak kell lennie, mely egy nemnegat韛 eg閟z sz醡ot
醔r醶ol.owl:maxCardinality
. A megk鰐閟 itt is ugyanaz, mint az
owl:minCardinality
eset閎en.owl:cardinality
. A megk鰐閟 itt is ugyanaz, mint az
owl:minCardinality
eset閎en.owl:equivalentClass
vagy owl:disjointWith
lehet.Minden olyan tripletnek, amelynek 醠l韙m醤ya rdfs:subClassOf
,
owl:equivalentClass
, vagy owl:disjointWith
, az
alanya 閟 t醨gya egyar醤t egy owl:Class
vagy egy
owl:Restriction
kell hogy legyen. Pl., ha van egy
x rdfs:subClassOf y
triplet黱k, akkor a gr醘nak a k鰒etkez鮧et is tartalmaznia kell: egy
x rdf:type owl:Class
vagy egy
x rdf:type owl:Restriction
tripletet; valamint egy
y rdf:type owl:Class
vagy egy
y rdf:type owl:Restriction
tripletet.
Minden olyan tripletnek, amelynek az 醠l韙m醤ya
rdfs:subPropertyOf
vagy owl:equivalentProperty
, az
alanya 閟 a t醨gya ugyanolyan t韕us? m間pedig az
owl:ObjectProperty
vagy az owl:DatatypeProperty
valamelyike kell hogy legyen; azaz, ha van egy ilyen triplet黱k:
p owl:equivalentProperty q
akkor a gr醘nak tartalmaznia kell vagy egy:
p rdf:type owl:ObjectProperty q rdf:type owl:ObjectProperty
triplet p醨t, vagy pedig egy
p rdf:type owl:DatatypeProperty q rdf:type owl:DatatypeProperty
triplet p醨t.
Azoknak a tripleteknek, amelyeknek az 醠l韙m醤ya rdfs:domain
,
alanyk閚t egy owl:ObjectProperty
, vagy egy
owl:DatatypeProperty
t韕us tulajdons醙ot, t醨gyk閚t pedig egy
owl:Class
vagy owl:Restriction
t韕ust kell
tartalmazniuk.
Azoknak a tripleteknek, amelyeknek az 醠l韙m醤ya rdfs:range
,
alanyk閚t vagy egy owl:ObjectProperty
, vagy egy
owl:DatatypeProperty
t韕us tulajdons醙ot kell tartalmazniuk. Az
el鮞bi esetben a triplet t醨gya egy owl:Class
vagy egy
owl:Restriction
t韕us lehet, az ut骲bi esetben pedig egy XML
S閙a adatt韕us, egy rdfs:Literal
, vagy egy
owl:oneOf
elem, mely egy owl:DataRange
t韕us
adattartom醤yt defini醠.
Egy
owl:inverseOf
tripletnek mind az alanya,
mind pedig a t醨gya owl:ObjectProperty
t韕us kell hogy
legyen.
Minden owl:sameAs
vagy owl:differentFrom
醠l韙m醤yt tartalmaz triplet alany醤ak egyednek kell lennie.
Jegyezz黭 meg, hogy k閠 oszt醠ynak egy owl:sameAs
tulajdons醙gal t鰎t閚 鰏szekapcsol醩a nagym閞t閗ben k黮鰊b鰖ik att髄 az
esett鮨, amikor az owl:equivalentClass
tulajdons醙gal kapcsoljuk
鰏sze 鮧et. Az el鮞bi azt mondja, hogy a k閠 objektum t閚ylegesen
ugyanaz (ami p閘da arra az esetre, amikor az oszt醠yokat egyedeknek
tekintj黭, s ez az ontol骻i醤kat ki is szor韙ja az OWL DL-b鮨). Az ut骲bi
pedig azt jelenti ki, hogy csup醤 a k閠 oszt醠y kiterjed閟e (az
egyedeik halmaza) az, ami egyenl?
Hasonl髃閜pen, az oszt醠yok owl:differentFrom
rel醕i髒al
t鰎t閚 鰏szekapcsol醩a nem ugyanaz, mintha az owl:disjointWith
rel醕i髒al kapcsoltuk volna 鰏sze 鮧et (ami szint閚 egy p閘da az OWL Full
szint konstrukci髍a). K閠 oszt醠y lehet k閠 k黮鰊b鰖 objektum, de a
kiterjed閟黭 m間is k鰖鰏 lehet.
Ha egy x
csom髉ont t韕usa
owl:AllDifferent
, akkor OWL DL eset閚 a k鰒etkez helyzetnek
kell fenn醠lnia:
owl:distinctMembers
, a t醨gya pedig egy szintaktikailag
pontos (well-formed) rdf:List
, amelynek listaelemei mind
egyedek.A Boole-algebrai oper醫orokat (蒘, VAGY, NEM) az OWL-ban, rendre, az
owl:intersectionOf
, az owl:unionOf
閟 az
owl:complementOf
konstrukci髃 helyettes韙ik.
Egy owl:complementOf
triplet alanya egy
owl:Class
, a t醨gya pedig egy m醩ik owl:Class
vagy
egy owl:Restriction
kell hogy legyen.
Egy owl:unionOf
vagy egy owl:intersectionOf
triplet alanya egy owl:Class
, a t醨gya pedig egy
(szintaktikailag pontos) rdf:List
kell hogy legyen; ez ut骲bi
listaelemeinek pedig vagy owl:Class
vagy
owl:Restriction
t韕us鷄knak kell lenni黭, ahol a lista elemeit
vagy explicit m骴on, a kiterjesztett rdf:List
seg韙s間関el, vagy
pedig, ha RDF-XML-t haszn醠unk, akkor az
rdf:parseType="Collection"
attrib鷗um seg韙s間関el
醔r醶oljuk.
<owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="x"/> <owl:Class rdf:about="y"/> </owl:intersectionOf> </owl:Class>
Ha egy owl:Class
egy 黵es csom髉ont (vagyis, az oszt醠y
n関telen), akkor az csak egyetlen olyan triplet alanya lehet,
amelynek 醠l韙m醤ya owl:intersectionOf
, owl:unionOf
vagy owl:complementOf
. Ha az oszt醠y neves韙ett, akkor
tetsz鮨eges sz醡 ilyen triplet enged閘yezett a sz醡醨a.
Minden olyan tripletnek az alanya, amelynek az 醠l韙m醤ya
owl:oneOf
, az vagy egy owl:Class
, vagy egy
owl:DataRange
t韕us objektum kell hogy legyen. Az el鮞bi
esetben a triplet t醨gy醤ak egy olyan (szintaktikailag pontos)
rdf:List
felsorol醩nak kell lennie, amelynek minden eleme egy
egyed. Az ut骲bi esetben pedig egy olyan (szintaktikailag ugyancsak pontos)
rdf:List
felsorol醩nak, amelynek minden eleme egy adat-liter醠.
Itt is, mint a Boole-algebrai oper醫orokn醠, az rdf:List
helyett
az rdf:parseType="Collection"
is haszn醠hat?
Minden olyan triplet eset閚, amelyben az 醠l韙m醤y egy ontol骻iatulajdons醙, az alanynak 閟 a t醨gynak egyar醤t ontol骻i醤ak kell lennie (vagyis, egy olyan x csom髉ontnak, amelyre l閠ezik egy ilyen triplet):
x rdf:type owl:Ontology
Minden olyan triplet eset閚, ahol az 醠l韙m醤y egy annot醕i髏ulajdons醙, az alanynak egy neves韙ett, azaz nem 黵es csom髉onttal reprezent醠t oszt醠ynak, egy tulajdons醙nak, egy egyednek, vagy egy ontol骻i醤ak kell lennie. Az ilyen, annot醕i髎 醠l韙m醤nyal rendelkez triplet t醨gya pedig csak egy egyed, egy adat-liter醠, vagy egy tetsz鮨eges URI hivatkoz醩 lehet.
Olyan 醠l韙m醤yok kiv閠el関el, amelyek az OWL, az RDF vagy az RDFS sz髃閟zletb鮨 val髃, csak az annot醕i髎 醠l韙m醤yoknak kell olyan tripletekben megjelenni黭, amelyek alanya egy oszt醠y vagy egy tulajdons醙.
Maguknak az annot醕i? 閟 ontol骻iatulajdons醙oknak is tipiz醠tnak kell lenni黭, 閟 nem jelenhetnek meg
tripletek alanyak閚t vagy t醨gyak閚t m醩k閚t, mint olyan triplet alanyak閚t,
amelynek az 醠l韙m醤ya rdf:type
vagy egy
annot醕i髏ulajdons醙.
Az OWL Sz&ASz le韗醩a ugyanis ezt 醠tal醔an nem engedi meg az RDF 醔r醶ol醩ban. Ez gyakorlatilag azt jelenti, hogy az RDF gr醘 egy n関telen csom髉ontja, mely oszt醠yle韗醩t 醔r醶ol, csak egyszer fordulhat el (egy triplet t醨gyak閚t). 蚲y teh醫 az al醔bi haszn醠at ker黮end酊
x1 rdf:type owl:Class x1 rdfs:subClassOf _:y x2 rdf:type owl:Class x2 rdfs:subClassOf _:y _:y rdf:type owl:Class _:y owl:complementOf z
Vannak azonban olyan tr黭k鰏 helyzetek, amikor az ilyesmi megengedett. 羖tal醔an azonban a gr醘nak k黮鰊醠l 黵es csom髉ontokat kell haszn醠nia, amikor ugyanannak oszt醠yle韗醩nak t鯾b helyen kell szerepelnie.
A gr醘ban megjelen 黵es csom髉ontok 醠tal醔an vagy n関telen egyedeket 醔r醶olnak, vagy az al醔biak k鰖黮 valamelyiket (de csak egyiket):
rdfs:subClassOf
, egy owl:equivalentClass
,
egy owl:disjointWith
, egy owl:someValuesFrom
,
egy owl:allValuesFrom
vagy egy rdf:type
triplet
t醨gy醫.rdf:type
triplet alany醫,
owl:AllDifferent
醠l韙m醤nyal.rdf:List
egyik elem閠.Az 醨va 黵es csom髉ontok, vagyis az olyan 黵es csom髉ontok, amelyek nem
t醨gyai valamilyen tripletnek, 醠tal醔an nem enged閘yezettek (a fentebb le韗t
owl:AllDifferent
kiv閠el関el).
Az ontol骻i醟 kijelent閟eket tartalmazhatnak alapvet t閚yekr鮨 (pl. olyan
tripletek form醞醔an, amelyek egyedek tulalajdons醙ait defini醠j醟). Az ilyen
t閚y醠l韙醩okban haszn醠t tulajdons醙oknak owl:ObjectProperty
vagy owl:DatatypeProperty
oszt醠y鷄knak kell lenni黭. A
t閚y醠l韙醩ok alanya egy egyed kell hogy legyen, mely csakis tipiz醠t lehet. A t閚y醠l韙醩ok t醨gya pedig vagy
egy egyedre val hivatkoz醩, (ha a tulajdons醙
owl:ObjectProperty
oszt醠y? vagy egy adat-liter醠 (ha a
tulajdons醙 owl:DatatypeProperty
oszt醠y?.
Az OWL Lite dokumentumoknak ugyanazokat a szab醠yokat kell k鰒etni黭, mint az OWL DL dokumentumoknak, de n閔醤y tov醔bi korl醫oz醩sal, f鮨eg az enged閘yezett sz髃閟zlet vonatkoz醩醔an. Az OWL Lite dokumentumok nem haszn醠hatj醟 az al醔bi sz髃閟zletet:
owl:unionOf
owl:complementOf
owl:oneOf
owl:hasValue
owl:disjointWith
Az owl:equivalentClass
t韕us tripletek alanyai vagy t醨gyai
nem lehetnek 黵es csom髉ontok.
Az owl:minCardinality
, az owl:maxCardinality
閟
az owl:cardinality
醠l韙m醤y tripletek t醨gya csak egy olyan
adat-liter醠 lehet, amelynek 閞t閗e 0 vagy 1 (nemnegat韛 eg閟z sz醡).
Az OWL Lite-n醠 az owl:intersectionOf
haszn醠at醰al
kapcsolatos helyzet egy kicsit bonyolultabb, mint az OWL DL-n閘. Ez az
醠l韙m醤y itt nem haszn醠hat tetsz鮨eges kifejez閟ek
alkot醩醨a, de n閘k黮鰖hetetlen ahhoz, hogy komplett
oszt醠ydefin韈i髃at tudjunk 醔r醶olni. A fenti (OWL DL t韕us? megk鰐閟ek azt
mondj醟 ki, hogy minden olyan triplet alanya, amelynek 醠l韙m醤ya
owl:intersectionOf
, egy owl:Class
kell hogy legyen.
Az OWL Lite-n醠 ehhez m間 az a megk鰐閟 is t醨sul, hogy ez az OWL oszt醠y egy
n関vel kell hogy rendelkezz閗, teh醫 nem lehet egy 黵es csom髉ont.
觱atosnak kell lenn黱k az owl:Thing
haszn醠at醰al. P閘d醬l,
ez az OWL-RDF k骴r閟zlet:
<owl:Class rdf:about="#A"> <rdfs:subClassOf> <owl:Thing/> </rdfs:subClassOf> </owl:Class>
nem azt mondja az A
oszt醠yr髄,
hogy az owl:Thing
aloszt醠ya (amit gondoln醤k), hanem
t閚ylegesen azt, hogy A
az owl:Thing
oszt醠y valamilyen n関telen egyed閚ek az aloszt醠ya. Itt teh醫 egy oszt醠yt
egyedk閚t kezelt黱k, ami nem leg醠is az OWL DL-ben. A k韛醤t hat醩t, vagyis
hogy A-t az owl:Thing
aloszt醠yak閚t deklar醠juk, az
al醔bi k骴r閟zlettel 閞hetj黭 el:
<owl:Class rdf:about="#A"> <rdfs:subClassOf> <owl:Class rdf:about="http://www.w3.org/2002/07/owl#Thing"/> </rdfs:subClassOf> </owl:Class>
Vigy醶zunk, nehogy 鰏szet関essz黭 az owl:Class
閟 az
rdfs:Class
oszt醠yt. Az al醔bi pl. nem DL k骴,
mivel c sz醡醨a
nem deklar醠tunk megfelel t韕ust.
c rdf:type rdfs:Class
[1] Term閟zetesen, az a k鰒etelm閚y, hogy mindent tipiz醠ni sz黭s間es, nem vonatkozik az OWL, az RDF 閟 az RDFS n関terekben szerepl dolgokra.
[2] Szigor鷄n v関e: ha a tulajdons醙ot 鷊y
defini醠tuk, hogy az egy owl:TransitiveProperty
, egy
owl:SymmetricProperty
vagy egy
owl:InverseFunctionalProperty
, akkor ez nem sz黭s間es.
[3] Ezek azok a kiv閠elek, amelyek el鮢ordulhatnak:
x rdf:type rdfs:Class x rdf:type owl:Class
p rdf:type rdf:Property p rdf:type owl:ObjectProperty
vagy pedig az al醔biak:
q rdf:type rdf:Property q rdf:type owl:DatatypeProperty.
s鮰 (korl醫oz醩sal kapcsolatban) ez is megengedett:
x rdf:type owl:Restriction x rdf:type rdfs:Class x rdf:type owl:Class
megjegyz閟e nyom醤.
http://www.w3.org/TR/daml+oil-reference
.