123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- --[[
- Sample submission layout config file for a postcard model.
- This configuration is read according to the content model set in the sidecar
- metadata for the top-level submission object. Content models, relationships,
- and other metadata for individual child objects can be inferred from the
- submission file and folder layout.
- ]]
- --[[
- Attribute enrichment rules.
- These rules add one or more attributes to each resource that individually
- matches a set of conditions.
- ]]
- attributes = {
- -- Rule #1: assign "StillImage" to all folders containing "recto", "verso",
- -- etc., in their name.
- -- Matching directives.
- {
- match = {
- -- "path" matches a regular expression against each resource path.
- -- NOTE: match is always case-insensitive at the moment.
- path = {"(?:back|front|recto|verso)$"},
- -- "fs_type" matches the resource type in the file system: file or
- -- folder, or both if unspecified.
- fs_type = "folder",
- },
- -- TODO match existing metadata attributes.
- -- "add" adds one or more types to the matching objects.
- -- Add directives are written as key-value pairs:
- -- `<attribute name>: [<value>, ...]`
- add = { contentType = {"pas:StillImage"} },
- },
- -- Rule #2: assign the "recto" tag to folders with specific names.
- {
- match = {
- path = {
- ".*/.*front",
- ".*/.*recto",
- },
- fs_type = "folder",
- },
- add = {
- role = { "Recto" },
- },
- },
- -- Rule #3: assign the "verso" tag to folders with specific names.
- {
- match = {
- path = {
- ".*/.*back",
- ".*/.*verso",
- },
- fs_type = "folder"
- },
- add = {
- role = { "pas:Verso" }
- },
- },
- -- Rule #4: assign "ArchivalMaster" role to a TIFF file found under the
- -- StillImage folder.
- {
- match = {
- path = { "(?:back|front|recto|verso)/.*?\\.tiff?$" },
- fs_type = "file",
- },
- add = {
- contentType = { "StillImageFile" },
- role = { "ArchivalMaster" },
- },
- },
- -- Rule #5: assign "DeliveryFile" role to a JPG or JPH file found under the
- -- StillImage folder.
- {
- match = {
- path = { "(?:back|front|recto|verso)/.*?\\.jp[gh]$" },
- fs_type = "file",
- },
- add = {
- contentType = { "StillImageFile" },
- role = { "DeliveryFile" },
- }
- },
- --[[
- Relationship enrichment rules.
- These rules establish relationships between pairs of resources that match
- certain conditions individually and/or in relationship to one another.
- Directives for matching are similar to attribute enrichment ones and they
- come in two sets: one for the source (the resource that would be added the
- relationship), and one for the target (the resource pointed to by the
- relationship). The relationship is established to all objects that match both
- sets of conditions.
- ]]
- relationships = {
- {
- source = {
- match = {
- --[[
- Attribute matching: this matches resources with specific
- attributes. It is a multi-valued key-value map, in which
- values of each key are joined by OR, and multiple keys are
- joined by AND.
- For example, the directive below matches resources with an
- attribute named "role" with a value of "Recto" OR "Verso",
- AND an attribute named "contentType" with a value of
- "StillImage" (this example is quite contrived as the rules
- are redundant together).
- Attributes added in the attribute enrichment step above are
- available at this point.
- ]]
- attributes = {
- role = {"pas:Recto", "pas:Verso"},
- contentType = {"pas:StillImage"},
- },
- },
- -- "add" adds each of the listed relationships to each of the
- -- resources matching "source" conditions, pointing to all the
- -- resources matching "target" conditions for each source.
- add = { "hasFile" },
- },
- target = {
- match = {
- -- Path matching is done via regex here too, with the
- -- addition of the `{{src_path}}` variable that gets
- -- expanded to the source path before parsing the regex.
- path = {"{{src_path}}/[^/]+$"},
- fs_type = "file",
- },
- },
- },
- }
|