Aceasta repo contine atat o specificatie pentru un format JSON / YAML pentru schimbul de ontologie, plus un model de obiect Java de referinta si convertor OWL.

Nucleul este un model de grafic simplu care permite exprimarea relatiilor ontologice, cum ar fi membrele anterioare SubClassOf membr:

“noduri”: [{“id”: “UBERON: 0002102”, “lbl”: “membra anterioara”}, {“id”: “UBERON: 0002101”, “lbl”: “membru”}], “margini”: [{“subj”: “UBERON: 0002102”, “pred”: “is_a”, “obj”: “UBERON: 0002101”}]

Campurile optionale suplimentare permit o expresivitate sporita, fara a adauga complexitate nucleului.

Pentru mai multe exemple, consultati exemple / in aceasta repo – sau pentru exemple din lumea reala, aceasta unitate. In curand speram sa avem acest lucru incorporat in instrumentele de lansare si vizibil la PURL-uri standard.

Pentru schema JSON, consultati schema / folderul

Daca sunteti familiarizat cu OWL, treceti direct la specificatia de mapare OWL

Motivatie

In prezent, daca un dezvoltator trebuie sa adauge ontologii intr-un cadru sau instrument software, exista doua optiuni pentru formate: obo-format si OWL (tehnic obo este o sintaxa OWL, dar in scopuri pragmatice le putem separa).

Aceasta prezinta o serie de probleme: obo este simplu, dar isi foloseste propria sintaxa, rezultand o proliferare de analizoare ad-hoc care sunt in general incomplete. De asemenea, este mai putin expresiv decat OWL (dar suficient de expresiv pentru majoritatea sarcinilor de bioinformatica). OWL este un standard W3, dar poate fi dificil de lucrat. In mod obisnuit, OWL este stratificat pe RDF, dar bibliotecile de nivel RDF pot fi prea scazute pentru a functiona (in plus: rdflib pentru Python este foarte lent). Pentru limbajele JVM, poate fi folosit OWLAPI, dar acest lucru poate fi abstract pentru multe sarcini de rutina, ducand la o varietate de simplificari ale fatadelor, fiecare cu propriile ipoteze (de exemplu, BRAIN).

Prezentare generala

Graficele OBO (OG) sunt un mod orientat spre grafic de a reprezenta ontologii sau portiuni de ontologii intr-un format JSON (sau YAML) prietenos cu dezvoltatorii. Un consumator tipic poate fi un dezvoltator Python care utilizeaza ontologii pentru a imbunatati un instrument de analiza, cautare / infrastructura de baze de date etc.

Modelul poate fi inteles ca doua niveluri: un nivel de baza , care este destinat sa satisfaca 99% din cazurile de utilizare a bioinformaticii si este, in esenta, un model de noduri si margini asemanator citoscapului. Pe deasupra se afla un nivel expresiv care permite reprezentarea unor axiome mai esoterice OWL.

Grafice OBO de baza (BOG)

Modelul de baza este un grafic etichetat cu proprietati, comparabil cu modelul de date care sta la baza bazelor de date ale graficului, cum ar fi Neo4j. Formatul este acelasi cu BBOP-Graphs.

Forma de baza este:

“grafice”: [{“noduri”: […], “margini”: [],}, …]

Iata un exemplu de subgraf al lui Uberon format din patru noduri, doua parti si doua margini is_a:

{“nodes”: [{“id”: “UBERON: 0002470”, “lbl”: “regiunea autopodului”}, {“id”: “UBERON: 0002102”, “lbl”: “forelimb”}, {“id “:” UBERON: 0002101 “,” lbl “:” membru “}, {” id “:” UBERON: 0002398 “,” lbl “:” manus “}],” margini “: [{” subj “:” UBERON : 0002102 “,” pred “:” is_a “,” obj “:” UBERON: 0002101 “}, {” subj “:” UBERON: 0002398 “,” pred “:” part_of “,” obj “:” UBERON: 0002102 “}, {” subj “:” UBERON: 0002398 “,” pred “:” is_a “,” obj “:” UBERON: 0002470 “}, {” subj “:” UBERON: 0002470 “,”pred”: “part_of”, “obj”: “UBERON: 0002101”}]}

Formele scurte din cele de mai sus (de exemplu, UBERON: 0002470 si part_of) sunt mapate la PURL neechivoce utilizand un context JSON-LD (vezi mai jos).

Marginile pot fi, de asemenea, decorate cu obiecte Meta (corespunzatoare reificarii in RDF / OWL sau proprietati de margine in bazele de date grafice).

In mod formal, multimea de margini corespunde OWL SubClassOf axiome de doua forme:

  1. C SubClassOf D (aka is_a in format obo)
  2. C SubClassOf P some D (aka relatie in format obo)

Pentru o descriere completa, consultati schema JSON de mai jos

Nodurile colecteaza toate adnotarile OWL despre o entitate.

De obicei, nodurile vor fi clase OWL, dar pot fi, de asemenea, indivizi OWL sau proprietati OWL (caz in care marginile pot corespunde, de asemenea, cu axiomele SubPropertyOf)

Nodurile, muchiile si graficele pot avea meta obiecte optionale pentru metadate suplimentare (sau adnotari in vorbire OWL).

follada por su jefe
maduras enculadas sexogratis
coños gordos sexo gratis
mujeres normales desnudas videos sexo
michelle jenner desnuda mia kalifa
rebeca linares masaje porno abuelas
sol sanchez actriz porno videos de sexo gratis
coñosxxx pprno
asiaticasxxx guarras españolas
putasfollando nicolette shea
videos porno caseros en español videos sexo gratis
casting porno español zofilia
madres haciendo pajas a sus hijos abuelas porno
porno retro incesto videos guarros
swingers españoles maduras en playas nudistas
negras tetonas videos de investo
maduras españolas amateur video sexo
culos porno coñitos
filme porno romanesti guarras.com
pilladas españolas follando videos guarros

Iata un exemplu de meta obiect pentru o clasa GO (arata in YAML, pentru compactitate):

– id: “http://purl.obolibrary.org/obo/GO_0044464” meta: definitie: val: “Orice parte constitutiva a unei celule, unitatea \ \ structurala si functionala de baza a tuturor organismelor.” xrefs: – “GOC: jl” subseturi: – “http://purl.obolibrary.org/obo/go/subsets/nucleus#goantislim_grouping” – “http://purl.obolibrary.org/obo/go/subsets/ nucleu # gosubset_prok “-” http://purl.obolibrary.org/obo/go/subsets/nucleus#goslim_pir “-” http://purl.obolibrary.org/obo/go/subsets/nucleus#gocheck_do_not_annotate “xrefs: – val: “NIF_Subcellular: sao628508602” sinonime: – pred: “hasExactSynonym” val: “subcomponenta celulara” xrefs: – “NIF_Subcellular: sao628508602” – pred: “hasRelatedSynonym” val: “protoplast” xrefs: – “GOC: mah : „CLASA”

Grafice expresive OBO (ExOGs)

Acestea ofera modalitati de exprimare axiomelor logice neacoperite in subsetul de mai sus.

In prezent specificatia nu ofera o traducere completa a tuturor axiomelor OWL. Acest lucru va fi determinat de comentarii cu privire la specificatii.

In prezent sunt definite doua modele de axiome:

  • echivalentaSet
  • logicDefinitionAxiom

Retineti ca acestea nu corespund neaparat 1: 1 tipurilor de axiome OWL. Cele doua de mai sus sunt forme diferite de axioma de clase echivalente, prima potrivita pentru cazurile in care avem ontologii multiple cu acelasi concept reprezentat folosind un URI diferit in fiecare (de exemplu, un DOID: nnn URI si un Orphanet: nnn URI cu un direct axioma de echivalenta intre ele).

Acesta din urma se refera la asa-numitele definitii de „produs incrucisat” sau „gen-diferenta” care se gasesc in cele mai bine purtate bioontologii.

Consultati README-owlmapping.md pentru detalii suplimentare

Comparatie cu BBOP-Graphs

Vezi graficul bbop

  • Obiectul de nivel superior dintr-un grafic bbop este un obiect grafic; in obografe un GraphDocument este un suport pentru mai multe grafice
  • obiectele meta sunt subspecificate in grafice bbop

Comparatie cu SciGraph

Vedeti Neo4jMapping

Cartarea este similara, in special in ceea ce priveste modul in care axiomele SubClassOf se mapeaza la margini. Cu toate acestea, pentru SciGraph, axiomele mai avansate, cum ar fi EquivalenceAxioms, sunt mapate la margini grafice. In obografe, orice in afara modelului BOG este mapat la un obiect personalizat.

Retineti, de asemenea, ca SciGraph returneaza obiecte bbop-graph in mod implicit din operatiile de interogare a graficului.

Rularea convertorului

mvn install ./bin/ogger src / test / resources / basic.obo

Retineti ca conversia va fi transformata in instrumente precum ROBOT, evitand astfel necesitatea. De asemenea, putem face ca JSON sa fie disponibil de la un PURL standard, de ex

  • http://purl.obolibrary.org/obo/envo.obo
  • http://purl.obolibrary.org/obo/envo.owl
  • http://purl.obolibrary.org/obo/envo.json NOU

Includerea obografelor in cod:

Maven

<dependency> <groupId> org.geneontology </groupId> <artifactId> obografe </artifactId> <version> $ {project.version} </version> </dependency>

Gradle

compilati „org.geneontology: obographs: $ {project.version}”

Instalarea unui instantaneu de dezvoltare

Cand va dezvoltati impotriva unei versiuni instantanee nepublicate a API-ului, puteti utiliza Maven pentru ao instala in depozitul local de m2:

Javascript

Vezi graficul bbop