Fedora 4 presents metadata designers with radical new capabilities, as well as new responsibilities. This section documents some available patterns for using the former to meet the latter.
A note on blank nodes
Fedora 4 offers very limited support for the use of blank nodes in metadata. While no response from the API will contain blank nodes, it is possible to send a request to the API containing blank nodes. Those nodes will be Skolemized and the Skolem nodes that result will be used inside the repository and in any responses from the API. Generally, using blank nodes should be a last resort.
There are several problems with their use in metadata, but we will discuss here one that is particularly important in the context of an object repository:
- A blank node has a lifecycle entirely within the existence of a given API request or response. (Not a request-response pair: just one or the other.) On the other hand, the Skolem node that results from the use of a blank node in an API request has a lifecycle that is arbitrarily long and has no connection at all to any other resource. Neither of these is what is commonly intended by the use of blank nodes. This means that metadata constructions that should have lifecycles coupled to the repository entities they describe should not use blank nodes. A common alternative that is much safer is the use of hash-URIs for these constructions. A hash-URI has a lifecycle limited only by the lifecycle of the unhashed URI on which it is built. This means that a metadata construction using them can be coupled to a described resource as safely as could a metadata construction that uses only plain URIs.