ROBOT: EGY Eszköz Automatizálni Ontológia Munkafolyamatok
Áttekintés
ROBOT rendelkezik egy szabványos még konfigurálható támogatják az ontológia fejlesztési életciklus keresztül könyvtár közös magas szintű funkcionalitás, a parancssori felület. A ROBOT az OWL API-ra épül, és kompatibilis az OWL API által támogatott összes ontológiai szintaxissal: RDF / XML, OWL/XML, Turtle, OWL funkcionális szintaxis, OWL Manchester szintaxis és OBO formátum. A forráskód Java nyelven íródott, a GitHub adattárából pedig nyílt forráskódú (BSD 3) licenc alatt érhető el. Azt is megjelent, mint egy Java könyvtár Maven Central. A ROBOTKÓD bármilyen programozási nyelvből használható, amely a Java virtuális gépen (JVM) fut. A parancssori eszköz olyan JAR fájlként van csomagolva, amely Unix-on (beleértve a macOS-t és a Linuxot is), Windows-on és a JVM által támogatott más platformokon is futtatható. Ez a JAR fájl letölthető a ROBOT GitHub webhelyéről, valamint platformspecifikus szkriptek a “robot” parancssorból történő használatához. A telepítési útmutató és dokumentáció a http://robot.obolibrary.orgcímen érhető el.
architektúra
korábban leírtuk az eszköz alapvető architektúráját, amelyet itt foglalunk össze.
A ROBOT forráskódja két részből áll: “robot-core” és “robot-command”. a “robotmag” egy olyan könyvtár, amely támogatja a közös ontológiai fejlesztési feladatokat, amelyeket “műveleteknek”nevezünk. a ” robot-parancs “parancssori felületet biztosít” parancsokra “osztva, amelyek mindegyike “robotmag” műveletet hajt végre.
A legtöbb ROBOTMŰVELET csomag az OWL API által biztosított alacsony szintű funkcionalitást az OBO közösségben az ontológiai fejlesztési munkafolyamatok közös magas szintű funkcionalitásává teszi. A legjobb kompatibilitás érdekében arra törekszünk, hogy a robot által használt OWL API pontos verzióját megegyezzük a legújabb Protégé kiadás által használt pontos verzióval. Egyes műveletek az Apache Jena-t használják . Minden művelet Java objektumokkal működik, amelyek bagoly ontológiákat, bagoly érveket, bagoly osztályokat stb., míg minden parancs parancs parancssori opció karakterláncokkal és fájlokkal működik. A parancsok különböző átalakítási és érvényesítési lépéseket is végrehajtanak. A parancssori felület az Apache Commons CLI könyvtárat használja a parancsok elemzéséhez.
minden műveletnek van egy Egységtesztje a JUnit segítségével, amelyet minden egyes alkalommal végrehajtanak, amikor a végtermék (a JAR fájl) létrejön. A ROBOT minden parancsát a saját weboldala dokumentálja (pl. http://robot.obolibrary.org/reason). A weblapok Markdown formátumban készülnek, beágyazott parancssori példákat tartalmaznak, amelyeket integrációs tesztjeink részeként elemezünk és végrehajtunk, az eredményeket pedig összehasonlítjuk egy “arany standard” kimenettel. A ROBOT ‘diff’ funkcionalitását az ontológiai fájlok összehasonlításakor használják, különben szabványos fájlösszehasonlítást használnak. Ez segít a dokumentáció és a kód helyességének és következetességének biztosításában. A unit-teszt, valamint integrációs tesztek végrehajtása minden esetben rá a codebase keresztül Travis folyamatos integráció (Travis CI) , így a hozzájárulás a codebase ellenőrzik.
parancsok és műveletek
A ROBOT jelenleg 15 műveletet (a “robotmag” könyvtárban) és 19 parancsot (a parancssori interfészhez) biztosít. Egyes parancsok meglehetősen specializáltak, és a legtöbb ontológiai projekt nem fogja mindet felhasználni. Itt áttekintést adunk a leggyakoribb és általános parancsokról. Az alapfunkciót minden esetben a “robot-core” könyvtár műveletei támogatják, amelyek a parancssori interfésztől függetlenül használhatók a JVM-en futó bármely programozási nyelvtől.
Convert
számos OWL ontológiai formátum támogatott, beleértve az RDF/XML, Turtle, Manchester, OBO formátumot stb. A további interoperabilitás lehetővé tétele érdekében a ROBOT tartalmaz egy “convert” parancsot a támogatott ontológiai formátumok közötti váltáshoz. A támogatott formátumok teljes listája megtalálható a “konvertálás” dokumentációban .
érvelés
az érvelés a ROBOT egyik legfontosabb művelete. Az ” OK ” parancs két felhasználási módot foglal magában: egy ontológia logikai validálását és az automatikus osztályozást. Mindkét esetben a felhasználók választhatják meg az általuk preferált okokat, amelyeket a következtetés elvégzésére használnak. Nagy ontológiák, mint például a gén ontológia jellemzően jávorszarvas, amely elvégzi érvelés gyorsan a OWL el profilt. Kisebb ontológiák gazdagabb axiomatizáció, mint például a kapcsolatok ontológia, jellemzően egy teljes bagoly DL reasoner, mint a Remete .
amikor az ” OK ” parancsot egy beviteli ontológiára hívják fel, a ROBOT indítja el a reasonert az OWL API Reasoner interfésszel. Az így létrejövő következtetéseket ellenőrizzük annak biztosítása érdekében, hogy az ontológia logikusan koherens legyen: az ontológiának következetesnek kell lennie, és nem kell kielégíthetetlen osztályokkal (azaz, olyan osztályok, amelyeket nem lehet instantálni ellentmondás bevezetése nélkül). Ha az ontológia összefüggéstelen, akkor ezt jelentik, és a végrehajtás leáll. A ROBOT opcionálisan további ellenőrzéseket végezhet, például annak biztosítását, hogy két osztály ne legyen egyenértékű utólagos érvelés.
Ha az ontológia következetes, a ROBOT automatikus osztályozást végez. Az ontológiához minden közvetlen következtetésű “alosztály” axióma hozzáadódik. Más típusú axiómák generálása konfigurálható.
az összes levezetett axióma állítása gyakran alapvető lépés az orvosbiológiai ontológiák kiadási folyamatában. Ezen ontológiai osztályok közül sok csak egy superclass (“a Subclassof B”, ahol B egy másik osztály az ontológiában), valamint nulla vagy több anonim szuperosztály és/vagy anonim egyenértékű osztály (“a subClassOf/equivalentTo (R some B)”, ahol R egy objektum tulajdonság). Ezek az anonim osztályok lehetővé teszik az okosnak, hogy következtetéseket vonjon le, amelyeket aztán megerősítenek. Ezért egy ontológia kiadási verziójában egy osztálynak egynél több neve lehet superclass.
az “OK” parancs további “segítő” parancsokkal rendelkezik. A “relax” parancs azt állítja, hogy az axiómák alosztálya egy egyszerű szerkezeti szabály szerint: az “a equivalentTo (R some B) és …” kifejezés magában foglalja az “R some B” alosztályt. Ez hasznos lehet, mivel a bio-ontológiák fogyasztói gyakran elvárják, hogy navigáljanak ezeken a kifejezéseken, például a GO és Uberon partonomy-Ján. A “relax” parancs megszabadítja az ontológia fejlesztőjét attól, hogy ezeket az egyenértékűségi axiómákon kívül érvényesítse, és mint ilyen, gyakran szerepel a kiadási munkafolyamatokban is. Végül a “reduce” parancs eltávolítja az axiómák redundáns alosztályát, és a “relax” után használható az abban a lépésben kifejtett duplikált axiómák eltávolítására.
a “materialize” parancs egy Reasoner (EMR) kifejezést használ az “a subclassof r some B” forma levezetett kifejezéseinek érvényesítésére . Ahol az ” OK “parancs azt állítja, hogy a superclasses nevű, a “materialize” névtelen szuperosztályokat állít fel. Ez nem része a standard kiadási ciklusnak, de hasznos lehet A teljes ontológiai részhalmazok létrehozásához.
külső ontológiákkal dolgozva
az OBO öntöde célja az ontológiák moduláris koordinálása, oly módon, hogy egyes ontológiák részei építőelemként használhatók más ontológiák számára. A ChEBI chemical entitások ontológiáját például arra használják, hogy az anyagcsere folyamatokra és a gén Ontológiájában végzett tevékenységekre vonatkozó meghatározásokat hozzanak létre . Különböző stratégiák léteznek a külső ontológiák kihasználására és az ontológiák közötti függőségek kezelésére, a Felhasználási esettől függően.
Extract
az ‘extract’ parancs létrehoz egy modult egy entitások halmaza alapján (a “mag”). Négy különböző extrakciós módszer létezik (a ‘–method’ opció szerint): MIREOT, TOP, BOT és STAR.
A ROBOT MIREOT extrakciós módszere ugyanazon név elvén alapul, és megköveteli egy vagy több “alsó” entitás megadását. Opcionálisan egy vagy több “felső” entitás is megadható. A parancs az “alsó” szintű entitásokat és őseiket a “felső” szintig kivonja a bemeneti ontológiából. Ha nincs “felső” entitás, akkor a felső szintű entitás (“bagoly: dolog”) ősei szerepelnek.
a felső, BOT és csillag metódusok az OWL API szintaktikai Helység modul Extraction (SLME) implementációját használják, amely garantálja, hogy minden olyan információt rögzít, amely logikusan releváns a magkészlethez . A BOT módszer (“alsó”) magában foglalja a bemeneti entitások és őseik közötti összes kapcsolatot. A TOP módszer magában foglalja a bemeneti entitások és leszármazottaik közötti összes kapcsolatot. Végül a csillag módszer csak a bemeneti entitások közötti összes kapcsolatot tartalmazza. A csillag módszer a legkisebb kimeneteket hozza létre, míg a felső módszer általában a legnagyobb kimeneteket hozza létre.
támogatása érdekében ontológia kifejezés eredete, a ‘kivonat’ parancs egy ‘–jegyzetekkel-a-forrás igaz lehetőség, hogy jegyzetekkel kivont kifejezés az URL-t, a forrás ontológia, hogy kivonják.
eltávolítás és szűrés
az “eltávolítás” és a “szűrő” parancsokat a bagoly axiómákon végzett finom szemcsés műveletekhez használják. az “eltávolítás” lehetővé teszi a felhasználók számára, hogy kiválasszák, mely axiómákat szeretnék eltávolítani a cél ontológiából. a “szűrő” az ellenkezőjét teszi, így csak a kiválasztott axiómákat másolja a bemenetről egy új kimeneti ontológiába.
Ez a két parancs úgy működik, hogy egy entitások vetőmagkészletével kezdődik, majd különféle kiválasztókat alkalmaz a kapcsolódó entitások megkeresésére, végül kiválasztja, hogy mely axiómatípusokat kell eltávolítani vagy szűrni. Arra számítunk, hogy csak kis számú “energiafelhasználó” használja ezt a funkciót közvetlenül, de ezek a parancsok végül alapot nyújtanak más magasabb szintű parancsokhoz.
ezek a parancsok a jegyzeteken alapuló ontológiai részhalmazok létrehozására használhatók a megadott megjegyzéssel rendelkező entitások szűrésével vagy eltávolításával. Az OBO Öntödei ontológiák gyakran annotálják az osztályokat a “részhalmazban” tulajdonsággal, hogy meghatározzák, hol lehet egy osztályt használni. Az annotációs választó lehetővé teszi a felhasználó számára, hogy egy teljes annotációs értéket vagy egy mintát, hogy megfeleljen a reguláris kifejezés.
Merge
az “merge” parancs két vagy több különálló bemeneti ontológiát egyesít egyetlen ontológiába. Azt is lehetővé teszi, hogy egyetlen bemeneti ontológia összes importált ontológiáját egyesítse egy fő ontológiába, amelyet gyakran használnak kiadás létrehozásakor.
az importált ontológiák (importálási utasítások által megadott) összevonása a bemeneti ontológiába automatikusan történik, így a felhasználónak nem kell minden importált ontológiát bemenetként felsorolnia. Ezt a funkciót kikapcsolhatjuk (‘–collapse-import-closure false’), támogatva azokat az eseteket, amikor a felhasználók több bemeneti ontológiát egyesíthetnek, amelyek importálási nyilatkozatokkal rendelkeznek, de az importjukat külön akarják tartani.
lekérdezés és jelentés
az ontológiai munkafolyamatok általában lekérdezési műveleteket tartalmaznak az ontológia felett, jelentéseket készítenek, amelyek informatívak lehetnek mind az ontológia szerkesztői, mind felhasználói számára-például az összes osztály táblázata, valamint azok szöveges definíciói. A lekérdezési műveletek validációs ellenőrzésekhez is használhatók. A SPARQL lekérdezési nyelv egy univerzális és deklaratív módszert biztosít az ontológiai karbantartók számára ontológiai jelentések és validációs ellenőrzések készítéséhez . ROBOT egy kényelmes módja annak, hogy végre lekérdezések a “query” paranccsal, vagy érvényesítési ellenőrzéseket a “verify”. Ezenkívül a “jelentés” parancs tartalmaz egy konfigurálható szabványos lekérdezéscsomagot az OBO projektekhez, amelyek bármilyen ontológiai munkafolyamatban használhatók anélkül, hogy a karbantartónak ismernie kellene a SPARQL-t.
Query
a ROBOT ‘query’ parancsa SPARQL lekérdezéseket futtat ontológiákon vagy más RDF erőforrásokon. Ezt fel lehet használni egy ontológia karbantartó vagy végre interaktív lekérdezések, vagy inkább jellemzően a standard lekérdezések egy ontológiai munkafolyamat. A “lekérdezés” parancs az Apache Jena-t használó kevés művelet egyikét csomagolja , nem pedig az OWL API-t. A Jena API lehetővé teszi a ROBOT számára, hogy ontológiát töltsön be egy RDF Modellobjektum háromszorosának gyűjteményeként. Ez egy SPARQL lekérdező motort biztosít azoknak a modelleknek, amelyeket az összes lekérdezés futtatásához használunk.
a “SPARQL SELECT” lekérdezések vesszővel vagy lapokkal elválasztott eredménytáblát eredményeznek. A lekérdezések logikai értékű fájlt hoznak létre. A “SPARQL CONSTRUCT” lekérdezések RDF fájlt hoznak létre, amelyet ROBOT tovább dolgozhat fel, vagy újra beolvadhat a betöltött ontológiába. “CONSTRUCT egy kényelmes módja a teljesítő “makró” stílus bővítése . A “SPARQL UPDATE” lekérdezések közvetlenül egy ontológiában (RDF modellként) helyezik be és/vagy távolítják el az adatokat. A ROBOT átalakítja a frissített RDF modellt egy OWL API ontológiai objektummá, amelyet a támogatott szintaxisok bármelyikébe menthet.
a ‘lekérdezés’ parancs támogatja az importált ontológiák névgráfként történő betöltésének lehetőségét a ‘– use-graphs ‘ opcióval. Ha ez “true” – ra van állítva, akkor az Importálás névgráfként lekérdezhető (a név az ontológia IRI-je), az alapértelmezett gráf pedig az összes gráf egyesítése. Az alapértelmezett grafikon használata hasonló az összes import “egyesítéséhez” a lekérdezés előtt, de az import közötti különbség elvész egy “egyesítésben”.
Verify
az “ellenőrzés” parancs a “SPARQL SELECT” végrehajtás variációja. A lekérdezések annak biztosítására szolgálnak, hogy egy ontológia megfeleljen egy előre meghatározott feltételrendszernek; például annak biztosítása, hogy egyetlen osztálynak sem legyen több szöveges definíciója. Adott kiválasztott lekérdezés esetén az “ellenőrzés” sikeres lesz (azaz kilép a 0 állapotkóddal), ha nincs eredmény. Nem fog sikerülni (azaz, lépjen ki egy nem nulla állapotkóddal), ha bármilyen eredmény visszatér a lekérdezésből. Tehát, mivel a SPARQL lekérdezés érvénytelen adatokat választ ki, az “ellenőrzés” parancs ellenőrzi, hogy az ontológia (vagy más erőforrás) nem tartalmaz-e ilyen érvénytelen adatokat.
jelentés
a “jelentés” parancs a “lekérdezés” és az “ellenőrzés” kiterjesztése, amely egy sor konfigurálható minőség-ellenőrzési (QC) ellenőrzést biztosít egy ontológia számára, és visszaadja a jogsértések táblázatát vagy YAML kimenetét. A táblázatkezelő vesszővel vagy lapokkal elválasztott formátumban kerül kiadásra, a felhasználó számára könnyen olvasható, míg a YAML kimenetet más programok könnyen értelmezhetik.
A QC ellenőrzések közé tartozik a jegyzetellenőrzések, logikai ellenőrzések és metaadatok ellenőrzése. A Megjegyzések fontosak az emberi megértés megkönnyítése érdekében, így a “jelentés” parancs olyan eseteket talál, amikor a hiányzó vagy ismétlődő megjegyzések problémákat okozhatnak. A logikai ellenőrzések az ontológia szerkezeti koherenciáját és következetességét vizsgálják. Végül a “jelentés” azonosítja a hiányzó ontológiai metaadatokat, az OBO Öntödei ajánlások szerint.
a jogsértéseknek három szintje van: hiba, figyelmeztetés és információ. A hiba a legsúlyosabb, például egy hiányzó vagy ismétlődő címke. Alapértelmezés szerint a “jelentés” parancs sikertelen, ha bármilyen HIBASZINTŰ jogsértés van, megállítva az automatizált építési folyamatokat. Az ilyen típusú jogsértéseket az ontológia közzététele előtt rögzíteni kell. A figyelmeztetési szintű jogsértéseket a lehető leghamarabb rögzíteni kell, például egy-egy osztály egyenértékűségeire következtetni, amelyek általában nem szándékoltak az OBO projektekben. INFO az ajánlott javítások, amelyek segítenek fenntartani az egységesség OBO Öntöde ontologies, mint a kezdet egy definíció, egy kisbetűt, valamint végződő időszakra. a “jelentés” konfigurálható egy parancssori opcióval, hogy eltérő megsértési szinten kudarcot valljon, vagy soha ne kudarcot valljon, függetlenül a jogsértésektől. Minden egyes QC-ellenőrzést dokumentálunk egy kézi javításra vonatkozó javaslattal, amelyet a felhasználó alkalmazhat.
Az alapértelmezett “profil” jelentés szintek minden QC ellenőrzés által biztosított ROBOT, de a felhasználók is képesek létrehozni saját profilokat. Ezekben a profilokban megváltoztathatják az egyes ellenőrzések megsértési szintjét, kizárhatnak bizonyos ellenőrzéseket, valamint SPARQL lekérdezésként hozzáadhatják saját ellenőrzéseiket. Például egyes ontológiák egy olyan osztályt kategorizálhatnak, amelynek nincs szöveges definíciója hibának, míg mások ezt figyelmeztetésnek minősíthetik. Egyik célunk az, hogy konvergáljunk egy szabványos profilra, amely maximálisan hasznos az OBO könyvtár összes ontológiája számára, ösztönözve a közös minőség-ellenőrzési ellenőrzések elfogadását.
javítás
bár a legtöbb probléma által felvetett “validate” és “jelentés” kézzel kell rögzíteni, ROBOT is biztosít egy “javítás” parancsot, amely automatikusan kijavítani bizonyos problémákat. A jelenlegi implementáció egyesíteni fogja a duplikált axiómákra vonatkozó megjegyzéseket, és frissíti az elavult osztályokra vonatkozó hivatkozásokat, amikor egy javasolt helyettesítéssel vannak ellátva. A “javítást” a közös problémák szélesebb körére kívánjuk kiterjeszteni, amelyekre a helyes javítás egyértelmű.
Templated ontology development
a ROBOT egy sablonvezérelt ontológiai kifejezésgeneráló rendszert biztosít. A felhasználóknak lehetősége van arra is, hogy saját kifejezésgeneráló rendszerüket a munkafolyamatukba csatlakoztassák, például a Dead Simple OWL tervezési mintákat (DOS-DPs) .
rengeteg adatot tárolnak táblázatokban és adatbázisokban, a táblázatos formátumok pedig sokféle adathoz alkalmasak. A ROBOT ‘sablon’ parancsa lehetővé teszi a felhasználók számára, hogy táblázatos adatokat konvertáljanak RDF/OWL formátumba. A ROBOTSABLON egyszerűen egy tabulátorral elválasztott értékek (TSV) vagy vesszővel elválasztott értékek (CSV) fájl néhány speciális egyezménnyel, amelyeket a ROBOT “sablon” dokumentációja vázol fel .
ezek a sablonok a moduláris ontológia fejlesztéséhez használhatók. A sablontáblázatok az ontológia forráskódtárának részeként tarthatók fenn, az ontológiai fájl közvetlen szerkesztése helyett a fejlesztők a táblázatban olyan sorokat szerkesztenek, amelyek megfelelnek az ontológia feltételeinek. A “sablon” paranccsal létrehozható az ontológia egy modulja, amely az ontológia szerkesztői verziójában importálási utasításként szerepel, majd a kiadási folyamat során összeolvad.
munkafolyamatok
a munkafolyamat egy munkafolyamat-rendszer által koordinált feladatokból áll. Az ontológiai munkafolyamatok olyan feladatokból állnak, mint a QC-ellenőrzések végrehajtása, importmodulok építése, ontológiák feletti érvelés, valamint különböző ontológiai kiadási termékek előállítása.
maga a ROBOT nem munkafolyamat-kezelő, bár lehetővé teszi több parancs összekapcsolását egy hosszú parancsba. A ROBOTPARANCSOK láncolásakor az egyik parancs kimeneti ontológiája közvetlenül a következő parancs bemeneteként kerül átadásra. Például a láncolás két olyan parancs helyettesítésére használható, amelyek egyesítik az ontológiákat, majd indokolják az egyesített terméket:
`robot merge — input ont-1.bagoly — input ont-2.owl — kimenet összeolvadt.bagoly.
robot ok — input Egyesült.bagoly — output indokolt.bagoly.
az egyesített termék létrehozása helyett az ” OK ” futtatása egy parancsban végezhető el:
`robot merge –input ont-1.bagoly — input ont-2.bagoly ok — output indokolt.bagoly.
a láncolás legfontosabb előnye, hogy az ontológiákat nem kell sorosítani és elemezni minden lépés között; ugyanaz az OWL API ontológia objektum megmarad a memóriában, majd áthalad a robotparancsok láncán. A nagy ontológiák esetében a láncolás nagymértékben javíthatja a ROBOT teljesítményét.
mivel a ROBOTPARANCSOK végrehajthatók a parancssorban, számos különböző munkafolyamat-rendszer használható. Kiemeljük a GNU Make használatát, amelyet általában szoftver fordítására használnak. A Makefile áll egy sor szabályt használják, hogy a”célok”. Az ontológia fejlesztésében a Makefile-t automatizált feladatokhoz használják, például ontológia készítésére a kiadáshoz. Ebben az esetben a célok általában ontológiai fájlok. A szabályok “receptjei” Unix-stílusú rendszerparancsok, amelyeket a “make” parancs hajt végre.
ROBOT parancsokat lehet használni, mint a “receptek”, hogy a”célok”. Egy tipikus munkafolyamat nem fogja használni mind a 19 ROBOTPARANCSOT. Például nem minden ontológiai projekt használhat ROBOT sablonokat, ezért nem minden kiadási munkafolyamatnak kell tartalmaznia a “sablon” parancsot. Az ontológia fejlesztői eldönthetik, hogy mely parancsokra van szükség a kiadás végrehajtásához, illetve egy munkafolyamatot építhetnek e parancsok köré. Az 1. ábra egy szabványos módszert mutat be, amellyel a robotparancsok kiválasztását kombinálják a kiadási munkafolyamathoz.
Leave a Reply