Overview

The API Extension Architecture (API-X) provides a framework for extending the native functionality of a Fedora 4 repository.  Fedora 4 is a robust, modular, open source repository system for the management and dissemination of digital content and is especially suited for both access and preservation. Originally released in November 2014, version 4 of Fedora is completely new software that addresses the top priorities expressed by the international community.  These were:

  • improved performance, enhanced vertical and horizontal scalability

  • more flexible storage options

  • features to accommodate research data management

  • better capabilities for participating in the world of linked open data

  • an improved platform for developers—one that is easier to work with and which will attract a larger core of developers.

To a large extent these requirements have been addressed through the new Fedora 4 content model and its adherence to the W3C’s Linked Data Platform recommendation.  The content model is very simple with only two types of objects, containers and binaries; while the interface (API) allows direct access to every object in the repository and facilitates bundling multiple operations into larger transactions.

The API-X project seeks to extend the utility of Fedora’s core feature set by facilitating the mapping of the many and varied domain models currently in use by research communities onto Fedora’s semantic-web-based data model and interface.  Concepts such as data set, species, phenotype, collections, metadata, data items, browse imagery, etc. are not native to Fedora 4 and must be mapped to Fedora 4 objects so that communities familiar with those concepts find the web services that are familiar to them.  Mechanisms to extend Fedora so that it can support existing commonly-used web service standards, such as the Open Geospatial Consortium Services (OGC W*S) common in the geospatial community, the Simple Cone Search used in the astronomy community, or the Global Names recognition and discovery services used in biology are required.    

In addition, many domains have developed federated discovery and access portals based on domain specific metadata.  Examples are the two stage discovery mechanisms based off temporal, geospatial, and domain specific parameter queries in the Earth sciences, the ability to query for chemical structures in biomedicine, and to resolve species names across repositories in biology.   If research data held within Fedora repositories are to be globally discoverable, accessible and usable by the research community used to such one-stop capabilities, Fedora 4-based repositories will need to be able to support the mechanisms important to their communities.

Lastly, and perhaps most importantly, beyond supporting existing domain models and services, Fedora 4 needs mechanisms that allow it to support advanced data curation capabilities (e.g., format migrations, support for lineage as well as provenance, etc.) and the needs of new interdisciplinary and cross-disciplinary audiences for data by facilitating access to alternate representations of the data (e.g., thumbnails for browsing, statistical summaries or analysis results on-the-fly) as they develop.  

What is needed is a framework that allows all of these more comprehensive and possibly domain specific services and models to be added to a repository in a standard, reusable, plug-and-play way.  Facilitating this is the purpose of the API-X framework.

How to get involved

Take a look at a hands-on demo of the first milestone API-X release, and provide valuable feedback

All Fedora adopters are welcome and encouraged to participate in this community effort.  The group holds meetings via conference call on a biweekly basis, currently every second Thursday at 1pm Eastern (US) Time.  Notes from past meetings and agendas for upcoming meetings are available via the links to the right.

Participation can take many forms, from attending meetings, contributing use-cases, and drafting documentation, to acting as a stakeholder or contributing code for development efforts.  Just call in to a meeting or get in touch with some of the participants listed below to find out how you can help!

People and Roles

For more information on different ways to participate in API-X planning and development, see the "People and Roles" page.  Current participants in the API-X group includes the following:

Links

  1. Documents
    1. Design overview
    2. Use Cases
    3. High-Level Requirements (distilled from use cases)
  2. Implementation
    1. Github – https://github.com/fcrepo4-labs/fcrepo-api-x
    2. First milestone/demo - API-X Demo/Milestone 1
  3. Recent Papers, presentations, and media
    1. Introduction to API-X video on youtube
    2. Slides from DLF '16
    3. Slides from Open Repositories '16