This page is a subpage of CMDI 1.2
Location of the IsPartOf list
The issue
The IsPartOf list was described as follow by Thorsten in his 2012 document:
Resources that are defined in bundles are listed under ResourceProxy. The individual parts can be seen as independent resources as well, such as a subcorpus that can also be distributed on its own. To point out that a resource is part of a larger unit or created as part of a larger unit, the IsPartOfList is introduced referring to one or more larger units by giving the PID of the larger units with the IsPartOf element.
In other word, the list can be used to provide 'uplinks' to collections that the described resources and/or the metadata are part of. This is generally considered a useful feature, however there clearly is some ambiguity as to what is the subject of the is-part-of relation(s). The name implies a single subject, but the element itself is a child of /CMD/Resources which contradictory implies a statement about all of the referenced resources. If the is-part-of relations should be considered meta-metadata (i.e. say something about the metadata record rather than the resources), the list should not be in /CMDI/Resources but rather a separate list in /CMD.
Proposed solution
Discussion
Consider the 2 sub-issues mentioned above:
- the name "isPartOf? indicates that the (implicit) subject part of the relationship can be referred to as one thing
- its current location within <Resources> may be interpreted to indicate that it pertains to all ResourceProxies?
In combination these issues make the IsPartOf's semantics unclear.
Proposal
In CMDI 1.2 we propose to move the <IsPartOfList?> out of - and to the same level as - <Resources>, see example below. Any IsPartOf instance should then express a partitive relationship between the described resource as a whole and some collection or larger resource.
Any need for expressing partitive relationships involving individual ResourceProxies? must then be handled by components using @ref.
CMDI example
<CMD> <Header> <MdProfile>clarin.eu:cr1:p_1345561703673</MdProfile> ... </Header> <Resources> ... </Resources> <IsPartOfList> <IsPartOf>http://infra.clarin.eu/example/mycollection.cmdi</IsPartOf> </IsPartOfList> ... </CMD>
Old stuff
Proposed solutions
First solution
Add resource proxy reference to the IsPartOf element, e.g.:
<IsPartOfList> <IsPartOf ref="rp1">http://infra.clarin.eu/example/mycollection.cmdi</IsPartOf> <IsPartOf ref="rp2">http://infra.clarin.eu/example/mycollection.cmdi</IsPartOf> <IsPartOf ref="rp3">http://infra.clarin.eu/example/mycollection.cmdi</IsPartOf> <IsPartOf ref="rp3">http://infra.clarin.eu/example/someothercollection.cmdi</IsPartOf> </IsPartOfList>
Pros
- Allows more fine grained relations and
- More explicit in referring to resource proxies, not the metadata document
- No longer contradicts singular form 'is'
Cons
- Assumes that one metadata document may describe resources from multiple collections; this may or may not not be something we want to support - needs discussion.
- No way to refer to all resources (for large sets belonging to one collection would require a reference per resource)
Discussion
Discuss the solution proposal in this section
Second solution
Rename IsPartOf(List) to PartOf(List)
<PartOfList> <PartOf>http://infra.clarin.eu/example/mycollection.cmdi</IsPartOf> <PartOf>http://infra.clarin.eu/example/someothercollection.cmdi</IsPartOf> </PartOfList>
Pros
- Resolves the contradictory interpretation of the relation pertaining to all resources
- Minimal change compared to existing feature
Cons
- Does not add option for specifying finer grained relations
Discussion
Discuss the solution proposal in this section
Third solution
Move IsPartOfList out of resources, e.g.:
<CMD> <Header> <MdProfile>clarin.eu:cr1:p_1345561703673</MdProfile> ... </Header> <Resources> ... </Resources> <IsPartOfList> <IsPartOf>http://infra.clarin.eu/example/mycollection.cmdi</IsPartOf> </IsPartOfList>
This makes it clear that the is-part-of relation pertains to the bundle (metadata+resources) and not collection of resources or individual resources. Optionally scrap the IsPartOfList container and make IsPartOf repeatable.
Pros
- No longer contradicts singular form 'is'
- Clearly refers to the metadata-resources bundle, not just the set of resources
Cons
- This may not be want we want to express
Discussion
Discuss the solution proposal in this section
Florian (BAS): I would definitely prefer the third solution. In fact I think that most people using IsPartOf did imply this interpretation anyway. Can anybody provide us with a use case where we would really need fine grained relations as in Solution 1? The only thing I can think of would a CMDI for a virtual collection.
Tickets
Tickets in the CMDI 1.2 milestone with the keyword ispartoflist:
Discussion
Discuss the topic in general below this point
Florian (BAS): Why is 'isPartOf' not a simple relation like any other? If we want to express a isPartOf-relation regarding the complete resource+metadata bundle (for instance to save us of from listing individual relations for all members of the ResoureProxyList?), we could re-formulate the element to make it more explicit : 'thisResourceBundleIsPartOf'.