Introduction to the platform: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
== What is | == What is Miranda? == | ||
The Folger Digital Asset Platform (the D.A.P. or DAP), known as Miranda, is an open source software system (licensed under the GNU General Public License v3.0) that allows for the storage of arbitrary binary files and assets and their associated metadata and inter-asset relationships. It has been designed to allow for flexible definition of the kinds of assets it stores, flexible binary file asset storage, enterprise class search, and is built from the ground up to leverage APIs. The DAP has an import component for rapidly ingesting data, an indexing service to manage what metadata is made available for public search, a GraphQL API for asset consumption, and a microservice to publicize configured asset types and their validation schemas. | The Folger Digital Asset Platform (the D.A.P. or DAP), known as Miranda, is an open source software system (licensed under the GNU General Public License v3.0) that allows for the storage of arbitrary binary files and assets and their associated metadata and inter-asset relationships. It has been designed to allow for flexible definition of the kinds of assets it stores, flexible binary file asset storage, enterprise class search, and is built from the ground up to leverage APIs. The DAP has an import component for rapidly ingesting data, an indexing service to manage what metadata is made available for public search, a GraphQL API for asset consumption, and a microservice to publicize configured asset types and their validation schemas. |
Revision as of 13:07, 9 May 2018
What is Miranda?
The Folger Digital Asset Platform (the D.A.P. or DAP), known as Miranda, is an open source software system (licensed under the GNU General Public License v3.0) that allows for the storage of arbitrary binary files and assets and their associated metadata and inter-asset relationships. It has been designed to allow for flexible definition of the kinds of assets it stores, flexible binary file asset storage, enterprise class search, and is built from the ground up to leverage APIs. The DAP has an import component for rapidly ingesting data, an indexing service to manage what metadata is made available for public search, a GraphQL API for asset consumption, and a microservice to publicize configured asset types and their validation schemas.
This project is made possible through the generous support of the Andrew W. Mellon Foundation.
Why is it being built?
The DAP is being built to help fill a need in the mid-sized cultural institution space that is currently not well served by existing open or closed source solutions. In particular as "born digital" or "digital native" types of content such as databases, blog posts, mobile applications and the like become more commonplace the existing “record” management systems that libraries and cultural institutions have relied on are either too limited, too expensive, or too opinionated to fit our particular needs.
Key business areas this impacted for the Folger included:
- Enhanced remote access -- Not everyone can physically travel to the Folger Shakespeare Library in Washington, DC. Existing tools were designed to facilitate discovery of assets but not as helpful in the consumption of these assets.
- Audience expansion -- The Folger currently serves an audience of around 2 million people annually. However, many audiences could not be easily targeted with library- or institution-specific data formats, data exchange standards, and other types of technical roadblocks of high learning curves. By developing a system utilizing widely adopted, well documented, and cross-sector supported standards and solutions, the DAP makes it much more likely that new audiences and organizations can and will leverage Folger assets.
- International partnerships -- As the Folger seeks to develop strong partnerships with similar organizations across the globe it needed a non-proprietary mechanism for connecting with organizations that had chosen different technical infrastructures for managing their own internal assets. In many ways this is the Folger’s own internal use case for audience expansion, and the partnerships will allow the Folger to develop the DAP with real world experience in sharing, connecting, and juxtaposing their assets with other organizations’ holdings.
- Digital Acquisition and Preservation -- While many of the original assets the Folger collected were well understood, and the universe of types of content was fairly static (as it is rare that a new kind of 16th-century manuscript is discovered), the digital world is in flux and new content types are being defined yearly. Some recent content types are already no longer being developed. In addition, the Folger is creating new kinds of digital assets out of the physical holdings, such as the Folger Digital Texts archive and surveys of female owners of early modern books.
Major platform components
Content Importer
Imports JSON structured content
Content Validator
Validates imported JSON by matching it against an available configured schema. Allows for a hierarchy of validation schemas to be defined with fallbacks.
Content Search
System allows individual content items to be flagged as “searchable” or not, allowing you to keep internal metadata in the system but not junk up your search results with it.
GraphQL API
System allows individual content items to be flagged as “published” or not, allowing you to keep some data in the system as private / draft content.
Schema Microservice
Allows developers to easily see what content types are configured in any particular installation of the DAP and to retrieve the JSON validation schema that is used to test each content type during import.
Sample Web Client
Demonstrates how to build a web client that leverages both elastic search and our graphQL api. The client also demonstrates how various system integrations can happen in this client middleware. (For instance using 3rd party viewers to let web users browse and navigate visual assets in the client.)
What software and systems is the DAP built with?
- PHP 7 - http://php.net/manual/en/
- Symfony 3 - https://symfony.com/doc/current/index.html
- GraphQL - http://graphql.org
- JSON - http://www.json.org
- Postgresql - https://www.postgresql.org
- ElasticSearch - https://www.elastic.co/guide/index.html
- Pattern Lab - http://patternlab.io