Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For those without a computer science background, in repository terms:

  • A node is an object or datastream.
  • An edge is a relationship (in this case, a parent-child relationship) that links two 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 child to the parent.  The relationship isParentOf 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 modeled in the Fedora repository workspace , is by the relationships provided by the JCR underpinnings of Fedora, is a classic example of a directed acyclic graph of nodes. In this sense, no Fedora object can ever be its own grandpa. Of course, the additional relationships that you, the user, distribute amongst your objects are entirely up to you. You can make them as simple or complex as you like.

Each persistent workspace is identified by a unique name within the repository. There is a default workspace, which has an empty workspace identifier.

...

In addition to a path, every node also has an identifier. In some implementations, the The identifier is independent of the path and provides an identity to the node that is stable across moves within the workspace.

Some nodes may contain possess a fcr"jcr:content data" property consisting of a binary payload with a length and digest. ( These nodes are often normally leaf nodes in the graph)tree (meaning they have no child nodes of their own), and they are almost always named "jcr:content". They are the best match in Fedora 4 to the Fedora 3 concept of "datastream".

The content of the fcrjcr:content data property is (by default) de-duplicated across the repository.  If you store the same binary stream in five jcr:data properties, it will only be persisted once, unless you expressly configure otherwise.

Properties may be single- or multi-valued, and are typed. Some properties are reserved for internal-use under mutation only (e.g. those in the fedora-internal namespace), but can otherwise be used freely by implementors. By default, properties are multivalued string types.