get_inferred_target_links (subject GOBO::Node, relation GOBO::RelationNode OPTIONAL)
given a subject (child), get inferred target (parent) links
if relation is specified, also filters results on relation
backward-chaining
get_inferred_target_nodes (subject GOBO::Node, relation GOBO::RelationNode OPTIONAL)
given a subject (child), get inferred target (parent) nodes
if relation is specified, also filters results on relation
backward-chaining
get_nonredundant_set (nodes ArrayRef[GOBO::Node], OPTIONAL set2 ArrayRef[GOBO::Node])
TODO: allow specification of relations
returns all nodes n in set1 such that there is no n' in (set1 U set2) such that no relationship nRn' can be inferred
relation_composition
Arguments: GOBO::RelationNode r1 GOBO::RelationNode r2
Returns: ArrayRef[GOBO::RelationNode]
Given two relations r1 and r2, returns the list of relations that hold true between x and z where x r1 y and y r2 z holds
Formal definition:
(R1 o R2 -> R3) implies ( x R1 y, y R2 z -> x R3 z)
Examples:
part_of o part_of -> part_of (if part_of is declared transitive)
regulates o part_of -> regulates (if regulates is declared transitive_over part_of)
See also:
http://geneontology.org/GO.ontology-ext.relations.shtml
http://wiki.geneontology.org/index.php/Relation_composition
subsumed_by
c1 subsumed_by c2 if any only if every member of c1 is a member of c2
The following rules are used in the decision procedure:
Relation Composition
Intersections
See GOBO::ClassExpression::Intersection
if c2 = a ∩ b AND c1 is subsumed by a AND c1 is subsumed by b THEN c1 is subsumed by c2
Unions
See GOBO::ClassExpression::Union
if c2 = a ∪ b AND (c1 is subsumed by a OR c1 is subsumed by b) THEN c1 is subsumed by c2
Relational Expressions
See GOBO::ClassExpression::RelationalExpression
if c2 = <r y> AND c1 r y THEN c1 is subsumed by c2
NAME
GOBO::InferenceEngine
SYNOPSIS
NOT FULLY IMPLEMENTED
DESCRIPTION
An GOBO::Graph is a collection of GOBO::Statements. These statements can be either 'asserted' or 'inferred'. Inferred statements are created by an Inference Engine. An InferenceEngine object provides two accessors, 'graph' for the source graph and 'inferred_graph' for the set of statements derived from the source graph after applying rules that take into account properties of the relations in the statements.
The notion of transitive closure in a graph can be expressed in terms of the deductive closure of a graph of links in which each GOBO::RelationNode has the property 'transitive'. The notion of ancestry in a graph can be thought of as the inferred links where the relations are transitive.
Rules
Rules are horn rules with sets of statements in the antecedent and typically a single statement in the consequent.
In the notation below, subject and target nodes are indicated with lower case variables (x, y, z, ...) and relations (GOBO::RelationNode) are indicated with upper case (R, R1, R2, ...). Each statement is written in this order:
$s->node $->relation $s->target
Transitivity
x R y, y R z => x R z (where $R->transitive)
Propagation over and under is_a
x R y, y is_a z => x R z (where $R->propagates_over_is_a)
x is_a y, y R z => x R z (where $R->propagates_over_is_a)
Link composition
x R1 y, y R2 z => x R z (where R=R1.R2)
The above two rules are degenerate cases of this one.
The notion R = R1.R2 is used to specify these compositions. See $r->holds_over_chain_list
Reflexivity
x ? ? => x R x (where $R->reflexive)
ie where x exists, x stands in relation R to itself
Symmetry
x R y => y R x (where $R->symmetric)
Note that the type level adjacenct_to relation is not transitive
Inverses
x R1 y => y R2 x (where $R1->inverse_of_list contains $R2 or vice versa)
Note that the type level part_of relation is not the inverse of has_part
Inference over GOBO::ClassExpressions
class expressions define sets of entities. We can infer the existing of subset/subsumption relationships between these sets.
TODO
Inference strategies
Backward chaining
Starting for a given node, find all inferred Statements related to that node by applying rules. Ancestors statements: all statements in which this node plays the role of subject. Descendants statements: all statements in which this node plays the role of target.
Can be combined with memoization, in which case subsequent queries can retrieve cached results.
Forward chaining
Starting with a graph of asserted statements, iteratively keep applying rules and adding resulting statements to the inferred graph, until no new statements are added.
STATUS
PRE-ALPHA!!!
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 260:
Non-ASCII character seen before =encoding in '∩'. Assuming UTF-8