Articles

ROBOT: a Tool for Automating Ontology Workflows

Overview

ROBOT provides a standardised bet configurable way to support the ontology development lifecycle via a library of common high-level functionality and a command-line interface. Robotti perustuu OWL API ja on yhteensopiva kaikkien ontologian syntaksit että OWL API tukee: RDF / XML, OWL / XML, Turtle, OWL toiminnallinen syntaksi, Owl Manchester syntaksi, ja OBO muodossa. Lähdekoodi on kirjoitettu Java-kielellä ja se on saatavilla GitHub-arkistostamme avoimen lähdekoodin (BSD 3) lisenssillä. Se on julkaistu myös Java-kirjastona Maven Centralilla. ROBOTTIKOODIA voidaan käyttää mistä tahansa Java Virtual Machine (JVM) – käyttöjärjestelmässä toimivasta ohjelmointikielestä. Komentorivityökalu on pakattu JAR-tiedostoksi, jota voidaan ajaa Unixilla (mukaan lukien macOS ja Linux), Windowsilla ja muilla JVM: n tukemilla alustoilla. Tämä JAR-tiedosto on ladattavissa ROBOT GitHub-sivustolta sekä alustakohtaiset skriptit komentoriviltä ”robotin” käyttöön. Asennusohjeet ja-asiakirjat löytyvät osoitteesta http://robot.obolibrary.org.

Arkkitehtuuri

kuvasimme aiemmin työkalun perusarkkitehtuuria , jonka tiivistämme tähän.

robotin lähdekoodi koostuu kahdesta osasta: ”robot-core” ja ”robot-command”. ”robot-core ”on kirjasto, joka tukee yhteisiä ontologian kehittämistehtäviä, joita kutsumme”operaatioiksi”. ”robot-command ”tarjoaa komentorivikäyttöliittymän, joka on jaettu” komentoihin”, joista jokainen kietoo ”robot-core” -toiminnon.

useimmat ROBOTTIOPERAATIOT paketoivat oboyhteisön ontologian kehitystyöskentelylle tyypilliset matalan tason toiminnot Korkean tason toiminnallisuuksiksi. Parhaan yhteensopivuuden saavuttamiseksi pyrimme sovittamaan robotin käyttämän OWL API: n tarkan version uusimman Suojattijulkaisun käyttämään versioon. Joissakin operaatioissa käytetään apassi-Jenaa . Jokainen operaatio toimii Java-objektien kanssa, jotka edustavat OWL-ontologioita, OWL reasonerseja, OWL-luokkia jne., kun taas jokainen komento toimii komentorivivaihtoehtojen merkkijonoilla ja tiedostoilla. Komennot suorittavat myös erilaisia muuntaminen-ja validointivaiheita. Komentoriviliitäntä käyttää Apache Commons CLI-kirjastoa komentojen jäsentämiseen.

jokaisella toiminnolla on junitilla rakennetut yksikkötestit, jotka suoritetaan aina kun lopputuote (JAR-tiedosto) luodaan. Jokainen robotin käsky on dokumentoitu omille verkkosivuilleen (esimerkiksi http://robot.obolibrary.org/reason). Web-sivut on kirjoitettu Markdown-muodossa ja sisältävät upotettuja komentoriviesimerkkejä, jotka jäsennetään ja suoritetaan osana integraatiotestejämme, ja tuloksia verrataan ”gold standard” – lähtöjen joukkoon. Ontologiatiedostojen vertailussa käytetään robotin ”diff” – toimintoa, muuten käytetään standarditiedostojen vertailua. Tämä auttaa varmistamaan dokumentaation ja koodin oikeellisuuden ja johdonmukaisuuden. Yksikkötestit ja integrointitestit suoritetaan mistä tahansa pull-pyynnöstä Koodebaasiin Travis continuous integration (Travis CI) – toiminnon avulla , jotta osuudet koodebaasiin todennetaan.

komennot ja operaatiot

robotti tarjoaa tällä hetkellä 15 operaatiota (”robot-core” -kirjastossa) ja 19 komentoa (komentoriviliitännässä). Jotkut komennot ovat varsin erikoistuneita, eivätkä useimmat ontologiaprojektit hyödynnä niitä kaikkia. Tässä annamme yleiskatsauksen yleisimpiin ja yleisimpiin komentoihin. Kussakin tapauksessa ydintoimintoa tukevat ”robot-core” -kirjaston toiminnot, joita voidaan käyttää komentoriviliitännästä riippumatta mistä tahansa JVM: llä toimivasta ohjelmointikielestä.

Muunna

erilaisia OWL-ontologiamuotoja on tuettu, kuten RDF / XML, Turtle, Manchester, OBO-muoto ja paljon muuta. Yhteentoimivuuden lisäämiseksi ROBOT sisältää ”convert” – komennon, jolla voi vaihtaa tuettujen ontologiamuotojen välillä. Täydellinen luettelo tuetuista formaateista löytyy ’convert’ – dokumentaatiosta .

päättely

päättely on robotin tärkeimpiä operaatioita. ”Reason” – komento kattaa kaksi käyttötarkoitusta: ontologian looginen validointi ja automaattinen luokittelu. Molemmissa tapauksissa, käyttäjät voivat valita haluamasi reasoner, jota käytetään tekemään päättely. Suuret ontologiat , kuten geenin ontologia, käyttävät tyypillisesti hirveä, joka suorittaa päättelyn nopeasti OWL-El-profiilin avulla. Pienemmissä ontologioissa, joissa on rikkaampi aksiomatisointi, kuten Relaatio-ontologiassa, käytetään tyypillisesti kokonaista OWL DL-reasoneria, kuten erakkoa .

kun ”reason” – komentoa kutsutaan syötteen ontologiassa, robotti käynnistää reasonerin OWL API Reasoner-rajapinnan avulla. Tuloksena olevat päättelyt tarkistetaan, jotta ontologia olisi loogisesti johdonmukainen: ontologian on oltava johdonmukainen eikä sillä saa olla epätyydyttäviä luokkia (ts., luokat, joita ei voida instantioida lisäämättä epäjohdonmukaisuutta). Jos ontologia on epäjohdonmukainen, tämä raportoidaan ja toteutus pysähtyy. Robotti voi halutessaan suorittaa lisätarkistuksia, kuten varmistaa, ettei kahta luokkaa päätellä vastaaviksi jälkikäteen.

Jos ontologia on johdonmukainen, robotti suorittaa automaattisen luokittelun. Ontologiaan lisätään kaikki suoraan johdetut ”alaluokan” aksioomat. Muuntyyppisiä aksioomia voidaan konfiguroida.

kaikkien pääteltyjen aksioomien toteaminen on usein biolääketieteellisten ontologioiden julkaisuprosessin perustava vaihe. Monet näistä ontologian luokista esittävät vain yhden nimetyn superluokan (”a-alaluokka B”, jossa B on toinen luokka ontologiassa), ja nolla tai nimettömämpi superluokka ja/tai nimettömämpi ekvivalenttiluokka (”a-alaluokka/ekvivalentti (R some B)”, jossa R on objektin ominaisuus). Näiden nimettömien luokkien avulla reasoner voi tehdä päätelmiä, jotka sitten väitetään. Siksi ontologian julkaisuversiossa luokalla voi olla useampi kuin yksi nimetty superluokka.

”reason” – komennossa on ylimääräisiä ”helper” – komentoja. ”Relax” – käskyssä määrätään aksioomien alaluokasta yksinkertaisen rakennesäännön mukaan: ilmaisulla ”a-ekvivalentti (R some B) ja … ”tarkoitetaan” r some B: n alaluokkaa”. Tästä voi olla hyötyä, sillä Bio-ontologioiden kuluttajat odottavat usein navigoivansa näillä ilmaisuilla, esim.partonomia GO: ssa ja Uberonissa. ”Relax” – käsky vapauttaa ontologian kehittäjän tarpeesta vaatia näitä ekvivalenssiaksioomien lisäksi, ja sellaisena se sisältyy usein myös release-työnkulkuihin. Lopuksi ”reduce” – komento poistaa aksioomien tarpeettomat alaluokat, ja sitä voidaan käyttää ”relax” – komennon jälkeen poistamaan aksioomien kaksoiskappaleet, joita kyseisessä vaiheessa väitettiin.

”materialize” – komento käyttää lauseketta Materializing Reasoner (EMR) vakuuttaakseen pääteltyjä ilmaisuja muodossa ”a subClassOf R some B”. Jos ’ syy ’ – käsky väittää pääteltyjä superluokkia,’ materialise ’ väittää nimettömiä superluokkia. Tämä ei ole osa tavanomaista julkaisusykliä, mutta voi olla hyödyllistä luoda täydellisiä ontologian osajoukkoja.

ulkoisten ontologioiden kanssa työskentelevä

OBOVALIMO pyrkii koordinoimaan ontologioita modulaarisesti siten, että joidenkin ontologioiden osia voidaan käyttää muiden ontologioiden rakennusosina. Esimerkiksi ChEBI-kemiallista entiteettiä ontologiaa käytetään OWL-määritelmien muodostamiseen metabolisille prosesseille ja toiminnoille geenien ontologiassa . Ulkoisten ontologioiden hyödyntämiseen ja ontologioiden välisten riippuvuuksien hallintaan on useita erilaisia strategioita käyttötapauksesta riippuen.

Extract

”extract” – komento luo moduulin, joka perustuu poimittavien entiteettien joukkoon (”seed”). On olemassa neljä eri louhintamenetelmää (jotka on määritelty ”–method ” – vaihtoehdossa): MIREOT, TOP, BOT ja STAR.

robotin MIREOT-uuttomenetelmä perustuu samannimiseen periaatteeseen ja edellyttää, että määritellään yksi tai useampi ”pohja” – entiteetti. Valinnaisesti voidaan määritellä myös yksi tai useampi ”ylin” kokonaisuus. Komento poimii syötteen ontologiasta kaikki ”alimman” tason entiteetit ja niiden esi-isät ”ylimmälle” tasolle asti. Jos ” top ” – entiteettejä ei ole, mukana ovat esi-isät ylimpään entiteettiin (”owl: Thing”) asti.

TOP -, BOT-ja STAR-menetelmissä hyödynnetään OWL API Syntactic Locality Module Extraction (SLME) – toteutusta, joka takaa kaiken siemenkokonaisuuteen loogisesti liittyvän informaation . BOTTIMENETELMÄ (”bottom”) sisältää kaikki syötteen entiteettien ja niiden esi-isien väliset suhteet. TOP-menetelmä sisältää kaikki panosyksiköiden ja niiden jälkeläisten väliset suhteet. Lopuksi TÄHTIMENETELMÄ sisältää vain kaikki syötteen entiteettien väliset suhteet. TÄHTIMENETELMÄ tuottaa pienimmät lähdöt, kun taas HUIPPUMENETELMÄ tuottaa tyypillisesti suurimmat lähdöt.

ontologiatermin provenienssin tukemiseksi ”extract” -komennossa on ”–annotate-with-source true ” – vaihtoehto, joka liittää jokaisen uutetun termin sen lähdeortologian URL-osoitteeseen, josta se on uutettu.

Poista ja suodata

”poista” -ja ”suodatin” – käskyjä käytetään Owl-aksioomien hienorakeisissa operaatioissa. ”remove” antaa käyttäjien valita, mitkä aksioomajoukot he haluavat poistaa kohdeontologiasta. ”filter” tekee päinvastoin, niin että vain valitut aksioomat kopioidaan tulosta uuteen ulostulon ontologiaan.

nämä kaksi käskyä toimivat aloittamalla entiteettien siemenjoukosta, soveltamalla sitten eri valitsimia toisiinsa liittyvien entiteettien löytämiseksi ja valitsemalla lopuksi mitkä aksioomatyypit poistetaan tai suodatetaan. Odotamme vain pienen joukon ”tehokäyttäjiä” käyttävän tätä ominaisuutta suoraan, mutta nämä komennot luovat lopulta pohjan muille korkeamman tason komennoille.

näillä komennoilla voidaan luoda selityksiin perustuvia ontologian osajoukkoja joko suodattamalla tai poistamalla entiteettejä annetulla merkinnällä. OBO – valimon ontologiat liittävät usein luokkiin ”in subset” – ominaisuuden määrittääkseen, missä luokkaa voidaan käyttää. Selityksen valitsimen avulla käyttäjä voi antaa täyden huomautuksen arvon tai kaavan, joka vastaa säännöllistä lauseketta.

Merge

”merge” – komento yhdistää kaksi tai useampia erillisiä input ontologioita yhdeksi ontologiaksi. Se tarjoaa myös mahdollisuuden yhdistää kaikki tuodut ontologiat yhden syötteen ontologiasta yhdeksi pääontologiaksi, jota käytetään usein julkaisun luomisessa.

tuotujen ontologioiden yhdistäminen (määritelty tuontilausekkeissa) syötteen ontologiaan suoritetaan automaattisesti, jolloin käyttäjän ei tarvitse luetella jokaista tuotua ontologiaa syötteenä. Tarjoamme mahdollisuuden (’–collapse-import-closure false’) poistaa tämän ominaisuuden käytöstä tukemalla tapauksia, joissa käyttäjät voivat yhdistää useita syötteen ontologioita, joissa on tuontilausuntoja, mutta jotka haluavat pitää tuontinsa erillään.

ontologian työnkulkujen kyselyt ja raportointi

ontologian työnkulut sisältävät tyypillisesti kyselyoperaatioita ontologian yli tuottaen raportteja, jotka voivat olla informatiivisia sekä ontologian toimittajille että käyttäjille — esimerkiksi taulukko kaikista luokista sekä niiden tekstimääritelmät. Kyselytoimintoja voidaan käyttää myös oikeellisuustarkistuksiin. SPARQL-kyselykieli tarjoaa ontologian ylläpitäjille universaalin ja deklaratiivisen tavan luoda ontologiaraportteja ja oikeellisuustarkistuksia . Robotti tarjoaa kätevän tavan suorittaa kyselyjä ’query’ – komennolla tai oikeellisuustarkistuksia’verify’ – komennolla. Lisäksi ”report” – komento sisältää konfiguroitavan paketin OBO-projektien vakiokyselyjä, joita voidaan käyttää missä tahansa ontologian työnkulussa ilman, että ylläpitäjän on tunnettava SPARQL.

Query

robotin ”query” – komento suorittaa SPARQL-kyselyjä ontologioilla tai muilla RDF-resursseilla. Ontologian ylläpitäjä voi käyttää tätä joko interaktiivisten kyselyiden suorittamiseen tai tyypillisemmin standardikyselyiden sisällyttämiseen ontologian työnkulkuun. ”Kysely” – komento kietoo yhden harvoista toiminnoista , joka käyttää Apache Jena-toimintoa OWL API: n sijaan. Jena API: n avulla robotti voi ladata ontologian kokoelmana RDF-Malliobjektin sisältämiä triplettejä. Se tarjoaa SPARQL-kyselymoottorin näille malleille, joita käytämme kaikkien kyselyiden suorittamiseen.

”SPARQL SELECT” – kyselyt tuottavat pilkulla tai välilehdellä erotetun taulukon tuloksista. ASK-kyselyt tuottavat tiedoston, jolla on Boolen-arvo. ”SPARQL CONSTRUCT” – kyselyt tuottavat RDF-tiedoston, joka voidaan edelleen käsitellä robotilla tai yhdistää takaisin ladattuun ontologiaan. ’Konstruktiot tarjoavat kätevän tavan suorittaa ”makro” – tyylinen laajennus . ”SPARQL UPDATE” – kyselyt lisäävät ja/tai poistavat tietoja suoraan ontologiassa (RDF-mallina). Robotti muuntaa päivitetyn RDF-mallin takaisin OWL API ontologia-objektiksi, joka tallennetaan mihin tahansa tuettuun syntaksiin.

”kysely” -komento tukee vaihtoehtoa ladata tuotuja ontologioita nimettyinä kuvaajina ”–use-graphs ” – valinnalla. Jos tämä on ”tosi”, tuontia voidaan kysyä nimetyillä kuvaajilla (nimi on ontologian IRI) ja oletuskaavio on kaikkien kuvaajien unioni. Oletuskäyrän käyttäminen on samanlaista kuin kaiken tuonnin ”yhdistäminen” ennen kyselyä, mutta tuonnin välinen ero häviäisi ”yhdistämisessä”.

Verify

”verify” – komento on muunnelma ”SPARQL SELECT” – suorituksesta. Kyselyillä varmistetaan, että ontologia noudattaa ennalta määrättyjä ehtoja; esimerkiksi varmistetaan, että yhdelläkään luokalla ei ole useita tekstimäärityksiä. Valitussa kyselyssä ”verify” onnistuu (eli poistu tilakoodilla 0), jos tuloksia ei palauteta. Se epäonnistuu (ts., exit with a non-zero status code) jos kyselystä palautuu tuloksia. Kun otetaan huomioon SPARQL-kysely, joka valitsee virheellisen tiedon, ”verify” – komento varmistaa, että ontologia (tai muu resurssi) ei sisällä tällaista virheellistä tietoa.

Report

”report” – komento on ”query” ja ”verify” – komennon laajennus, joka tarjoaa sarjan konfiguroitavia laadunvalvonnan (QC) tarkastuksia ontologialle ja palauttaa taulukkolaskennan tai YAML-lähdön rikkomuksista. Taulukkolaskenta on tulostettu joko pilkulla tai välilehdellä erotetussa muodossa ja käyttäjän on helppo lukea, kun taas YAML-tuloste on helposti jäsenneltävissä muilla ohjelmilla.

QC-tarkistuksia ovat muun muassa merkintätarkistukset, loogiset tarkistukset ja metatietotarkistukset. Merkinnät ovat tärkeitä ihmisen ymmärtämisen helpottamiseksi, joten ”report” – komennolla löydetään tapauksia, joissa puuttuvat tai päällekkäiset merkinnät voivat aiheuttaa ongelmia. Loogiset tarkistukset tarkastelevat ontologian rakenteellista koherenssia ja johdonmukaisuutta. Lopuksi raportissa yksilöidään puuttuvat ontologian metatiedot OBO: n valimon suositusten mukaisesti.

raportoitavia rikkomuksia on kolme tasoa: virhe, varoitus ja INFO. Virhe on vakavin, kuten puuttuva tai päällekkäinen etiketti. Oletusarvoisesti ”raportti” -komento epäonnistuu, jos on virhetason rikkomuksia, pysäyttäen kaikki automatisoidut rakennusprosessit. Tällaiset loukkaukset on korjattava ennen ontologian julkaisemista. VAROITUSTASON rikkomukset olisi korjattava mahdollisimman pian, esim.päätellyt yhden luokan vastaavuudet, jotka ovat tyypillisesti tahattomia OBO-projekteissa. INFO on suositeltuja korjauksia, jotka auttavat ylläpitämään johdonmukaisuutta OBO Foundry ontologies, kuten alussa määritelmä isolla kirjaimella ja päättyen ajan. ’raportti’ voidaan määrittää komentorivivaihtoehdolla epäonnistumaan eri rikkomustasolla tai olemaan koskaan epäonnistumatta rikkomuksista riippumatta. Dokumentoimme jokaisen QC-tarkistuksen ehdotuksella manuaalisesta korjauksesta, jota Käyttäjä voi soveltaa.

oletus ”profiili” raporttitasoineen jokaista QC-tarkistusta varten on robotin tarjoama, mutta käyttäjät voivat myös luoda omia profiilejaan. Näissä profiileissa he voivat muuttaa yksittäisten tarkastusten rikkomustasoja, jättää tietyt tarkastukset pois ja lisätä omia tarkistuksiaan SPARQL-kyselyinä. Esimerkiksi jotkut ontologiat voivat luokitella luokan, josta puuttuu tekstimuotoinen määritelmä, virheeksi, kun taas toiset voivat luokitella tämän varoitukseksi. Yksi tavoitteistamme on lähentyä standardiprofiiliin, joka on mahdollisimman hyödyllinen OBO-kirjaston kaikkien ontologioiden joukolle, kannustaen yhteisten laadunvalvontatarkastusten hyväksymistä.

korjaus

vaikka suurin osa ”validationin” ja ”Reportin” aiheuttamista ongelmista on korjattava manuaalisesti, robotti tarjoaa myös ”repair” – komennon, jolla tietyt ongelmat voidaan automaattisesti korjata. Nykyisessä toteutuksessa yhdistetään päällekkäisiä aksioomia koskevat huomautukset ja vanhentuneiden luokkien päivitysviittaukset, kun ne on merkitty ehdotetulla korvaavalla merkinnällä. Aiomme laajentaa ”korjaamisen” koskemaan laajempaa joukkoa yhteisiä ongelmia, joiden oikea korjaus on selvä.

Templated ontology development

ROBOT tarjoaa mallipohjaisen ontologian termien generointijärjestelmän. Käyttäjät voivat myös liittää oman term generation-järjestelmänsä työnkulkuunsa, kuten Dead Simple OWL Design Patterns (dos-DPS) .

valtava määrä dataa tallennetaan taulukkolaskentaan ja tietokantoihin, ja taulukkomuodot sopivat hyvin monenlaiseen dataan. Robotin ’template’ – komennon avulla käyttäjät voivat muuntaa taulukkotietoja RDF / OWL-muotoon. ROBOT template on yksinkertaisesti tab-separated values (TSV) tai comma-separated values (CSV) – tiedosto, jossa on joitakin erityisiä käytäntöjä, jotka on esitetty robotin ’template’ – dokumentaatiossa .

näitä malleja voidaan käyttää modulaarisen ontologian kehittämiseen. Mallitaulukkoja voidaan ylläpitää osana ontologian lähdekoodivarastoa, ja ontologiatiedoston suoran muokkaamisen sijaan kehittäjät muokkaavat taulukkolaskentaan rivejä, jotka vastaavat ontologian termejä. Tämän jälkeen ”template” – komennolla luodaan ontologian moduuli, joka sisällytetään tuontilausuntona ontologian muokkaajien versioon ja yhdistetään julkaisuprosessin aikana.

työnkulut

työnkulku koostuu joukosta tehtäviä, joita jokin työnkulkujärjestelmä koordinoi. Ontologian työnkulut koostuvat tehtävistä, kuten QC-tarkistusten suorittamisesta, tuontimoduulien rakentamisesta, ontologioiden päättelystä ja erilaisten ontologian julkaisutuotteiden tuottamisesta.

robotti itsessään ei ole työnkulun hallinta, vaikka sen avulla useita komentoja voidaan kahlita yhteen pitkäksi komennoksi. Robotin komentoja ketjutettaessa yhden komennon ulostulo ontologia siirtyy suoraan syötteenä seuraavalle komennolle. Ketjutuksella voidaan esimerkiksi korvata kaksi ontologioita yhdistävää komentoa ja sitten järkeillä yhdistetyn tuotteen päälle:

`robot merge –input ont-1.pöllö, syötä ont-2.owl — tuotos yhdistyi.pöllö.

robot reason –input sulautui.owl — output reasoned.pöllö.

sen sijaan, että yhdistettyä tuotetta luotaisiin ja sen päälle ajettaisiin ”reason”, se voidaan tehdä yhdellä komennolla:

” robot merge –input ont-1.pöllö, syötä ont-2.pöllön syy — tuotos järkeili.pöllö.

ketjuttamisen keskeinen etu on se, että ontologioita ei tarvitse sarjailla ja jäsentää jokaisen vaiheen välillä; sama OWL API ontologia-olio säilyy muistissa ja kulkee ROBOTTIKÄSKYJEN ketjun läpi. Suurissa ontologioissa ketjuttaminen voi parantaa huomattavasti robotin suorituskykyä.

koska ROBOTTIKOMENNOT voidaan suorittaa komentorivillä, voidaan käyttää useita erilaisia työnkulkujärjestelmiä. Korostamme GNU maken käyttöä, jota käytetään tyypillisesti ohjelmistojen kääntämiseen. Makefile koostuu joukko sääntöjä käytetään tekemään ”tavoitteet”. Ontologian kehityksessä Makefiiliä käytetään automatisoituihin tehtäviin, kuten ontologian valmistamiseen julkaisua varten. Tällöin kohteet ovat yleensä ontologiatiedostoja. Sääntöjen ”reseptit” ovat Unix-tyylisiä järjestelmäkäskyjä, jotka suoritetaan ”make” – komennolla.

ROBOTTIKÄSKYJÄ voidaan käyttää ”resepteinä” ”kohteiden”tekemiseen. Tyypillinen työnkulku ei käytä kaikkia robotin 19 komentoa. Esimerkiksi kaikki ontologiaprojektit eivät välttämättä käytä ROBOTTIMALLEJA, joten kaikkien julkaisutyövirtojen ei tarvitse sisältää ”template” – komentoa. Ontologian kehittäjät voivat päättää, mitä komentoja tarvitaan julkaisun suorittamiseen ja rakentaa työnkulun näiden komentojen ympärille. Kuvassa 1 esitetään standardi tapa, jolla valikoima ROBOTTIKOMENTOJA yhdistetään julkaisukulkua varten.

Fig. 1
figure1

robotin julkaisutyöskentely. Tyypillinen release työnkulku käyttäen robotti. Ontologian muokkaustiedosto ONT-edit.pöllö todennetaan ensin laadunvalvontatarkastuksena robotilla ”verify”. Sitten, tekstitiedostoja, jotka sisältävät luettelot ulkoisen ontologian termejä tuontihakemistossa käytetään uudistamaan tuonti moduulit käyttäen ’ote’, varmistaa, että tuonti ovat ajan tasalla. ONT-edit.owl on sitten läpi sarjan robotti komentoja (’reason’,’ relax’,’ reduce’, ja’ annotate’) tuottaa release, ONT.pöllö. Vihdoinkin, ONT.pöllö muunnetaan OBO-muotoon

ensin laadunvalvontatarkistukset suoritetaan ontologian editorien version päälle ”report” tai ”verify”. Nämä etsivät vastaavia luokkia, perään välilyöntejä huomautuksissa, itse-viittaukset, virheellinen ristiviittaus syntaksi, ja puuttuvat etiketit. Tulokset tallennetaan määrättyyn ”raportit/” – hakemistoon. Jos on virhetason rikkomuksia, tehtävä epäonnistuu ja kirjoittaa rikkomukset taulukkoon, jotta ne voidaan helposti tunnistaa. Tämän vaiheen avulla kehittäjät voivat nopeasti nähdä, ovatko uudet muutokset tuoneet ongelmia ontologiaan ja korjata ne ennen julkaisua.

olettaen, että ensimmäinen QC-tarkistusvaihe on suoritettu onnistuneesti, seuraava vaihe on luoda tuontimoduulit. Robotti ” ote ”suoritetaan kunkin merkinnän tuontiluettelossa, joilla on vastaavat termitiedostot (siemenjoukon osalta) ”tuonti/” hakemistossa. Tämä luo kaikki tuontimoduulit samaan ’tuonti/’ hakemistoon. Tämä varmistaa, että kun ontologia julkaistaan ulkoisilla ehdoilla, kaikki ulkoiset termit ovat ajan tasalla lähdeontologioiden julkaistujen versioiden kanssa. Vanhentuneiden ulkoisten termien julkaiseminen voi aiheuttaa sekaannusta, sillä termi näyttää sekä vanhat että uudet yksityiskohdat ontologian hakupalveluissa, kuten Ontobeessa ja ontologian hakupalvelussa . QC-lisätarkistuksia voidaan suorittaa koko ontologian ajan tuonnin yhteydessä käyttämällä ”verify” – komentoa tai suorittamalla ”report” uudelleen.

Viime, tärkeimmät julkaisutuotteet on luotu: OWL-tiedosto ja OBO-tiedosto. OWL-julkaisun luomiseksi editorien tiedosto kulkee ketjutettujen ROBOTTIKOMENTOJEN kautta: ”reason”, ”relax”, ”reduce” ja ”annotate”. Tämä komentosarja auttaa varmistamaan, että julkaistu ontologia on sekä helppo selata ja ymmärtää, että vailla turhia aksioomia. Jos jokin näistä komennoista epäonnistuu, Make-prosessi päättyy vastaavaan virheilmoitukseen. Esimerkiksi jos ontologia on epäjohdonmukainen, ” syy ” – vaihe epäonnistuu. Lopuksi komento ”annotate” lisää version IRI ontologian metatietoihin. Tämä OWL-tiedosto muunnetaan OBO-muotoon, jolloin kaikki kohteet kopioidaan päivättyyn julkaisuhakemistoon.

ontologian Kehittämispaketti

Makefilen luominen kaikkien näiden vaiheiden koordinoimiseksi voi olla haastavaa. Teemme tämän helpommaksi ontologian kehittäjille tarjoamalla ontologian Kehittämispaketin (ODK). Tätä voidaan käyttää GitHub-arkiston luomiseen vakiomuotoisen asettelun mukaisesti ja Vakiomakefile yllä kuvatun työnkulun mukaisesti. Tuloksena oleva GitHub-arkisto konfiguroidaan myös automaattisesti suorittamaan työnkulun validointivaiheet (kuten ”raportti”) Travis CI: n kautta . Työnkulku voidaan toteuttaa myös Dockerin avulla Dockerhubissa julkaistuilla ODK-konteilla . Tämä mahdollistaa työnkulkujen helpon suorittamisen ontologian kehittäjän paikallisella tietokoneella, Travis CI: n avulla tai skaalautuvien työkalujen, kuten Jenkinsin, avulla .

ODK rakentuu robotin varaan ja osoittaa robotin hyödyllisyyden, mutta täysipainoinen keskustelu jää Tämän artikkelin ulkopuolelle.