Skip to content

spokenweb/swallow

Repository files navigation

Swallow Metadata Management System

This is the source code and documentation repository for the Swallow Metadata Management System.

License

BSD 3-Clause License.


TABLE OF CONTENTS


SpokenWeb Metadata Scheme

SpokenWeb Metadata Scheme and Cataloguing Process is described here: https://spokenweb-metadata-scheme.readthedocs.io/en/latest/

Installation of Swallow

Swallow was developed on PHP 7.2.10 on Ubuntu 18.04

Installation Requirements:

  • PHP
  • MySQL MySQL 5.7.8 (or higher)

Software Architecture

Swallow architecture

The most distinctive characteristic of the Swallow architecture is the complete decoupling of the metadata schema from the database and the system. This is possible by storing the metadata information in no-SQL format and implementing an engine to generate the user interface from a configuration file. As well, in configuration files, there are maps that allow Swallow to batch ingest and export data from and to different systems. These configuration files are defined as JSON objects.

In the figure above we see the overall system diagram for Swallow. White boxes indicate the core modules of Swallow:

  • Cataloguers Management
  • Collections Management
  • Items management.
  • Import and export.

User Interface

The most distinctive characteristic of the Swallow architecture is the complete decoupling of the metadata schema from the database and the system. This is possible by storing the metadata information in no-SQL format and implementing an engine to generate the user interface from a configuration files.

Cataloguer Profile

Editing a user profile, these are simple fields for username and password:

user profile

Dashboard

dashboard

Cataloguers

Browsing cataloguers (for admins):

cataloguer browse screen for admins

Collections

Browsing collections:

collection browse screen

Editing a collection-level metadata:

collection editing metadata

Items

Swallow can be configured to support multiple schema. The following are examples of cataloguing screens generated based on the SpokenWeb Schema that it currently includes by default (configuration files).

Browsing Items encoded in SpokenWeb Schema:

item browsing

Limiting by institution, cataloguer, collection. Sorting. Simple search.

Institution and Collection

item institution/collection

Item Description

item description

Rights

The Swallow schema specification functionality currently allows for the inclusion of URIs alongside metadata values that are a part of the SpokenWeb schema, such as links to CreativeCommons and Rights Statements.

rights

Creators and Contributors

The spokenweb schema includes URIs for authority records (VIAF in example below), and multiple roles:

creators/contributors

Idigeneous ontology nation names can also be added to describe creators/contributors. The widget searches to autocomplete for options from a controlled vocabulary file.

indigenous nations ontology add-on widget

Material Description

The spokenweb schema includes many specialized fields for the material description:

material description

Location

location

Content

The SpokenWeb schema supports XML encoded metadata. This is required for storing Avalon XML formatted structural metadata (https://wiki.dlib.indiana.edu/display/VarVideo/Adding+Structure+to+Files+Using+the+Graphical+XML+Editor)

content field

Related Works

The SpokenWeb schema includes a mulitple field for related citations and URIs

related works

Other fields

Other fields in the SpokenWeb schema include Digital File Description, Dates and Notes.

Import

Importing UI allows user to select an import mapping. A CSV mapping and the two mapping for the SpokenWeb schema versions 2 and 3 are included. System will flag some import warning and errors, if it encounters them. Selecting "preview" allows user to test the import and display warning and errorw without attempting to write the content.

import

Export

User can filter (institution, collection, cataloguer) or do a simple search to find a set of items to export. Currently, only Swallow JSON format is available.

export