Articles

ROBOT: a Tool for automatic Ontology Workflows

overzicht

ROBOT biedt een gestandaardiseerde maar configureerbare manier om de levenscyclus van ontologieontwikkeling te ondersteunen via een bibliotheek met veelgebruikte high-level functionaliteit en een command-line interface. ROBOT bouwt voort op OWL API en is compatibel met alle ontologie syntaxes die OWL API ondersteunt: RDF/XML, OWL/XML, Turtle, OWL functionele syntaxis, OWL Manchester syntaxis en OBO-formaat. De broncode is geschreven in Java en is beschikbaar via onze GitHub repository onder een open source (BSD 3) licentie. Het is ook uitgebracht als een Java-bibliotheek op Maven Central. ROBOT code kan worden gebruikt vanuit elke programmeertaal die draait op de Java Virtual Machine (JVM). Het opdrachtregelprogramma is verpakt als een JAR-bestand dat kan worden uitgevoerd op Unix (inclusief macOS en Linux), Windows en andere platforms die worden ondersteund door de JVM. Dit JAR bestand is beschikbaar om te downloaden van de ROBOT GitHub site, samen met platform-specifieke scripts voor het gebruik van ‘robot’ vanaf de opdrachtregel. Installatie-instructies en documentatie zijn beschikbaar vanaf http://robot.obolibrary.org.

architectuur

we hebben eerder de basisarchitectuur van het gereedschap beschreven , die we hier samenvatten.

De ROBOTBRONCODE bestaat uit twee delen: “robotkern” en “robot-commando”. ‘robot-core’ is een bibliotheek die gemeenschappelijke ontologische ontwikkelingstaken ondersteunt, die we ‘operations’ noemen. ‘robot-commando ‘biedt een opdrachtregelinterface, verdeeld in “commando’ s”, die elk een ‘robot-kern’ -bewerking omvatten.

De meeste ROBOT operations packages low-level functionaliteit geleverd door OWL API in high-level functionaliteit gemeenschappelijk voor ontologie ontwikkeling workflows in de OBO gemeenschap. Voor de beste compatibiliteit, we streven ernaar om de exacte versie van OWL API gebruikt door ROBOT met de exacte versie die wordt gebruikt door de nieuwste Protégé release. Sommige operaties gebruiken Apache Jena . Elke operatie werkt met Java-objecten die OWL ontologieën, Owl reasoners, OWL classes, enz. vertegenwoordigen., terwijl elke opdracht werkt met command-line optie strings en bestanden. De commando ‘ s voeren ook verschillende conversie en validatie stappen. De command-line interface gebruikt de Apache Commons CLI library voor het ontleden van commando ‘ s.

elke operatie heeft een set unit tests gebouwd met JUnit die worden uitgevoerd elke keer dat het eindproduct (het JAR-bestand) wordt gegenereerd. Elk commando in ROBOT wordt gedocumenteerd op zijn eigen webpagina (bijvoorbeeld http://robot.obolibrary.org/reason). De webpagina ‘ s zijn geschreven in Markdown formaat en bevatten embedded command-line voorbeelden die worden ontleed en uitgevoerd als onderdeel van onze integratie testen, met de resultaten vergeleken met een “gouden standaard” set van uitgangen. ROBOT ‘ s ‘diff’ functionaliteit wordt gebruikt bij het vergelijken van ontologie bestanden, anders standaard bestand vergelijking wordt gebruikt. Dit zorgt voor de juistheid en consistentie van documentatie en code. De unit tests en integratie testen worden uitgevoerd op elke pull request op de codebase via Travis continuous integration (Travis CI), zodat bijdragen aan de codebase worden geverifieerd.

opdrachten en bewerkingen

ROBOT biedt momenteel 15 bewerkingen (in de ‘robot-core’ – bibliotheek) en 19 opdrachten (voor de opdrachtregelinterface). Sommige commando ‘ s zijn vrij gespecialiseerd, en de meeste ontologie projecten zullen niet gebruik maken van alle van hen. Hier geven we een overzicht van de meest voorkomende en algemene commando ‘ s. In elk geval wordt de kernfunctionaliteit ondersteund door bewerkingen in de ‘robot-core’ bibliotheek, die onafhankelijk van de opdrachtregelinterface kan worden gebruikt vanuit elke programmeertaal die op de JVM draait.

Convert

een verscheidenheid aan OWL ontology formaten worden ondersteund, waaronder RDF/XML, Turtle, Manchester, OBO formaat, en meer. Om verdere interoperabiliteit mogelijk te maken, bevat ROBOT een ‘convert’ commando om te wisselen tussen ondersteunde ontologie formaten. Een volledige lijst van ondersteunde formaten is te vinden in de’ convert ‘ documentatie .

redeneren

redeneren is een van de belangrijkste bewerkingen in ROBOT. Het ‘reason’ Commando omvat twee toepassingen: logische validatie van een ontologie en automatische classificatie. In beide gevallen kunnen gebruikers hun favoriete reasoner kiezen, die wordt gebruikt om gevolgtrekking uit te voeren. Grote ontologieën zoals de Genontologie gebruiken meestal eland, die snel redeneren uitvoert met behulp van het OWL EL-profiel. Kleinere ontologieën met rijkere axiomatisatie, zoals de Relations ontologie, gebruiken meestal een complete OWL DL reasoner zoals heremiet .

wanneer het commando ‘reason’ wordt aangeroepen op een invoerontologie, zal ROBOT een reasoner starten met behulp van de OWL API Reasoner interface. De resulterende gevolgtrekkingen worden gecontroleerd om er zeker van te zijn dat de ontologie logisch coherent is: de ontologie moet consistent zijn en geen onoverkomelijke klassen hebben (d.w.z., klassen die niet kunnen worden geà nstantieerd zonder een inconsistentie te introduceren). Als de ontologie onsamenhangend is, wordt dit gemeld en stopt de uitvoering. ROBOT kan optioneel extra controles uitvoeren, zoals ervoor zorgen dat geen twee klassen worden afgeleid als gelijkwaardig post-redeneren.

als de ontologie consistent is, zal de ROBOT automatische classificatie uitvoeren. Alle directe afgeleide’ subklasse ‘axioma’ s worden toegevoegd aan de ontologie. Het genereren van andere soorten axioma ‘ s kan worden geconfigureerd.

de bewering van alle afgeleide axioma ‘ s is vaak een fundamentele stap in het vrijgaveproces voor Biomedische ontologieën. Veel van deze ontologieklassen beweren slechts één benoemde superklasse (‘een subklasse van B’, waarbij B een andere klasse in de ontologie is), en nul of meer anonieme superklassen en/of anonieme gelijkwaardige klassen (‘een subklasse van/equivalentTo (R sommige B)’, waarbij R een objecteigenschap is). Deze anonieme klassen stellen de reasoner in staat om gevolgtrekkingen te maken, die vervolgens worden beweerd. Daarom, in de release-versie van een ontologie, kan een klasse meer dan één genaamd superclass hebben.

het ‘reason’ commando heeft extra “helper” commando ‘ s. Het “relax” – Commando stelt subklasse axioma ’s voor volgens een eenvoudige structurele regel: een uitdrukking” a equivalentTo (r some B) and … “betekent” een subklasse van R some B”. Dit kan nuttig zijn omdat consumenten van bio-ontologieën vaak verwachten om door deze uitdrukkingen te navigeren, bijvoorbeeld partonomie in GO en Uberon. Het ‘relax’ Commando verlicht de ontologie ontwikkelaar van de noodzaak om deze naast de equivalentie axioma ‘ s te bevestigen, en als zodanig wordt het ook vaak opgenomen in release workflows. Tot slot verwijdert het’ reduce ‘ Commando overbodige subklasse van axioma ‘s, en kan het na’ relax ‘gebruikt worden om dubbele axioma’ s te verwijderen die in die stap werden beweerd.

het commando ‘ materialize ‘gebruikt een Expression Materializing Reasoner (EMR) om afgeleide uitdrukkingen van de vorm’ A subClassOf r some B ‘ te bevestigen . Waar het ‘reason’ Commando afgeleide named superclasses beweert,’ materialize ‘ beweert anonieme superclasses. Dit maakt geen deel uit van de standaard release cyclus, maar kan nuttig zijn voor het creëren van volledige ontologie subsets.

werken met externe ontologieën

de Obo-gieterij heeft tot doel ontologieën modulair te coördineren, zodat Delen van sommige ontologieën kunnen worden gebruikt als bouwstenen voor andere ontologieën. Bijvoorbeeld, wordt de ontologie van de chemische entiteiten ChEBI gebruikt om OWL definities voor metabolische processen en activiteiten in de Genontologie te construeren . Er zijn verschillende strategieën voor het benutten van externe ontologieën en het beheren van afhankelijkheden tussen ontologieën, afhankelijk van de use case.

Extract

het commando ‘extract’ maakt een module aan op basis van een set entiteiten die moeten worden geëxtraheerd (het “zaad”). Er zijn vier verschillende extractiemethoden (zoals gespecificeerd door de optie’ — method’): MIREOT, TOP, BOT en STAR.

De MIREOT-extractiemethode van de ROBOT is gebaseerd op het principe van dezelfde naam en vereist dat een of meer “bodem” – entiteiten worden gespecificeerd. Optioneel kunnen ook een of meer” top ” entiteiten worden gespecificeerd. Het commando haalt alle “onderste” niveau entiteiten en hun voorouders tot het “bovenste” niveau uit de input ontologie. Als er geen” top ” entiteiten worden verstrekt, worden voorouders tot de top-level entiteit (‘owl: Thing’) opgenomen.

de TOP -, BOT-en STERMETHODEN maken gebruik van de OWL API Syntactic Locality Module Extraction (SLME) implementatie, die gegarandeerd alle informatie bevat die logisch relevant is voor de seed set . De BOT methode (“bottom”) omvat alle relaties tussen de input entiteiten en hun voorouders. De TOP methode omvat alle relaties tussen de input entiteiten en hun nakomelingen. Tenslotte omvat de STAR-methode alleen alle relaties tussen input-entiteiten. De ster methode produceert de kleinste uitgangen, terwijl de TOP methode meestal de grootste uitgangen produceert.

om de herkomst van ontologietermen te ondersteunen, heeft het commando ‘extract’ een ‘–annotate-with-source true’ optie die elke geëxtraheerde term annoteert met de URL van de bronontologie waaruit deze is geëxtraheerd.

verwijderen en filteren

de opdrachten’ verwijderen’ en ‘filter’ worden gebruikt voor fijnkorrelige bewerkingen op OWL-axioma ‘ s. ‘remove’ stelt gebruikers in staat om te kiezen welke sets van axioma ‘ s ze willen verwijderen uit een doelontologie. ‘filter’ doet het tegenovergestelde, zodat alleen geselecteerde axioma ‘ s worden gekopieerd van de input naar een nieuwe output ontologie.

deze twee commando ‘ s werken door te beginnen met een seed set van entiteiten, vervolgens verschillende selectors toe te passen om verwante entiteiten te vinden, en uiteindelijk te selecteren welke axioma types te verwijderen of te filteren. We verwachten dat slechts een klein aantal “power users” deze functie direct zal gebruiken, maar deze commando ’s zullen uiteindelijk een basis bieden voor andere hogere commando’ s.

deze opdrachten kunnen worden gebruikt om ontologie-subsets te genereren op basis van annotaties door entiteiten met de opgegeven annotatie te filteren of te verwijderen. OBO Gieterijontologieën annoteren vaak klassen met de eigenschap ‘in subset’ om aan te geven waar een klasse kan worden gebruikt. Met de annotatiekiezer kan een gebruiker een volledige annotatiewaarde of een patroon opgeven dat overeenkomt met reguliere expressie.

samenvoegen

het commando ‘samenvoegen’ combineert twee of meer afzonderlijke invoerontologieën in één ontologie. Het biedt ook de mogelijkheid om alle geïmporteerde ontologieën van een enkele input ontologie samen te voegen in één hoofdontologie, die vaak wordt gebruikt bij het maken van een release.

het samenvoegen van geïmporteerde ontologieën (gespecificeerd door import statements) in de invoer ontologie wordt automatisch uitgevoerd, zodat de gebruiker niet elke geïmporteerde ontologie als invoer hoeft te vermelden. We bieden de optie (‘–collapse-import-closure false’) Om deze functie uit te schakelen, waarbij gebruikers meerdere invoerontologieën kunnen samenvoegen die importverklaringen hebben, maar hun invoer apart willen houden.

Querying en reporting

ontologie workflows omvatten meestal query operaties over de ontologie, het produceren van rapporten die informatief kunnen zijn voor zowel editors als gebruikers van de ontologie-bijvoorbeeld, een tabel van alle klassen plus hun tekstuele definities. Query-bewerkingen kunnen ook worden gebruikt voor validatiecontroles. De SPARQL query language biedt een universele en declaratieve manier voor ontologie beheerders om ontologie rapporten en validatie controles te creëren . ROBOT biedt een handige manier om query ’s uit te voeren met de opdracht’ query’, of validatie controles met behulp van’verify’. Bovendien bevat het’ rapport ‘ – commando een configureerbaar pakket standaard queries voor OBO-projecten dat kan worden gebruikt in elke ontologieworkflow, zonder dat de onderhouder bekend hoeft te zijn met SPARQL.

Query

het commando ‘query’ van de ROBOT voert SPARQL-query ‘ s uit op ontologieën of andere RDF-bronnen. Dit kan worden gebruikt door een ontologie-beheerder om interactieve query ’s uit te voeren, of meer typisch om standaard query’ s op te nemen in een ontologie workflow. De ‘query’ Commando wraps een van de weinige operaties die Apache Jena gebruikt , in plaats van OWL API. De Jena API staat ROBOT toe om een ontologie te laden als een verzameling van triples die door een RDF-Modelobject worden opgenomen. Het biedt een SPARQL query engine voor die modellen, die we gebruiken om alle query ‘ s uit te voeren.

‘SPARQL SELECT’ queries produceren een door komma ‘ s of tabs gescheiden tabel met resultaten. ASK queries produceer een bestand met een Booleaanse waarde. ‘SPARQL CONSTRUCT’ queries produceren een RDF-bestand, dat verder kan worden verwerkt door ROBOT of samengevoegd terug in de geladen ontologie. ‘CONSTRUCT’ s bieden een handige manier van het uitvoeren van “macro” stijl uitbreiding . ‘SPARQL UPDATE’ queries invoegen en / of verwijderen van gegevens direct in een ontologie (als een RDF-Model). ROBOT converteert het bijgewerkte RDF-Model terug naar een OWL API ontology-object om te worden opgeslagen in een van de ondersteunde syntaxen.

het commando ‘ query ‘ondersteunt een optie om geïmporteerde ontologieën als benoemde grafieken te laden met de optie’ –use-graphs’. Als dit is ingesteld op ’true’, kunnen de imports worden opgevraagd als benoemde grafieken (de naam is dat ontology ‘ s IRI) en de standaardgrafiek is een vereniging van alle grafieken. Het gebruik van de standaardgrafiek is vergelijkbaar met het uitvoeren van een “samenvoeging” van alle invoer voorafgaand aan het opvragen, maar het onderscheid tussen invoer zou verloren gaan bij een “samenvoeging”.

Verify

het commando ‘ verify ‘is een variatie op de uitvoering’ SPARQL SELECT’. De queries worden gebruikt om ervoor te zorgen dat een ontologie voldoet aan een vooraf bepaalde set van voorwaarden; bijvoorbeeld, ervoor te zorgen dat geen klasse meerdere tekstuele definities heeft. Gegeven een SELECT query,’ verify ‘ zal slagen (dat wil zeggen, afsluiten met statuscode 0) als er geen resultaten worden geretourneerd. Het zal mislukken (d.w.z., afsluiten met een niet-nul status code) als er resultaten zijn return van de query. Dus, gegeven een SPARQL query die voor ongeldige gegevens selecteert, zal het’ verify ‘ Commando verifiëren dat de ontologie (of andere bron) geen dergelijke ongeldige gegevens bevat.

rapport

het commando ‘ rapport ‘is een uitbreiding van’ query ‘en’ verify ‘ die een reeks configureerbare kwaliteitscontrole (QC) – controles voor een ontologie biedt en een spreadsheet of YAML-uitvoer van de schendingen retourneert. De spreadsheet wordt uitgevoerd in komma-of tab-gescheiden formaat en gemakkelijk voor een gebruiker om te lezen, terwijl de YAML-uitvoer gemakkelijk kan worden ontleed door andere programma ‘ s.

de QC-controles omvatten annotatiecontroles, logische controles en metagegevenscontroles. Annotaties zijn belangrijk om menselijk begrip te vergemakkelijken, zodat het’ rapport ‘ Commando gevallen vindt waar ontbrekende of dubbele annotaties problemen kunnen veroorzaken. Logische controles kijken naar de structurele samenhang en consistentie van de ontologie. Tot slot identificeert ‘rapport’ ontbrekende ontologie metadata, zoals gespecificeerd door OBO Foundry recommendations.

Er zijn drie niveaus van schendingen die worden gemeld: ERROR, WARN, en INFO. Een fout is de meest ernstige, zoals een ontbrekende of dubbele label. Standaard, de’ rapport ‘ opdracht mislukt als er een fout-niveau schendingen, het stoppen van alle geautomatiseerde bouwprocessen. Dit soort schendingen moeten worden vastgesteld voordat een ontologie wordt gepubliceerd. Waarschuwingen-niveau schendingen moeten zo snel mogelijk worden vastgesteld, bijvoorbeeld afgeleide een-op-een klasse equivalenties, die meestal onbedoeld in OBO-projecten. INFO is voor Aanbevolen oplossingen die helpen consistentie te behouden over OBO gieterij ontologieën, zoals het begin van een definitie met een hoofdletter en eindigend met een punt. ‘rapport’ kan worden geconfigureerd met een opdrachtregeloptie om te falen op een ander niveau van overtreding of om nooit te falen, ongeacht eventuele schendingen. We documenteren elke QC-controle met een suggestie voor een handmatige oplossing die de gebruiker kan toepassen.

een standaard “profiel” met rapportniveaus voor elke QC-controle wordt geleverd door ROBOT, maar gebruikers kunnen ook hun eigen profielen maken. In deze profielen kunnen ze de inbreukniveaus van individuele controles wijzigen, bepaalde controles uitsluiten en hun eigen controles toevoegen als SPARQL-query ‘ s. Bijvoorbeeld, sommige ontologieën kunnen een klasse zonder een tekstuele definitie categoriseren als een fout, terwijl anderen dit als een waarschuwing kunnen categoriseren. Een van onze doelen is om te convergeren op een standaardprofiel dat maximaal nuttig is voor de set van alle ontologieën in de OBO Bibliotheek, Het aanmoedigen van de invoering van gemeenschappelijke kwaliteitscontrole controles.

Repair

hoewel de meeste problemen die worden opgeworpen door’ validate ‘en’ report ‘handmatig moeten worden opgelost, biedt ROBOT ook een’ repair ‘ – opdracht die automatisch bepaalde problemen kan oplossen. De huidige implementatie zal annotaties op dubbele axioma ‘ s samenvoegen en verwijzingen naar verouderde klassen bijwerken wanneer ze worden geannoteerd met een voorgestelde vervanging. We zijn van plan om ‘reparatie’ uit te breiden tot een breder scala van veelvoorkomende problemen waarvoor de juiste oplossing duidelijk is.

Templated ontology development

ROBOT biedt een template-driven Ontology term generation system. Gebruikers hebben ook de mogelijkheid om hun eigen term generation systeem aan te sluiten op hun workflow, zoals Dead Simple OWL Design Patterns (DOS-DPs) .

een enorme hoeveelheid gegevens wordt opgeslagen in spreadsheets en databases, en tabelformaten zijn zeer geschikt voor vele soorten gegevens. ROBOT’ s ’template’ Commando stelt gebruikers in staat om tabelgegevens te converteren naar RDF/OWL formaat. Een ROBOT sjabloon is gewoon een tab-separated values (TSV) of comma-separated values (CSV) bestand met een aantal speciale conventies, die worden beschreven in de ROBOT ’template’ documentatie .

deze sjablonen kunnen worden gebruikt voor modulaire ontologieontwikkeling. De template spreadsheets kunnen worden onderhouden als onderdeel van de broncode repository van de ontologie, en in plaats van het ontology bestand direct te bewerken, bewerken ontwikkelaars rijen in de spreadsheet die overeenkomen met termen in de ontologie. Het ’template’ commando wordt vervolgens gebruikt om een module van de ontologie te genereren, die wordt opgenomen als een import statement in de editors’ versie van de ontologie en samengevoegd tijdens het release proces.

Workflows

een workflow bestaat uit een set taken die door een of ander workflowsysteem worden gecoördineerd. Ontologie workflows bestaan uit taken zoals het uitvoeren van QC controles, het bouwen van import modules, redeneren over ontologieën, en het genereren van verschillende ontologie release producten.

ROBOT zelf is geen workflow manager, hoewel het toestaat dat meerdere commando ‘ s aan elkaar worden geketend tot één lang Commando. Bij het Chainen van ROBOT commando ‘ s, wordt de output ontologie van het ene commando direct doorgegeven als de input naar het volgende commando. Chaining kan bijvoorbeeld gebruikt worden om twee commando`s te vervangen die ontologieën samenvoegen en dan redeneren over het samengevoegde product:

‘ robot merge –input ont-1.owl — input ont-2.owl — output samengevoegd.uil.

robot reden — input samengevoegd.owl — output gemotiveerd.uil`.

in plaats van het samengevoegde product aan te maken en ‘reason’ daarover uit te voeren, kan dit gedaan worden met één commando:

`robot merge –input ont-1.owl — input ont-2.owl reason — output reasoned.uil`.

het belangrijkste voordeel van chaining is dat ontologieën niet hoeven te worden geserialiseerd en ontleed tussen elke stap; hetzelfde OWL API ontology object wordt onderhouden in het geheugen en doorgegeven door de keten van ROBOT commando ‘ s. Voor grote ontologieën kan chaining de prestaties van de ROBOT enorm verbeteren.

omdat ROBOTCOMMANDO ‘ s op de opdrachtregel kunnen worden uitgevoerd, kunnen een aantal verschillende workflowsystemen worden gebruikt. We benadrukken het gebruik van GNU Make, dat meestal wordt gebruikt om software te compileren. Een Makefile bestaat uit een set regels die gebruikt worden om “targets”te maken. In Ontologie ontwikkeling, wordt de Makefile gebruikt voor geautomatiseerde taken, zoals het voorbereiden van een ontologie voor release. In dit geval zijn de doelen meestal ontologiebestanden. De “recepten” voor de regels zijn UNIX-achtige systeem commando ‘s, uitgevoerd door het’ make ‘ Commando.

ROBOTCOMMANDO ‘ s kunnen worden gebruikt als de “recepten” om de “targets”te maken. Een typische workflow zal niet alle 19 ROBOTCOMMANDO ‘ s gebruiken. Bijvoorbeeld, niet alle ontologie projecten mogen ROBOTSJABLONEN gebruiken en daarom hoeven niet alle release workflows het ’template’ commando te bevatten. Ontologie ontwikkelaars kunnen beslissen welke commando ’s nodig zijn om de release uit te voeren en een workflow rond deze commando’ s te bouwen. Figuur 1 toont een standaard manier waarop een selectie van ROBOT commando ‘ s wordt gecombineerd voor een release workflow.

Fig. 1
figure1

the ROBOT release workflow. Een typische release workflow met behulp van ROBOT. Het Ontology edit bestand ONT-edit.owl wordt eerst gecontroleerd als kwaliteitscontrole met ROBOT ‘verify’. Vervolgens worden tekstbestanden met lijsten van externe ontologietermen in de importdirectory gebruikt om importmodules te regenereren met behulp van ‘extract’, zodat de import up-to-date is. ONT-edit.owl wordt vervolgens door een reeks ROBOTCOMMANDO’s (‘reason’,’ relax’,’ reduce ‘en’ annotate’) gestuurd om de release te genereren, ONT.uil. Eindelijk, ONT.owl wordt geconverteerd naar OBO-formaat

eerst worden kwaliteitscontroles uitgevoerd over de versie van de ontologie van de redactie met’ report ‘of’ verify’. Deze zoeken naar gelijkwaardige klassen, achterliggende witruimte in annotaties, zelfverwijzingen, onjuiste kruisverwijzingssyntaxis en ontbrekende labels. De resultaten worden opgeslagen in een opgegeven map ‘reports/’. Als er sprake is van schendingen op FOUTNIVEAU, zal de taak mislukken en de schendingen naar een tabel schrijven, zodat ze gemakkelijk kunnen worden geïdentificeerd. Deze stap stelt ontwikkelaars in staat om snel te zien of nieuwe veranderingen problemen binnen de ontologie hebben geïntroduceerd en ze op te lossen voordat ze worden vrijgegeven.

ervan uitgaande dat de eerste QC-controlestap met succes is voltooid, is de volgende stap het maken van de importmodules. De ROBOT ‘ extract ‘wordt uitgevoerd voor elke vermelding in een lijst van import, die overeenkomstige term bestanden (voor de seed set) in de’ import/ ‘ directory. Hiermee worden alle importmodules in dezelfde map ‘import/’ aangemaakt. Dit zorgt ervoor dat wanneer een ontologie wordt vrijgegeven met externe termen, alle externe termen up-to-date zijn met de vrijgegeven versies van de bronontologieën. Het vrijgeven van out-of-date externe termen kan verwarring veroorzaken, omdat de term zowel de oude als nieuwe details in Ontologie zoekdiensten zoals Ontobee en de Ontology Lookup Service zal tonen . Extra QC controles kunnen worden uitgevoerd over de volledige ontologie met import met behulp van de’ verify ‘commando of door het uitvoeren van’ report ‘ opnieuw.

Laatste worden de belangrijkste release producten aangemaakt: het OWL-bestand en het OBO-bestand. Om de OWL release te maken, wordt het bestand van de editors door een reeks geketende ROBOTCOMMANDO’ s doorgegeven: ‘reason’, ‘relax’, ‘reduce’ en ‘annotate’. Deze reeks commando ’s helpt om ervoor te zorgen dat de vrijgegeven ontologie is zowel gemakkelijk te bladeren en te begrijpen, evenals vrij van redundante axioma’ s. Als een van deze opdrachten mislukt, wordt het Make-proces beëindigd met de bijbehorende foutmelding. Bijvoorbeeld, als een ontologie onsamenhangend is zal de’ reden ‘ stap mislukken. Tenslotte voegt het’ annotate ‘ commando de versie IRI toe aan de ontologie metadata. Dit OWL-bestand wordt vervolgens geconverteerd naar OBO-indeling, waarna alle doelen worden gekopieerd naar een gedateerde release-map.

de Ontology Development Kit

het maken van een Makefile om al deze stappen te coördineren kan een uitdaging zijn. We maken dit makkelijker voor ontologieontwikkelaars door een Ontology Development Kit (ODK) aan te bieden . Dit kan gebruikt worden om een GitHub repository te maken volgens een standaard lay-out, met een standaard Makefile volgens de hierboven beschreven workflow. De resulterende GitHub repository zal ook automatisch geconfigureerd worden om de validatiestappen (zoals ‘rapport’) van de workflow uit te voeren via Travis CI . De workflow kan ook worden uitgevoerd met Docker met ODK containers vrijgegeven op Dockerhub . Dit maakt eenvoudige uitvoering van workflows op de lokale computer van een ontologie ontwikkelaar, met Travis CI, of door schaalbare-build tools zoals Jenkins .

ODK bouwt voort op ROBOT en demonstreert ROBOT ‘ s utility, maar een volledige discussie valt buiten het bereik van dit artikel.