embedding pattern
- alias
Frame.
- idea
Put data elements as part into another element.
- context
At least two data elements, one of them a host or frame, in which the other elements are embedded.
- motivation
Build data hierarchies.
- implementations
- examples
- An XML element with embedded child elements.
- The structure “surname, given” with surname and given name embedded into a name element.
- A qualified expression, such as “Marx, Karl, 1818-1883” from the Library of Congress name authority file with qualifier “1818-1883”.
- Rules in a formal grammar with non-terminal symbols.
- All kinds of templates and forms that data is put into.
- A namespace with prefix (to specify the context) and embedded local identifier.
- Tree structures and part-whole relationships.
- difficulties
- A clean hierarchy is sign of oversimplification. In practice one has to deal with cross-connections, parallel and overlapping hierarchies (e.g.
"( { ) }"
). - Once a template has been filled with values, it becomes invisible. One must know the embedding rules to rediscover embedded elements, otherwise embedding frame and content easily get mixed up.
- Embeddings are part of other embedding, forming a long chain of levels. This chain should contain no circles, but self-referential embeddings may exist both in the conceptual realm and in the data realm (for instance a document that refers to itself or a zip file that contains a copy of itself).
- A clean hierarchy is sign of oversimplification. In practice one has to deal with cross-connections, parallel and overlapping hierarchies (e.g.
- related patterns
- A hierarchical structure could also be a constrained graph instead.
- Hierarchic nesting is also found in encoding. While encodings stress the relations between signifier and signified, the purpose of an embedding is more to give context. The relation between encodings and embeddings is similar to the semiotic relation between langue and parole.
- Embedded elements may be mandatory or optional (optionality), they may be constrained by prohibition and they may be abbreviated (etcetera). If an embedding is primarily used to express such constraints, it is likely a schema.
- Embedded elements may be secondary to the frame they are embedded in (dependence).
- specialized patterns
A container embeds multiple member elements.