Important: As of commit 72b5d88 (Oct. 21, 2016), MIK's command syntax has changed slightly. Previously, MIK's command-line options used an equal sign (
=
) to separate the option name from its value; after commit 72b5d88, options use a space instead of an equals sign.
- Before:
./mik --config=foo.ini --checkconfig=all --limit=10
- After:
./mik --config foo.ini --checkconfig all --limit 10
This change also introduces short forms of the options, e.g.,
./mik -c foo.ini -l 10
The Move to Islandora Kit (MIK) converts source content files and accompanying metadata into ingest packages used by existing Islandora batch ingest modules, Islandora Batch, Islandora Newspaper Batch, Islandora Book Batch, and Islandora Compound Batch. In other words, it doesn’t import objects into Islandora, it prepares content for importing into Islandora:
MIK is designed to be extensible. The base classes that convert the source metadata to XML files for importing into Islandora, and that convert the source content files into the required directory structure for importing, can be subclassed easily. MIK also uses plugins (known as "manipulators") and a set of "hook" scripts that allow functionality that can be turned off or on for specific jobs.
MIK was originally developed by staff at Simon Fraser University Library in support of their migration from CONTENTdm to Islandora, but its longer-term purpose is as a general toolkit for preparing content for importing content into Islandora. So MIK should really stand for "Move [content into] Islandora Kit."
We are continuing to improve our documentation, which is on the MIK wiki. Please let us know if you have any questions, suggestions or if you would like to assist.
If you have a question, please open an issue.
- Some of Emily Carr University of Art and Design's collections in Arca
- All of the newspapers in Simon Fraser University Library's Digitized Newspapers and Chinese Times sites
- All of the collections in Simon Fraser University Library's Digitized Collections
- KORA, Kwantlen Polytechnic University's institutional repository in Arca
Instructions are available on the wiki.
Typical workflow is to 1) configure your toolchain (defined below) by creating an .ini file, 2) check your configuration options and then 3) run MIK to perform the conversion of your source content into Islandora ingest packages. When MIK finishes running, you can import your content into Islandora using Islandora Batch, Islandora Newspaper Batch, Islandora Book Batch, or Islandora Compound Batch.
In a nutshell, this means create an .ini file for MIK. Details for available toolchaines are provided on the wiki.
To check your configuration options, run MIK and include the --checkconfig
(or -cc
) option with a value 'all':
./mik --config foo.ini --checkconfig all
You can also check specific types of configuration values as described in this Cookbook entry.
Once you have checked your configuration options, you can run MIK to perform the data conversion:
./mik --config foo.ini
On Windows, you'll need to run:
php mik --config foo.ini
The --config
option is required, but you can also add a --limit
option if you only want to create a specific number of import packages. This option is useful for testing. For example:
./mik --config foo.ini --limit 10
Once MIK starts running, it will display its progress:
./mik --config foo.ini
Creating 10 Islandora ingest packages. Please be patient.
===================================================> 56%
and when finished will tell you where your ingest packages have been saved and where your log file is.
And you're done. In practice, you probably want to do some quality assurance on the Islandora ingest packages before you import them (and MIK provides some helper scripts to do that). If you're not happy with what MIK produced, you can always modify your configuration settings or your metadata mappings file and run MIK again.
Until the spring of 2017, we will be working on what we call the 0.9 release of MIK. We aim for a 1.0 release of MIK in late spring 2017. Please note that the only differences between version 0.9 and 1.0 will be the addition of more features, automated tests, and code cleanup. Version 0.9 is already being used in production.
So far, we have "toolchains" (complete sets of MIK fetchers, metadata parsers, file getters, etc.) for creating Islandora import packages from the following:
- CONTENTdm
- single-file objects (images, audio, etc.)
- multi-file PDFs
- books
- newspapers
- non-book and non-newspaper compound objects
- CSV
- metadata and content files from a local filesystem for single-file objects (images, audio, etc.)
- metadata and content files from a local filesystem for compound objects
- metadata and content files from a local filesystem for books
- metadata and content files from a local filesystem for newspaper issues
- OAI-PMH
- metadata and one PDF per article from an Open Journal Systems journal
- metadata and one file per resource described in each OAI-PMH record if the record includes the URL to the file
- Version 1.0 (late spring 2017)
- developer documentation
- code cleanup
- more tests
We welcome community development partners. Some features that would be really great to see include:
- a graphical user interface on top of MIK
- tools for creating mappings files (in addition to the Metadata Mappings Helper)
- toolchains to migrate from DSpace and other repository platforms to Islandora (the OAI-PMH toolchain may already cover DSpace - testers welcome)
- a toolchain to generate Hydra import packages (yes, it's called Move to Islandora Kit but it's flexible enough to create other types of ingest packages and we'd love to collaborate with some Hydra friends)
- we have a sample CsvToJson toolchain that demonstrates that it's possible to write out packages that differ from those Islandora uses
MIK is designed to be extensible. If you have an idea for a useful manipulator or post-write hook script, please let us know.
CONTRIBUTING.md provides guidelines on how you can contribute to MIK. Our Information for Developers wiki page contains some information on coding standards, class structure, etc.
- Mark Jordan, Simon Fraser University Library
- Marcus Barnes, The Digital Scholarship Unit (DSU) at the University of Toronto Scarborough Library