Documentation
¶
Overview ¶
Package graph provides primitives for building and accessing OBO Graphs(graph oriented ontology). The OBO Graphs can be traversed through a standard graph oriented API using familiar OBO term and relationship concepts.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type OboGraph ¶
type OboGraph interface {
// IRI represents a stable URL for locating the source OWL formatted file
IRI() string
// ID is a short and unique name of the graph
ID() string
// Label is a short human readable description of the graph
Label() string
// Meta returns the associated Meta container
Meta() *model.Meta
// ExistsTerm checks for existence of a term
ExistsTerm(NodeID) bool
// GetTerm fetches an existing term
GetTerm(NodeID) Term
// GetRelationship fetches relationship(edge) between parent(object) and
// children(subject)
GetRelationship(NodeID, NodeID) Relationship
// Relationships returns all relationships(edges) in the graph
Relationships() []Relationship
// Terms returns all terms(node/vertex) in the graph
Terms() []Term
// TermsByType provides a filtered list of specific terms
TermsByType(string) []Term
// Children returns all children terms(depth one)
Children(NodeID) []Term
// Parents returns all parent terms(depth one)
Parents(NodeID) []Term
// Ancestors returns all reachable(direct or indirect) parent terms. It uses
// BFS algorithm
Ancestors(NodeID) []Term
// Descendents returns all reachable(direct or indirect) children terms. It uses
// BFS algorithm
Descendents(NodeID) []Term
// DescendentsDFS returns all reachable(direct or indirect) children terms
// using DFS algorithm.
DescendentsDFS(NodeID) []Term
// AddRelationship creates relationship between terms, it overrides the
// existing terms and relationship
AddRelationship(Term, Term, Term) error
// AddRelationshipWithID creates relationship between existing terms
AddRelationshipWithID(NodeID, NodeID, NodeID) error
// AddTerm add a new Term to the graph overwriting any existing one
AddTerm(Term)
}
OboGraph is an interface for accessing OBO Graphs.
type Relationship ¶
type Relationship interface {
// Object is the unique identifier for parent term
Object() NodeID
// Subject is the unique identifier for child term
Subject() NodeID
// Predicate is the unique identifier for term that describes the relationship
Predicate() NodeID
// Meta returns the relationship's Meta object
Meta() *model.Meta
}
Relationship is an interface for representing relationship between terms.
func NewRelationship ¶
func NewRelationship(obj, subj, pred NodeID) Relationship
NewRelationship is a constructor for Relationship.
func NewRelationshipWithMeta ¶
func NewRelationshipWithMeta(obj, subj, pred NodeID, m *model.Meta) Relationship
NewRelationshipWithMeta is a constructor for Relationship that receives an additional Meta object.
type Term ¶
type Term interface {
// ID is the term's unique identifier
ID() NodeID
// HasMeta check for presence of any metadata
HasMeta() bool
// Meta returns the term's Meta object
Meta() *model.Meta
// RdfType is one defined rdf type, either of CLASS,
// INDIVIDUAL OR PROPERTY
RdfType() string
// Label is a short human readable description of the term
Label() string
// IRI represents a stable URL for term's information
IRI() string
// IsDeprecated provides the current status of the term
IsDeprecated() bool
}
Term is an interface for obo term(node).
Click to show internal directories.
Click to hide internal directories.