-
Notifications
You must be signed in to change notification settings - Fork 11
Related Files
Question: When there is technical metadata about a pcdm:File in XML format (e.g., FITS XML), should there be a relationship between the parent pcdm:Object and the technical metadata file?
The emerging LDP implementation pattern is to use different kinds of LDP container for related files to keep or omit the relationship between the parent object and the related files.
The related files are in an LDP BasicContainer without any predicates specifying a relationship between the parent object and the related files:
Note for Hydra users: Currently the
iana:describedby
predicate is used to associate a givenpcdm:File
resource with a singlefcr:metadata
resource, which in turn contains technical metadata about the binary file. Throughout the Hydra stack, there is a lot of code that is making assumptions that there is only one association usingiana:describedby
, and that the object of the association is thefcr:metadata
resource. Implementing a model that allows a givenpcdm:File
to be associated with afcr:metadata
resource as well as multiplepcdm:File
resources, implies non-trivial code changes throughout the stack.
As of 31 Aug, 2016, there is expected to be more discussion on whether to stick with the model below, or if there is a different way to model related files containing technical metadata. If you are interested in implementing the model below, it's recommended that you first check the "hydra-tech" Google group, and other communication channels, to see if a different solution has been adopted.
</object1> a pcdm:Object;
ldp:contains </object1/files>, </object1/relatedFiles>;
pcdm:hasFile </object1/files/file1> .
</object1/files> a ldp:DirectContainer;
ldp:hasMemberRelation pcdm:hasFile;
ldp:membershipResource </object1>
ldp:contains </object1/files/file1> .
</object1/relatedFiles> a ldp:BasicContainer;
ldp:contains </object1/relatedFiles/related1> .
</object1/files/file1> a pcdm:File;
iana:describedby </object1/files/file1/fcr:metadata>,
</object1/relatedFiles/related1> .
</object1/relatedFiles/related1> a pcdm:File;
iana:describedby </object1/relatedFiles/related1/fcr:metadata>;
iana:describes </object1/files/file1> .
Instead of manually creating the describes relationship, a DirectContainer could also be used to manage the relationship. This would mean more containers, but fewer interactions:
</object1/files/file1> a pcdm:Object;
iana:describedby </object1/files/file1/fcr:metadata>,
</object1/relatedFiles/related1> ;
pcdm:hasRelatedFilesContainer </object1/relatedFiles1/> .
</object1/relatedFiles1> a ldp:DirectContainer ;
ldp:membershipResource </object1/files/file1> ;
ldp:hasMemberRelation iana:describedby ;
ldp:contains </object1/relatedFiles1/related1> .
</object1/relatedFiles1/related1> a pcdm:File;
iana:describedby </object1/relatedFiles1/related1/fcr:metadata>;
iana:describes </object1/files/file1> .
The first describedby link for file1 is added by Fedora4 (or other LDP system), and the second is managed by the DirectContainer. It would need the hasRelatedFilesContainer link to discover which DirectContainer was associated with which File, as the container can't be below the File itself.
- PCDM Google Group
- PCDM Wiki Homepage
- IRC: #pcdm on irc.freenode.net
- Published ontologies
- PCDM Committers
- PCDM Committers Process
- PCDM Contributors
- PCDM Community Meetings
- Community Resources