---
name: "GO::Model::Relationship"
section: "3pm"
platform: "linux"
package: "libgo-perl"
version: "0.15-10"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/GO::Model::Relationship"
---

# GO::Model::Relationship(3pm)

## NAME

```
  GO::Model::Relationship - relationship between two terms
```

## SYNOPSIS

## DESCRIPTION

a relationship between two GO::Model::Terms

relationships can be thought of as **statements** or sentences of the form

```
  SUBJECT-TERM PREDICATE OBJECT-TERM
```

for example,

```
  "dog" IS_A "animal"
  "G-Protein coupled receptor" IS_A "transmembrane receptor"
```

Statements have a **subject** (i.e. the subject of the sentence/statement), a predicate/relationship-type and an **object** (i.e. the object of the sentence/statement)

Relationships can also be seen as arcs in a directed graph, with the subject being equivalent to the child, and the object equivalent to the parent. The arc is labeled with the predicate/relationship-type.

A Relationship object currently does not contain an actual pointer to a GO::Model::Term object. Instead it stores the ID of that term. This is intended to be used in conjunction with the Graph object, or with the database.

### subject\_acc

```
 Title   : subject_acc
 Usage   : $obj->subject_acc($newid)
 Usage   : $currid = $obj->subject_acc()
 Synonyms: subj_acc, acc2, child_acc
 Function: gets or sets the identifier for the child/subject term
 Example :
 Returns : value of subject_acc (string)
 Args    : on set, new value (string)
```

All Relationships can be thought of "subject-predicate-object" statements. The statement is \*about\* the subject, and states something about the relationship \*to\* the object.

For example, the if we have a Relationship:

```
  cell
    ^
    |
    | [part_of]
    |
 cell nucleus
```

This is a statement about cell nuclei in general, so "cell nucleus" is the subject (sometimes called the child node). The Relationship tells us that all cell nuclei are part\_of some cell, so the object of the relationship (sometimes called the parent node) is "cell"

### object\_acc

```
 Title   : object_acc
 Usage   : $obj->object_acc($newid)
 Usage   : $currid = $obj->object_acc()
 Synonyms: obj_acc, acc1, parent_acc
 Function: gets or sets the identifier for the parent/object term
 Example :
 Returns : value of object_acc (string)
 Args    : on set, new value (string)
 See Also: subj_acc
```

### type

```
 Title   : type
 Usage   : $obj->type($newval)
 Usage   : $currval = $obj->type()
 Synonyms:
 Function: gets or sets the relationship type (a string)
 Example :
 Returns : value of type (string)
 Args    : on set, new value (string)
```

Currently any string is allowed; in future the type string may be constrained to come from a controlled vocabulary of relationship types
