Skip to content
kltm edited this page Nov 4, 2014 · 4 revisions

Overview

This is a description of the “transitivity” graphs used in GOlr. This document assumes that you are familiar with the JSON used in BBOP JS for graphs in general.

Answering a Question

By convention, there are one or more transitivity graphs associated with documents types that are concerned with answering graph/ontology questions.

The specific use of a ?_transitivity_graph_json field is to:

  • given a reference/topic node
  • and a set of relations (plus is_a)
  • what are the all nodes to the root(s) reachable traversing these relations
  • what are all nodes for immediate children reachable traversing these relations
  • there are no other nodes
  • all edges in the graph represent the computed relationship between the reference/topic node and all other nodes
    • there are no edges between any nodes that do not directly involve the reference/topic node

The purpose is to give consuming widgets a way of knowing the relationships between a node and its neighbors without having to perform reasoning on the client side.

An Example

Given the above, let’s look at a transitivity graph for GO:004347. The one we’re going to look at is the “regulates” graph defined with the following relations:

  • BFO:0000050
  • BFO:0000066
  • RO:0002211
  • RO:0002212
  • RO:0002213
  • RO:0002215
  • RO:0002216

So the question is, traversing over only these relationships (and is_a), what is the relationship of GO:0043474 to each reachable node. Thus, the regulates_transitivity_graph_json field would be:

{
    "edges": [
        {
            "pred": "is_a",
            "obj": "GO:0044699",
            "sub": "GO:0043474"
        },
        {
            "pred": "is_a",
            "obj": "GO:0044710",
            "sub": "GO:0043474"
        },
        {
            "pred": "part_of",
            "obj": "GO:0043473",
            "sub": "GO:0043474"
        },
        {
            "pred": "is_a",
            "obj": "GO:0043473",
            "sub": "GO:0043474"
        },
        {
            "pred": "is_a",
            "obj": "GO:0008150",
            "sub": "GO:0043474"
        },
        {
            "pred": "is_a",
            "obj": "GO:0042440",
            "sub": "GO:0043474"
        },
        {
            "pred": "part_of",
            "obj": "GO:0044699",
            "sub": "GO:0043474"
        },
        {
            "pred": "part_of",
            "obj": "GO:0008150",
            "sub": "GO:0043474"
        },
        {
            "pred": "is_a",
            "obj": "GO:0008152",
            "sub": "GO:0043474"
        }
    ],
    "nodes": [
        {
            "lbl": "pigment metabolic process",
            "id": "GO:0042440"
        },
        {
            "lbl": "single-organism metabolic process",
            "id": "GO:0044710"
        },
        {
            "lbl": "single-organism process",
            "id": "GO:0044699"
        },
        {
            "lbl": "pigment metabolic process involved in pigmentation",
            "id": "GO:0043474"
        },
        {
            "lbl": "pigmentation",
            "id": "GO:0043473"
        },
        {
            "lbl": "metabolic process",
            "id": "GO:0008152"
        },
        {
            "lbl": "biological_process",
            "id": "GO:0008150"
        }
    ]
}
Clone this wiki locally