/aristotle-metadata-registry

Aristotle-MDR is an open-source metadata registry as laid out by the requirements of the ISO/IEC 11179 specification.

Primary LanguagePythonOtherNOASSERTION

Aristotle Metadata Registry (Aristotle-MDR)

Aristotle-MDR Logo

Travis-CI build status Documentation Status Code coverage on coveralls visit the open access metadata registry Code Climate Appveyor build status This repository is WCAG-Zoo compliant

Introduction and mission statement

Aristotle-MDR is an open-source metadata registry as laid out by the requirements of the ISO/IEC 11179:2013 specification.

Aristotle-MDR represents a new way to manage and federate content built on and extending the principles of leading metadata registries. The code of Aristotle is completely open-source, building on the Django web framework and the mature model of the 11179 standard, allowing agencies to easily run their own metadata registries while also having the ability to extend the information model and tap into the permissions and roles of ISO 11179.

By allowing organisations to run their own independent registries they are able to expose authoritative metadata along with the governance processes behind its creation, and by building upon known and open systems agencies, can deliver a stable platform for the sharing of metadata.

Extensions

Aristotle-MDR aims to be compliant to the core model described within ISO/IEC 11179, however a number of extensions are available to extend functionality and add additional content types.

Quick start

  1. Install using the pip package manager:

    pip install aristotle-metadata-registry
    
  2. Aristotle has a large number of requirements, to support search, API, downloads and such, so review example_mdr/settings.py to ensure you have all of the right settings applied.

    For installed apps this can be applied like so:

    FROM aristotle_mdr.required_settings import INSTALLED_APPS as ARISTOTLE_APPS INSTALLED_APPS = (

    ...

    ) + ARISTOTLE_APPS

    To ensure that search indexing works properly haystack must be installed before aristotle_mdr. If you want to take advantage of Aristotle's access-key shortcut improvements for the admin interface, make sure it is installed before the django admin app.

  3. Include the Aristotle-MDR URLconf in your project urls.py. Because Aristotle will form the majority of the interactions with the site, and the Aristotle includes a number of URLconfs for supporting apps its recommended to included it at the server root, like this:

    url(r'^/', include('aristotle_mdr.urls')),
    
  4. Run python manage.py migrate to create the Aristotle-MDR Database.

  5. (Optional) Compile the multilingual resource files for improved performance, like so:

    django-admin.py compilemessages
    
  6. Start the development server and visit http://127.0.0.1:8000/ to see the home page.

For a complete example of how to successfully include Aristotle, see the tests/settings.py settings file.

An open instance of the Aristotle Metadata Registry is available at: registry.aristotlemetadata.com.

Screenshots for users

More screenshots available in the Aristotle Metadata Registry User Help Documentation.

A data element shown on desktop and mobile Main screen of the Aristotle registry

An item being edited without changing screens Edit screen for a metadata object

Information for developers

Aristotle-MDR is free open-source software and contributions are welcome on front-end web development, back-end server development, translation and content creation (such as more documentation). Review the wiki, open issues and existing documentation to get started.

If you are looking to contribute, a good place to start is checking out the open issues labeled "help wanted" or reviewing the documentation and wiki and identifying (and even adding) content that isn't there.

Using docker

To test Aristotle, there is an included Dockerfile. This will:

  • Use the /aristotle_mdr/example_mdr/ django settings file
  • Install Aristotle-MDR and all requirements
  • Create an SQLite Database and Whoosh search index inside the Container
  • Collect the necessary static files
  • Load some sample metadata
  • Run a server using the django runserver management command.

To start this, from the repository directory run:

docker build . -t aristotle
docker run -t --name amdr -p 8000:8000 aristotle

Then browse to localhost:8000 to see the "Example Metadata Registry".

The included Dockerfile is for development purposes, and is not suitable for production deployments.

About the badges (plus some extras):

  • Travis-CI build status - Travis-CI, showing the details of the continuous testing suite
  • Documentation Status - Read the docs, with details on installing, configuring and extending Aristotle-MDR
  • Code coverage on coveralls - Coveralls, showing in-depth code coverage
  • Code coverage on code cov (includes branch checks) - Codecov.io, showing even greater in-depth code coverage with branch coverage
  • visit the open access metadata registry - A link to a live open-metadata registry
  • visit the gitter chat room for this project - Gitter, a git-powered chat room for developers
  • 'Stories in Ready' - Waffle.io bugs ready to be actioned.
  • Code Climate - Code Climate - additional code metrics
  • This repository is WCAG-Zoo compliant - Web Content Accessibility Guidelines AA Compliant