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.
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/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.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')),
Run
python manage.py migrate
to create the Aristotle-MDR Database.(Optional) Compile the multilingual resource files for improved performance, like so:
django-admin.py compilemessages
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.
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
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.
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.
- - Travis-CI, showing the details of the continuous testing suite
- - Read the docs, with details on installing, configuring and extending Aristotle-MDR
- - Coveralls, showing in-depth code coverage
- - Codecov.io, showing even greater in-depth code coverage with branch coverage
- - A link to a live open-metadata registry
- - Gitter, a git-powered chat room for developers
- - Waffle.io bugs ready to be actioned.
- - Code Climate - additional code metrics
- - Web Content Accessibility Guidelines AA Compliant