Library Access Guide
Audience: Library integrators (primary) · Technical support (secondary)
Use this guide when you need to: syndicate MJW Fedora metadata into an external library catalogue or discovery layer.
Start here:
- Syndication API (Swagger UI): https://api.michaeljwright.com.au/syndication/swagger
- OpenAPI JSON: https://api.michaeljwright.com.au/syndication/openapi.json
Related:
- Field-level mapping: Metadata Model
- System layout: System Architecture
This guide is for library staff and database administrators who need to connect to the Michael J Wright Digital Archive for research, cataloging, or system integration purposes.
Archive Overview
The Michael J Wright Digital Archive is a professional digital preservation platform built on Fedora 6 Repository with PostgreSQL for metadata storage. The archive contains:
- Paintings
- Drawings (prints, dry media, mixed media)
- Sculptures
- Photographs
- Poems and written works
- Notebooks and journals
All content follows Dublin Core metadata standards with custom extensions for artwork-specific properties.
Access Methods
1. Web Portal (Recommended for Most Users)
Archive Portal: https://data.michaeljwright.com.au/
- Browse documentation and guides
- Access curator resources
- View metadata standards
- Read submission guidelines
Fedora REST API (Read-Only): https://fcrepo.michaeljwright.com.au/fcrepo/rest/
- Direct access to repository collections
- Retrieve metadata in JSON-LD, Turtle, or XML formats
- Query individual resources
Example - Browse all collections:
curl -H "Accept: application/ld+json" \
https://fcrepo.michaeljwright.com.au/fcrepo/rest/
Example - View paintings collection:
curl -H "Accept: application/ld+json" \
https://fcrepo.michaeljwright.com.au/fcrepo/rest/paintings
2. Fedora REST API (For Library Systems Integration)
The Fedora REST API provides machine-readable access to all archive content.
Authentication
Read-Only Access: No authentication required for GET requests to public collections.
Write Access: Contact the archive administrator for credentials if your library needs to contribute metadata or manage resources.
Base URL
https://fcrepo.michaeljwright.com.au/fcrepo/rest/
Collections Endpoints
| Collection | Endpoint |
|---|---|
| Paintings | /paintings |
| Drawings | /drawings |
| Sculptures | /sculptures |
| Photographs | /photographs |
| Poems | /poems |
| Notebooks | /notebooks |
Supported Formats
Request metadata in your preferred format using the Accept header:
- JSON-LD:
Accept: application/ld+json(recommended for library systems) - Turtle:
Accept: text/turtle - N-Triples:
Accept: application/n-triples - RDF/XML:
Accept: application/rdf+xml
Example: Retrieve Resource Metadata
# Get a specific painting in JSON-LD format
curl -H "Accept: application/ld+json" \
https://fcrepo.michaeljwright.com.au/fcrepo/rest/paintings/MJW-P-2024-001
Example: List All Items in a Collection
# Get all paintings with metadata
curl -H "Accept: application/ld+json" \
https://fcrepo.michaeljwright.com.au/fcrepo/rest/paintings
3. PostgreSQL Database (Advanced Integration)
The archive uses PostgreSQL for internal metadata storage. Direct database access is not typically provided to external libraries for security and data integrity reasons.
If your institution requires SQL-level access for research or integration:
- Contact the Archive Administrator: rob@objectiveartefacts.com.au
- Describe Your Use Case: Explain why REST API access is insufficient
- Security Review: Database credentials are only provided after security vetting
- Read-Only Access: External connections are limited to read-only operations
Database Connection Details (If Approved)
Host: Contact administrator for connection details
Port: 5432 (PostgreSQL default)
Database: fcrepo
User: Read-only credentials provided separately
SSL: Required for all remote connections
Example Connection String:
postgresql://readonly_user:password@host:5432/fcrepo?sslmode=require
Database Schema
The Fedora repository uses an internal schema managed by the Fedora application. Key tables include:
- ocfl_objects: OCFL (Oxford Common File Layout) object storage
- metadata: RDF triples for all resources
- binary_content: File attachments and binaries
Note: Querying the database directly is complex. We recommend using the Fedora REST API for most library integration needs.
Metadata Standards
All resources in the archive follow Dublin Core standards with custom extensions:
Core Dublin Core Fields
dc:title- Title of the workdc:creator- Michael J Wright (artist)dc:date- Creation datedc:description- Detailed descriptiondc:type- Work type (Painting, Drawing, etc.)dc:format- File format (JPEG, TIFF, PDF, etc.)dc:identifier- Catalog ID (e.g., MJW-P-2024-001)dc:subject- Keywords and subjects
Custom Extensions (mjw namespace)
mjw:catalogId- Archive catalog identifiermjw:dimensions- Physical dimensionsmjw:medium- Materials usedmjw:condition- Conservation statemjw:series- Series name (if part of collection)mjw:location- Current physical location
Catalog ID Convention
All works use a standardized catalog ID format:
MJW-{TYPE}-{YEAR}-{NNN}
Examples:
MJW-P-2024-001- Painting from 2024, number 1MJW-D-2023-042- Drawing from 2023, number 42MJW-S-2024-005- Sculpture from 2024, number 5MJW-PH-2022-100- Photograph from 2022, number 100MJW-PM-2021-012- Poem from 2021, number 12MJW-NB-2020-003- Notebook from 2020, number 3
Type Codes:
P= PaintingD= Drawing (includes prints, dry media, mixed media)S= SculpturePH= PhotographPM= PoemNB= Notebook
Integration Examples
Example 1: Library Discovery System Integration
Harvest all paintings into your discovery layer:
import requests
# Fetch paintings collection
response = requests.get(
'https://fcrepo.michaeljwright.com.au/fcrepo/rest/paintings',
headers={'Accept': 'application/ld+json'}
)
paintings = response.json()
# Process each painting
for painting in paintings:
catalog_id = painting.get('dc:identifier')
title = painting.get('dc:title')
date = painting.get('dc:date')
# Insert into your library catalog...
Example 2: MARC Record Generation
Map Dublin Core to MARC 21 for integrated library systems:
dc:title→ MARC 245$adc:creator→ MARC 100$adc:date→ MARC 260$cdc:identifier→ MARC 024$adc:description→ MARC 520$adc:subject→ MARC 650$a
Example 3: OAI-PMH Harvesting
If your institution uses OAI-PMH harvesters, contact the administrator to discuss enabling an OAI-PMH endpoint.
Access Levels and Permissions
Public Access (No Authentication)
- Browse collections via web portal
- Read metadata via REST API (GET requests)
- Download public documentation
Library Staff Access (Credentials Required)
- Search and retrieve full metadata
- Access master references and request high-resolution originals (if authorized)
- Export bulk metadata for cataloging
- Contact: rob@objectiveartefacts.com.au
Administrative Access (Restricted)
- Create/update/delete resources
- Manage collections and metadata schemas
- Database-level access
- Contact archive administrator
Technical Support
For Library Systems Integration
Technical Contact: rob@objectiveartefacts.com.au
Please include:
- Your institution name
- Intended use case
- Technical requirements (API format, authentication, etc.)
- Timeline for integration
For Content or Cataloging Questions
Curator Contact: Submit inquiries via the web portal
System Architecture
For technical staff planning integration:
- Repository: Fedora 6 (LDP-compliant REST API)
- Database: PostgreSQL 12+
- Hosting: Azure Linux VM with Docker
- CDN: Cloudflare (global edge network)
- Tunneling: Cloudflare Tunnel (secure access without public IPs)
- Authentication: HTTP Basic Auth (for write operations)
- Metadata Format: RDF (JSON-LD, Turtle, N-Triples, RDF/XML)
Frequently Asked Questions
Can we harvest metadata automatically?
Yes. Use the Fedora REST API with JSON-LD format for automated harvesting. No authentication needed for read operations.
Do you support Z39.50 or SRU/SRW?
Not currently. The Fedora REST API is the primary interface. If your library requires Z39.50, please contact us to discuss custom integration.
Can we link to works from our catalog?
Absolutely. Use persistent URLs:
https://fcrepo.michaeljwright.com.au/fcrepo/rest/{collection}/{catalog-id}
Example: https://fcrepo.michaeljwright.com.au/fcrepo/rest/paintings/MJW-P-2024-001
Is there a API rate limit?
No rate limits for reasonable library use. For bulk harvesting (1000+ requests), please contact us in advance.
How often is metadata updated?
Metadata is updated in real-time as curators add or modify content. There is no scheduled batch update cycle.
Can we contribute metadata corrections?
Yes. Email corrections to the curator team or request write access to submit updates via the API.
Change Log
2025-01-06: Initial library access guide published
Additional Resources
- Archive Portal: https://data.michaeljwright.com.au/
- Curator's Guide: https://data.michaeljwright.com.au/docs/curators-guide.html
- Metadata Standards: https://data.michaeljwright.com.au/docs/metadata-standards.html
- Fedora Documentation: https://fedora.lyrasis.org/
- Dublin Core Metadata: https://www.dublincore.org/specifications/dublin-core/
This guide is maintained by the Michael J Wright Archive technical team. Last updated: 2025-01-06