NAME
GOBO::Graph
SYNOPSIS
DESCRIPTION
A collection of inter-related GOBO::Node objects. With a simple ontology these are typically GOBO::TermNode objects, although other graphs e.g. instance graphs are possible.
This module deliberately omits any kind of graph traversal functionality. This is done by an GOBO::InferenceEngine.
DETAILS
A GOBO::Graph consists of two collections: a node collection and a link collection. Both types of collection are handled behind the scenes using indexes (in future these can be transparently mapped to databases).
A graph keeps a reference of all nodes declared or referenced. We draw a distinction here: a graph can reference a node that is not declared in that graph. For example, consider an obo file with two stanzas:
id: x
is_a: y
id: y
is_a: z
Here there are only two nodes declared (x and y) but there are a total of three references.
The noderef method can be used to access the full list of nodes that are either declared or referenced. This is useful to avoid instantiating multiple copies of the same object.
Methods such as terms, relations and instances return only those nodes declared to be in the graph
SEE ALSO
GOBO::Node
GOBO::LinkStatement
declared_subsets
- returns ArrayRef[GOBO::Subset]
returns the subsets declared in this graph.
See also: GOBO::TermNode->subsets() - this returns the subsets a term belongs to
terms
- Returns: ArrayRef[GOBO::TermNode], where each member is a term belonging to this graph
get_term
- Argument: id Str
- Returns: GOBO::TermNode, if term is declared in this graph
get_relation
- Argument: id Str
- Returns: GOBO::RelationNode, if relation is declared in this graph
get_instance
- Argument: id Str
- Returns: GOBO::InstanceNode, if instance is declared in this graph
relations
- Returns: ArrayRef[GOBO::RelationNode], where each member is a relation belonging to this graph
instances
- Returns: ArrayRef[GOBO::InstanceNode], where each member is an instance belonging to this graph
add_term
- Arguments: Str or GOBO::Node
- Returns: GOBO::TermNode
- Side effects: adds the object to the list of terms referenced in this graph. Forces the class to be GOBO::TermNode
add_relation
- Arguments: Str or GOBO::Node
- Returns: GOBO::RelationNode
- Side effects: adds the object to the list of relations referenced in this graph. Forces the class to be GOBO::RelationNode
add_instance
- Arguments: Str or GOBO::Node
- Returns: GOBO::InstanceNode
adds the object to the list of instances referenced in this graph. Forces the class to be GOBO::InstanceNode
remove_node
- Arguments: node GOBO::Node, cascade Bool[OPT]
unlinks the node from this graph
If cascade is 0 or undef, any links to or from this node will remain as dangling links.
If cascade is set, then links to and from this node will also be deleted
get_outgoing_links (subject GOBO::Node, relation GOBO::RelationNode OPTIONAL)
given a subject (child), get target (parent) links
if relation is specified, also filters results on relation
get_incoming_links (subject GOBO::Node, relation GOBO::RelationNode OPTIONAL)
given a subject (child), get target (parent) links
if relation is specified, also filters results on relation
get_is_a_roots
- Argument: none
- Returns: ArrayRef[GOBO::TermNode]
returns terms that lack an is_a parent
get_roots
- Argument: relation Str or OBO::RelationNode [OPTIONAL]
- Returns: ArrayRef[GOBO::TermNode]
returns terms that lack a parent by the given relation. If no relation specified, then returns terms that lack a parent by any relation