...
A Fedora 4 repository is composed of one or more workspaces, each consisting of a directed acyclic graph of nodes where edges represent a parent-child relation.
For those without a computer science background, in repository terms:
- A node is an object.
- An edge is a relationship (in this case, a parent-child relationship) that links two or more nodes. Edges are represented as RDF properties in a Fedora object.
- A graph is a set of nodes connected by edges. The entire set of objects in the workspace and their relationships to each other form a graph.
- A directed graph is a graph whose edges have direction associated with them: that is, the relations that link the nodes move in a given direction from one node to the next. An example of an edge with a direction is isAChildOf. The relationship expresses a direction from the parent to the child. The relationship isParent can also link the same two nodes, but in the opposite direction.
- A directed acyclic graph is a graph where whose edges never form loops (i.e., cycles) of nodes. That is, if you start at node A, then follow a set of identical relations from that node to other nodes in a chain, you will never end up back at node A. No Fedora object can ever be its own grandpa.
- A hierarchical tree, such as the one modelled in the Fedora repository workspace, is a classic example of a directed acyclic graph of nodes.
Each persistent workspace is identified by a unique name within the repository. There is a default workspace, which has an empty workspace identifier.
...