# Mabmapper [![Build Status](https://travis-ci.org/ubpb/mabmapper.png)](https://travis-ci.org/ubpb/mabmapper) [![Dependencies](https://gemnasium.com/ubpb/mabmapper.png?travis)](https://gemnasium.com/ubpb/mabmapper) [![Code Climate](https://codeclimate.com/github/ubpb/mabmapper.png)](https://codeclimate.com/github/ubpb/mabmapper) WARNING: This project is currently work in progress. Anything is subject to change. Mabmapper is a powerful and extendable processing engine to normalize any kind of input data into a simple intermediate format made of fields and values. Mabmapper was created by René Sprotte for the Library of the University of Paderborn, as part of an implementation project for a new search engine interface. It comes bundled with a ready to use engine and a simple and powerful [domain-specific language (DSL)](http://en.wikipedia.org/wiki/Domain-specific_language) based on [Ruby](http://www.ruby-lang.org) to process MabXML files created by the [Aleph Integrated Library System](http://www.exlibrisgroup.com/category/Aleph). Hence the name Mabmapper. Mabmapper is extadable and it is easy to create custom engines to process any kind of input data. ## Why? When working with heterogeneous data to feed into a search engine like [Primo](http://www.exlibrisgroup.com/category/PrimoOverview), [Elastic Search](http://www.elasticsearch.org/) or [Solr](http://lucene.apache.org/solr/) it is often needed to do some kind of data normalization to fit the data into a defined schema and/or to enrich the data. This is espacially true when working with bibliographic data. Some search solutions bundle normalization tools to deal with that problem. In case of Primo, the normalization is done as part of the ingest workflow configured by a web based normalization rule editor. We find that approach too cumbersome and inflexible to create and maintain complex normalization rules. This is where Mapmapper comes into play. ## Installation In a terminal install the gem by running $ gem install mabmapper ## Command line usage Mabmapper provides the command line program `mabmapper`. In a terminal type $ mabmapper --help to explore how to use the program. ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Added some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request