All Projects → MarcusBarnes → mik

MarcusBarnes / mik

Licence: GPL-3.0 license
The Move to Islandora Kit is an extensible PHP command-line tool for converting source content and metadata into packages suitable for importing into Islandora (or other digital repository and preservations systems).

Programming Languages

PHP
23972 projects - #3 most used programming language
XSLT
1337 projects

Projects that are alternatives of or similar to mik

roda
RODA - Repository of Authentic Digital Objects
Stars: ✭ 54 (+68.75%)
Mutual labels:  migration, digital-preservation, digital-repository
carry
Python ETL(Extract-Transform-Load) tool / Data migration tool
Stars: ✭ 115 (+259.38%)
Mutual labels:  etl, migration
cra-tailwindcss-in-js
Integrate Tailwind CSS in a Create React App setup using css-in-js solutions
Stars: ✭ 35 (+9.38%)
Mutual labels:  utility
flickr to google photos migration
A tool for migrating your photo library from Flickr to Google Photos
Stars: ✭ 39 (+21.88%)
Mutual labels:  migration
bigquery-kafka-connect
☁️ nodejs kafka connect connector for Google BigQuery
Stars: ✭ 17 (-46.87%)
Mutual labels:  etl
singer-runner
A CLI and library to run Singer Taps and Targets
Stars: ✭ 33 (+3.13%)
Mutual labels:  etl
goroutines
provides utilities to perform common tasks on goroutines
Stars: ✭ 19 (-40.62%)
Mutual labels:  utility
TestCards
A simple test pattern generator.
Stars: ✭ 46 (+43.75%)
Mutual labels:  utility
gut
🍱 yet another collection of go utilities & tools
Stars: ✭ 24 (-25%)
Mutual labels:  utility
porter
Export legacy forums into a format Vanilla Forums can import.
Stars: ✭ 39 (+21.88%)
Mutual labels:  migration
grizzly
Extra utilities for Bear 🐻
Stars: ✭ 20 (-37.5%)
Mutual labels:  utility
architect big data solutions with spark
code, labs and lectures for the course
Stars: ✭ 40 (+25%)
Mutual labels:  etl
butterfly
Application transformation tool
Stars: ✭ 35 (+9.38%)
Mutual labels:  migration
OP1GO
Ultraportable backups for Teenage Engineering's OP-1
Stars: ✭ 34 (+6.25%)
Mutual labels:  utility
tableize
Turn lists into tables with ease
Stars: ✭ 12 (-62.5%)
Mutual labels:  utility
kyanite
A small purely functional library of curried functions, with great piping possibilities!
Stars: ✭ 26 (-18.75%)
Mutual labels:  utility
mpu
Martins Python Utilities - Stuff that comes in Handy
Stars: ✭ 47 (+46.88%)
Mutual labels:  utility
php8-xdebug
PHP 8.0 for development and production usage. With nginx, brotli, xdebug, JIT and more...
Stars: ✭ 17 (-46.87%)
Mutual labels:  php-cli
migration-tool
Automated script to migrate from Directus v8 to Directus v9
Stars: ✭ 21 (-34.37%)
Mutual labels:  migration
etlflow
EtlFlow is an ecosystem of functional libraries in Scala based on ZIO for writing various different tasks, jobs on GCP and AWS.
Stars: ✭ 38 (+18.75%)
Mutual labels:  etl

MIK, the Move to Islandora Kit.

Build Status Contributing Guidelines DOI

Overview

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 overview

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."

Documentation

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.

Troubleshooting and support

If you have a question, please open an issue.

Islandora content that has been prepared using MIK

Installation

Instructions are available on the wiki.

Usage

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.

1. Configure your toolchain

In a nutshell, this means create an .ini file for MIK. Details for available toolchaines are provided on the wiki.

2. Check your configuration

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.

Note: if you are using null mappings for metadata manipulators, --checkconfig will return errors. Use --ignore_null_mappings to avoid these.

3. Convert your source content into Islandora ingest packages

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

The above will generate 10 valid packages if possible. Check the problem_records log for any that were skipped due to errors.

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.

4. Load your content into Islandora

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.

Current status

We aim for a 1.0 release of MIK in fall 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

Contributing

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 Samvera 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 Samvera 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.

Maintainers/Sponsors

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].