Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

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

Project Description

Aristotle Metadata Registry (Aristotle-MDR)


|tci-build-status| |docs| |coveralls| |demoserver| |codeclimate| |av-build-status| |wcagzoo|

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.

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

#. Aristotle has a large number of requirements, to support search, API, downloads and such, so review `example_mdr/` 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

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.

#. Include the Aristotle-MDR URLconf in your project ````. 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')),

#. Run ``python migrate`` to create the Aristotle-MDR Database.

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

#. Start the development server and visit ````
to see the home page.

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

**An open instance of the Aristotle Metadata Registry is available at:** ` <>`_.

Screenshots for users

`More screenshots available in the Aristotle Metadata Registry User Help Documentation <>`_.

A data element shown on desktop and mobile

An item being edited without changing screens

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):
* |tci-build-status| - Travis-CI, showing the details of the continuous testing suite
* |docs| - Read the docs, with details on installing, configuring and extending Aristotle-MDR
* |coveralls| - Coveralls, showing in-depth code coverage
* |codecov| -, showing even greater in-depth code coverage with branch coverage
* |demoserver| - A link to a live open-metadata registry
* |gitter| - Gitter, a git-powered chat room for developers
* |waffleio| - bugs ready to be actioned.
* |codeclimate| - Code Climate - additional code metrics
* |wcagzoo| - Web Content Accessibility Guidelines AA Compliant

.. |tci-build-status| image::
:alt: Travis-CI build status
:scale: 100%

.. |av-build-status| image::
:alt: Appveyor build status
:scale: 100%

.. |docs| image::
:alt: Documentation Status
:scale: 100%

.. |coveralls| image::
:alt: Code coverage on coveralls
:scale: 100%

.. |codecov| image::
:alt: Code coverage on code cov (includes branch checks)
:scale: 100%

.. |demoserver| image::
:alt: visit the open access metadata registry
:scale: 98%

.. |gitter| image::
:alt: visit the gitter chat room for this project
:scale: 100%

.. |waffleio| image::
:alt: 'Stories in Ready'

.. |codeclimate| image::
:alt: Code Climate

.. |wcagzoo| image::
:alt: This repository is WCAG-Zoo compliant

.. |homescreenshot| image::
:alt: Main screen of the Aristotle registry
:scale: 100%

.. |newitemsample| image::
:alt: Data Element on desktop and mobile
:scale: 100%

.. |itemeditsample| image::
:alt: Edit screen for a metadata object
:scale: 100%

.. |aristotle-logo| image::
:alt: Aristotle-MDR Logo
:scale: 100%

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(1.7 MB) Copy SHA256 Hash SHA256
Wheel py3 Nov 20, 2017
(1.5 MB) Copy SHA256 Hash SHA256
Source None Nov 20, 2017

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers