{"action":"opened","issue":{"url":"https://api.github.com/repos/MarcusBarnes/mik/issues/220","repository_url":"https://api.github.com/repos/MarcusBarnes/mik","labels_url":"https://api.github.com/repos/MarcusBarnes/mik/issues/220/labels{/name}","comments_url":"https://api.github.com/repos/MarcusBarnes/mik/issues/220/comments","events_url":"https://api.github.com/repos/MarcusBarnes/mik/issues/220/events","html_url":"https://github.com/MarcusBarnes/mik/issues/220","id":156059062,"number":220,"title":"Deprecate CONTETNdm .cpd files in favor of generic structure files","user":{"login":"mjordan","id":403918,"avatar_url":"https://avatars.githubusercontent.com/u/403918?v=3","gravatar_id":"","url":"https://api.github.com/users/mjordan","html_url":"https://github.com/mjordan","followers_url":"https://api.github.com/users/mjordan/followers","following_url":"https://api.github.com/users/mjordan/following{/other_user}","gists_url":"https://api.github.com/users/mjordan/gists{/gist_id}","starred_url":"https://api.github.com/users/mjordan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjordan/subscriptions","organizations_url":"https://api.github.com/users/mjordan/orgs","repos_url":"https://api.github.com/users/mjordan/repos","events_url":"https://api.github.com/users/mjordan/events{/privacy}","received_events_url":"https://api.github.com/users/mjordan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/MarcusBarnes/mik/labels/documentation","name":"documentation","color":"bfd4f2"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-05-20T22:01:24Z","updated_at":"2016-05-20T22:01:24Z","closed_at":null,"body":"This issue documents a discussion between myself and @MarcusBarnes about the relationship between the forthcoming Islandora Compound Batch module and various MIK tookchains.\r\n\r\nWe currently have a CONTENTdm Compound Object toolchain, the development of which is documented in issue #111. The Islandora Compound Batch module parses the .cpd files as described in #111 and creates relationships in the resulting Islandora objects that mirror the structure of the source CONTENTdm object.\r\n\r\nNow that we want to accommodate compound objects that do not come from CONTENTdm, and that therefore lack a .cpd file, we will be adopting a way of expressing the structure of a compound object using a generic XML file like the following:\r\n\r\n```xml\r\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<islandora_compound_object title=\"I am a compound object\">\r\n  <child content=\"The first child\"/>\r\n  <child content=\"The second child\"/>\r\n</islandora_compound_object>\r\n```\r\n\r\nThis structure is simple and flexible enough to accommodate hierarchical relationships, but for now we will be focusing on \"flat\" structures that only have one level of parent-child relationship. Upstream tools, like MIK's CONTENTdm Compound Object toolchain, will need to be able to generate this type of XML file. We have added a helper script to the  Islandora Compound Batch module that will generate a structure file from a directory structure, and plan to modify the MIK CONTENTdm Compound Object toolchain so that it does not write out its .cpd file. Once we do that, the same script that generates the structure file from a directory structure can be used with the CONTENTdm Compound Object toolchain output.\r\n\r\nOne implication of using a directory tree as the basis for an XML file that expresses an Islandora compound object's structure is that to accommodate multilevel hierarchical structures, the application (or human) preparing the content for ingest into Islandora will need to represent that structure as a set of nested filesystem directories. Once a structure file is generated from that directory tree, it can be manually edited to correct sorting/sequence/order that should be preserved in the parent-child relationships defined by Islandora, given the vagaries of \"sorting\" files and directories in graphical file managers and command-line tools like `tree`. \r\n\r\n@MarcusBarnes writing this makes me realize that we'll need to account for situations where the filesystem arrangement and the directory tree disagree. We probably should choose the structure file, for the reason I mention in the previous paragraph.\r\n\r\n"}}
{"actor":{"display_login":"mjordan"}}