Source: http://protege.stanford.edu/publications/ontology_development/ontology101-noy-mcguinness.html
Natalya F. Noy i Deborah L. McGuinness
Stanford University, Stanford, CA, 94305
[email protected] i [email protected]
1 Zašto se razvije ontologije?
U posljednjih nekoliko godina razvoja ontologije-eksplicitne formalne specifikacije termina u domenu i odnosa među njima (Gruber 1993) -ima kreće iz oblasti Artificial-obavještajne laboratorije za desktope stručnjaka domena. Ontologije su postali uobičajena na World-Wide Web. Ontologije na web rasponu od velikih taksonomija kategorizaciju Web stranice (kao što je na Yahoo!) na kategorizacije proizvoda za prodaju i njihove karakteristike (kao što je na Amazon.com). WWW Consortium (W3C) razvija Resource Description Framework (Brickley i Guha 1999), jezik za kodiranje znanja o web stranicama da je razumljivo da elektronski agenata u potrazi za informacijama.
Agencija za Defense Advanced Research Projects (DARPA), u saradnji sa W3C, razvija DARPA Agent Markup Language (DAML) proširenjem RDF sa više izražajnim konstruktima usmjerene na olakšavanje interakcije agent na Webu (Hendler i McGuinness 2000). Mnoge discipline sada razvijati standardizirane ontologije da stručnjaci domena može koristiti za dijeljenje i označiti informacije u svojim oblastima. Medicina, na primjer, je proizveo veliki, standardizovani, strukturiran rečnici kao što su SNOMED (Cijena i Spackman 2000.) i semantički mreže Jedinstvenom sistemu Medicinske jezik (Humphreys i Lindberg 1993). Broad opće namjene ontologije se pojavljuju kao dobro. Na primjer, Programa Ujedinjenih naroda za razvoj i Dun & Bradstreet u kombinaciji njihove napore da razviju UNSPSC ontologiju koja pruža terminologiju za proizvode i usluge (www.unspsc.org).
Ontologija definira zajedničku terminologiju za istraživače koji trebaju da dijele informacije u domenu. To uključuje stroj-tumačiti definicije osnovnih pojmova u domenu i odnose među njima.
Zašto bi neko želeo da se razvije ontologije? Neki od razloga su:
- Da dijele zajedničko razumijevanje strukture informacije među ljudima ili softverskim agentima
- Da biste omogućili ponovnu upotrebu domena znanja
- Da bi domenu pretpostavke eksplicitne
- Za odvajanje znanje domena iz operativnog znanja
- Da analizira znanje domena
Dijeljenje zajedničko razumijevanje strukture informacije među ljudima ili softverskih agenata je jedan od zajedničkih ciljeva u razvoju ontologije (Musen 1992. godine; Gruber 1993). Na primjer, pretpostavimo da nekoliko različitih web stranicama sadrže medicinske informacije ili pružaju medicinske usluge e-trgovine. Ako ovi Web stranice dijele i objaviti iste osnovne ontologije uslovima koje svi koriste, onda kompjuter agenti mogu izdvojiti i agregatne informacije iz ovih različitih lokacija. Agenti mogu koristiti ovu agregirane informacije da odgovori korisnik upite ili kao ulazni podaci za druge aplikacije.
Omogućavanje ponovnu upotrebu domena znanja je bio jedan od pokretačkih snaga iza nedavnih skok u istraživanju ontologiji. Na primjer, modeli za različite domene treba da predstavlja pojam vremena. Ovo predstavljanje obuhvaća pojmove vremenskim intervalima, tačke u vremenu, relativna mjera vremena, i tako dalje. Ako jedna grupa istraživača razvija takve ontologije u detalje, drugi mogu jednostavno ponovno koristiti ga za svoje domene. Osim toga, ako je potrebno da se izgradi veliki ontologija, možemo integrirati nekoliko postojećih ontologije opisuje dijelove velikih domena. Mi također može ponovno koristiti opšte ontologije, kao što su UNSPSC ontologiju, i proširiti ga opisuju našu domenu interesa.
Izrada eksplicitne domenu pretpostavke za implementaciju omogućuje da lako promijeniti te pretpostavke, ako naše znanje o promjenama domenu. Hard-kodiranje pretpostavke o svijetu u kod programskom jeziku čini ove pretpostavke ne samo teško pronaći i shvatiti, ali i teško promijeniti, posebno za nekoga bez znanja programiranja. Osim toga, eksplicitne specifikacije domena znanja su korisni za nove korisnike koji moraju naučiti šta termina u domenu znače.
Odvajanje znanje domena iz operativnogo znanja je još jedan zajedničko korištenje ontologija. Možemo opisati zadatak konfiguriranja proizvoda iz njegovih komponenti prema traženoj specifikaciji i implementirati program koji radi ova konfiguracija nezavisno od proizvoda i komponenti sebe (McGuinness i Wright 1998). Mi tada može razviti ontologije PC-komponente i karakteristike i primijeniti algoritam za konfiguriranje made-to-order PC. Mi također može koristiti isti algoritam za konfiguriranje liftova ako “hraniti” lift komponenta ontologije da ga (Rothenfluh et al. 1996).
Analizirajući znanje domena je moguće jednom deklarativno specifikaciju termina je na raspolaganju. Formalna analiza termina je izuzetno vrijedan kada oba pokušaja ponovno koristiti postojeće ontologije i njihovim proširenjem (McGuinness i dr. 2000).
Često ontologije domena nije cilj sam po sebi. Razvoj ontologije je slično definiranje skup podataka i njihova struktura za druge programe za korištenje. metode rješavanja problema, aplikacije domena-nezavisna, i softverskih agenata koristiti ontologije i baze znanja izgrađena od ontologije kao podataka. Na primjer, u ovom radu smo razviti ontologije vina i hrane i odgovarajuće kombinacije vina uz obroke. Ova ontologija se zatim može koristiti kao osnova za neke aplikacije u paket alata restoran-upravljanje: Jedna aplikacija može stvoriti sugestije vino za menija dana ili odgovorite upita konobara i kupaca. Još jedna aplikacija mogla analizirati na listu inventar vinski podrum i predložiti koje vino kategorije da se proširi i koji posebno vina kupiti za predstojeće menije ili kuharica.
O ovom vodič
Mi gradimo na našem iskustvu koristeći Protege-2000 (Protege 2000), Ontolingua (Ontolingua 1997), Chimaera (Chimaera 2000) kao ontologije-uređivanje okruženja. U ovom vodiču, koristimo Protege-2000 za naše primjere.
Vino i primjer hrane koje koristimo u ovom vodiču, je labavo zasnovan na bazi primjer znanja predstavljen u ovom radu opisuje CLASSIC-na znanju reprezentacije sistem zasnovan na opis-logike pristup (Brachman et al. 1991). Classic tutorial (McGuinness i dr. 1994) je i dalje razvijati ovaj primjer. Protg-2000 i drugih sistema okvir zasnovan opisuju ontologije deklarativno, navodeći eksplicitno što klasa hijerarhije je i na koje klase pojedinci pripadaju.
Neki ontologije-dizajn ideje u ovom vodiču potiče iz literature o objektno orijentisanog dizajna (Rumbaugh et al 1991. godine;. Booch i dr 1997. godine.). Međutim, razvoj ontologije se razlikuje od osmišljavanja nastave i odnosa u objektno orijentirano programiranje. Objektno orijentisano programiranje centre prvenstveno oko načina na nastavu-programer donosi dizajn odluke na osnovu operativnih svojstva klase, dok je ontologije dizajner čini ove odluke na osnovu strukturnih svojstava klase. Kao rezultat toga, struktura i odnosa među klasama u ontologiji klase su različita od strukture za sličnu domenu u program objektno orijentisan.
Nemoguće je da se pokriju sva pitanja koja ontologije programer možda morati da se bore sa, a mi ne želimo da se obrati svima u ovom vodiču. Umjesto toga, nastojimo pružiti polazište; početni vodič koji će pomoći novim ontologiju dizajner za razvoj ontologija. Na kraju, predlažemo mjesta za tražiti objašnjenja komplikovanije struktura i mehanizama dizajn ako ih domenu zahtijeva.
Na kraju, ne postoji jedinstvena metodologija ispravna ontologije-dizajn i nismo pokušali da definišu jedan. Idejama koje ćemo predstaviti ovdje su one koje smo našli korisne u našem ontologiji-razvoj iskustvo. Na kraju ovog vodiča predlažemo popis referenci za alternativne metodologije.
2 Ono što je u ontologiji?
U vještački-obavještajne literatura sadrži mnoge definicije ontologije; mnoge od ovih suprotnosti jedna drugoj. Za potrebe ovog vodiča ontologije je formalni eksplicitan opis koncepata u domeni diskursa (klase (ponekad se naziva koncepata)), svojstva svaki koncept koji opisuje različite funkcije i atribute koncepta (slot (ponekad se naziva uloge ili svojstava) ), a ograničenja na slotova (faseta (ponekad se naziva ulogu ograničenja)). Ontologija zajedno sa skupom pojedinačnih slučajeva nastave predstavlja bazu znanja. U stvarnosti, postoji tanka linija u kojoj ontologiji završava i baze znanja počinje.
Nastava se fokus većine ontologija. Nastava opisuju koncepte u domenu. Na primjer, klase vina predstavlja sve vina. Specifični vina su slučajevi ove klase. Bordeaux vina u čašu ispred vas dok ste pročitali ovaj dokument je instanca klase Bordeaux vina. A klasa može imati podklase koje predstavljaju koncepte koji su više specifični nego superklase. Na primjer, možemo podijeliti u klasi svih vina u crveno, bijelo, i rose vina. Alternativno, možemo podijeliti klasu svih vina u pjenušava i gazirana vina.
Slote opisuju osobine klase i instance: Cheteau Lafite Rothschild Pauillac vino ima cijelo tijelo; se proizvodi od vinarije Cheteau Lafite Rothschild. Imamo dva slota opisuje vino u ovom primjeru: utor tijelo s vrijednosti puno i utor za kavu sa vrijednošću Cheteau Lafite Rothschild vinarija. Na nivou klase, možemo reći da instance klase vina će imati utora opisuje njihov ukus, tijelo, nivo šećera, proizvođač vina i tako dalje. [1]
Sve slučajevima klase vina, i njene podklase Pauillac, imaju priključak za kavu vrijednost koja je instanca klase Vinarija (Slika 1). Sve instance Vinarije klase imaju priključak proizvodi koji se odnosi na sva vina (instance klase vina i njene podklase) da vinarija proizvodi.
U praktičnom smislu, razvija ontologije uključuje:
- definiranje klase u ontologiji,
- uređenje klase u taksonomski (potklasa-superklase) hijerarhije,
- definiranje slota i opisuje dozvoljenih vrijednosti za te slotove,
- popunjavanje vrijednosti za slotove za instance.
Mi onda možemo stvoriti bazu znanja definisanjem pojedinačnim slučajevima ove klase popunjavanja konkretne informacije slot vrijednosti i dodatna ograničenja slotu.
Slika 1. Neki klase, instance, i odnose među njima u vinu domenu. Koristili smo crna za nastavu i crvena za instance. Direktne veze predstavljaju slota i interne veze, kao što su recimo-u i potklase-u.
3 Prosta znanje-inženjeringova metodologija
Kao što smo ranije rekli, ne postoji jedan “ispravan” način ili metodologija za razvoj ontologije. Ovdje govorimo o opštim pitanja koja treba razmotriti i ponuditi jedan Mogući proces za razvoj ontologije. Mi opisati iterativni pristup development ontologije: pocinjemo sa grubom prvom prolazu na ontologiji. Zatim smo revidirati i pobolsajte razvija ontologije i popunite detalje. Usput, govorimo o odlukama modeliranje koje dizajner mora napraviti, kao i prednosti, mane, i implikacije razlicitih rješenja.
Prvo, Želimo naglasiti nekih osnovnih pravila u ontologiju dizajna koje će se odnositi mnogo puta. Ova pravila može izgledati prilično dogmatski. Oni mogu Pomoći, Međutim, da se dizajn odluke u mnogim slučajevima.
- ne postoji jedan ispravan način da se model je domenu- uvijek postoje održive alternative. Najbolje rješenje skoro uvijek ovisi o aplikaciji da imate na umu i ekstenzije koje očekujete.
- razvoj ontologija je nužno iterativan proces.
- koncepti u ontologiji bi Trebalo da bude u blizini objekata (fizički ili logički) i odnose u domenu interesa. To su najvjerojatnije biti imenice (objekti) i glagoli (odnosi) u rečenice koje opisuju vaš domen.
To je, odlučujući šta ćemo koristiti ontologije za, i kako detaljna ili opšte ontologije će biti će voditi mnoge Odluke modeliranja niz put. Među Nekoliko alternativa, trebat će nam odrediti Kojih će raditi bolje za Planirani zadatak, biti više intuitivno, više Proširiv, i više održiv. Takođe, moramo Imati na umu da ontologije je model stvarnosti svijeta i koncepte u ontologiji mora odražavati ovu realnost. Nakon što smo definirati početne verzije ontologije, Možemo procijeniti i debug ga koristeći se u aplikacijama ili metode za Rješavanje problema ili razgovora sa stručnjacima na terenu, ili oboje. Kao rezultat toga, mi ćemo gotovo sigurno Morati da revidira početne ontologije. Ovaj proces iterativnog dizajna vjerojatno će se Nastaviti kroz cijeli životni ciklus ontologije.
Korak 1. Odredite domenu i obim ontologije
Predlažemo pokretanje razvoja ontologije definisanjem svojoj domeni i obim. To je, odgovoriti na nekoliko osnovnih pitanja:
- Šta je domen koji će ontologija pokriti?
- Za ono što ćemo koristiti ontologije?
- Za koje vrste pitanja informacija u ontologiji treba dati odgovore?
- Ko će koristiti i održavati ontologije?
Odgovori na ova pitanja mogu promijeniti tokom procesa ontologije-dizajn, ali u svakom trenutku oni pomažu ograničiti opseg modela.
Razmotrite ontologije vina i hrane koju smo ranije uveli. Predstavljanje hrane i vina je domena ontologije. Planiramo da biste koristili ovu ontologije za aplikacije koje ukazuju na dobre kombinacije vina i hrane.
Naravno, pojmovi koji opisuju različite vrste vina, glavne vrste hrane, pojam dobra kombinacija vina i hrane i loša kombinacija će shvatiti u našu ontologiju. U isto vrijeme, malo je vjerovatno da će ontologija uključuju koncepte za upravljanje nalazi u vinariji ili zaposleni u restoranu, iako su ovi koncepti su donekle odnose na pojmove vina i hrane.
Ako će se ontologije smo projektiranje koriste kako bi se pomoglo u obradi prirodnog jezika članaka u vinu časopisima, to može biti važno uključiti sinonime i part-of-govora informacija za pojmove u ontologiji. Ako će se ontologiju koristi da pomogne restoran kupaca odlučiti koji vino naručiti, moramo uključiti informacije prodajno-cijene. Ako se koristi za kupce vina u čarapa vinski podrum, veliko cijene i dostupnost može biti potrebno. Ako ljudi koji će održavati ontologije opisuju domenu na jeziku koji je različit od jezika korisnika ontologije, možda ćemo morati pružiti mapiranje između jezika.
Nadležnost pitanja.
Jedan od načina da se utvrdi obim ontologije je skicirati listu pitanja koja baze znanja na osnovu ontologije treba biti u stanju da odgovori, nadležnost pitanja (Grüninger i Fox 1995). Ova pitanja će poslužiti kao test lakmus kasnije: Da li ontologije sadrži dovoljno informacija da odgovori na ove vrste pitanja? Da li odgovore zahtijevaju određeni nivo detalja ili predstavljanja određenog područja? Ove nadležnosti pitanja su samo skice i ne moraju biti konačan.
U vina i hrane domeni, sljedeće su mogući nadležnosti pitanja:
- Koje osobine treba da razmotre pri odabiru vina vino?
- Je Bordeaux crveno ili bijelo vino?
- Da li Cabernet Sauvignon idu dobro sa plodovima mora?
- Koji je najbolji izbor vina za meso?
- Koje karakteristike vina utjecati na njegovu prikladnost za jelo?
- Da li buket ili tijelo određene promjene vino berba godine?
- Koji su bili dobri berbi za Napa Zinfandel?
Sudeći po ovoj listi pitanja, ontologije će uključivati informacije o različitim karakteristikama vina i vrste vina, berba godina-dobre i loše-klasifikacije namirnica koje su bitne za odabir odgovarajuće vino, preporučene kombinacije vina i hrane.
Korak 2. Razmotriti ponovnu upotrebu postojeće ontologije
To je gotovo uvijek vrijedi s obzirom na ono što je neko drugi uradio i provjere da li možemo poboljšati i proširiti postojeće izvore za naše određene domene i zadatak. Naknadno korištenje postojeće ontologije može biti uvjet ako naš sistem treba da komuniciraju sa drugim aplikacijama koje su već počinili određenim ontologije ili pod kontrolom rečnika. Mnogi ontologije su već dostupni u elektronskom obliku i mogu se uvoziti u ontologije-razvojno okruženje koje koristite.
Formalizmu u kojem ontologije često izražena nije bitno, jer mnogi znanja zastupljenost sistemi mogu uvoz i izvoz ontologije. Čak i ako na znanju reprezentacije sistem ne može raditi direktno sa posebnim formalizma, zadatak prevođenje ontologije iz jedne formalizam u drugi obično nije teška.
Postoje biblioteke za višekratnu upotrebu ontologija na Web i u literaturi. Na primjer, možemo koristiti ontologije biblioteka Ontolingua (http://www.ksl.stanford.edu/software/ontolingua/) ili ontologije biblioteka DAML (http://www.daml.org/ontologies/). Tu su i broj javno dostupnih komercijalnih ontologije (npr UNSPSC (www.unspsc.org), RosettaNet (www.rosettanet.org), DMOZ (www.dmoz.org)).
Na primjer, baze znanja francuskog vina možda već postoje. Ako ne možemo uvoziti ovu bazu znanja i ontologiju na kojima se zasniva, mi ćemo imati ne samo klasifikaciju francuskih vina, ali i prvog prolaza na klasifikaciju karakteristika vina koji se koriste za razlikovanje i opisivanje vina. Liste vina svojstava možda već biti dostupni od komercijalnih web stranicama kao što su www.wines.com da kupci smatraju koriste za kupovinu vina.
Za ovaj vodič, međutim mi ćemo pretpostaviti da nema relevantnih ontologije već postoje i početi razvoj ontologije od nule.
Korak 3. nabrojati važne pojmove u ontologiji
To je korisno da napiše spisak svih smislu želimo ili da daju izjave o ili da korisnik objasniti. Koji su uslovi želimo da razgovaramo? Šta svojstva da oni termini imaju? Šta bi mi da kažem o tim terminima? Na primjer, važno smislu vino u vezi će uključivati vina, grožđa, vinarija, lokacija, boja vina je, tijelo, aroma i sadržaj šećera; različite vrste hrane, kao što su riba i crveno meso; podtipova vina, kao što su bijelo vino, i tako dalje. U početku, važno je da se sveobuhvatna lista termina bez brige o preklapanja između pojmova koje oni predstavljaju, odnose među terminima, ili bilo kakvog da se koncepti mogu imati, ili da li su koncepti su klase ili slotova.
Naredna dva koraka-razvoju klase hijerarhiju i definiranje svojstava koncepata (slotova) Jesi usko isprepletena. Teško je prva koja je to jedan od njih, a onda rade drugi. Tipično, stvaramo nekoliko definicije pojmova u hijerarhiji, a zatim nastaviti opisom svojstava ovih koncepata i tako dalje. Ova dva koraka su najvažniji koraci u procesu ontologiji-dizajn. Mi ćemo ih opisati ovdje ukratko, a zatim provesti naredne dvije sekcije raspravljaju o kompliciranije pitanja koja treba uzeti u obzir, česte zamke, odluka da se, i tako dalje.
Korak 4. Definirajte klase i hijerarhije klasa
Postoji nekoliko mogućih pristupa u razvoju hijerarhije klasa (Uschold i Grüninger 1996):
- Proces top-down razvoj počinje s definicijom najopštijem koncepata u domeni i kasnije specijalizacije koncepata. Na primjer, možemo početi sa stvaranjem nastavu za opće koncepte vina i hrane. Onda smo Specijalizirani klase vina stvaranjem neke od njegovih podklase: belo vino, crno vino, rose vino. Možemo dalje kategorizirati Crno vino klase, na primjer, u Syrah, crni burgundac, Cabernet Sauvignon, i tako dalje.
- Proces bottom-up razvoja odozdo prema gore počinje s definicijom najviše specifične klase, lišće hijerarhije, sa kasnijim grupisanje ove klase u više općim konceptima. Na primjer, možemo početi definisanjem nastave za Pauillac i Margaux vina. Zatim smo stvoriti zajedničku natklase za ove dvije klase-Medoc-što zauzvrat je potklasa Bordeaux.
- Proces combination razvoja je kombinacija top-down i pristupa odozdo prema gore: Mi definirati više istaknutih koncepata, a zatim generalizirati i specijalizirati ih na odgovarajući način. Mogli bi početi s nekoliko koncepata najvišeg nivoa, kao što su vino, i nekoliko specifičnih koncepata, kao što su Margaux. Tada možemo da ih se odnose na koncept srednjeg nivoa, kao što je Medoc. Onda smo možda žele generirati sve regionalne klase vina iz Francuske, čime se stvaraju veliki broj koncepata srednjeg nivoa.
Slika 2 pokazuje mogući slom između različitih nivoa opštosti.
Slika 2. različitim nivoima vina taksonomiju: vino, crno vino, bijelo vino, rose vino su generalni pojmovi, na vrhunskom nivou. Pauillac i Margaux su najviše specifične klase u hijerarhiji, donji nivo.
Nijedan od ova tri načina je inherentno bolje od svih ostalih. Pristup da se snažno ovisi o lično mišljenje domena. Ako programer ima sistematski top-down pogled na domenu, onda to može biti lakše koristiti pristup top-down. Kombinacija pristup je često najlakši za mnoge ontologiju programere, jer koncepti “u sredini” imaju tendenciju da bude više opisne pojmove u domenu (Rosch 1978).
Ako ste skloni da misle vina po prvi razlikuje najviše generalnom plasmanu, a zatim pristup top-down može raditi bolje za vas. Ako biste radije početi budu kažnjeni sa specifičnim primjerima, i bottom-up pristup može biti prikladno.
Koji god pristup biramo, mi obično početi definiranjem klase. Na listi stvorili u koraku 3, biramo termine koji opisuju objekte koji postoji nezavisno, a ne izraza koji ti objekti. Ovi termini će biti nastave u ontologiji i postati sidra u klasi hijerarhiji. [2] Mi smo organizirati nastavu u hijerarhijski taksonomiju tražeći ako tako što instanca jedne klase, objekat će nužno (i.e., po definiciji) biti instanca neke druge klase.
Ako klase A je superklasa klase B, onda svaki slučaj B je također instanca A
Drugim riječima, klase B predstavlja koncept koji je “vrsta” A.
Na primjer, svaki Pinot Noir vina je nužno crno vino. Stoga je Pinot Noir klasa je potklasa od Red Wine klase.
Slika 2 prikazuje dio hijerarhije klasa za vino ontologije. Odjeljak 4 sadrži detaljnu diskusiju o stvarima tražiti kada definiranje hijerarhije klasa.
Slika 3. utora za klasu vina i aspekte ovih utora. Ikonu “I” pored utora za kavu ukazuje na to da slot ima inverznu (Sekcija 5.1)
Korak 5. Odredite svojstva klase-utora
Nastava sama neće pružiti dovoljno informacija da odgovori na nadležnost pitanja od koraka 1. Nakon što smo definisali neke klase, moramo opisati unutrašnju strukturu koncepata.
Mi smo već izabrali klase iz liste termina smo stvorili u koraku 3. Većina preostalih uslova će vjerovatno biti osobine ove klase. Ovi termini uključuju, na primjer, tijelo sadržaj vina je boja, okusa i šećer i lokaciju vinarije.
Za svaku imovinu na listi, moramo utvrditi kojoj klasi opisuje. Ove osobine postaju slota vezan za nastavu. Dakle, klase vina će imati sljedeće utora: boja, tijelo, aroma, i šećer. I Vinarija klasa će imati utor lokaciji.
U principu, postoji nekoliko vrsta objekata svojstva koja može postati slotova u ontologije:
- “unutrašnje” svojstva kao što su okus vina;
- “spoljašnji” osobine, kao što su ime vina, a područje je u pitanju iz;
- dijelova, ako je predmet je strukturiran; to mogu biti i fizički i apstraktne “dijelova” (npr, kurseve obroka);
- odnos prema drugim osobama; to su odnosi između pojedinih članova klase i ostale stavke (npr, proizvođač vina, predstavlja odnos između vina i vinarija, a grožđa vino je napravljen od.)
Tako je, pored osobine koje smo ranije identifikovali, moramo dodati sljedeće utora na klasu vina: ime, područje, kavu, grožđa. Slika 3 prikazuje slotove za klase vina.
Svi podklase klase nasljeđuju otvor te klase. Na primjer, svi slotovi klase vina će biti naslijedila sve podklase vina, uključujući i Red Wine and White Wine. Mi ćemo dodati dodatni slot, nivo tanina (nizak, umjeren, ili visoko), na Red Wine klase. slot razinu tanina će naslijedio sve klase predstavljaju crvena vina (kao što su Bordeaux i Beaujolais).
Slot treba priložiti na najopštiji klase koji mogu imati tu imovinu. Na primjer, tijelo i boju vina treba priložiti na klase vina, jer je najviše klasu čiji slučajevi će imati tijelo i boja.
Korak 6. Definirajte aspekte slotove
Slota mogu imati različite aspekte koji opisuje tip vrijednosti, dozvoljenih vrijednosti, broj vrijednosti (kardinalnost), i druge karakteristike vrijednosti otvor može uzeti. Na primjer, vrijednost imena utor (kao u “ime vino”) je jedan string. To je, ime je slot tipa vrijednosti String. A slot proizvodi (kao u “vinarija proizvodi ovih vina”) može imati više vrijednosti i vrijednosti su instance klase vina. To jest, proizvodi je slot tipa vrijednosti Osnovnim uz vino kao što je dozvoljeno klase.
Sada ćemo opisati nekoliko zajedničkih aspekata.
Slot kardinalnost
Slot kardinalnost definira koliko vrijednosti slot može imati. Neki sistemi razlikuju samo između jedne kardinalnost (omogućavajući na najviše vrijednosti) i više kardinalnost (dopuštajući bilo koji broj vrijednosti). Tijelo od vina će biti samo jedan slot kardinalnost (vino može imati samo jedno tijelo). Vina proizvedena od strane određenog vinarija ispunite slot više-kardinalnost proizvodi za Vinarija klasu.
Neki sistemi omogućuju specifikaciju minimalnog i maksimalnog kardinalnost preciznije opisati broj utora vrijednosti. Minimalna kardinalnost N znači da slot mora imati najmanje n vrijednosti. Na primjer, slot grožđa od vina ima minimum kardinalnost 1: svaki vino se sastoji od najmanje jedne sorte grožđa.
Maksimalna kardinalnost M znači da slot može imati najviše M vrijednosti. Maksimalna kardinalnost za slot grožđa za jednu sortnih vina je 1: ova vina su napravljeni od samo jedne sorte grožđa. Ponekad može biti korisno da postavite maksimalno kardinalnost na 0. bi Ova postavka ukazuju na to da slot ne može imati nikakve vrijednosti za određenu potklasa.
Slot-vrijednost
Tip vrijednost tipa aspekt opisuje ono što vrste vrijednosti mogu popuniti u otvor. Ovdje je popis vrsta češća vrijednosti:
- String je najjednostavniji tip vrijednosti koji se koristi za proreze, kao što su ime: vrijednost je jednostavan string
- Broj (ponekad i više specifične vrste vrijednosti Float i Integer se koriste) opisuje slota sa numeričkim vrijednostima. Na primjer, po cijeni od vina može imati Float tip vrijednosti
- Boolean slota su jednostavni da-ne zastave. Na primjer, ako smo izabrali da ne predstavljaju pjenušava vina kao posebnu klasu, bez obzira da li ili ne vino pjenušava može predstaviti kao vrijednost Boolean slot: ako je vrijednost “true” ( “da”) je vino pjenušava i ako je vrijednost je “lažni” ( “ne”) vino nije iskričav jedan.
- Nabrojali slota navesti listu specifičnih dozvoljenih vrijednosti za slot. Na primjer, možemo navesti da utor za ukus može uzeti na jednu od tri moguće vrijednosti: jak, umjeren, i delikatan. U Protege-2000 nabrojanih utora su tipa Simbol.
- Instance tip utora omogućavaju definiranje odnosa između pojedinaca. Slotova tipa vrijednosti Osnovnim također mora definirati listu dozvoljenih klase iz kojih slučajeva može doći. Na primjer, slot proizvodi za klasu Vinarija mogu imati instance klase vina kao njegove vrijednosti. [3]
Slika 4 prikazuje definiciju otvor proizvodi u vinariji klase.
Slika 4. Definicija slot proizvodi koji opisuje vina proizvedena od strane vinarije. Slot ima kardinalnost više, tip vrijednosti instance, a klase vina kao dozvoljene klase za svoje vrijednosti.
Domena i niz slot
Dozvoljeni klase za slotova tipa instance se često naziva niz slotov. U primjeru na slici 4 klasi Vino je opseg proizvodi slot. Neki sistemi omogućavaju ograničavanje spektra slot kada je otvor u prilogu za određenu klasu.
Nastava na koji je priložen slot ili klase koje imovine slot opisuje, nazivaju domenu slot. Klasa Vinarija je domena proizvodi slot. U sistemima u kojima pridajemo utora na nastavu, nastava na koji otvor je pričvršćen obično čine domenu koja slot. Nema potrebe da odredite domenu zasebno.
Osnovna pravila za određivanje domena i niz slot su slične:
Prilikom definiranja domene ili raspon za slot, pronaći najopštiji klase ili klasa koja može biti, odnosno domenu ili raspon za slotove.
S druge strane, ne definiraju domena i opsegu koji je previše general: sve klase u domenu utor treba opisati utor i instance sve klase u rasponu od utor treba biti potencijalni punila za slot. previše klasu za opseg (i.e., jedan ne bi želeo da opseg stvar), ali jedan će žele odabrati klasu koja će obuhvatiti sve punila
Umjesto da svi sve moguće podklase klase vina za domet proizvodi slot, samo vinska karta. U isto vrijeme, mi ne želimo da odredite raspon slot kao THING-najopštiji klase u ontologiji.
U više specifične uslove:
Ako je popis klasa definira opseg ili domenu slot uključuje klase i njene podklase, uklonite podklase.
Ako je opseg otvor sadrži i klasu vina i Red Wine klase, možemo ukloniti Red Wine iz asortimana jer ne dodavati nove informacije: The Red Wine je potklasa vina i stoga opseg slot već implicitno uključuje se kao i sve druge podklase klase vina.
Ako je popis klasa definira opseg ili domenu slot sadrži sve podklase klase A, ali ne sama klase A, raspon treba da sadrži samo klase A, a ne potklase.
Umjesto definiranja opsega slot uključiti Red Wine, belo vino, i Rose vina (nabrajanja svih direktan podklase vina), možemo ograničiti opseg na samu klasu vina.
Ako je popis klasa definira opseg ili domenu slot sadrži sve osim nekoliko podklase klase A, razmotriti da li će klase A napraviti više odgovara definiciji opsega.
U sistemima u kojima je isti kao i dodavanjem klase na domenu slot pričvršćivanje utor za klasu, ista pravila važe za slot prilog: S jedne strane, treba da pokušamo da to što uopšte moguće. S druge strane, moramo osigurati da svaki razred u kojem smo pričvrstite utor zaista može imati imovinu koja slot predstavlja. Možemo pričvrstite utor razinu tanina u svakoj od klasa predstavlja crvena vina (npr, Bordeaux, Merlot, Beaujolais, itd). Međutim, s obzirom da svi crvena vina imaju imovinu tanina nivou, trebalo bi umjesto toga postavite slot ovom više klasu crvenih vina. Generalizacije domenu slot razinu tanina dalje (kao prilog u klasi vina umjesto) ne bi bilo ispravno, jer mi ne koristimo razinu tanina za opisivanje bijelih vina na primjer.
Korak 7. Kreiranje instanci
Posljednji korak je stvaranje pojedinačnih slučajeva nastave u hijerarhiji. Definiranje pojedinca instanca klase zahtijeva (1) odabir klase, (2) kreiranje individualnog instancu te klase, i (3) punjenje u vrijednosti utor. Na primjer, možemo stvoriti pojedinac primjer Chateau-Morgon-Beaujolais da predstavlja određenu vrstu Beaujolais vina. Chateau-Morgon-Beaujolais je instanca klase Beaujolais koji predstavljaju sve Beaujolais vina. Ovaj primjer ima sljedeće slot vrijednosti definirane (slika 5):
- Body: Svjetlo
- Boja: Crvena
- Ukus: Delikatan
- Tanina nivo: Nizak
- Grožđe: Gamay (instanca klase vinove loze)
- Maker: Chateau-Morgon (instanca Vinarija klase)
- Regija: Beaujolais (instanca klase vina regija)
- Šećer: Suvo
Slika 5. Definicija instanca Beaujolais klase. Na primjer je Chateua Morgon Beaujolais iz Beaujolais regije, proizvedeno od Gamay grožđa do vinarije Chateau Morgon. Ima svjetlo tijelo, delikatan okus, crvene boje, a nizak nivo tanina. To je suho vino.
4 Definiranje klasa i klasa hijerarhije
Ovo poglavlje raspravlja stvari paziti i greške koje su lako napraviti prilikom definisanja klase i klasa hijerarhije (korak 4 iz tačke 3). Kao što smo ranije spomenuli, ne postoji jedan ispravan hijerarhiju klasa za bilo koju domenu. Hijerarhija ovisi o mogućem upotreba ontologije, nivo detalja koji je neophodan za primjenu, ličnih sklonosti, a ponekad i zahtjevi za kompatibilnost s drugim modelima. Međutim, govorimo o nekoliko smjernica treba imati na umu prilikom izrade hijerarhije klasa. Nakon definiranja znatan broj novih klasa, to je korisno da odstupi i da li je u nastajanju hijerarhiju u skladu sa ovim smjernicama.
4.1 Osigurati da je klasa hijerarhija je ispravna
U “is-a” relacija
Klasa hijerarhija predstavlja “is-a” relacija: klasa A je podklasa od B ako je svaki slučaj B instanca A. Na primjer, Chardonnay je potklasa bijelog vina. Drugi način razmišljanja o taksonomske odnos je kao “vrsta-od” odnosa: Chardonnay je neka vrsta bijelog vina. A avion je vrsta aviona. Meso je vrsta hrane.
A podklasa klase predstavlja koncept koji je “vrsta” je koncept koji je superklase predstavlja.
Jedan vino nije podklasa od svih vina
Uobičajena modeliranje greška je da se uključuju i jednina i množina verzija istog koncepta u hijerarhiji što je bivši potklasa ovog drugog. Na primjer, da je pogrešno definirati klase vina i klasu vina kao potklasa vina. Kada mislite hijerarhije kao predstavljaju “vrsta-od” odnosa, greška modeliranje postaje jasno: jedan vina nije vrsta vina. Najbolji način da bi se izbjegla takva greška je uvijek koristiti ili jednini ili množini u imenovanju klase (vidi dio 6 za raspravu o imenovanju konceptima).
Tranzitivnosti hijerarhijskog odnosa
A potklasa odnos je tranzitivni:
Ako B je podklasa od A i C je podklasa od B, onda C je potklasa A
Na primjer, možemo definirati klase vina, a zatim definirati klasu bijelo vino kao potklasa vina. Onda ćemo definirati klasu Chardonnay kao potklasa bijelog vina. Tranzitivnosti potklase odnosa znači da klase Chardonnay je i potklasa vina. Ponekad mi razliku između direktnih potklasa i indirektne podklase. Direktna potklasa je “najbliži” potklasa klase: nema nastave između klase i njene direktne potklasa u hijerarhiji. To je, nema druge klase u hijerarhiji između klase i njene direktne natklase. U našem primjeru, Chardonnay je direktna potklasa bijelog vina i nije direktno potklasa vina.
Evolucija hijerarhije klasa
Održavanje konzistentan hijerarhije klasa može postati izazov kao domena razvijaju. Na primjer, dugi niz godina, sve Zinfandel vina bile crvene. Stoga, definiramo klasu Zinfandel vina kao potklasa Crvenog vina klase. Ponekad, međutim, počeo vinara pritisnuti grožđe i da odmah oduzeti aspekte boje za proizvodnju grožđa, čime modifikaciju boju rezultat vina. Tako smo dobili “bijele Zinfandel”, čiji je boja ruža. Sada moramo razbiti Zinfandel razred u dvije klase Zinfandel-White Zinfandel i Red Zinfandel-i klasificirati ih kao podklase Rose vina i crnog vina, odnosno.
Nastava i njihova imena
Važno je napraviti razliku između klase i ime:
Nastava predstavljaju koncepte u domenu, a ne riječi koje označavaju ove koncepte.
Ime klase može promijeniti ako se odabrati različite terminologije, ali sam pojam predstavlja objektivnu realnost u svijetu. Na primjer, možemo stvoriti klasu škampi, a zatim ga preimenovati Kozice-klase još uvijek predstavlja isti koncept. Odgovarajuće kombinacije vina koja se odnosila na škampe jela bi trebalo da pogledaju Prawn jela. U više praktičnom smislu, sljedeće pravilo uvijek treba slijedi:
Sinonimi za isti koncept ne predstavljaju različite klase.
Sinonimi su samo različita imena za koncept ili pojam. Stoga, ne treba imati klasu zove škampa i klase pod nazivom Prawn, i, eventualno klase pod nazivom Crevette. Umjesto toga, postoji jedna klasa, po imenu ili škampi ili kozica. Mnogi sistemi omogućavaju udruživanje popis sinonima, prevodi, ili imena prezentaciju sa klase. Ako se sistem ne dozvoljava ovog udruženja, sinonimi mogli uvijek biti navedeni u klasi dokumentaciji.
Izbjegavanje ciklusa klasa
Trebalo bi izbjeći ciklusa u klasi hijerarhiji. Mi kažemo da je ciklus u hijerarhiji kada su neki klase A ima potklasa B i istovremeno B je superklasa A. Stvaranje takvog ciklusa u hijerarhiji iznosi izjavljujući da su klase A i B su ekvivalentne: sve slučajevi A su slučajevi B i sve instance B su također slučajevi A. Zaista, jer B je podklasa od A, slučajeva sve B moraju biti instance klase A. budući da je potklasa B, sve A instance mora biti instance klase B.
4.2 Analizirajući braća i sestre u klasi hijerarhiji
Braća i sestre u klasi hijerarhiji
Braća i sestre u hijerarhiji su klase koje su direktno podklase iste klase (vidi Odjeljak 4.1).
Sva braća i sestre u hijerarhiji (osim za one u osnovi) mora biti na istom nivou općenitosti.
Na primjer, za bijelo vino i Chardonnay ne bi trebalo da bude podklase iste klase (recimo, vino). Bijelo vino je više generalni koncept od Chardonnay. Braća i sestre trebaju predstavljati koncepte koji padaju “na istoj liniji” na isti način na koji sekcije istom nivou u knjizi su na istom nivou općenitosti. U tom smislu, zahtjevi za klasu hijerarhije su slične zahtjeve za knjigu okvir.
Koncepti u osnovi hijerarhije, međutim (koji su često predstavljeni kao direktan podklase nekih vrlo klasu, kao što su Thing) predstavljaju glavne podjele domena i ne moraju biti slične koncepte.
Koliko je previše i koliko malo je premalo?
Ne postoje teško pravila za broj direktnih potklasa da klasa treba imati. Međutim, mnogi dobro strukturiran ontologije imaju između dva i desetak direktan podklase. Zbog toga, sljedeće dvije smjernice:
Ako razred ima samo jedan direktan potklasa možda postoji problem modeliranja ili ontologije nije potpuna.
Ako postoji više od desetak podklase za datu klasu onda bilo kakvih drugih kategorija može biti potrebno.
Prvi od dva pravila je sličan pravilu slog koji liste nabrajanja nikada ne treba imati samo jedan metak trenutku. Na primjer, većina crni burgundac vina Cotes d’Or vina. Pretpostavimo da smo htjeli da predstavljaju samo ova većina vrstu Burgundije vina. Mogli bi stvoriti klasu crni burgundac i onda jedan potklasa Cotes d’Or (Slika 6a). Međutim, ako u našem predstavljanju crni burgundac i Cotes d’Or vina su u suštini ekvivalentni (sve crni burgundac vina Cotes d’Or vina i sve Cotes d’Or vina su crni burgundac vina), stvaranje Cotes d’Or razred nije potrebno i ne dodavati nove informacije zastupljenosti. Ako smo uključiti Ctes Chalonnaise vina, koji su jeftiniji Burgundija vina iz regije južno od Cotes d’Or, onda ćemo stvoriti dvije podklase klase Burgundy: Cotes d’Or i Cotes Chalonnaise (Slika 6b ).
Slika 6. podklase Crvenog Burgundije klase. Imati jedan potklasa klase obično ukazuje na problem u modeliranju.
Pretpostavimo sada da smo listu svih vrsta vina kao direktan podklase klase vina. Ova lista bi onda uključuju takve općenitije vrste vina kao Beaujolais i Bordeaux, kao i posebne vrste, kao što su Paulliac i Margaux (Slika 7a). Klasa Vino ima previše direktan podklase i, zaista, za ontologiju odražava različite vrste vina u više organizirano, Medoc treba da bude potklasa Bordeaux i Cotes d’Or treba da bude potklasa od Burgundije. Također ima takvo srednje kategorije kao što su crno vino i bijelo vino će se odraziti i na konceptualni model domena vina da mnogi ljudi imaju (Slika 7b).
Međutim, ako ne prirodno klase postoje u grupu pojmova u dugoj listi braće i sestara, nema potrebe da se stvori umjetni klase-samo napustiti nastavu na način da su. Na kraju krajeva, ontologija je odraz stvarnog svijeta, a ako ne kategorizacije postoji u stvarnom svijetu, onda ontologije treba da odražava to.
Slika 7. Kategorizacija vina. Imajući sve vina i vrste vina u odnosu na koje imaju nekoliko razina kategorizacije.
4.3 Višestruki baštinu
Većina znanja zastupljenost sistemi omogućavaju više nasljedstva u hijerarhiji klasa: klasa može biti potklasa nekoliko klasa. Pretpostavimo da želimo da se stvori posebnu klasu desertnih vina, desert vino klase. Luka vino je i crno vino i desertno vino. [4] Stoga, ćemo definirati klasu Port imati dva superclasses:
Crveno vino i desert vino. Sve instance klase Luke će biti slučajeva kako Crno vino klase i desert vino klase. Luka klasa će naslijediti svog utora i njihovih aspekata od oba roditelja. Dakle, to će naslijediti vrijednost SWEET za slot šećera iz klase desert vino i slot razinu tanina i vrijednost za slot boju iz crvenog vina klase.
4.4 Kada uvesti novu klasu (ili ne)
Jedna od najtežih odluka da se tijekom modeliranja kada uvesti novu klasu ili kada predstavljaju razliku kroz različite vrijednosti imovine. Teško je za navigaciju i izuzetno ugnježdene hijerarhije sa mnogo nevažnih klase i vrlo ravna hijerarhija koja ima premalo klase s previše informacija kodirane u proreze. Pronalaženje odgovarajuće ravnoteže, iako nije lako.
Postoji nekoliko pravila palca koji pomažu odlučiti kada uvesti nove klase u hijerarhiji.
Podklase klase obično (1) imaju dodatne svojstva koja superklase nema, ili (2) ograničenja razlikuju od onih u superklase, ili (3) učestvuju u različitim odnosima od superclasses.
Crvena vina mogu imati različite razine tanina, a ove nekretnine se ne koristi za opisivanje vina u cjelini. Vrijednost za slot šećera u Desertno vino je sladak, a to nije istina od superklase klase desertno vino. Pinot Noir vina može dobro ići s plodovima mora, dok druga crvena vina ne. Drugim riječima, uvodimo novu klasu u hijerarhiji obično samo kada postoji nešto što možemo reći o ovoj klasi da ne možemo reći o superklase.
U praktičnom smislu, svaki potklasa treba ili imaju nove slotove dodao da je, ili imaju nove utor vrijednosti definirane, ili nadjačati neke aspekte za naslijeđeni utora. Međutim, ponekad može biti korisno za stvaranje nove klase, čak i ako oni ne uvoditi nikakva nova svojstva.
Nastava u terminološkom hijerarhija ne moraju da uvedu nove nekretnine
Na primjer, neke ontologije uključuju velike referentne hijerarhije zajedničkih pojmova koji se koriste u domenu. Na primjer, ontologije osnovi elektronski medicinski-zapis sistem može uključivati klasifikaciju raznih bolesti. Ova klasifikacija može biti upravo to-hijerarhiju termina, bez svojstva (ili isti skup svojstava). U tom slučaju, to je još uvijek korisno organizirati termina u hijerarhiji, a ne ravna lista jer će (1) omogućiti lakši istraživanje i navigaciju i (2) omogućiti doktor lako odabrati razinu općenitosti pojma da je odgovarajuće za situaciju.
Još jedan razlog da se uvedu nove klase bez novih svojstava je za modeliranje koncepata među kojima stručnjaci domena često prave razliku iako smo možda odlučili da ne model sam razliku. Budući da smo koristiti ontologije bi se olakšala komunikacija među stručnjacima domena i između stručnjaka domena i sisteme zasnovane na znanju želimo da odražava mišljenju stručnjaka domena u ontologiji.
Na kraju, ne treba stvarati podklase klase za svaki dodatni ograničenja. Na primjer, uveli smo klase Crno vino, bijela vina, i Rose vina, jer ova razlika je prirodan jedan u svijetu vina. Nismo uvesti nastavu za delikatne vino, umjeren vino, i tako dalje. Prilikom definiranja klasa hijerarhije, naš cilj je uspostaviti ravnotežu između stvaranja novih klasa korisno za klasu organizaciju i stvaraju previše klase.
4,5 nove klase ili vrijednost imovine?
Kada modeliranje domene, često moramo odlučiti da li će model određenu razliku (kao što su bijela, crvena, ili Ros vino) kao vrijednost imovine ili kao skup klasa ponovo ovisi o obimu domena i zadatak na ruku.
Da li stvoriti klasu za bijelo vino ili ćemo jednostavno stvoriti klasu vina i popunite različite vrijednosti za boju slot? Odgovor obično leži u okviru koje smo definisali za ontologiju. Koliko je važan koncept za bijelo vino u našem domenu? Ako vina imaju samo marginalni značaj u domenu i da li ili ne vino je bijela nema neku posebnu implikacije za svoje odnose na druge objekte, onda ne treba uvesti posebnu klasu za bijela vina. Za model domena se koristi u tvornici za proizvodnju etiketa, pravila za vino etikete bilo koje boje su isti, a razlika nije jako važno. Alternativno, za predstavljanje vina, hrane, i njihove odgovarajuće kombinacije crveno vino je veoma razlikuje od bijelog vina: to je uparen sa različitim namirnicama, ima različite osobine, i tako dalje. Slično tome, u boji vina je važno za bazu vina znanje koje možemo koristiti kako bi se utvrdilo kako degustacija vina. Stoga, mi stvaramo posebnu klasu za bijelo vino.
Ako koncepata s različitim vrijednostima slot postati ograničenja za različite utora u druge klase, onda treba stvoriti novu klasu za razliku. U suprotnom, mi predstavljaju razliku u vrijednosti slot.
Slično tome, naša vina ontologije ima takvu nastavu Red Merlot i Bela Merlot, a ne jedne klase za sve Merlot vina: crveno Merlots i bijele Merlots zaista različitih vina (od istog grožđa) i ako se razvija detaljnu ontologije vino, ova razlika je važna.
Ako je razlika je važna u domenu i mislimo objekata sa različitim vrijednostima za razliku kao različite vrste objekata, onda treba stvoriti novu klasu za razliku.
S obzirom na potencijal pojedinca instance klase također mogu biti od pomoći u odlučivanju da li ili ne uvesti novu klasu.
A klase na koji pojedinac primjer pripada ne bi trebalo promijeniti često.
Obično kada koristimo spoljašnji, nego unutrašnja svojstva pojmova za razliku među klasama, instance te klase će se morati često migriraju iz jedne klase u drugu. Na primjer, rashlađeni vino ne bi trebalo da bude klase u ontologiju opisuje vinske boce u restoranu. Imovina rashlađeno treba jednostavno biti atribut vina u boci od instancu ohlađene vina mogu lako prestati biti instanca ove klase, a zatim ponovo postati primjer ove klase.
Obično brojevi, boje, lokacije su slot vrijednosti i ne uzrokuju stvaranje nove klase. Vino, međutim, je izuzetak jer je boja vina je toliko najvažnija za opis vina.
Na drugi primjer, uzmite u obzir ljudski-anatomije ontologije. Kada smo predstavljaju rebra, da smo stvoriti klasu za svaki od “1. levo rebro”, “2. levo rebro”, i tako dalje? Ili imamo klasu rebra sa slotovima za red i bočni položaj (lijevo-desno)? [5] Ako se informacije o svakoj od rebara koje zastupamo u ontologiji je znatno drugačiji, onda bi trebalo zaista stvoriti klasu za svaki od rebara. To je, ako želimo da predstavljaju detalje susjedstva i informacije o lokaciji (koji je različit za svaki rebro), kao i specifične funkcije koje svaki rebro playa i organe štiti, želimo klase. Ako smo modeliranje anatomiju na nešto nižem nivou opštosti, i sve rebra su vrlo slične što se tiče naše potencijale aplikacije su u pitanju (samo govorimo o tome koje rebro je razbijena na X-Ray bez implikacije za druge dijelove tijela) , možemo želimo pojednostaviti našu hijerarhiju i imaju samo klase rebro, sa dva slota: bočnom položaju, crveno.
4.6 Jedan primjer ili klase?
Odlučivanje da li određeni koncept je klasa u ontologiji ili pojedinca primjer zavisi od toga šta su potencijal primjene ontologije. Odlučujući gdje kraj nastave i individualnim slučajevima početi počinje da odlučuje što je najniži nivo analitiĉnosti u zastupanju. Nivo granularnost je opet određen potencijal primjene ontologije. Drugim riječima, ono što su najviše specifične predmete koji će biti predstavljeni u bazu znanja? Vraćajući se u nadležnost pitanja smo identifikovali u koraku 1 u poglavlju 3, najviše specifične koncepte koji će predstavljati odgovore na ta pitanja su vrlo dobri kandidati za pojedince u bazu znanja.
Pojedinačni slučajevi su najčešće specifične koncepte predstavljene u bazu znanja.
Na primjer, ako se samo pričati o uparivanju vina uz hranu nećemo biti zainteresirani za specifične fizičke boce vina. Dakle, pod uslovima koje Sterling Vinogradi Merlot vjerojatno će biti najviše posebne odredbe koje koristimo. Stoga, Sterling Vinogradi Merlot bi biti primjer u bazi znanja.
S druge strane, ako želimo da se održi popis vina u restoranu pored baze znanja dobrog uparivanja vina hrane, pojedinačne boce od svakog vina mogu postati individualni slučajevi u našoj bazi znanja.
Slično tome, ako želimo da snimi različita svojstva za svaku konkretnu vintage od Sterling Vinogradi Merlot, zatim specifične berbe vina je instanca u bazu znanja i Sterling Vinogradi Merlot je klasa koja sadrži slučajeva za sve svoje berbi.
Drugi pravilo može “kretati” nekog pojedinca slučajevima u skup klasa:
Ako koncepti formiraju prirodnu hijerarhiju, onda treba da ih predstavlja kao klase
Uzmite u obzir vinskih regija. U početku, možemo definirati glavne vinske regije, kao što su Francuska, Sjedinjene Države, Njemačka, i tako dalje, kao klase i specifične vinskih regija unutar tih velikih područja kao instance. Na primjer, Bourgogne regija je instanca francuskoj regiji klase. Međutim, mi bi da kažem da je Cotes d’Or regija je Bourgogne regija. Stoga, Bourgogne regija mora biti klase (kako bi se podklase ili instance). Međutim, što Bourgogne regija klase i Cotes d’Or regija instanca Bourgogne regija čini proizvoljno: to je vrlo teško jasno razlikovati koje regije su klase i koje su instance. Stoga, definišemo sve vinske regije kao klase. Protege-2000 omogućuje korisnicima da odredite neke klase kao Sažetak, što znači da se klasa ne može imati nikakve direktne instance. U našem slučaju, sve klase regija su apstraktne (Slika 8).
Slika 8. Hijerarhija vinskih regija. “A” ikona pored imena klasa ukazuju na to da nastave su apstraktne i ne može imati nikakve direktne instance.
U istoj klasi hijerarhija bi nepravilno ako izostavio riječ “regiona” iz imena klase. Ne možemo reći da je klasa Alsace je potklasa klase Francuska: Alsace nije vrsta Francuske. Međutim, regija Alsace je neka vrsta francuske regije.
Samo klase mogu se dogovoriti u hijerarhiji-znanje-reprezentacije sistemi nemaju pojam pod-instance. Dakle, ako postoji prirodna hijerarhija među smislu, kao što je u terminološkom hijerarhije iz točki 4.2, trebalo bi definirati ovih termina kao klase, iako oni ne mogu imati nikakve slučajeve svoje.
4.7 Ograničavanje obim
Kao konačni komentar na definiranje hijerarhije klasa, sljedeći set pravila je uvijek od pomoći u odlučivanju kada je definicija ontologije je potpuna:
Ontologiji ne treba da sadrži sve moguće informacije o domeni: ne treba da se specijaliziraju (ili generalizirati) više nego što je potrebno za vašu aplikaciju (najviše jedan dodatni nivo svaki put).
Za naše vino i primjer hranu, ne moramo znati šta papir se koristi za etikete ili kako kuhati škampe jela.
Slično tome, ontologije ne treba da sadrži sve moguće osobine i razlike među klasama u hijerarhiji.
U našem ontologije, mi sigurno ne uključuju sve osobine koje vino ili hrana može imati. predstavljeni smo najvažniji svojstva klase artikala u našem ontologiji. Iako bi nam vino knjige reći veličine grožđa, nismo uključeni ovo znanje. Isto tako, nismo dodao sve veze koje bi se moglo zamisliti među svim uslovima u našem sistemu. Na primjer, mi ne uključuju odnose, kao što su omiljeno vino i omiljena hrana u ontologiji samo kako bi se omogućilo više kompletne reprezentacije svih povezanosti termina smo definisali.
Posljednji pravila se odnosi i na uspostavljanje odnosa između pojmova koje smo već uključeni u ontologiji. Razmotrimo ontologiju opisuje biologije eksperimenata. Ontologije će vjerojatno sadržavati koncept bioloških organizama. To će također sadrži koncept Experimenter obavlja eksperiment (uz njegovo ime, pripadnost, itd). Istina je da je eksperimentator, kao osoba, također se događa da je biološki organizam. Međutim, mi vjerojatno ne bi trebalo da uključe ova razlika u ontologiji: za potrebe ove reprezentacije je eksperimentator nije biološki organizam, a mi ćemo vjerojatno nikada provesti eksperimente na sebi eksperimentatora. Ako smo sve što možemo reći o klasama u ontologiji predstavljaju, eksperimentator postati potklasa biološki organizam. Međutim, mi ne treba da sadrži to znanje u doglednoj aplikacije. U stvari, uključujući i ovu vrstu dodatne klasifikacije za postojeće klase zapravo boli: sada instancu Experimenter će imati utora za težinu, dob, vrsta, i druge podatke koji se odnose na biološki organizam, ali apsolutno irelevantno u kontekstu opisuje eksperiment . Međutim, trebalo bi snimiti takav dizajn odluku u dokumentaciji za dobrobit korisnika koji će biti upravo gleda ovaj ontologije i koji ne mogu biti svjesni aplikacije smo imali na umu.
4.8 Iščašen potklase
Mnogi sistemi nam omogućavaju da eksplicitno navesti da je nekoliko klasa su disjunktni. Nastava je iščašen ako ne mogu imati nikakve slučajeve zajedničko. Na primjer, desert vino i bijelo vino nastavu u našoj ontologije nisu disjunktni: postoje mnogi vina koja su slučajevi oba. U Rothermel Trochenbierenauslese rizling instanca Sweet rizling klasa je jedan takav primjer. U isto vrijeme, crno vino i bijelo vino klase su disjunktni: ne vino može biti istovremeno crvena i bijela. Navodeći da je nastava su disjunktni omogućava sistem za provjeru ontologije bolje. Ako se proglasi Crno vino i bijelo vino klase biti disjunktni i kasnije stvoriti klase koja je podklasa od oba rizling (potklasa bijelog vina) i Luka (potklasa crnog vina), sistem može ukazati da postoji modeliranje greška.
5 Definiranje svojstva-više detalja
U ovom dijelu ćemo razgovarati još nekoliko detalja koje treba imati na umu prilikom definisanja slota u ontologiji (korak 5 i korak 6 u točki 3). Uglavnom, govorimo o inverzna slota i default vrijednosti za slot.
5.1 Inverse utora
Vrijednost utor može ovisiti o vrijednosti od drugog slota. Na primjer, ako je vino proizvedeno od strane vinarije, onda vinarija proizvodi to vino. Ova dva odnosa, kavu i proizvodi, nazivaju se inverzni odnosa. Čuvanje informacija “u oba pravca” je suvišan. Kada znamo da je vino se proizvodi vinarija, neka aplikacija koja koristi bazu znanja mogu uvijek zaključiti vrijednost za inverzni odnos koji je vinarija proizvodi vino. Međutim, iz perspektive znanja-akvizicija je zgodno imati oba komada informacija eksplicitno na raspolaganju. Ovaj pristup omogućava korisnicima da ispunite vina u jednom slučaju i vinarije u drugom .. sistem znanja-akvizicija bi se onda automatski popuniti vrijednost za inverzni odnos osiguranja dosljednosti baze znanja.
Naš primjer ima par inverzne slotova: utor za kavu klase vina i proizvodi slot vinarije klase. Kada korisnik kreira instancu klase vina i popunjava vrijednost za utor za kavu, sistem automatski dodaje novostvorene instanca na proizvodi slot odgovarajuće Vinarija instance. Na primjer, kada kažemo da je Sterling Merlot se proizvodi vinarije Sterling Vineyard, sistem bi automatski dodati Sterling Merlot na listu vina koja Sterling vinograda vinarija proizvodi. (Slika 9).
Slika 9. Slučajevi sa inverznom utora. Slot proizvodi za klasu Vinarija je inverzna priključka za kavu za klasu vina. Punjenje u jednom od utora aktivira automatsko ažuriranje druge.
5.2 Standard vrijednosti
Mnogi sistemi okvir na bazi omogućuju specifikaciju zadane vrijednosti za slotove. Ako određeni slot vrijednost je ista za većinu slučajeva klase, možemo definirati ovu vrijednost kao zadanu vrijednost za slot. Zatim, kada se stvara svaki novi primjer klase koja sadrži ovaj slot, sistem automatski popunjava default vrijednosti. Mi tada može promijeniti vrijednost na bilo koju drugu vrijednost koja će aspekte dopustiti. To je, default vrijednosti su tu za praktičnost: oni ne izvrši nikakva nova ograničenja na modelu ili promijeniti model na bilo koji način.
Na primjer, ako je većina vina ćemo razgovarati su pun vina, možemo imati “pune” kao zadanu vrijednost za tijelo vina. Zatim, osim ako kažemo drugačije, svi vina definišemo biti pun.
Imajte na umu da je ovo drugačije od slot vrijednosti. Slot vrijednosti se ne mogu mijenjati. Na primjer, možemo reći da je slot šećer ima vrijednost SWEET za klasu desert vino. Onda sve podklase i instance desert vina klasa će imati SWEET vrijednost za slot šećer. Ova vrijednost se ne može mijenjati u bilo kojoj od podklase ili instance klase.
6 Što je u imenu?
Definiranje imenovanja konvencije za pojmove u ontologiji, a zatim strogo pridržavanje ove konvencije ne samo čini ontologiju lakše shvatiti, ali također pomaže izbjeći neke uobičajene greške modeliranja. Postoje mnoge alternative u imenovanju koncepata. Često ne postoji poseban razlog da izabere jednu ili drugu alternativu. Međutim, moramo
Definirajte imenovanja konvencije za nastavu i slotove i pridržavati ga.
Sljedeće karakteristike reprezentacije sistema znanja utjecati na izbor imenovanja konvencija:
- Da li sistem imaju isto ime prostor za nastavu, slota, i instance? To je, da li sistem dozvoljava imaju klasu i slot sa istim imenom (kao što su klase vinarija i slot vinarija)?
- Je sistem velika i mala slova? To je, da li je sistem tretira imena koja se razlikuju samo u slučaju kao različitim imenima (kao što su Vinarija i vinarija)?
- Šta graničnici se sistem dozvoljava u imena? To je, mogu li imena sadrži razmake, zareze, zvezdicama, i tako dalje?
Protege-2000, na primjer, održava jedno ime prostora za sve svoje okvire. To je velika i mala slova. Stoga, ne možemo imati klasu vinarija i slot vinarija. Možemo, međutim, imaju klasu Vinarija (ne gornji slučaj) i slot vinarija. CLASSIC, s druge strane, nije velika i mala slova i održava drugo ime prostore za nastavu, slota, i pojedinaca. Tako je, iz perspektive sistema, nema problema u imenovanju i klase i slot Vinarija.
6.1 kapitalizacija i graničnici
Prvo, možemo uvelike poboljšati čitljivost ontologije ako koristimo u skladu kapitalizacije za imena koncept. Na primjer, uobičajeno je da se iskoriste imena klasa i koristiti mala slova za nazive slot (pod pretpostavkom da je sistem velika i mala slova).
Kada ime koncept sadrži više od jedne riječi (kao što je obrok naravno) moramo ograničiti riječi. Evo nekih mogućih izbora.
- Koristite Space: Meal naravno (mnogim sistemima, uključujući Protg, omogućiti prostor u imenima koncept).
- Pokrenite riječi zajedno i iskoristi svaku novu riječ: MealCourse
- Koristite donje ili instrument ili drugi graničnik u ime: Meal_Course, Meal_course, Meal-golf, Meal-naravno. (Ako koristite graničnici, također ćete morati da odluče da li ili ne svaka nova riječ je kapitaliziran)
Ako je znanje-reprezentacije sistem omogućava prostore u imenima, koristeći ih može biti najviše intuitivno rješenje za mnoge ontologije programere. To je, međutim, važno uzeti u obzir druge sisteme sa kojima sistem može interakciju. Ako ti sistemi ne koriste prostore ili ako vaše prezentacije medij ne nositi prostora dobro, to može biti korisno koristiti drugu metodu.
6.2 Jednina ili množina
Ime klase predstavlja kolekciju objekata. Na primjer, klase vina zapravo predstavlja sve vina. Stoga, to bi moglo biti prirodnije za neke dizajnere da pozove Vina klase, a ne vino. No alternativa je bolji ili gori od drugih (iako jednini za imena klasa se koristi češće u praksi). Međutim, bez obzira na izbor, to bi trebalo biti u skladu tokom cijelog ontologije. Neki sistemi čak zahtijevaju svoje korisnike da se izjasni u unaprijed da li ili ne oni će koristiti jednini ili množini za imena koncept i ne dozvoljavaju im da zalutaju iz tog izbora.
Koristeći istu formu cijelo vrijeme i sprečava dizajner iz donošenje takve modeliranja greške kao stvaranje klase vina, a zatim stvaranje klase vina kao potklasa (vidi Odjeljak 4.1).
6.3 prefiks i sufiks konvencija
Neki baze znanja metodologija sugeriraju pomoću prefiksa i sufiksa konvencija u imena na razliku između klase i utora. Dva uobičajena praksa da dodate has- ili sufiks -of imenima slot. Stoga, naš slotovi postaju ima-kavu i ima-vinarija, ako smo izabrali has- konvencije. Proreze postati proizvođač-u i vinarije-u, ako smo izabrali of-konvencije. Ovaj pristup omogućava neko gleda termin odmah utvrditi da li je termin je klasa ili slot. Međutim, pojam imena postati nešto više.
6.4 Drugi imenovanje razmatranja
Evo još nekoliko stvari koje treba uzeti u obzir prilikom definiranja imenovanja konvencija:
- Nemojte dodavati nizove kao što su “klasa”, “imovina”, “slot”, i tako dalje do imena koncept.
To je uvijek jasno oblik kontekstu da li je koncept je klasa ili slot, na primjer. Osim toga je da koristite različite konvencije imenovanja za nastavu i utora (recimo, kapitalizacije i ne kapitalizacije respektivno), i sam naziv bi bio pokazatelj šta je koncept.
- To je obično dobra ideja da izbjeći skraćenice u imenima koncept (koji je, koriste Cabernet Sauvignon, a ne Cab)
- Imena direktno podklase klase treba ili sve sadrže ili ne sadrže ime superklase. Na primjer, ako mi stvaramo dva podklase klase vina za zastupanje crvenih i bijelih vina, dvije podklase imena treba biti ili crveno vino i bijelo vino ili crveno i bijelo, a ne crveno vino i bijelo.
7 Ostali resursi
Koristili smo Protege-2000 kao okruženje ontologije-razvoju za naše primjere. Duineveld i kolege (Duineveld i dr. 2000) opisuju i usporedite niz drugih ontologije-razvojnih okruženja.
Pokušali smo da se obrati vrlo osnove razvoja ontologije i nisu razgovarali mnoge napredne teme ili alternativne metodologije za razvoj ontologije. Gmez-Prez (Gmez-Prez 1998) i Uschold (Uschold i Grüninger 1996) prisutan metodologije alternativa ontologije-razvoj. The Ontolingua tutorial (Farquhar 1997) razmatra neke formalne aspekte modeliranja znanja.
Trenutno, istraživači ističu ne samo razvoja ontologije, ali i ontologije analiza. Kao što je više ontologije se stvaraju i koriste, više alata će biti na raspolaganju za analizu ontologije. Na primjer, Chimaera (McGuinness i dr. 2000) pruža dijagnostičke alate za analizu ontologije. Analiza da Chimaera obavlja uključuje ček za logičke ispravnosti ontologije i dijagnostiku zajedničkih grešaka ontologije-dizajn. Ontologija dizajner može želite pokrenuti Chimaera dijagnostiku preko razvija ontologije za utvrđivanje usklađenosti sa zajedničkim prakse ontologije-modeliranje.
8 Zaključci
U ovom vodiču smo opisao metodologiju ontologije-razvoja deklarativno sisteme okvir na bazi. navedene smo korake u procesu ontologije-razvoja i obratio se složena pitanja definiranja hijerarhije i osobine klase i instance klase. Međutim, nakon što je sljedeće sva pravila i sugestije, jedna od najvažnijih stvari koje treba zapamtiti je sljedeće: ne postoji jedan ispravan ontologije za svaku domenu. Ontologija dizajn je kreativni proces i ne postoje dva ontologije dizajniran od strane različitih ljudi bi bili isti. Potencijal primjene ontologije i razumijevanje dizajnera i pogledom na domenu će nesumnjivo utjecati na ontologiji izbore dizajn. “Dokaz je u puding” Mi može procijeniti kvalitetu naših ontologije samo da ga koristite u aplikacijama za koje je dizajniran.
Priznanja
Protege-2000 (http://protege.stanford.edu) je razvijen od strane Mark Musen grupa na Stanfordu medicinsku informatiku. Ostvarili smo neke brojke sa OntoViz plugin za Protege-2000. uvezli smo početne verzije vina ontologije iz ontologije biblioteke Ontolingua (http://www.ksl.stanford.edu/software/ontolingua/) koji pak koristi verziju objavio Brachman i kolege (Brachman et al. 1991) i distribuira sa klasičnim predstavljanje znanja sistema. Zatim smo modifikovali ontologiju predstaviti principa konceptualne-modeliranje za deklarativno ontologije okvir na bazi. Ray Fergerson i iscrpne komentare Mor Peleg o ranijim nacrtima uvelike poboljšana ovom radu.
Reference
Booch, G., Rumbaugh, J. and Jacobson, I. (1997). The Unified Modeling Language user guide: Addison-Wesley.
Brachman, R.J., McGuinness, D.L., Patel-Schneider, P.F., Resnick, L.A. and Borgida, A. (1991). Living with CLASSIC: When and how to use KL-ONE-like language. Principles of Semantic Networks. J. F. Sowa, editor, Morgan Kaufmann: 401-456.
Brickley, D. and Guha, R.V. (1999). Resource Description Framework (RDF) Schema Specification. Proposed Recommendation, World Wide Web Consortium: http://www.w3.org/TR/PR-rdf-schema.
Chimaera (2000). Chimaera Ontology Environment. www.ksl.stanford.edu/software/chimaera
Duineveld, A.J., Stoter, R., Weiden, M.R., Kenepa, B. and Benjamins, V.R. (2000). WonderTools? A comparative study of ontological engineering tools. International Journal of Human-Computer Studies 52(6): 1111-1133.
Farquhar, A. (1997). Ontolingua tutorial. http://ksl-web.stanford.edu/people/axf/tutorial.pdf
Gomez-Perez, A. (1998). Knowledge sharing and reuse. Handbook of Applied Expert Systems. Liebowitz, editor, CRC Press.
Gruber, T.R. (1993). A Translation Approach to Portable Ontology Specification. Knowledge Acquisition 5: 199-220.
Gruninger, M. and Fox, M.S. (1995). Methodology for the Design and Evaluation of Ontologies. In: Proceedings of the Workshop on Basic Ontological Issues in Knowledge Sharing, IJCAI-95, Montreal.
Hendler, J. and McGuinness, D.L. (2000). The DARPA Agent Markup Language. IEEE Intelligent Systems 16(6): 67-73.
Humphreys, B.L. and Lindberg, D.A.B. (1993). The UMLS project: making the conceptual connection between users and the information they need. Bulletin of the Medical Library Association 81(2): 170.
McGuinness, D.L., Abrahams, M.K., Resnick, L.A., Patel-Schneider, P.F., Thomason, R.H., Cavalli-Sforza, V. and Conati, C. (1994). Classic Knowledge Representation System Tutorial. http://www.bell-labs.com/project/classic/papers/ClassTut/ClassTut.html
McGuinness, D.L., Fikes, R., Rice, J. and Wilder, S. (2000). An Environment for Merging and Testing Large Ontologies. Principles of Knowledge Representation and Reasoning: Proceedings of the Seventh International Conference (KR2000). A. G. Cohn, F. Giunchiglia and B. Selman, editors. San Francisco, CA, Morgan Kaufmann Publishers.
McGuinness, D.L. and Wright, J. (1998). Conceptual Modeling for Configuration: A Description Logic-based Approach. Artificial Intelligence for Engineering Design, Analysis, and Manufacturing – special issue on Configuration.
Musen, M.A. (1992). Dimensions of knowledge sharing and reuse. Computers and Biomedical Research 25: 435-467.
Ontolingua (1997). Ontolingua System Reference Manual. http://www-ksl-svc.stanford.edu:5915/doc/frame-editor/index.html
Price, C. and Spackman, K. (2000). SNOMED clinical terms. BJHC&IM-British Journal of Healthcare Computing & Information Management 17(3): 27-31.
Protege (2000). The Protege Project. http://protege.stanford.edu
Rosch, E. (1978). Principles of Categorization. Cognition and Categorization. R. E. and B. B. Lloyd, editors. Hillside, NJ, Lawrence Erlbaum Publishers: 27-48.
Rothenfluh, T.R., Gennari, J.H., Eriksson, H., Puerta, A.R., Tu, S.W. and Musen, M.A. (1996). Reusable ontologies, knowledge-acquisition tools, and performance systems: PROTEGE-II solutions to Sisyphus-2. International Journal of Human-Computer Studies 44: 303-332.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. and Lorensen, W. (1991). Object-oriented modeling and design. Englewood Cliffs, New Jersey: Prentice Hall.
Uschold, M. and Gruninger, M. (1996). Ontologies: Principles, Methods and Applications. Knowledge Engineering Review 11(2).
[1] Mi kapitalizirati imena klasa i početi imena slot sa niskim slova. Takođe koristimo pisaću mašinu font za sve uslove iz primjer ontologije.
[2] Ne možemo pogledati klase kao unary predikata-pitanja koja imaju jedan argument. Na primjer, “Je li ovo objekat vino?” Unarni predikata (ili klase) kontrast sa binarnim predikata (ili slotova) -pitanja koji imaju dva argumenta. Na primjer, “Da li je okus ovog objekta jak?” “Šta je ukus ovog objekta?”
[3] Neki sistemi samo navesti vrstu vrijednosti sa klase umjesto zahtijevaju posebnu izjavu tipa instance slotova.
[4] Mi smo izabrali da predstavljaju samo crvene Luke u našem ontologije: bijela Luke postoje, ali su vrlo neuobičajeno.
[5] Ovdje pretpostavljamo da je svaki anatomski organ je klasa, jer bismo također željeli da govore o “John je 1. levo rebro.” Pojedinih organa postojećih ljudi će biti predstavljeni kao pojedinci u našem ontologiji.