django-dublincore-resource

Describe your resources with a Dublin Core schema


Keywords
dublin-core, controlled-vocabulary, linked-data, vocabulary, metadata, django, reusable, work-in-progress
License
MIT
Install
pip install django-dublincore-resource==0.1.4

Documentation

Django Dublin Core Resource

A Django model and admin interface to manage metadata about your resources using standard Dublin Core (DC) schema.

The approach taken by this app is to centralise all your resource metadata into a single table.

Data Models

  • AbstractDublinCoreResource
    • an abstract Django Model that replicate the Dublin Core schema
    • each DC element (dc:) is represented by a field
    • some DC terms (dcterms:) are also included
    • makes use of ControlledTermField for links to controlled vocabularies
  • DublinCoreResource
    • inherit from AbstractDublinCoreResource
  • DublinCoreAgent
    • represents a person or organisation
  • DublinCoreRights
    • represents Rights statements that can be shared among your resources

Features

  • One centralised table for all your resource
  • Standard Dublin Core elements/fields
  • Lookup values into authority lists / controlled vocabularies
  • Inline description of all fields
  • Extensible model
  • [TODO] optional integration with Wagtail Image gallery and Documents
  • [TODO] smart bulk import/update from CSV
  • [TODO] advanced input validations
  • [TODO] API / export into various standard formats
  • [TODO] support for file attachment / upload
  • [TODO] support for bibliographic citation parsing / extraction
  • [TODO] support for EDTF dates
  • [TODO] use Creative Commons best practices and schema for the rights

Set up

Installation

First install django-controlled-vocabulary.

Then install the django-dublincore-resource app:

pip install django-dublincore-resource

Add the app to the INSTALLED_APPS list in your Django settings.py file:

INSTALLED_APPS = [
    ...
    'dublincore_resource',
    ...
]

Run the schema migrations:

./manage.py migrate

Configuration

The following settings vars are defined by default but can be overridden in your Django settings.py.

By default this app provides a DublinCoreResource model that inherit from the abstract AbstractDublinCoreResource model. Set the following to False to define your own model.

# Set to True to disable the DublinCoreResource model and define your own
DUBLINCORE_RESOURCE_ABSTRACT_ONLY = False
# The path where resource file are uploaded, relative to your MEDIA path
DUBLINCORE_RESOURCE_UPLOAD_PATH = 'uploads/dublin_core/'