Difference between revisions of "ESciDoc Content Models"
Line 144: | Line 144: | ||
These rules should not be defined in a manner that they are preventing each other i.e. specifying member cascading rules for an aggregation should be allowed only in case the members of the aggregation are of type Items (and not Containers). | These rules should not be defined in a manner that they are preventing each other i.e. specifying member cascading rules for an aggregation should be allowed only in case the members of the aggregation are of type Items (and not Containers). | ||
Revision as of 11:21, 14 December 2007
IN PROGRESS
Definition and scope[edit]
Content model (CModel) is a formal representation of set of structural, integrity, behavior rules associated with content resources managed in an eSciDoc repository.
- in eSciDoc content resources are categorized in several primary types: Item, Container, Context, OrganizationalUnit etc.
- in eSciDoc the CModel scope is at the moment limited to resources of primary type Item or Container.
Note: The primary types are subject to extension in eSciDoc.
eSciDoc Primary types[edit]
- are complex data structures holding the content resources of an eSciDoc repository and managed via respective resource handler i.e. ItemHandler, ContainerHandler, OrganizationalUnits Handler etc.)
- represent the highest level of generalization of eSciDoc resources (i.e. Organizational Units, Contexts, Items, Containers, Users, etc.)
- may be further specialized by use of a CModel definition
Note: at present only Items and Containers are subject to CModel specialization, todo: check Relation resources
What cModel defines[edit]
Each CModel is itself a resource in a eSciDoc content repository and as such should have some common properties (applicable for all resources in the repository). Note: at present there is not yet a namespace for common properties of all resources. Once this is done, the properties will become native part of each CModel resource as well .
Each CModel defines the following for respective content resources (Items, Containers) associated with it:
Components (optional)[edit]
Defines content category, multiplicity and format of content components (i.e. files) which can be associated with a resource of specific CModel.
Note: in eSciDoc at present components can be defined only for Items
Aggregation (optional)[edit]
- members - to specify which resources (i.e. of which CModel) can be aggregated within a resource of a primary type Container
- parent-unique (true, false) - defines if member must have a unique parent of this CModel type or not to be discussed
- rules(optional) - to specify how certain operations (i.e. submit, release, withdraw) on a container resource of this CModel affects the members of the container resource
- ordered(optional) (true, false)- to allow for ordering of members of the aggregation. Note: this is to be considered attribute of the aggregation to allow for adding members in "native" order at begining, end or middle of the list of members. This is not to be considered as a "table of contents" navigational order (that order may be different).
Example 1: A Container resource with CModel "FacesCollection" can aggregate item resources with CModel "FaceItem", container resource with CModel "FachBeiratReport" can aggregate any eSciDoc or non-eSciDoc resources
Restrictions:
- In case when a CModel of a primary type Container in its aggregation allows resources that themselves are of primary type Container, the system (i.e. respective resource handler) must take care that a resource does not aggregate itself (i.e. recursive aggregations are not allowed)
- CModel aggregation can define only the direct members of the container resource (i.e. if one of the members is a container, then its internal aggregation should be defined (if needed) in a separate CModel.
Note: in eSciDoc aggregation can be defined only for Containers
Aggregations and internal life-cycle of resources[edit]
eSciDoc repository defines an internal life-cycle for its content resources of type Item, Container. CModel allows to define how the internal workflow can be applied to the members of a container of that CModel.
In general, eSciDoc internal workflow is represented with the following table:
Stage | Action | Status | Description |
---|---|---|---|
Initial | create | pending | A resource is created and is in status "pending". A resource can be further updated, deleted or transferred to the next stage in the life-cycle. |
Submission/QualityAssurance | submit | submitted | The resource is in "submission" stage. While in this stage the resource can not be deleted. It can be transferred to a "Release" stage or to Initial state again. |
Release | release | released | The resource is released and becomes a valid resource in the repository, thus available for discovery, subject to preservation etc. From this stage the resource can only be transferred to the withdrawn state in exceptional situation |
Withdrawal | withdraw | withdrawn | The resource is withdrawn and is no longer available for public use. |
edit table |
The following Aggregation settings applicable to the internal eSciDoc life-cycle may be allowed in a CModel definition:
Submit-rule[edit]
The table below depicts how the submit action from the internal workflow is applied to the container and the container members:
submit-rule | container-submit | members-submit | container-submit-success | members-submit-success |
---|---|---|---|---|
members-required | yes | yes | must | must |
members-tried | yes | yes | must | optional |
container (default) | yes | no | must | n/a |
members-first | yes | no | must | n/a |
edit table |
Release-rule[edit]
The table below depicts how the release action from the internal workflow is applied to the container and the container members:
release-rule | container-release | member-release | container-release-success | member-release-success |
---|---|---|---|---|
members-required | yes | yes | must | must |
members-tried | yes | yes | must | optional |
container (default) | yes | no | must | n/a |
members-first | yes | no | must | n/a |
edit table |
Withdraw-rule[edit]
The table below depicts how the withdraw action from the internal workflow is applied to the container and the container members:
withdraw-rule | container-withdraw | member-withdraw | container-withdraw-success | member-withdraw-success |
---|---|---|---|---|
members-required | yes | yes | must | must |
container (default) | yes | no | must | n/a |
members-first | yes | no | must | n/a |
edit table |
Issues[edit]
Note: the rules depicted above are derived and extended based on some previous discussions within eSciDoc team and are based on current Container limitation: only resources of type Item and Container can be members of a Container.
- how rules that define cascading operations on members (members-required, members-tried rules) apply if members are containers themselves?
These rules should not be defined in a manner that they are preventing each other i.e. specifying member cascading rules for an aggregation should be allowed only in case the members of the aggregation are of type Items (and not Containers).