www.romver.ru
/ Полный список статей / Виды OWL

Как заказать сайт


АБРАКАДАБРА (Тоже самое но в читаемом виде)

"Skajite mne, kakoe vino mne nujno kupit' k kajdomu iz blud v etom menu. I, kstati, a ne lublu Sotern."
Segodna trudno bilo bi sozdat' veb-agenta, kotoriy smog bi vipolnit' poisk vin v Seti, udovletvorau6ix etomu zaprosu. Sxodnim obrazom, rassmotrite nazna4enie komp'uternomu agentu zada4i soglasovania neskol'kix mar6rutov pute6estvia. (Primeri ispol'zovania smotrite v dokumente trebovaniy k OWL.)
Dla podderjki takogo roda vi4isleniy neobxodimo poyti dal'6e klu4evix slov i opisat' soderjanie resursov, dostupnix v Seti. Etot dopolnitel'niy uroven' interpretacii imeet delo s semantikoy dannix.

Azik veb-ontologiy OWL - eto azik dla opredelenia i predstavlenia veb-ontologiy. Ontologia - termin, zaimstvovanniy iz filosofii, kotoriy obozna4aet nauku, opisivau6uu formi bitia i to, kak oni otnosatsa mejdu soboy. Veb-otnologia mojet vklu4at' opisania klassov, svoystv i ix primeri. Formal'naa semantika OWL opisivaet, kak polu4it' logi4eskie sledstvia, imea takuu ontologiu, t.e. polu4it' fakti, kotorie ne predstavleni v ontologii bukval'no, no sleduut iz ee semantiki. Eti sledstvia mogut bit' osnovani na odnom dokumente ili mnojestve raspredelennix dokumentov, kotorie kombiniruutsa s ispol'zovaniem opredelennix mexanizmov OWL.

Danniy dokument - eto odin iz komponentov opisania OWL, azika veb-ontologiy, razrabativaemogo rabo4ey gruppoy W3C Web Ontology (WebOnt). Razdel Karta dokumenta v Kratkom obzore ([Kratkiy obzor], 1.1) opisivaet kajdiy iz etix komponentov i to, kak oni sootnosatsa drug s drugom.

Vopros, kotoriy voznikaet, kogda opisivae6' e6e odin XML/Web standart, - eto "4to eto daet mne, 4to ne mogut dat' XML i XML Schema?" Est' dva otveta na etot vopros.

  • Ontologia otli4aetsa ot sxemi XML tem, 4to eto predstavlenie znania, a ne format soob6eniy. Bol'6instvo veb-standartov sostoat iz kombinacii formatov soob6eniy i specifikaciy protokolov. Etim formatam dali ekspluatacionnuu semantiku, tipa, "Po polu4enii soob6enia ZakazNaPokupku, perevesti Koli4estvo rubley so S4etPokupatela na S4etProdavca i otpustit' Tovar." No specifikacia ne sozdana dla podderjki operaciy vne konteksta dannoy tranzakcii. Naprimer, u nas net, kak pravilo, mexanizma, 4tobi zaklu4it', 4to iz-za togo, 4to Tovar imeet nazvanie 6ardone, on doljen takje bit' belim vinom.
  • Odnim iz preimu6estv OWL ontologiy budet dostupnost' instrumentov, kotorie mogut rassujdat' o nix. Instrumenti obespe4at ob6uu podderjku, kotoraa ne avlaetsa specifi4eskoy dla dannoy predmetnoy oblasti, 4to bilo bi tem slu4aem, kogda nado postroit' sistemu, 4tobi rassujdat' v predelax odnoy standartnoy dla dannoy industrii XML sxeme. Postroenie 4etkoy i rabotosposobnoy sistemi rassujdenia - neprostoe delo. Stroitel'stvo ontologii namnogo bolee dostupno. Mi ojidaniem, 4to mnogo grupp predprimut stroitel'stvo ontologiy. Oni izvlekut vigodu iz instrumentov tret'ix lic, osnovannix na formal'nix svoystvax azika OWL, instrumentov, kotorie predostavat assortiment vozmojnostey, kotorie bol'6instvu organizaciy bilo bi trudno realizovat' samim.

1.1. Vidi OWL

OWL obespe4ivaet tri razli4nix po virazitel'nosti dialekta, sproektirovannix dla ispol'zovania otdel'nimi soob6estvami razrabot4ikov i pol'zovateley.

  • OWL Lite podderjivaet tex pol'zovateley, kotorie nujdautsa, prejde vsego, v klassifikacionnoy ierarxii i prostix ograni4eniax. Naprimer, pritom, 4to on podderjivaet ograni4enia kardinal'nosti (koli4estva elementov), dopuskautsa zna4enia kardinal'nosti tol'ko 0 ili 1. Dla razrabot4ikov doljno bit' pro6e v svoix produktax obespe4it' podderjku OWL Lite, 4em ego bolee virazitel'nix sobrat'ev, v 4astnosti, OWL Lite pozvolaet bistruu migraciu tezaurusov i drugix taksonomiy.

  • OWL DL podderjivaet tex pol'zovateley, kotorie xotat maksimal'noy virazitel'nosti bez poteri polnoti vi4isleniy (vse zaklu4enia garantirovano budut vi4islaemimi), i razre6aemosti rassudo4nix sistem (vse vi4islenia zaver6atsa v opredelennoe vrema). OWL DL vklu4aet vse azikovie konstrukcii OWL s ograni4eniami vrode razdelenia tipa (klass ne mojet bit' 4astnim svoystvom, a svoystvo ne mojet bit' individom ili klassom). OWL DL tak nazvan iz-za ego sootvetstvia deskriptivnoy logike [Deskriptivnaa logika], discipline, v kotoroy izu4en imenno razre6aemiy fragment logiki pervogo poradka. OWL DL bila sproektirovana, 4tobi podderjat' su6estvuu6iy segment biznesa, zanimau6iysa deskriptivnoy logikoy, i imet' jelatel'nie vi4islitel'nie svoystva dla sistem rassujdenia.

  • OWL Full prednazna4aetsa dla pol'zovateley, kotorie xotat maksimal'nuu virazitel'nost' i sintaksi4eskuu svobodu RDF bez vi4islitel'nix garantiy. Naprimer, v OWL Full klass mojet odnovremenno rassmatrivat'sa i kak sovokupnost' individov, i s ravnim pravom kak individ. Drugoe su6estvennoe otli4ie ot OWL DL v tom, 4to owl:DatatypeProperty mojet bit' pome4eno kak owl:InverseFunctionalProperty. OWL Full pozvolaet takie ontologii, kotorie ras6iraut sostav predopredelennogo (RDF ili OWL) slovara. Maloveroatno, 4to kakoe-libo rassudo4noe programmnoe obespe4enie budet v sostoanii podderjat' polnuu podderjku kajdoy osobennosti OWL Full.

Kajdiy iz etix dialektov - ras6irenie ego bolee prostogo pred6estvennika, i v tom, 4to kasaetsa virazitel'nix vozmojnostey, i v tom, 4to kasaetsa vozmojnostey proizvodimix zaklu4eniy. Podderjivautsa sleduu6ie otno6enia, no ne naoborot.

  • Kajdaa dopustimaa OWL Lite ontologia - dopustimaa OWL DL ontologia.
  • Kajdaa dopustimaa OWL DL ontologia - dopustimaa OWL Full ontologia.
  • Kajdoe pravil'noe OWL Lite zaklu4enie - pravil'noe OWL DL zaklu4enie.
  • Kajdoe pravil'noe OWL DL zaklu4enie - pravil'noe OWL Full zaklu4enie.

Razrabot4iki ontologiy, ispol'zuu6ie OWL, doljni re6it', kakoy iz dialektov lu46e podxodit k ix zada4am. Vibor mejdu OWL Lite i OWL DL zavisit ot stepeni togo, naskol'ko pol'zovatelam trebuutsa bolee virazitel'nie konstrukcii, obespe4ivaemie OWL DL. Prilojenia dla OWL Lite budut imet' jelaemie vi4islitel'nie xarakteristiki. Prilojenia dla OWL DL, pri tom, 4to imeut delo s razre6aemim dialektom, v samix tajelix slu4aax budut svazani s bolee visokoy slojnost'u. Vibor mejdu OWL DL i OWL Full, glavnim obrazom, zavisit ot stepeni togo, naskol'ko pol'zovatelam trebuutsa sredstva meta-modelirovania RDF Sxem (naprimer, opredelau6ie klassi klassov). Pri ispol'zovanii OWL Full, po sravneniu s OWL DL, rassudo4naa podderjka menee predskazuema. Dla dal'ney6ey informacii sm. Semantika OWL.

Pol'zovateli, migriruu6ie iz RDF v OWL DL ili OWL Lite doljni pozabotit'sa o tom, 4tobi original'niy RDF-dokument vipolnal ograni4enia, nalojennie OWL DL i OWL Lite. Detali etix ograni4eniy ob&asnautsa v Prilojenii E Spravki po OWL.

Kogda mi predstavlaem konstrukcii, kotorie razre6autsa tol'ko v OWL DL ili OWL Full, oni pome4autsa "[OWL DL]".

1.2. Struktura dokumenta

4tobi obespe4it' svazniy nabor primerov po vsemu rukovodstvu, mi sozdali ontologii vina i pi6i. Eto OWL DL ontologii. Te iz na6ix rassujdeniy, kotorie budut kasat'sa vozmojnostey OWL Full, budut sootvetstvenno pome4eni. Ontologia vina i edi - eto su6estvennaa modifikacia elementa biblioteki DAML ontologiy s dolgoy istoriey. Ona bila pervona4al'no razrabotana MakGinnesom kak KLASSI4ESKIY primer deskriptivnoy logiki, ras6irenniy v u4ebnik po deskriptivnoy logike i v u4ebnik po ontologiam.

V etom dokumente mi predstavlaem primeri, ispol'zovannie v RDF/XML sintaksis ([RDF], 5), predpolagaa, 4to XML znakom samoy ob6irnoy auditorii. Normativniy sintaksis obmena OWL - RDF/XML. Zamet'te, 4to OWL bil sproektirovan s maksimal'noy sovmestimost'u s RDF i RDF Schema. Formati XML i RDF - 4ast' standarta OWL.

Vse primeri, predstavlennie v etom dokumente vzati iz ontologiy, soderja6ixsa v wine.rdf i food.rdf, krome otme4ennix ¬ v pravom nijnem uglu.


2. Struktura ontologiy

OWL - eto komponent iniciativi Semantic Web. Eto popitka sdelat' veb-resursi bolee dostupnimi dla avtomatizirovannix processov putem dobavlenia informacii o resursax, kotoraa opisivaut ili obespe4ivaet veb-kontent. Poskol'ku Semanti4eskaa Set' po opredeleniu raspredelena, OWL doljen pozvolat' sobirat' informaciu iz raspredelennix isto4nikov. Eto 4asti4no obespe4ivaetsa vozmojnost'u ontologiy bit' svazannimi, vklu4aa pramoy import informacii iz drugix ontologiy.

V dopolnenie, OWL predpolagaet otkritost'. To est', opisania resursov ne ograni4eni edinstvennim faylom ili temoy. V to vrema kak klass C1 pervona4al'no mojet bit' opredelen v ontologii O1, on mojet bit' ras6iren v drugix ontologiax. Sledstvia iz etix dopolnitel'nix sujdeniy o C1 avlautsa monotonnimi. Novaa informacia ne mojet oprovergat' predidu6uu informaciu. Novaa informacia mojet bit' protivore4a6ey, no fakti i sledstvia mogut tol'ko dobavlat'sa, i ne mogut udalat'sa.

Vozmojnost' takix protivore4iy - eto to, 4to razrabot4ik ontologii doljen u4itivat'. Ojidaetsa, 4to instrumenti, podderjivau6ie OWL, pomogut obnarujivat' takie slu4ai.

4tobi napisat' ontologiu, kotoraa mojet odnozna4no interpretirovat'sa i ispol'zovat'sa programmnimi agentami, mi trebuem sintaksis i formal'nuu semantiku OWL. OWL - eto ras6irenie slovara [RDF Semantics] RDF. Semantika OWL opredelena v dokumente Semantika i abstraktniy sintaksis OWL.

2.1. Namespaces

Prejde, 4em mi mojem ispol'zovat' nabor konstrukciy, nam nado to4no ukazat', kakie slovari ispol'zuutsa. Standartniy na4al'niy komponent ontologii vklu4aet nabor ob&avleniy XML namespace, zaklu4ennix v otkrivau6iy teg rdf:RDF. Eto obespe4ivaet vozmojnost' odnozna4no interpretirovat' identifikatori i delaet ostal'nuu 4ast' predstavlenia ontologii bolee 4itabel'noy. Tipi4naa OWL ontologia na4inaetsa s ob&avlenia prostranstva imen (namespace), podobnogo sleduu6emu. Kone4no, URI konkretnix ontologiy obi4no ne budut ssilkami na w3.org.

<rdf:RDF xmlns ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" xmlns:vin ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" xml:base ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" xmlns:food="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" xmlns:owl ="http://www.w3.org/2002/07/owl#" xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd ="http://www.w3.org/2001/XMLSchema#"> 

Pervie dve deklaracii identificiruut namespace, svazanniy s etoy ontologiey. Pervaa delaet etot namespace zna4eniem po umol4aniu, zaavlaa, 4to imena tegov bez prefiksov otnosatsa k teku6ey ontologii. Vtoraa identificiruet namespace teku6ey ontologii s pristavkoy vin:. Tret'a identificiruet bazoviy URI dokumenta (sm. nije). 4etvertaa identificiruet namespace vspomogatel'noy pi6evoy ontologii s prefiksom food:.

Pataa namespace deklaracia govorit, 4to elementi v etom dokumente, predvarau6iesa owl:, doljni ponimat'sa kak obra6enie k ponatiam, vzatim iz namespace, nazivaemogo http://www.w3.org/2002/07/owl#. Eto - obi4naa deklaracia OWL, ispol'zovannaa dla ssilki na OWL.

OWL zavisit ot konstrukciy, opredelennix RDF, RDFS, i XML Schema datatypes. V etom dokumente pristavka rdf: obra6aetsa k ponatiam, vzatim iz namespace http://www.w3.org/1999/02/22-rdf-syntax-ns#. Sleduu6ie dve deklaracii namespace delaut poxojie ob&avlenia RDF Schema (rdfs:) i XML Schema datatype (xsd:) namespaces.

Kak pomo6' v napisanii dlinnix URL 4asto mojet bit' poleznim obespe4it' rad opredeleniy ENTITY v deklaracii tipa dokumenta (DOCTYPE), kotoraa pred6estvuet opredeleniam ontologii. Nazvania, opredelennie v sootvetstvii s namespace deklaraciami imeut zna4enie tol'ko kak 4asti tegov XML. Zna4enia atributov - ne4uvstvitel'ni k namespace. No v OWL mi 4asto ssilaemsa na identifikatori ontologii, ispol'zua zna4enia atributov. Oni mogut bit' zapisani v polnoy forme, naprimer "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Merlo". Kak al'ternativa, sokra6enia mogut bit' opredeleni, ispol'zua opredelenie ENTITY, naprimer:

<!DOCTYPE rdf:RDF [ <!ENTITY vin "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" > <!ENTITY food "http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" > ]> 

Posle etoy pari ENTITY deklaraciy, mi mogli bi pisat' zna4enie "&vin;Merlo" i eto ras6ifrovivalos' bi v "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Merlo".

Vozmojno, bolee vajno to, 4to deklaracii rdf:RDF namespace mogli bi togda uprostit'sa, tak 4to izmenenia v ENTITY deklaraciax rasprostranilis' bi na vsu ontologiu.

<rdf:RDF xmlns ="&vin;" xmlns:vin ="&vin;" xml:base ="&vin;" xmlns:food="&food;" xmlns:owl ="http://www.w3.org/2002/07/owl#" xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd ="http://www.w3.org/2001/XMLSchema#"> 

2.2. Zagolovki ontologii

Posle togo, kak ustanovleni namespaces, mi obi4no vklu4aem kollekciu utverjdeniy o na6ey ontologii, sgruppirovannix pod tegom owl:Ontology. Eti tegi podderjivaut takie kriti4eskie vspomogatel'nie zada4i kak kommentarii, upravlenie versiami i vklu4enie drugix ontologiy.

<owl:Ontology rdf:about=""> <rdfs:comment>An example OWL ontology</rdfs:comment> <owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/> <owl:imports rdf:resource="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food"/> <rdfs:label>Wine Ontology</rdfs:label> ... 

Zamet'te, 4to mi ispol'zuem '...', 4tobi ukazat', 4to est' dopolnitel'niy tekst, kotoriy otbro6en v dannom primere.

Element owl:Ontology - eto mesto, gde sobrana bol'6aa 4ast' metadannix OWL-dokumenta. Eto ne garantiruet, 4to dokument opisivaet ontologiu v tradicionnom smisle. V nekotorix soob6estvax sozdautsa ontologii ne ob individax, a tol'ko o klassax i svoystvax, kotorie opredelaut predmetnuu oblast'. Ispol'zua OWL, 4tobi opisat' kollekciu 4astnix dannix teg owl:Ontology mojet bit' neobxodim, 4tobi zapisat' informaciu o versii i importirovat' opredelenia, ot kotorix zavisit danniy dokument. Takim obrazom, v OWL termin ontologia bil ras6iren, 4tobi vklu4it' 4astnie dannie (sm. vi6e).

Atribut rdf:about obespe4ivaet nazvanie ili ssilku na ontologiu. Esli zna4enie atributa "", to nazvaniem ontologii slujit bazoviy URI elementa owl:Ontology. Kak pravilo, eto URI dokumenta, soderja6ego ontologiu. Isklu4enie iz etogo - tot slu4ay, esli ispol'zuetsa xml:base, kotoriy mojet ustanovit' bazoviy URI elementa na 4to-nibud' drugoe, 4em URI teku6ego dokumenta.

rdfs:comment obespe4ivaet o4evidno neobxodimuu vozmojnost' annotirovat' ontologiu.

owl:priorVersion - avlaetsa standartnim tegom, prednazna4ennim dla podderjki sistem upravlenia versiami, rabotau6ix s ontologiami. Rabota s versiami ontologiy obsujdaetsa dalee.

owl:imports obespe4ivaet mexanizm vklu4enia. owl:imports prinimaet edinstvenniy argument, obozna4enniy atributom rdf:resource.

Import drugoy ontologii perenosit ves' nabor utverjdeniy, obespe4ennix v toy ontologii, v teku6uu ontologiu. 4tobi nailu46im obrazom ispol'zovat' importirovannuu ontologiu, prinato koordinirovat' ee s deklaraciey namespace. Zamet'te razli4ie mejdu etimi dvuma mexanizmami. namespace deklaracii obespe4ivaut udobnoe sredstvo, 4tobi ssilat'sa na imena, opredelennie v drugix OWL ontologiax. Konceptual'no, owl:imports prednazna4en dla togo, 4tobi pokazat' Va6e namerenie vklu4it' vse utverjdenia drugoy ontologii. Import drugoy ontologii, O2, takje importiruet vse ontologii, 4to importirovani v O2.

Zamet'te, 4to owl:imports ne vsegda mojet srabotat'. Kak Vi mogli bi ojidat', imea delo s Semanti4eskoy Set'u, dostup k resursam, raspredelennim po Seti, ne vsegda mojet bit' vozmojen. Instrumental'nie sredstva doljni otve4at' na etu situaciu v sootvetstvii s ix maneroy ispolnenia.

Zamet'te, 4to dla togo, 4tobi ispol'zovat' slovar' OWL Vam ne obazatel'no nujno importirovat' ontologiu owl.rdf. V samom dele, takoy import ne rekomenduetsa.

Odin ob6iy nabor dopolnitel'nix tegov, kotorie mogli bi bit' razumno vklu4eni zdes' - eto nekotorie iz standartnix tegov metadannix Dublin Core. Ix zna4eniami slujat prostie tipi ili stroki. Primeri vklu4aut Title, Creator, Description, Publisher i Date (sm. RDF declarations).

Svoystva, kotorie ispol'zuutsa kak annotacii, doljni bit' ob&avleni, ispol'zua owl:AnnotationProperty. Naprimer,

<owl:AnnotationProperty rdf:about="&dc;creator" /> 

OWL obespe4ivaet neskol'ko drugix mexanizmov, 4tobi svazat' teku6uu ontologiu s importirovannimi vmeste (sm. kartirovanie ontologiy).

Takje mi vklu4ili rdfs:label, 4tobi ukazat' dla na6ey ontologii metku na natural'nom azike.

Opredelenie zagolovka ontologii zakan4ivaetsa sleduu6im tegom.

</owl:Ontology> 

Za zagolovkom sleduut fakti4eskie opredelenia, kotorie sostavlaut ontologiu, i v kone4nom s4ete zaver6autsa

</rdf:RDF> 

2.3. Agregacia dannix i sekretnost'

Sposobnost' OWL virajat' ontologi4eskuu informaciu ob individax, soderja6ixsa vo mnojestve dokumentov, principial'nim obrazom podderjivaet svazivanie dannix iz raznix isto4nikov. Leja6aa v osnove semantika obespe4ivaet vozmojnost' delat' vivodi iz etix dannix, 4to mojet privesti k neojidannim rezul'tatam. V 4astnosti sposobnost' virajat' ekvivalentnost' s pomo6'u owl:sameAs mojet bit' ispol'zovana, 4tobi zaavit', 4to kak budto bi razli4nie individi na samom dele odno i to je. Owl:InverseFunctionalProperty takje mojet bit' ispol'zovano, 4tobi svazat' individov vmeste. Naprimer, esli takoe svoystvo kak "INN" avlaetsa owl:InverseFunctionalProperty, to dva otdel'nix 4eloveka mogli bi bit' rasceneni kak odin i tot je na osnove togo, 4to oni imeut odno i to je zna4enie etogo svoystva. Kogda identi4nost' individov opredelaetsa takimi sredstvami, informacia o nix iz raznix isto4nikov mojet bit' slita. Eta agregacia mojet ispol'zovat'sa, 4tobi opredelit' fakti, kotorie ne predstavleni pramo ni v odnom iz isto4nikov.

Sposobnost' Semanti4eskoy Seti svazivat' informaciu iz mnogix isto4nikov - jelatel'noe i mo6noe svoystvo, kotoroe mojet ispol'zovat'sa vo mnogix prilojeniax. Odnako, sposobnost' ob&edinat' dannie iz mnogix isto4nikov v so4etanii s mo6'u logi4eskogo vivoda OWL, deystvitel'no imeet potencial dla zloupotreblenia. Pol'zovateli OWL doljni bit' zabotit'sa o potencial'noy ugroze sekretnosti. Detal'nie re6enia po za6ite informacii bili rasceneni kak vixoda6ie za oblast' rassmotrenia dannoy rabo4ey gruppoy. Mnojestvo organizaciy, zanimau6ixsa etimi voprosami, predlagaet 6irokiy spektr re6eniy po bezopasnosti i sekretnosti. Naprimer, sm. SAML i P3P.


3. Osnovnie elementi

Bol'6instvo elementov ontologii OWL otnosatsa k klassam, svoystvam, predstavitelam klassov i otno6eniam mejdu etimi predstavitelami. Etot razdel predstavlaet komponenti azika, neobxodimie dla predstavlenia etix elementov.

3.1. Prostie klassi i individi

Primenenie ontologii budut zaviset' ot predostavlaemoy eu vozmojnosti rassudit' ob individax. 4tobi sdelat' eto udobnim, mi doljni imet' mexanizm, 4tobi opisat' klassi etix individov i svoystva, kotorie oni nasleduut na osnovanii 4lenstva v klasse. Mi vsegda mojem obozna4it' opredelennie svoystva individov, no osnovnaa sila ontologiy lejit v rassujdeniax na osnove klassov.

Inogda mi xotim pod4erknut' razli4ie mejdu klassom kak ob&ektom i klassom kak naborom, soderja6im elementi. Mi nazivaem nabor individov, kotorie avlautsa 4lenami kakogo-to klassa ras6ireniem etogo klassa.

3.1.1. Prostie imenovannie klassi
Class, rdfs:subClassOf

Naibolee fundamental'nie ponatia v kakoy-to oblasti doljni sootvetstvovat' klassam, kotorie naxodatsa v korne razli4nix taksonomi4eskix derev'ev. Kajdiy individ v mire OWL avlaetsa 4lenom klassa owl:Thing. Takim obrazom kajdiy opredelenniy pol'zovatelem klass avtomati4eski avlaetsa podklassom owl:Thing. Specifi4nie dla dannoy oblasti kornevie klassi opredelautsa prostim ob&avleniem imenovannogo klassa. OWL takje opredelaet pustoy klass, owl:Nothing.

Dla oblasti vinodelia, kotoruu mi ispol'zuem v ka4estve primera, mi sozdaem tri kornevix klassa: Vinodel'na, Region i ProduktPitania.

<owl:Class rdf:ID="Vinodel'na"/> <owl:Class rdf:ID="Region"/> <owl:Class rdf:ID="ProduktPitania"/> 

Zamet'te, 4to etim mi tol'ko skazali, 4to su6estvuut klassi, kotorim dali eti imena, obozna4ennie s pomo6'u 'rdf:ID ='. Formal'no, mi ne znaem po4ti ni4ego ob etix klassax, krome togo, 4to oni su6estvuut, nesmotra na ispol'zovanie v ka4estve metok znakomix russkoazi4nix terminov. Xota klassi su6estvuut, k nim nel'za otnesti nikakix individov. Po tomu, 4to mi znaem v danniy moment ob etix klassax, ix mojno takje nazvat' Ve6'1, Ve6'2 i Ve6'3.

Vajno pomnit', 4to opredelenia mogut bit' ras6irau6imisa i raspredelennimi. V 4astnosti, pozje mi doljni budem bol'6e konkretizirovat' ponatie Vinodel'na.

Sintaksis rdf:ID="Region" ispol'zuetsa, 4tobi vvesti nazvanie, kak 4ast' ego opredelenia. Atribut rdf:ID ([RDF], 7.2.22) poxoj na atribut ID iz XML. Teper' vnutri etogo dokumenta na klass Region mojno ssilat'sa s pomo6'u #Region, naprimer, rdf:resource="#Region". Drugie ontologii mogut ssilat'sa na eto nazvanie, ispol'zua ego polnuu formu "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Region".

Drugaa forma ssilok ispol'zuet sintaksis rdf:about="#Region", 4tobi ras6irit' opredelenie resursa. Ispol'zovanie sintaksisa rdf:about="&ont;#x" - klu4evoy element v sozdanii raspredelennoy ontologii. Eto pozvolaet ras6irit' importirovannoe opredelenie x, ne izmenaa original dokumenta i konstruirovat' bol'6ie ontologii iz blokov.

Teper' mojno obratit'sa k klassam, kotorie mi opredelili v drugix OWL konstrukciax, ispol'zua ix je identifikatori. Dla pervogo klassa, zadannogo v etom dokumente, mi mojem ispol'zovat' otnositel'niy identifikator, #Vinodel'na. Vozmojno, drugim dokumentam takje potrebuetsa ssilka na etot klass. Samiy razumniy sposob sdelat' eto - obespe4it' namespace i opredelenia ENTITY, kotorie vklu4aut opredelaemiy dokument v ka4estve isto4nika:

... <!ENTITY vin "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" > <!ENTITY food "http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" > ... <rdf:RDF xmlns:vin ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" xmlns:food="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" ... > ... 

Sdelav eti opredelenia mi mojem obra6at'sa k klassu vinodel'na ili ispol'zua XML-teg vin:Vinodel'na ili zna4enie atributa &vin;Vinodel'na. Krome etogo, vsegda mojno soslat'sa na resurs, ispol'zua ego polniy URI, v na6em slu4ae http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Vinodel'na.

Fundamental'nim taksonomi4eskim konstruktorom dla klassov avlaetsa rdfs:subClassOf. On svazivaet bolee 4astniy klass s bolee ob6im klassom. Esli X - podklass Y, to kajdiy predstavitel' X - takje predstavitel' Y. Otno6enie rdfs:subClassOf avlaetsa tranzitivnim. Esli X - podklass Y, i Y - podklass Z, to X - podklass Z.

<owl:Class rdf:ID="Napitok"> <rdfs:subClassOf rdf:resource="#ProduktPitania" /> ... </owl:Class> 

Mi opredelaem Napitok (jidkost', prigodnaa dla pit'a) kak podklass ProduktPitania.

V mire veb-ontologiy, oba etix klassa mogut bit' opredeleni v otdel'noy ontologii, kotoraa obespe4ila bi osnovnie stroitel'nie bloki dla 6irokogo kruga pi6evix i pit'evix ontologiy, 4to mi i sdelali - mi opredelili ix v ontologii pi6a, kotoraa importirovana v ontologiu vina. Ontologia pi6i vklu4aet mnojestvo klassov, naprimer, Pi6a, S&edobnaaVe6', Bludo i Molluski, kotorie ne otnosatsa k znaniam o vine, no doljni bit' svazani so slovarem vinnix terminov, esli mi sobiraemsa sover6at' poleznie rassujdenia. Pi6a i vino vzaimozavisimi, i nam eto prigoditsa, 4tobi identificirovat' podxoda6ie kombinacii vina/pi6i.

Opredelenie klassa sostoit iz dvux 4astey: ukazanie nazvania ili ssilka i spisok ograni4eniy. Kajdoe iz neposredstvenno soderja6ixsa v opredelenii klassa virajeniy ograni4ivaet (uto4naet) svoystva predstaviteley opredelennogo klassa. Predstaviteli klassa prinadlejat k perese4eniu ukazannix ograni4eniy. (Xota sm. opisanie owl:equivalentClass.) Poka mi videli tol'ko primeri, kotorie vklu4aut edinstvennoe ograni4enie, obazivau6ee noviy klass bit' podklassom nekotorogo drugogo imenovannogo klassa.

Zdes' mi sozdaem prostoe (i nepolnoe) opredelenie dla klassa Vino. Vino - eto Napitok. Takje mi opredelaem Pasta kak S&edobnaaVe6'.

<owl:Class rdf:ID="Vino"> <rdfs:subClassOf rdf:resource="&food;Napitok"/> <rdfs:label xml:lang="en">wine</rdfs:label> <rdfs:label xml:lang="ru">vino</rdfs:label> <rdfs:label xml:lang="fr">vin</rdfs:label> ... </owl:Class> <owl:Class rdf:ID="Pasta"> <rdfs:subClassOf rdf:resource="#S&edobnaaVe6'" /> ... </owl:Class> 

Konstrukcia rdfs:label obespe4ivaet neobazatel'noe udobo4itaemoe nazvanie etogo klassa. Instrumental'nie sredstva predstavlenia informacii pol'zovatelu mogut ego ispol'zovat'. Atribut "lang" obespe4ivaet podderjku raznix azikov. Konstrukcia rdfs:label (metka) podobna kommentariu i ni4ego ne vnosit v logi4eskuu interpretaciu ontologii.

Na6e opredelenie vina vse e6e o4en' nepolno. Mi ne znaem ni4ego o vinax za isklu4eniem togo, 4to oni - ve6i i napitki, no mi imeem dostato4no informacii, 4tobi sozdavat' individov etogo klassa i proizvodit' sujdenia o nix.

3.1.2. Individi

V dopolnenie k klassam mi xotim imet' vozmojnost' opisat' ix 4lenov. Obi4no mi dumaem o nix kak ob otdel'nix individax v na6em prostranstve ve6ey. Dla opredelenia individa dostato4no ob&avit' ego 4lenom kakogo-to klassa.

<Region rdf:ID="RegionCentral'nogoPoberej'a" /> 

Zamet'te, 4to sleduu6ee identi4no po zna4eniu primeru vi6e.

<owl:Thing rdf:ID="RegionCentral'nogoPoberej'a" /> <owl:Thing rdf:about="#RegionCentral'nogoPoberej'a"> <rdf:type rdf:resource="#Region"/> </owl:Thing> 

rdf:type - eto svoystvo RDF, kotoroe svazivaet individa s klassom, 4lenom kotorogo on avlaetsa.

Est' para momentov, na kotorix zdes' sleduet ostanovit'sa. Vo-pervix, mi re6ili, 4to RegionCentral'nogoPoberej'a (opredelennaa oblast') avlaetsa 4lenom Region, klassa, soderja6ego vse geografi4eskie regioni. Vo-vtorix, net nikakix trebovaniy v primere iz dvux 4astey, 4to eti dva elementa doljni sledovat' drug za drugom, ili daje naxodit'sa v odnom i tom je fayle (xota, v protivnom slu4ae ix nazvania doljni bili bi bit' ras6ireni s pomo6'u URI). Pri proektirovanii veb-ontologiy nujno pomnit', 4to oni prednazna4eni dla raspredelennoy sredi. Oni mogut bit' importirovani i ras6ireni, sozdavaa novie proizvodnie ontologii.

4tobi imet' v svoem rasporajenii e6e neskol'ko klassov dla predstavlenia svoystv v sleduu6ix razdelax, mi opredelaem vetv' taksonomii Vinograd s individom, obozna4au6im sort vinograda Kaberne-Sovin'on. Vinograd opredelen v ontologii pi6i:

<owl:Class rdf:ID="Vinograd"> ... </owl:Class> 

I teper' v ontologii vina mi imeem:

<owl:Class rdf:ID="VinniyVinograd"> <rdfs:subClassOf rdf:resource="&food;Vinograd" /> </owl:Class> <VinniyVinograd rdf:ID="VinogradKaberneSovin'on" /> 

Kak obsujdaetsa v sleduu6em razdele, VinogradKaberneSovin'on - individ, potomu 4to obozna4aet odin konkretniy sort vinograda.

3.1.3. Dizayn dla ispol'zovania

Su6estvuut bol'6ie problemi otnositel'no razli4ia mejdu klassom i individom v OWL. Klass - eto prosto nazvanie i sovokupnost' svoystv, kotorie opisivaut nabor individov. Individi - eto 4leni etix naborov. Takim obrazom, klassi doljni sootvetstvovat' estestvenno obrazovannim naboram ve6ey v rassmatrivaemoy oblasti, a individi doljni sootvetstvovat' real'nim ob&ektam, kotorie mogut bit' sgruppirovani v eti klassi.

Pri sozdanii ontologiy, eto razli4ie 4asto razmivaetsa v dvux napravleniax:

  • Urovni predstavlenia: V opredelennix kontekstax 4to-to, 4to o4evidno avlaetsa klassom, mojet samostoatel'no s4itat'sa predstavitelem 4ego-to e6e. Naprimer, v ontologii vina mi imeem ponatie Vinograd, kotoroe prizvano obozna4at' nabor vsex raznovidnostey vinograda. VinogradKaberneSovin'on - primer predstavitela etogo klassa, poskol'ku on obozna4aet fakti4eskiy sort vinograda, nazivaemogo Kaberne-Sovin'on. Odnako, VinogradKaberneSovin'on mog bi sam s4itat'sa klassom, obozna4au6im nabor vsex real'nix kustov vinograda Kaberne-Sovin'on.

  • Podklass ili 4astniy slu4ay: Bivaet o4en' prosto sputat' otno6enia po tipu predstavitel'-klass s otno6eniem po tipu podklass-nadklass. Naprimer, vibor sdelat' VinogradKaberneSovin'on individom, avlau6imsa predstavitelem klassa Vinograd, a ne podklassom klassa Vinograd mojet pokazat'sa 4isto proizvol'nim. No eto ne proizvol'noe re6enie. Klass Vinograd obozna4aet nabor vsex sortov vinograda, i poetomu luboy podklass Vinograda doljen obozna4at' podmnojestvo etix sortov. Takim obrazom, VinogradKaberneSovin'on doljen s4itat'sa predstavitelem Vinograda, i ne podklassom. Ved' on ne opisivaet podmnojestvo sortov vinograda, on sam avlaetsa sortom.

Zamet'te, 4to to je samoe razli4ie voznikaet v otno6enie klassa Vino. Klass Vino fakti4eski obozna4aet nabor vsex raznovidnostey vina, no ne nabor real'nix butilok, kotorie mojno kupit'. V takom bi slu4ae, kajdiy predstavitel' klassa Vino v na6ey ontologii opredelal bi klass, sostoa6iy iz vsex butilok vina dannogo tipa. Dostato4no legko voobrazit' takuu informacionnuu sistemu, tipa sistemi u4eta dla vinnogo torgovca, kotoraa doljna rassmatrivat' individual'nie butilki vina. 4tobi podderjat' takuu interpretaciu, na6a ontologia vina, v tom vide kak ona sey4as, potrebovala bi vozmojnosti rassmatrivat' klassi kak individi. Otmet'te, 4to OWL Full razre6aet takuu ekspressivnost', pozvolaa nam rassmatrivat' konkretnogo predstavitela sorta vinograda odnovremenno kak klass, predstaviteli kotorogo - butilki vina.

Po toy je logike, vina, proizvedennie vinodel'nami v opredelennie godi s4itautsa vintajem. 4tobi predstavlat' ponatie vintaja, mi doljni opredelit' ego mesto v na6ey ontologii. Predstavitel' klassa Vino, kak obsujdalos' vi6e, predstavlaet konkretniy sort vina, proizvodimogo konkretnoy vinodel'ney, naprimer, Forman6ardone.

Uto4nenie, 4to vino, proizvedennoe v 2000 godu, s4itaetsa vintajem, brosaet nam vizov, potomu 4to mi ne imeem vozmojnosti predstavit' podmnojestvo dannogo individa vina. Etot vintaj - ne noviy sort vina, eto - osoboe podmnojestvo vina - togo, 4to bilo proizvedeno v 2000 godu. Odnim iz variantov bilo bi ispol'zovat' OWL Full i rassmatrivat' predstaviteley vina kak klassi s podklassami (podmnojestvami), obozna4au6imi vintaji. Drugoy variant oboyti etu problemu - eto rassmatrivat' Vintaj kak otdel'niy klass, 4'i predstaviteli imeut otno6enie k tomu Vinu, vintajem kotorogo oni avlautsa. Naprimer, Forman6ardone2000 - eto individ klassa Vintaj s so svoystvom avlaetsaVintajem, zna4enie kotorogo - individ klassa Vino, Forman6ardone. Mi opredelim klass Vintaj nije .

Cel' etogo obsujdenia - pokazat', 4to razvitie ontologii doljno strogo pod4inat'sa ee predpolagaemomu primeneniu. Takje eti voprosi pod4erkivaut odno iz glavnix razli4iy mejdu OWL Full i OWL DL. OWL Full pozvolaet ispol'zovat' klassi kak individov, a OWL DL - net. Ontologia vina proektiruetsa, 4tobi rabotat' v OWL DL, i poetomu takie individi kak Forman6ardone ne rassmatrivautsa odnovremenno kak klassi.

3.2. Prostie svoystva

Mir klassov i individov bil bi sover6enno neinteresnim, esli bi mi mogli tol'ko opredelat' taksonomii. Svoystva pozvolaut nam utverjdat' ob6ie fakti o 4lenax klassov i osobie fakti ob individax.

3.2.1. Opredelenie svoystv
ObjectProperty, DatatypeProperty, rdfs:subPropertyOf,
rdfs:domain, rdfs:range

Svoystvo - eto binarnoe otno6enie. Razli4aut dva tipa svoystv:

  • svoystva-zna4enia, otno6enia mejdu predstavitelami klassov i RDF-literalami ili tipami dannix, opredelaemix XML Schema
  • svoystva-ob&ekti, otno6enia mejdu predstavitelami dvux klassov. Zamet'te, 4to slovo ob&ekt v nazvanii ne svazano s RDF-terminom rdf:object ([RDF], 5.3.4).

Pri opredelenii svoystva su6estvuet mnojestvo sposobov ograni4it' eto otno6enie. Mojno opredelit' domen i diapazon. Svoystvo mojet bit' opredeleno kak specializacia (podsvoystvo) su6estvuu6ego svoystva. Vozmojni i bolee slojnie ograni4enia, kotorie opisani pozje.

<owl:ObjectProperty rdf:ID="sdelanoIzVinograda"> <rdfs:domain rdf:resource="#Vino"/> <rdfs:range rdf:resource="#Vinograd"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="bludo"> <rdfs:domain rdf:resource="#PriemPi6i" /> <rdfs:range rdf:resource="#VidBluda" /> </owl:ObjectProperty> 

V OWL posledovatel'nost' elementov bez avnogo ukazania operatora predstavlaet soboy neavnoe soedinenie. Svoystvo sdelanoIzVinograda imeet domen Vino i diapazon Vinograd. Takim obrazom, eto svazivaet predstaviteley klassa Vino s predstavitelami klassa Vinograd. Mnojestvennie domeni ozna4aut, 4to domenom svoystva slujit perese4enie ukazannix klassov (i podobnim obrazom dla diapazona).

To4no tak je svoystvo bludo svazivaet danniy PriemPi6i s kakim-to VidomBluda.

Zamet'te, 4to ispol'zovanie informacii o diapazone i domene v OWL otli4aetsa ot informacii o tipe dannix v azikax programmirovania. V 4astnosti, v azikax programmirovania tipi dannix ispol'zuutsa, 4tobi otslejivat' vzaimouvazannost' koda. V OWL diapazon zna4eniy mojet ispol'zovat'sa, 4tobi nasledovat' tip. Naprimer, iz sleduu6ego opredelenia:

<owl:Thing rdf:ID="LindemansBin656ardone"> <sdelanoIzVinograda rdf:resource="#Vinograd6ardone" /> </owl:Thing>  ¬  

mi mojem zaklu4it', 4to LindemansBin656ardone - eto vino, potomu 4to domenom svoystva sdelanoIzVinograda avlaetsa Vino.

Svoystva, tak je kak klassi, mogut bit' organizovani v ierarxiu.

<owl:Class rdf:ID="XarakteristikaVina" /> <owl:Class rdf:ID="CvetVina"> <rdfs:subClassOf rdf:resource="#XarakteristikaVina" /> ... </owl:Class> <owl:ObjectProperty rdf:ID="obladaetXarakteristikoyVina"> <rdfs:domain rdf:resource="#Vino" /> <rdfs:range rdf:resource="#XarakteristikaVina" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="imeetCvet"> <rdfs:subPropertyOf rdf:resource="#obladaetXarakteristikoyVina" /> <rdfs:range rdf:resource="#CvetVina" /> ... </owl:ObjectProperty> 

Svoystvo XarakteristikaVina svazivaet vina s ix cvetom i komponentami vkusa, vklu4aa sladost', krepost' i buket. imeetCvet - podsvoystvo svoystva obladaetXarakteristikoyVina s bolee ograni4ennim diapazonom: CvetVina. Otno6enie rdfs:subPropertyOf v etom slu4ae ozna4aet, 4to 4to-libo so zna4eniem X svoystva imeetCvet takje imeet svoystvo obladaetXarakteristikoyVina so zna4eniem X.

Nije mi vvodim svoystvo raspolojenV, kotoroe svazivaet ve6i s regionami, v kotorix oni raspolojeni.

<owl:ObjectProperty rdf:ID="raspolojenV"> ... <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" /> <rdfs:range rdf:resource="#Region" /> </owl:ObjectProperty> 

Zamet'te, kak opredeleni domen i diapazon raspolojenV. Domen razre6aet bit' raspolojennim v regione 4emu ugodno, vklu4aa sami regioni. I tranzitivnoe ispol'zovanie etogo otno6enia po su6estvu sozdaet set' geografi4eski opredelennix subregionov i ve6ey. Te ve6i, v kotorix ni4ego ne raspolojeno, mogut otnosit'sa k lubomu klassu, v to vrema kak te, v kotorix raspolojeni drugie ve6i, doljni avlat'sa regionami.

Teper' mojno ras6irit' opredelenie Vina, 4tobi vklu4it' ponatie o tom, 4to vino sdelano po krayney mere iz odnogo Vinograda. Kak i s opredeleniami svoystv, opredelenia klassa imeut mnogokratnie podrazdeli, kotorie neavno soedineni.

<owl:Class rdf:ID="Vino"> <rdfs:subClassOf rdf:resource="&food;Napitok"/> <rdfs:subClassOf>  <owl:Restriction> <owl:onProperty rdf:resource="#sdelanoIzVinograda"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction>  </rdfs:subClassOf> ... </owl:Class> 

Videlennoe vi6e ograni4enie podklassa

 <owl:Restriction> <owl:onProperty rdf:resource="#sdelanoIzVinograda"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction> 

opredelaet neimenovanniy klass, kotoriy predstavlaet nabor ve6ey s po krayney mere odnim svoystvom sdelanoIzVinograda. Mi nazivaem takie klassi anonimnimi. Vklu4enie etogo ograni4enia v opredelenie klassa Vino ozna4aet, 4to ve6i, avlau6iesa vinami, takje avlautsa 4lenami etogo anonimnogo klassa. Takim obrazom, kajdoe individual'noe vino doljno bit' zadeystvovannim po krayney mere v odnom otno6enii sdelanoIzVinograda.

Teper' mi mojem opisat' klass Vintaj, obsujdaemiy ranee.

<owl:Class rdf:ID="Vintaj"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#avlaetsaVintajem"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>  ¬  

Svoystvo avlaetsaVintajem svazivaet Vintaj s Vinom.

<owl:ObjectProperty rdf:ID="avlaetsaVintajem"> <rdfs:domain rdf:resource="#Vintaj" /> <rdfs:range rdf:resource="#Vino" /> </owl:ObjectProperty>  ¬  

V sleduu6em razdele mi svajem Vintaji s ix godami.

3.2.2. Svoystva i tipi dannix

Mi otli4aem svoystva po tomu, svazivaut li oni individov s individami (svoystva-ob&ekti) ili individov s tipami dannix (svoystva-zna4enia). Svoystva-zna4enia mogut imet' diapazon literalov RDF ili prostix tipov, opredelennix v XML Schema datatypes.

OWL ispol'zuet bol'6instvo vstroennix tipov XML Schema. Ssilki na eti tipi osu6estvlautsa posredstvom URI dla tipov http://www.w3.org/2001/XMLSchema. Sleduu6ie tipi dannix rekomenduutsa dla ispol'zovania s OWL:

xsd:string xsd:normalizedString xsd:boolean
xsd:decimal xsd:float xsd:double
xsd:integer xsd:nonNegativeInteger xsd:positiveInteger
xsd:nonPositiveInteger xsd:negativeInteger
xsd:long xsd:int xsd:short xsd:byte
xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort xsd:unsignedByte
xsd:hexBinary xsd:base64Binary
xsd:dateTime xsd:time xsd:date xsd:gYearMonth
xsd:gYear xsd:gMonthDay xsd:gDay xsd:gMonth
xsd:anyURI xsd:token xsd:language
xsd:NMTOKEN xsd:Name xsd:NCName

Vi6eupomanutie tipi plus rdfs:Literal formiruut vstroennie tipi dannix OWL. Vse OWL-rassujdateli obazani podderjivat' tipi xsd:integer i xsd:string.

Drugie vstroennie tipi XML Schema mogut ispol'zovat'sa v OWL Full, no s predosterejeniami, opisannimi v dokumente Semantika i abstraktniy sintaksis OWL.

<owl:Class rdf:ID="GodVintaja" /> <owl:DatatypeProperty rdf:ID="god"> <rdfs:domain rdf:resource="#GodVintaja" /> <rdfs:range rdf:resource="&xsd;positiveInteger"/> </owl:DatatypeProperty> 

Svoystvo god svazivaet GodVintaja so zna4eniami polojitel'nogo celogo 4isla. Nije mi vvodim svoystvo imeetGodVintaja, kotoroe svazivaet Vintaj s GodVintaja.

V Spravke po OWL ([Reference], 6.2) opisivaetsa ispol'zovanie owl:oneOf, rdf:List i rdf:rest dla togo, 4tobi opredelit' pere4islenniy tip dannix. Primer pokazivaet, kak sozdat' owl:DatatypeProperty s4etIgriVTennis s diapazonom, vklu4au6im elementi spiska celo4islennix zna4eniy {0, 15, 30, 40}.

3.2.3. Svoystva individov

Sna4ala mi opi6em individov klassov Region i Vinodel'na, a zatem mi opredelim na6e pervoe vino, Kaberne-Sovin'on.

<Region rdf:ID="RegionGoriSantaKruz"> <locatedIn rdf:resource="#RegionKalifornia" /> </Region> <Vinodel'na rdf:ID="VinogradnikGoraSantaKruz" /> <KaberneSovin'on rdf:ID="KaberneSovin'onVinodel'naGoraSantaKruz" > <raspolojenV rdf:resource="#RegionGoriSantaKruz"/> <imeetProizvoditela rdf:resource="#VinogradnikGoraSantaKruz" /> </KaberneSovin'on> 
   

Eto opredelenie vse e6e nepolno. Est' drugie aspekti vinnogo buketa, kotorie opredeleni v polnoy ontologii. No 4asti srastautsa voedino. Mi uje mogli bi na4at' rassujdat' o tom, k kakim punktam menu v na6ey ontologii pi6i podo6lo bi eto vino. Iz poslednego opredelenia mi znaem, 4to ego izgotavlivaut na vinogradnike Gora Santa-Kruz. Poskol'ku eto Kaberne-Sovin'on (sm. wine.rdf), mi znaem, 4to eto - suxoe krasnoe vino.

Podobnim obrazom k individam mogut bit' dobavleni svoystva-zna4enia. Nije mi opisivaem predstavitela klassa GodVintaja i svazivaem ego s opredelennim zna4eniem tipa &xsd;positiveInteger.

<GodVintaja rdf:ID="God1998"> <god rdf:datatype="&xsd;positiveInteger">1998</god> </GodVintaja> 

3.3. Xarakteristiki svoystv

Sleduu6ie neskol'ko razdelov opisivaut mexanizmi, ispol'zuemie dla bolee to4nogo opredelenia svoystv. Su6estvuet vozmojnost' opredelit' xarakteristiki svoystva, 4to obespe4ivaet mo6niy mexanizm dla usover6enstvovannogo rassujdenia o svoystve.

3.3.1. TransitiveProperty

Esli svoystvo P, opredeleno kak tranzitivnoe, togda dla lubogo x, y, i z:

P(x,y) i P(y,z) predpolagaut P(x,z) 

Svoystvo raspolojenV avlaetsa tranzitivnim.

<owl:ObjectProperty rdf:ID="raspolojenV"> <rdf:type rdf:resource="&owl;TransitiveProperty" /> <rdfs:domain rdf:resource="&owl;Thing" /> <rdfs:range rdf:resource="#Region" /> </owl:ObjectProperty> <Region rdf:ID="RegionGoriSantaKruz"> <raspolojenV rdf:resource="#RegionKalifornia" /> </Region> <Region rdf:ID="RegionKalifornia"> <raspolojenV rdf:resource="#RegionS6A" /> </Region> 

Iz-za togo, 4to RegionGoriSantaKruz raspolojenV RegionKalifornia, on takje doljen bit' raspolojenV RegionS6A, poskol'ku svoystvo raspolojenV - tranzitivnoe.

3.3.2. SymmetricProperty

Esli svoystvo P pome4eno kak simmetri4eskoe, togda dla lubogo x i y:

P(x,y) esli P(y,x) 

Svoystvo prilegaetKRegionu - simmetri4noe, togda kak raspolojenV - net. Esli bit' bolee to4nim, raspolojenV ne prednazna4eno, 4tobi bit' simmetri4nim. No v nastoa6ee vrema ni4to v ontologii vina ne prepatstvuet emu bit' simmetri4nim.

<owl:ObjectProperty rdf:ID="prilegaetKRegionu"> <rdf:type rdf:resource="&owl;SymmetricProperty" /> <rdfs:domain rdf:resource="#Region" /> <rdfs:range rdf:resource="#Region" /> </owl:ObjectProperty> <Region rdf:ID="RegionMendocino"> <raspolojenV rdf:resource="#RegionKalifornia" /> <prilegaetKRegionu rdf:resource="#RegionSonoma" /> </Region> 

RegionMendocino prilegaet k RegionSonoma i naoborot. RegionMendocino raspolojen v RegionKalifornia, no ne naoborot.

3.3.3. FunctionalProperty

Esli svoystvo P pome4eno kak funkcional'noe, togda dla lubogo x, y i z:

P(x,y) i P(x,z) predpolagaut y = z 

V na6ey ontologii vina svoystvo imeetGodVintaja funkcional'no. Vsakoe vino imeet unikal'niy god vintaja. Takim obrazom, danniy individual'niy Vintaj mojet bit' svazan tol'ko s edinstvennim godom, ispol'zua svoystvo imeetGodVintaja. Pri etom owl:FunctionalProperty ne trebuet, 4tobi vse elementi domena imeli zna4enia. Smotrite obsujdenie kardinal'nosti Vintaja.

<owl:Class rdf:ID="GodVintaja" /> <owl:ObjectProperty rdf:ID="imeetGodVintaja"> <rdf:type rdf:resource="&owl;FunctionalProperty" /> <rdfs:domain rdf:resource="#Vintaj" /> <rdfs:range rdf:resource="#GodVintaja" /> </owl:ObjectProperty> 

3.3.4. inverseOf

Esli svoystvo P1, pome4eno kak owl:inverseOf P2, to dla vsex x i y:

P1(x,y) esli P2(y,x) 

Zamet'te, 4to sintaksis dla owl:inverseOf beret v ka4estve argumenta nazvanie svoystva. A esli B ozna4aet (A predpolagaet B) i (B predpolagaet A).

<owl:ObjectProperty rdf:ID="imeetProizvoditela"> <rdf:type rdf:resource="&owl;FunctionalProperty" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="proizvoditVino"> <owl:inverseOf rdf:resource="#imeetProizvoditela" /> </owl:ObjectProperty> 

U Vin est' proizvoditeli, kotorie po opredeleniu klassa Vino ograni4eni Vinodel'nami. Togda kajdaa Vinodel'na proizvodit nabor vin, kotorie identificiruut ee kak proizvoditela.

3.3.5. InverseFunctionalProperty

Esli svoystvo P pome4eno kak obratno funkcional'noe, to dla vsex x, y i z:

P(y,x) i P(z,x) predpolagaet y = z 

Obratite vnimanie, 4to proizvoditVino v predidu6em razdele obratno funkcional'noe. Pri4ina etogo v tom, 4to svoystvo, obratnoe funkcional'nomu svoystvu, doljno bit' obratno funkcional'nim. Mi mogli bi opredelit' imeetProizvoditela i proizvoditVino sleduu6im obrazom, i polu4ili bi tot je effekt, kak i v predidu6em primere.

<owl:ObjectProperty rdf:ID="imeetProizvoditela" /> <owl:ObjectProperty rdf:ID="proizvoditVino"> <rdf:type rdf:resource="&owl;InverseFunctionalProperty" /> <owl:inverseOf rdf:resource="#imeetProizvoditela" /> </owl:ObjectProperty>  ¬  

Rassmatrivayte elementi diapazona obratno funkcional'nogo svoystva kak opredelenie klu4evogo pola pri postroenii baz dannix. owl:InverseFunctional predpolagaet, 4to elementi diapazona obespe4ivaut unikal'niy identifikator dla kajdogo element domena.

V OWL Full mi mojem pometit' DatatypeProperty kak obratno funkcional'noe. Eto pozvolaet nam identificirovat' stroku kak unikal'niy klu4. V OWL DL literali (strokovie zna4enia) otdeleni ot owl:Thing, i poetomu OWL DL ne razre6aet primenat' InverseFunctional k DatatypeProperty.

3.4. Ograni4enia svoystv

 

V dopolnenie k obozna4eniu xarakteristik svoystv, mojno raznimi sposobami e6e bol'6e ograni4it' diapazon svoystva v opredelennix kontekstax. Mi delaem eto s pomo6'u ograni4eniy svoystv. Razli4nie sposobi, opisannie nije, mogut ispol'zovat'sa tol'ko v kontekste owl:Restriction. Element owl:onProperty ukazivaet na ograni4ivaemoe svoystvo.

3.4.1. allValuesFrom, someValuesFrom

Mi uje rassmotreli odin sposob ograni4ivat' tipi elementov, kotorie obrazuut svoystvo. Do six por eti mexanizmi bili global'nimi v tom smisle, 4to oni otnosilis' ko vsem predstavitelam dannogo svoystva. Sleduu6ie dva, allValuesFrom i someValuesFrom - lokal'nie po otno6eniu k soderja6emu ix klassu.

Ograni4enie owl:allValuesFrom trebuet, 4tobi dla kajdogo predstavitela dannogo klassa, kotoriy imeet dannoe svoystvo, vse zna4enia etogo svoystva avlalis' predstavitelami klassa, zadannogo v punkte owl:allValuesFrom.

<owl:Class rdf:ID="Vino"> <rdfs:subClassOf rdf:resource="&food;Napitok" /> ... <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#imeetProizvoditela" /> <owl:allValuesFrom rdf:resource="#Vinodel'na" /> </owl:Restriction> </rdfs:subClassOf> ... </owl:Class> 

Proizvoditelem Vina doljna bit' Vinodel'na. Ograni4enie allValuesFrom na svoystvo imeetProizvoditela nakladivaetsa tol'ko dla etogo klassa Vino. Proizvoditeley Sira eto lokal'noe ograni4enie ne kasaetsa.

owl:someValuesFrom deystvuet poxojim obrazom. Esli bi mi v poslednem primere zamenili owl:allValuesFrom na owl:someValuesFrom, to eto ozna4alo bi, 4to po krayney mere odno iz svoystv imeetProizvoditela dla kajdogo Vino doljno ukazivat' na individa klassa Vinodel'na.

<owl:Class rdf:ID="Vino"> <rdfs:subClassOf rdf:resource="&food;Napitok" /> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#imeetProizvoditela" /> <owl:someValuesFrom rdf:resource="#Vinodel'na" /> </owl:Restriction> </rdfs:subClassOf> ... </owl:Class>  ¬  

Razli4ie mejdu etimi dvuma formulirovkami - eto razli4ie mejdu universal'nim i ekzistencial'nim opredeleniem koli4estva.

Otno6enie Rezul'tat
allValuesFrom Dla vsex vin, esli oni imeut proizvoditeley, vse proizvoditeli - vinodel'ni.
someValuesFrom Vse vina imeut xota bi odnogo proizvoditela, kotoriy avlaetsa vinodel'ney.

Pervoe otno6enie ne trebuet, 4tobi vino imelo proizvoditela. Esli u nego est' odin ili bolee proizvoditeley, to vse oni doljni bit' vinodel'nami. Vtoroe otno6enie trebuet, 4tobi bil po krayney mere odin proizvoditel'-vinodel'na, no takje mogut bit' proizvoditeli, kotorie ne vinodel'ni.

3.4.2. Kardinal'nost'

Mi uje videli primeri ukazania kardinal'nosti. Do teku6ego momenta eto bili ukazania minimal'noy kardinal'nosti. Bolee to4no eto bil parametr owl:cardinality, kotoriy pozvolaet ukazat' to4noe koli4estvo elementov v svazi. Naprimer, mi ukazali, 4to u klassa Vintaj est' strogo odin GodVintaja.

<owl:Class rdf:ID="Vintaj"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#imeetGodVintaja"/> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> 

Mi zadali svoystvo imeetGodVintaja kak funkcional'noe, 4to to je samoe, kak esli skazat', 4to kajdiy Vintaj imeet ne bolee odnogo GodVintaja. Primenenie etogo svoystva k Vintaj s ispol'zovaniem ograni4enia kardinal'nosti zadaet bolee strogoe otno6enie, 4to kajdiy Vintaj imeet strogo odin GodVintaja.

Virajenia kardinal'nosti so zna4eniami, ograni4ennimi 0 ili 1 avlautsa 4ast'u OWL Lite. Eto pozvolaet pol'zovatelu uto4nit' otno6enia 'po men'6ey mere odin', 'ne bolee odnogo' i 'to4no odin'. Pozitivnie celo4islennie zna4enia krome 0 i 1 razre6eni v OWL DL. owl:maxCardinality mojet ispol'zovat'sa dla ukazania verxnego predela. owl:minCardinality mojet ispol'zovat'sa dla ukazania nijnego predela. V kombinacii drug s drugom oni mogut ispol'zovat'sa dla ograni4enia kardinal'nosti svoystva v predelax 4islovogo intervala.

3.4.3. hasValue [OWL DL]

hasValue pozvolaet nam opredelat' klassi, osnovannie na su6estvovanii specifi4eskix zna4eniy svoystva. Sledovatel'no, individ budet 4lenom takogo klassa vsakiy raz, kogda po krayney mere odno iz ego zna4eniy svoystva budet ravno resursu, ukazannomu s pomo6'u hasValue.

<owl:Class rdf:ID="Burgundskoe"> ... <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#imeetSladost'" /> <owl:hasValue rdf:resource="#Suxoe" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class> 

Zdes' mi ob&avlaem, 4to vse Burgundskie vina - suxie. To est', ix svoystvo imeetSladost' doljno imet' po krayney mere odno zna4enie, ravnoe Suxoe.

Kak i dla allValuesFrom i someValuesFrom, eto lokal'noe ograni4enie. Ono otnositsa k svoystvu imeetSladost' tol'ko v otno6enii Burgundskogo.

4. Kartirovanie ontologiy

Dla togo, 4tobi ontologii imeli maksimal'niy effekt, oni doljni bit' 6iroko rasprostraneni. A 4tobi minimizirovat' intellektual'nie usilia, zatra4ivaemie na razrabotku ontologiy, oni doljni bit' prigodnimi dla mnogokratnogo ispol'zovania. V lu46em iz vsex vozmojnix variante oni doljni bit' sostavleni iz komponentov. Naprimer, Vi mogli bi vospol'zovat'sa ontologiey dati iz odnogo isto4nika i ontologiey fizi4eskogo mestopolojenia iz drugogo, i zatem ras6irit' ponatie mestopolojenia, vklu4iv v nego period vremeni, v te4enie kotorogo dannoe mestopolojenie soxranaetsa.

Vajno ponat', 4to bol'6aa 4ast' usiliy po razrabotke ontologii posva6ena svazivaniu vmeste klassov i svoystv tak, 4tobi maksimal'no to4no peredat' zalojenniy v ponatia smisl. Mi xotim, 4tobi prostie utverjdenia o 4lenstve v klasse imeli 6irokie i poleznie posledstvia. Eto - samaa slojnaa 4ast' razrabotki ontologii. Esli Vi mojete nayti su6estvuu6uu ontologiu, kotoraa uje 6iroko ispol'zuetsa i xoro6o prorabotana, to imeet smisl prisposobit' ee dla svoix nujd.

Takje zaman4ivo budet slit' voedino celuu kollekciu ontologiy. V etom slu4ae pomo6' special'nogo instrumentaria budet po4ti navernaka neobxodima dla podderjania soglasovannosti.

4.1. Ekvivalentnost' mejdu klassami i svoystvami
equivalentClass, equivalentProperty

4tobi svazat' vmeste rad ontologiy, vxoda6ix v ka4estve komponentov v kakuu-to tret'u ontologiu, 4asto polezno imet' vozmojnost' ukazat', 4to dannie klass ili svoystvo v odnoy ontologii ekvivalentni klassu ili svoystvo vo vtoroy ontologii. Eta sposobnost' doljna ispol'zovat'sa s ostorojnost'u. Esli ob&edinennie ontologii avlautsa protivore4a6imi (vse A - eto B, v drugoy vse A - eto ne B), to ne budet nikakogo ras6irenia (ni individov, ni otno6eniy), kotoriy udovletvorali bi polu4au6uusa kombinaciu.

V ontologii pi6i mi xotim svazat' osobennosti vina v opisaniax obedennix blud obratno s ontologiey vina. Odin iz sposobov sdelat' eto - opredelit' klass v ontologii pi6i (&food;Wine), a zatem ob&avit' ego ekvivalentnim su6estvuu6emu klassu vina v vinnoy ontologii.

<owl:Class rdf:ID="Vino"> <owl:equivalentClass rdf:resource="&vin;Vino"/> </owl:Class> 

Svoystvo owl:equivalentClass ispol'zuetsa, 4tobi pokazat', 4to dva klassa imeut absolutno odinakovix predstaviteley. Zamet'te, 4to v OWL DL klassi prosto obozna4aut nabori individov, no ne samix individov. Odnako, v OWL Full mi mojem ispol'zovat' owl:sameAs mejdu dvuma klassami, 4tobi pokazat', 4to oni identi4ni vo vsex otno6eniax.

Kone4no, primer vi6e neskol'ko zaputanniy, tak kak mi vsegda mojem ispol'zovat' &vin;Vino vezde, gde mi ispol'zovali bi #Vino, i polu4ali bi pri etom tot je samiy effekt bez pereopredelenia. Bolee opravdannoe ispol'zovanie bilo bi v slu4ae, esli b mi zaviseli ot dvux nezavisimo sozdannix ontologiy, i zametili, 4to oni ispol'zuut URI O1:foo i O2:bar dla ssilki na odin i tot je klass. 4tobi svesti ix vmeste, mog bi ispol'zovat'sa owl:equivalentClass, t.e., 4tobi postulati ot etix dvux ontologiy bili ob&edineni.

Mi uje videli, 4to virajenia klassa mogut bit' adresatami konstrukciy rdfs:subClassOf. Takje oni mogut bit' adresatom owl:equivalentClass. Opat' taki, eto izbavlaet ot neobxodimosti izobretat' nazvania dla kajdogo virajenia klassa i obespe4ivaet mo6nuu sposobnost' opredelenia, osnovannuu na udovletvorenii xarakteristik svoystv.

<owl:Class rdf:ID="TexasskieVe6i"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="#raspolojenV" /> <owl:someValuesFrom rdf:resource="#RegionTexas" /> </owl:Restriction> </owl:equivalentClass> </owl:Class>  ¬  

TexasskieVe6i - eto imenno te ve6i, 4to raspolojeni v Texasskom Regione. Razli4ie mejdu takim ispol'zovaniem owl:equivalentClass i ispol'zovaniem rdfs:subClassOf - eto razli4ie mejdu usloviami "neobxodimogo" i "neobxodimogo i dostato4nogo". V slu4ae ispol'zovania subClassOf ve6i, raspolojennie v Texase ne obazatel'no doljni otnositsa k klassu TexasskieVe6i. No pri ispol'zovanii owl:equivalentClass vse, 4to raspolojeno v Texase, doljno bit' v klasse TexasskieVe6i.

Otno6enie Rezul'tat
subClassOf TexasskieVe6i(x) predpolagaet raspolojenV(x,y) i RegionTexas(y)
equivalentClass TexasskieVe6i(x) predpolagaet raspolojenV(x,y), i RegionTexas(y)
raspolojenV(x,y) i RegionTexas(y) s4itaetsa TexasskieVe6i(x)

4tobi svazat' podobnim obrazom svoystva, mi ispol'zuem owl:equivalentProperty.

4.2. Identi4nost' mejdu individami
sameAs

Etot mexanizm poxoj na tot, 4to dla klassov, no ob&avlaet identi4nimi dvux individov. Primerom mojet bit':

<Vino rdf:ID="LubimoeVinoMixaila"> <owl:sameAs rdf:resource="#StGenevieveTexasskoeBeloe" /> </Vino>  ¬  

Danniy primer ne neset bol'6oy pol'zi. Vse, 4to mi uznaem iz nego - eto to, 4to Mixail lubit nedorogoe mestnoe vino. Bolee tipi4no ispol'zovat' sameAs dla togo, 4tobi priravnat' drug s drugom individov, opredelaemix v raznix dokumentax s cel'u unificirovat' dve ontologii.

Zdes' mi stalkivaemsa s vajnim momentom. V OWL net dopu6enia ob unikal'nom imeni. To, 4to dva imeni otli4ni drug ot druga, ne ozna4aet, 4to oni obozna4aut razli4nix individov.

V poslednem primere mi provozglasili identi4nost' mejdu dvuma raznimi imenami. No takoy vid identi4nosti takje mojno polu4it' putem vivoda. Vspomnite sledstvia, kotorie mogut bit' polu4eni iz funkcional'noe svoystva. Pri tom, 4to svoystvo imeetProizvoditela - funkcional'noe, sleduu6iy primer ne obazatel'no privedet k konfliktu.

<owl:Thing rdf:about="#Bancroft6ardone"> <imeetProizvoditela rdf:resource="#Bancroft" /> <imeetProizvoditela rdf:resource="#Beringer" /> </owl:Thing>  ¬  

V tom slu4ae, esli eto ne naxoditsa v protivore4ii s drugoy informaciey v na6ey ontologii, eto prosto ozna4aet, 4to Bancroft = Beringer.

Zamet'te, 4to ispol'zovanie sameAs dla togo, 4tobi priravnat' dva klassa - eto ne to je samoe, 4to priravnivanie ix s pomo6'u equivalentClass; eto zastavlaet klassi bit' interpretiruemimi kak individi, a etogo dostato4no, 4tobi otnesti ontologiu k kategorii OWL Full. V OWL Full sameAs mojet ispol'zovat'sa, 4tobi priravnat' 4to-ugodno: klass i individa, svoystvo i klass, i t.d., i privodit k tomu, 4to oba parametra interpretiruutsa kak individi.

4.3. Razli4nost' individov
differentFrom, AllDifferent

Etot mexanizm obespe4ivaet effekt, protivopolojniy sameAs.

<Sladost'Vina rdf:ID="Suxoe" /> <Sladost'Vina rdf:ID="Sladkoe"> <owl:differentFrom rdf:resource="#Suxoe"/> </Sladost'Vina> <Sladost'Vina rdf:ID="Polusuxoe"> <owl:differentFrom rdf:resource="#Suxoe"/> <owl:differentFrom rdf:resource="#Sladkoe"/> </Sladost'Vina> 

Eto - odin iz sposobov utverjdat', 4to eti tri zna4enia vzaimno otli4ni. V rade slu4aev vajno garantirovat' takie neperekrivau6iesa xarakteristiki. Bez takix utverjdeniy mi mogli b opisat' takoe vino, kotoroe bilo bi i Suxoe, i Sladkoe odnovremenno. Teper' je mi zaavili, 4to svoystvo hasSugar, xarakterizuu6ee vino, ne mojet imet' bolee odnogo zna4enia. Esli bi mi dopustili o6ibku i utverjdali bi, 4to vino odnovremenno i Suxoe, i Sladkoe, bez tex elementov differentFrom, 4to ukazani vi6e, eto podrazumevalo bi, 4to Suxoe i Sladkoe identi4ni. S elementami - mi vmesto etogo polu4ili bi protivore4ie.

Su6estvuet bolee udobniy mex

3
Создание эксклюзивных сайтов, юзибилити анализ и бесплатный анализ под запросы основных поисковых машин
Контактная информация :
тел. +7(98I) 7608865

Написать письмо на e-mail
icq 415547094  romverрейтинг на mail.ru сайта romverinbox.ru
© 1997 - 2022 romver.ru

Полная карта сайта Display Pagerank