Articles

ROBOT: et værktøj til automatisering af Ontologiarbejdsgange

oversigt

ROBOT giver en standardiseret, men alligevel konfigurerbar måde at understøtte ontologiudviklingslivscyklussen via et bibliotek med fælles funktionalitet på højt niveau og en kommandolinjegrænseflade. ROBOT bygger på ugle API og er kompatibel med alle ontologi syntakser, ugle API understøtter: RDF/HML, ugle/HML, skildpadde, ugle funktionel syntaks, ugle Manchester syntaks, og OBO-format. Kildekoden er skrevet i Java og er tilgængelig fra vores GitHub repository under en open source (BSD 3) licens. Det frigives også som et Java-bibliotek på Maven Central. ROBOTKODE kan bruges fra ethvert programmeringssprog, der kører på Java Virtual Machine (JVM). Kommandolinjeværktøjet er pakket som en JAR-fil, der kan køres på , vinduer og andre platforme, der understøttes af JVM. Denne JAR-fil kan hentes fra ROBOT GitHub-siden sammen med platformspecifikke scripts til brug af ‘robot’ fra kommandolinjen. Installationsvejledning og dokumentation er tilgængelig fra http://robot.obolibrary.org.

arkitektur

Vi har tidligere beskrevet værktøjets grundlæggende arkitektur , som vi opsummerer her.

ROBOTKILDEKODEN består af to dele: ‘robot-core’ og ‘robot-command’. ‘robot-core’ er et bibliotek, der understøtter fælles ontologiudviklingsopgaver, som vi kalder “operationer”. ‘robot-command ‘giver en kommandolinjegrænseflade opdelt i “kommandoer”, som hver især ombryder en’ robot-core ‘ -operation.

de fleste robotoperationer pakker funktionalitet på lavt niveau leveret af ugle API til funktionalitet på højt niveau, der er fælles for ontologiudviklingsarbejdsgange i OBO-samfundet. For den bedste kompatibilitet, vi sigter mod at matche den nøjagtige version af ugle API, der bruges af ROBOT, med den nøjagtige version, der bruges af den nyeste prot Larsg-udgivelse. Nogle operationer bruger Apache Jena . Hver operation arbejder med Java-objekter, der repræsenterer ugle ontologier, ugle reasoners, ugle klasser osv., mens hver kommando arbejder med kommandolinjestrenge og filer. Kommandoerne udfører også forskellige konverterings-og valideringstrin. Kommandolinjegrænsefladen bruger Apache Commons CLI-biblioteket til at analysere kommandoer.

hver operation har et sæt enhedstest bygget med JUnit, der udføres hver gang det endelige produkt (JAR-filen) genereres. Hver kommando i ROBOT er dokumenteret på sin egen hjemmeside (f.eks. http://robot.obolibrary.org/reason). Siderne er skrevet i Markeringsformat og indeholder indlejrede kommandolinjeeksempler, der analyseres og udføres som en del af vores integrationstest, med resultaterne sammenlignet med et “guldstandard” sæt output. ROBOT’ diff ‘ funktionalitet bruges, når man sammenligner ontologi filer, ellers standard fil sammenligning bruges. Dette hjælper med at sikre korrekthed og konsistens i dokumentation og kode. Enhedstestene og integrationstestene udføres på enhver pull-anmodning på kodebasen via Travis continuous integration (Travis CI) , så Bidrag til kodebasen verificeres.

kommandoer og operationer

ROBOT leverer i øjeblikket 15 operationer (i ‘robot-core’-biblioteket) og 19 kommandoer (til kommandolinjegrænsefladen). Nogle kommandoer er ret specialiserede, og de fleste ontologiprojekter vil ikke gøre brug af dem alle. Her giver vi et overblik over de mest almindelige og generelle kommandoer. I hvert tilfælde understøttes kernefunktionaliteten af operationer i ‘robot-core’ biblioteket, der kan bruges uafhængigt af kommandolinjegrænsefladen fra ethvert programmeringssprog, der kører på JVM.

konverter

en række ugle ontologi formater understøttes, herunder RDF / HML, skildpadde, Manchester, OBO format og meget mere. For at muliggøre yderligere interoperabilitet inkluderer ROBOT en’ konverter ‘ kommando til at skifte mellem understøttede ontologiformater. En komplet liste over understøttede formater findes i dokumentationen’ konverter’.

ræsonnement

ræsonnement er en af de vigtigste operationer i ROBOT. Kommandoen ‘årsag’ dækker to anvendelser: logisk validering af en ontologi og automatisk klassificering. I begge tilfælde kan brugerne vælge deres foretrukne reasoner, som bruges til at udføre inferens. Store ontologier såsom genet ontologi bruger typisk elg, som udfører ræsonnement hurtigt ved hjælp af ugle EL-profilen. Mindre ontologier med rigere aksiomatisering, såsom Relations ontologi, bruger typisk en komplet ugle DL reasoner såsom eremit .

når kommandoen ‘reason’ påberåbes på en input ontologi, vil ROBOT starte en reasoner ved hjælp af ugle API Reasoner interface. De resulterende slutninger kontrolleres for at sikre, at ontologien er logisk sammenhængende: ontologien skal være konsistent og ikke have nogen utilfredsstillende klasser (dvs., klasser, der ikke kan instantieres uden at indføre en inkonsekvens). Hvis ontologien er usammenhængende, rapporteres dette, og udførelsen stopper. ROBOT kan eventuelt udføre yderligere kontrol, såsom at sikre, at der ikke udledes to klasser til at være tilsvarende post-ræsonnement.

Hvis ontologien er konsistent, udfører ROBOT automatisk klassificering. Alle direkte udledte’ underklasse ‘ aksiomer føjes til ontologien. Generering af andre typer aksiomer kan konfigureres.påstanden om alle udledte aksiomer er ofte et grundlæggende trin i frigivelsesprocessen for Biomedicinske ontologier. Mange af disse ontologiklasser hævder kun en enkelt navngivet superklasse (‘en underklasse B’, hvor B er en anden klasse i ontologien) og nul eller flere anonyme superklasser og/eller anonyme ækvivalente klasser (‘en underklasse/ækvivalentto (R nogle B)’, hvor R er en objektegenskab). Disse anonyme klasser tillader reasoner at foretage slutninger, som derefter hævdes. Derfor kan en klasse i udgivelsesversionen af en ontologi have mere end en navngivet superklasse.

kommandoen ‘årsag’ har yderligere “hjælper” – kommandoer. Kommandoen ‘ slap af ‘hævder indebar underklasse af aksiomer i henhold til en simpel strukturel regel: et udtryk’ a ækvivalentto (R nogle B) og … ‘indebærer’en underklasse af R nogle B’. Dette kan være nyttigt, da forbrugere af bio-ontologier ofte forventer at navigere i disse udtryk, f.eks. Kommandoen ‘slap af’ lindrer ontologiudvikleren fra behovet for at hævde disse ud over ækvivalensaksiomerne, og som sådan er det også ofte inkluderet i frigivelsesarbejdsgange. Endelig fjerner kommandoen ‘ reducer ‘overflødige underklasseaf aksiomer og kan bruges efter’ slappe af ‘ til at fjerne duplikataksiomer, der blev hævdet i dette trin.

kommandoen ‘materialisere’ bruger et udtryk materialiserende Reasoner (EMR) at hævde udledte udtryk for formularen ‘en underklasse af R nogle B’ . Hvor kommandoen ‘ reason ‘hævder udledte navngivne superklasser, hævder’ materialisere ‘ anonyme superklasser. Dette er ikke en del af standardudgivelsescyklussen, men kan være gavnligt for at skabe komplette ontologiundersæt.

arbejde med eksterne ontologier

OBO-støberiet sigter mod at koordinere ontologier på en modulær måde, således at dele af nogle ontologier kan bruges som byggesten til andre ontologier. For eksempel, ChEBI kemiske enheder ontologi bruges til at konstruere UGLEDEFINITIONER for metaboliske processer og aktiviteter i genet ontologi . Der er en række forskellige strategier til at udnytte eksterne ontologier og styre afhængigheder mellem ontologier, afhængigt af brugssagen.

Uddrag

kommandoen ‘Uddrag’ opretter et modul baseret på et sæt enheder, der skal udtrækkes (“frøet”). Der er fire forskellige ekstraktionsmetoder (som specificeret af indstillingen ‘–method’): MIREOT, TOP, BOT og STAR.

robotens MIREOT-ekstraktionsmetode er baseret på princippet med samme navn og kræver, at en eller flere “bund” enheder er specificeret. Eventuelt kan en eller flere” top ” enheder også specificeres. Kommandoen udtrækker alle enheder på” bund ” niveau og deres forfædre op til det “øverste” niveau fra input ontologi. Hvis der ikke leveres nogen” top ” – enheder, er forfædre op til enheden på øverste niveau (‘ugle: ting’) inkluderet.

top -, BOT-og STJERNEMETODERNE gør brug af implementeringen af ugle API syntaktisk Lokalitetsmodulekstraktion (SLME), som garanteret fanger al information, der er logisk relevant for frøsættet . BOTMETODEN (“bund”) inkluderer alle forhold mellem inputenhederne og deres forfædre. Den øverste metode inkluderer alle forhold mellem inputenhederne og deres efterkommere. Endelig inkluderer STJERNEMETODEN kun alle forhold mellem inputenheder. STJERNEMETODEN producerer de mindste udgange, mens den øverste metode typisk producerer de største udgange.

for at understøtte ontologiudtryk herkomst har kommandoen ‘Uddrag’ en ‘–annotate-med-source true’ mulighed, der vil kommentere hvert ekstraheret udtryk med URL ‘ en til kildeontologien, som den udvindes fra.

Fjern og filtrer

kommandoerne ‘fjern’ og ‘filter’ bruges til finkornede operationer på UGLEAKSIOMER. ‘fjern’ giver brugerne mulighed for at vælge, hvilke sæt aksiomer de ønsker at fjerne fra en mål ontologi. ‘filter’ gør det modsatte, så kun udvalgte aksiomer kopieres fra input til en ny output ontologi.

disse to kommandoer fungerer ved at starte med et frøsæt af enheder, derefter anvende forskellige vælgere til at finde relaterede enheder og til sidst vælge, hvilke aksiomtyper der skal fjernes eller filtreres. Vi forventer, at kun et lille antal “strømbrugere” bruger denne funktion direkte, men disse kommandoer vil i sidste ende danne grundlag for andre kommandoer på højere niveau.

disse kommandoer kan bruges til at generere ontologi undergrupper baseret på anmærkninger ved enten at filtrere efter eller fjerne enheder med den angivne ANMÆRKNING. OBO Foundry ontologier kommenterer ofte klasser med egenskaben’ i delmængde ‘ for at specificere, hvor en klasse kan bruges. Annotationsvælgeren giver en bruger mulighed for at angive en fuld annotationsværdi eller et mønster, der skal matche ved hjælp af regulært udtryk.

Flet

kommandoen ‘Flet’ kombinerer to eller flere separate input-ontologier i en enkelt ontologi. Det giver også mulighed for at fusionere alle importerede ontologier af en enkelt input ontologi i en hoved ontologi, som ofte bruges, når man opretter en udgivelse.

fletning af importerede ontologier (specificeret af importopgørelser) i input-ontologien udføres automatisk, så brugeren ikke behøver at liste hver importeret ontologi som input. Vi tilbyder muligheden (‘–collapse-import-closure false’) for at slå denne funktion fra, hvilket understøtter tilfælde, hvor brugere kan flette flere inputontologier, der har importopgørelser, men ønsker at holde deres import adskilt.

forespørgsel og rapportering

ontologi-arbejdsgange inkluderer typisk forespørgselsoperationer over ontologien og producerer rapporter, der kan være informative for både redaktører og brugere af ontologien-for eksempel en tabel over alle klasser plus deres tekstdefinitioner. Forespørgselsoperationer kan også bruges til valideringskontrol. Sprog for ontologi giver en universel og deklarativ måde for ontologi-vedligeholdere at oprette ontologirapporter og valideringskontrol . ROBOT giver en bekvem måde at udføre forespørgsler med kommandoen ‘forespørgsel’ eller valideringskontrol ved hjælp af ‘Bekræft’. Derudover indeholder kommandoen’ rapport ‘ en konfigurerbar pakke med STANDARDFORESPØRGSLER til OBO-projekter, der kan bruges i enhver ontologiarbejdsgang uden at kræve, at vedligeholderen er fortrolig med SPARCL.

forespørgsel

robotens kommando ‘forespørgsel’ kører Sparkl-forespørgsler på ontologier eller andre RDF-ressourcer. Dette kan bruges af en ontologivedligeholder til enten at udføre interaktive forespørgsler eller mere typisk til at inkludere standardforespørgsler i en ontologiarbejdsgang. Kommandoen ‘forespørgsel’ indpakker en af de få operationer , der bruger Apache Jena, snarere end ugle API. Jena API giver ROBOT mulighed for at indlæse en ontologi som en samling af tredobler indeholdt af et RDF-Modelobjekt. Det giver en Sparkl-forespørgselsmotor til disse modeller, som vi bruger til at køre alle forespørgsler.forespørgsler giver en komma-eller tabulatortabel med resultater. Spørg forespørgsler producerer en fil med en boolsk værdi. Forespørgsler producerer en RDF-fil, som kan behandles yderligere af ROBOT eller flettes tilbage til den indlæste ontologi. ‘CONSTRUCT’ S giver en bekvem måde at udføre “Makro” stil ekspansion . Forespørgsler indsætter og / eller fjerner data direkte i en ontologi (som en RDF-Model). ROBOT konverterer den opdaterede RDF Model tilbage til en ugle API ontologi objekt, der skal gemmes i nogen af de understøttede syntakser.kommandoen’ forespørgsel ‘ understøtter en mulighed for at indlæse importerede ontologier som navngivne grafer med indstillingen ‘–use-graphs’. Hvis dette er indstillet til ‘sand’, kan importen forespørges som navngivne grafer (navnet er ontologiens IRI), og standardgrafen er en forening af alle grafer. Brug af standardgrafen svarer til at gennemføre en ‘fusion’ af al import inden forespørgsel, men sondringen mellem import ville gå tabt i en ‘fusion’.

Bekræft

kommandoen ‘Bekræft’ er en variation af udførelsen ‘SPARCL SELECT’. Forespørgslerne bruges til at sikre, at en ontologi er i overensstemmelse med et forudbestemt sæt betingelser; for eksempel at sikre, at ingen klasse har flere tekstdefinitioner. Givet en UDVÆLGELSESFORESPØRGSEL vil’ Bekræft ‘ lykkes (dvs.afslut med statuskode 0), hvis der ikke returneres resultater. Det vil mislykkes (dvs., afslut med en ikke-nul statuskode), hvis nogen resultater vender tilbage fra forespørgslen. Så i betragtning af en Sparkl-forespørgsel, der vælger ugyldige data, vil kommandoen ‘Bekræft’ verificere, at ontologien (eller anden ressource) ikke indeholder sådanne ugyldige data.

rapport

kommandoen ‘rapport’ er en udvidelse af ‘forespørgsel’ og ‘verificer’, der giver en række konfigurerbare kvalitetskontrolkontroller for en ontologi og returnerer et regneark eller YAML-output af overtrædelserne. Regnearket udsendes i enten komma-eller fanesepareret format og er let for en bruger at læse, mens YAML-output let kan analyseres af andre programmer.kontrol af kvalitetskontrol omfatter annotationskontrol, logiske kontroller og metadatakontrol. Kommentarer er vigtige for at lette menneskelig forståelse, så kommandoen ‘rapport’ finder tilfælde, hvor manglende eller duplikerede kommentarer kan forårsage problemer. Logiske kontroller ser på ontologiens strukturelle sammenhæng og konsistens. Endelig identificerer’ Rapport ‘ Manglende ontologimetadata, som specificeret i OBO Foundry-anbefalinger.

der er tre niveauer af overtrædelser, der rapporteres: fejl, advarsel og INFO. En fejl er den mest alvorlige, såsom en manglende eller duplikeret etiket. Som standard mislykkes kommandoen’ rapport’, hvis der er overtrædelser på fejlniveau, hvilket stopper automatiserede byggeprocesser. Disse typer overtrædelser skal rettes, inden der offentliggøres en ontologi. Overtrædelser på advarselsniveau bør rettes så hurtigt som muligt, f.eks. udledes en-til-en klasse ækvivalenser, som typisk er utilsigtede i OBO-projekter. INFO er til anbefalede rettelser, der hjælper med at opretholde konsistens på tværs af OBO Foundry ontologier, såsom at starte en definition med et stort bogstav og slutte med en periode. ‘rapport’ kan konfigureres med en kommandolinjeindstilling til at mislykkes på et andet overtrædelsesniveau eller aldrig mislykkes, uanset eventuelle overtrædelser. Vi dokumenterer hver kvalitetskontrol med et forslag til en manuel løsning, som brugeren kan anvende.

en standard “profil” med rapportniveauer for hver kvalitetskontrol leveres af ROBOT, men brugerne er også i stand til at oprette deres egne profiler. I disse profiler kan de ændre overtrædelsesniveauerne for individuelle checks, vælge at ekskludere visse checks og tilføje deres egne checks som SPARCL-forespørgsler. For eksempel kan nogle ontologier kategorisere en klasse, der mangler en tekstdefinition, som en fejl, mens andre kan kategorisere dette som en advarsel. Et af vores mål er at konvergere på en standardprofil, der er maksimalt nyttig til sættet af alle ontologier i OBO-biblioteket, tilskynde til vedtagelse af fælles kvalitetskontrolkontrol.

Repair

selvom de fleste problemer, der rejses af ‘valider’ og ‘report’, skal løses manuelt, giver ROBOT også en ‘repair’ – kommando, der automatisk kan løse visse problemer. Den aktuelle implementering vil flette anmærkninger på duplikataksiomer og opdatere referencer til forældede klasser, når de kommenteres med en foreslået udskiftning. Vi har til hensigt at udvide ‘reparation’ til en bredere vifte af almindelige problemer, hvor den korrekte løsning er klar.

Templated Ontology development

ROBOT giver en skabelon-drevet ontologi sigt generation system. Brugere har også mulighed for at tilslutte deres eget term generationssystem til deres arbejdsgang, såsom Dead Simple ugle Design Patterns (DOS-DPS) .

en enorm mængde data gemmes i regneark og databaser, og tabelformater er velegnede til mange slags data. ROBOT ‘ s ‘skabelon’ kommando giver brugerne mulighed for at konvertere tabeldata til RDF/ugle format. En ROBOTSKABELON er simpelthen en tab-separerede værdier (TSV) eller kommaseparerede værdier (CSV) fil med nogle specielle konventioner, som er skitseret i robotens ‘skabelon’ dokumentation .

disse skabeloner kan bruges til modulær ontologiudvikling. Skabelonarkene kan opretholdes som en del af ontologiens kildekodelager, og i stedet for direkte redigering af ontologifilen Redigerer udviklere rækker i regnearket, der svarer til udtryk i ontologien. Kommandoen ‘skabelon’ bruges derefter til at generere et modul af ontologien, som er inkluderet som en importerklæring i redaktørens version af ontologien og fusioneret under frigivelsesprocessen.

arbejdsprocesser

en arbejdsproces består af et sæt opgaver, der koordineres af et eller andet arbejdsgangssystem. Ontologi-arbejdsgange består af opgaver såsom udførelse af kvalitetskontrol, opbygning af importmoduler, ræsonnement over ontologier og generering af forskellige ontologiudgivelsesprodukter.

ROBOT selv er ikke en arbejdsgang manager, selv om det tillader flere kommandoer, der skal lænket sammen til en lang kommando. Når man kæder ROBOTKOMMANDOER, sendes output-ontologien fra en kommando direkte som input til den næste kommando. For eksempel kan kæde bruges til at erstatte to kommandoer, der fletter ontologier og derefter resonerer over det flettede produkt:

`robotfletning-input ont-1.ugle — input ont-2.ugle-output fusioneret.ugle.

robot reason-input fusioneret.ugle-output begrundet.ugle`.

i stedet for at oprette det fusionerede produkt og køre ‘reason’ over det, kan det gøres i en kommando:

`robotfletning-input ont-1.ugle — input ont-2.ugle årsag-output begrundet.ugle`.

den vigtigste fordel ved kæde er, at ontologier ikke behøver at blive serialiseret og analyseret mellem hvert trin; det samme ugle API ontology-objekt opretholdes i hukommelsen og føres gennem kæden af ROBOTKOMMANDOER. For store ontologier kan kæde betydeligt forbedre robotens ydeevne.

da ROBOTKOMMANDOER kan udføres på kommandolinjen, kan der bruges en række forskellige arbejdsgangssystemer. Vi fremhæver brugen af GNU Make, som typisk bruges til at kompilere programmer. En Makefile består af et sæt regler, der bruges til at lave “mål”. I ontologiudvikling bruges Makefilen til automatiserede opgaver, såsom at forberede en ontologi til frigivelse. I dette tilfælde er målene normalt ontologifiler. “Opskrifterne” til reglerne er systemkommandoer i unik stil, udført af kommandoen “make”.

ROBOTKOMMANDOER kan bruges som” opskrifter “til at lave”mål”. En typisk arbejdsgang bruger ikke alle 19 af ROBOTKOMMANDOERNE. For eksempel kan ikke alle ontologiprojekter bruge ROBOTSKABELONER, og derfor behøver ikke alle frigivelsesarbejdsgange at inkludere kommandoen ‘skabelon’. Ontology-udviklere kan beslutte, hvilke kommandoer der er nødvendige for at udføre frigivelsen og opbygge en arbejdsgang omkring disse kommandoer. Figur 1 viser en standard måde, hvorpå et udvalg af ROBOT kommandoer kombineres til en frigivelse arbejdsgang.

Fig. 1
figure1

robotudløsningsarbejdsprocessen. En typisk frigivelse arbejdsgang ved hjælp af ROBOT. Ontology edit file ONT-edit.ugle verificeres først som en kvalitetskontrolcheck med ROBOT ‘verify’. Derefter bruges tekstfiler, der indeholder lister over eksterne ontologiudtryk i importkataloget, til at regenerere importmoduler ved hjælp af ‘uddrag’, hvilket sikrer, at importen er opdateret. ONT-Rediger.ugle føres derefter gennem en række ROBOTKOMMANDOER (‘grund’, ‘slap af’, ‘reducer’ og ‘kommenter’) for at generere frigivelsen, ONT.ugle. Endelig, ONT.ugle konverteres til OBO-format

først køres kvalitetskontrolkontroller over redaktørernes version af ontologien med’ rapport ‘eller’ bekræft’. Disse ser efter ækvivalente klasser, efterfølgende mellemrum i kommentarer, selvreferencer, forkert krydsreferencesyntaks og manglende etiketter. Resultaterne gemmes i en specificeret ‘rapporter/’ mappe. Hvis der er overtrædelser på fejlniveau, mislykkes opgaven og skriver overtrædelserne til en tabel, så de let kan identificeres. Dette trin giver udviklere mulighed for hurtigt at se, om nye ændringer har introduceret problemer inden for ontologien og rette dem, før de frigives.

Hvis det første trin for kontrol af kvalitetskontrol er gennemført, er det næste trin at oprette importmodulerne. Robotten ‘ uddrag ‘køres for hver post i en liste over import, som har tilsvarende term filer (for frø sæt) i’ import/ ‘ mappe. Dette skaber alle importmodulerne i den samme’ import/ ‘ mappe. Dette sikrer, at når en ontologi frigives med eksterne udtryk, alle eksterne udtryk er opdaterede med de frigivne versioner af kildeontologierne. Frigivelse af forældede eksterne udtryk kan forårsage forvirring, da udtrykket viser både de gamle og nye detaljer i ontologisøgningstjenester som Ontobee og Ontologisøgningstjenesten . Yderligere kontrol af kvalitetskontrol kan køres over den fulde ontologi med import ved hjælp af kommandoen ‘Bekræft’ eller ved at køre ‘rapport’ igen.

Sidst oprettes de vigtigste frigivelsesprodukter: UGLEFILEN og OBO-filen. For at oprette UGLEUDGIVELSEN sendes Redaktørens fil gennem en række kædede ROBOTKOMMANDOER:’ grund’,’ slap af’,’ reducer ‘og’ kommenter’. Denne række kommandoer hjælper med at sikre, at den frigivne ontologi både er let at gennemse og forstå, såvel som fri for overflødige aksiomer. Hvis nogen af disse kommandoer mislykkes, afsluttes Fabrikatprocessen med den tilsvarende fejlmeddelelse. For eksempel, hvis en ontologi er usammenhængende, vil ‘grunden’ trin mislykkes. Endelig tilføjer kommandoen ‘annotate’ versionen IRI til ontologimetadataene. Denne UGLEFIL konverteres derefter til OBO-format, på hvilket tidspunkt alle mål kopieres til en dateret udgivelsesmappe.

Ontology Development Kit

oprettelse af en Makefile til at koordinere alle disse trin kan være udfordrende. Vi gør dette lettere for ontologiudviklere ved at levere et ONTOLOGIUDVIKLINGSSÆT (ODK) . Dette kan bruges til at oprette en GitHub repository efter en standard layout, med en standard Makefile efter arbejdsgangen beskrevet ovenfor. Det resulterende GitHub-arkiv konfigureres også automatisk til at køre valideringstrinnene (såsom ‘rapport’) for arbejdsgangen via Travis CI . Arbejdsgangen kan også udføres ved hjælp af Docker med ODK-containere frigivet på Dockerhub . Dette muliggør nem udførelse af arbejdsgange på enten den lokale computer af en ontologi udvikler, med Travis CI, eller gennem skalerbare-build værktøjer såsom Jenkins .

ODK bygger på ROBOT og demonstrerer robotens nytte, men en fuld diskussion er uden for rammerne af denne artikel.