-
Notifications
You must be signed in to change notification settings - Fork 4
Getting Started
Marva is an Bibframe RDF/XML editor used at the Library of Congress. While it is primarily intended to be used at LC it can be used to edit arbitrary BF records.
git clone https://github.com/lcnetdev/marva-quartz.git
cd marva-quartz
npm install
npm run dev-external
This will run the client locally at http://localhost:4444/bfe2/quartz/
It will be configured to used specific endpoints that work publicly
To load data you enter a URL in the load screen. You can use any Instance on id.loc.gov
For example https://id.loc.gov/resources/instances/2143880.cbd.rdf
Clicking the Monograph
button will load that data into the Monograph profile.
( you can also search by LCCN in that field, but that is an example of Marva built to support LC cataloging, of course the search behavior can be customized if you know what to edit )
Profiles are JSON definitions that direct how to group BF properties together into blank nodes and provides metadata about lookups to use for different types of fields. Unless you have experience with modifying profiles it is probably easiest to just use the LC profiles when getting started (this are defined in the config setup so it is easy to point Marva to use other profile definition)
The Work/Instance data package sent to the editor need to be in the specific format that aligns with the profiles, which themselves align with the LC BF Ontology updates, the MARC-2-BF and BF-2-MARC conversions.
In Marva you can "Save" a record, this stores the XML of the edited record in the back-end. When you "Post" you are sending the final version of the record to a server to do something with it. At LC when we post we are saving the record into id.loc.gov. This functionality is configured in the publish
endpoint in theconfig file
The marva-quartz
repo contains the Vue3 front-end code of the editor. This client can accept incoming XML packages, render them in a defined profile and export/post the modified version. It does however have some functionality that is dependent on a back-end system running it. Here is a list of incomplete features and requirements.
Feature | Notes |
---|---|
Load BF Work/Instance package | Requires hosted BF Editor profiles, public LC profiles available/hosted at GitHub . |
Edit BF Work/Instance package | |
"Save" in progress work | Requires back-end system |
"Post" edited Work/Instance package | Can send XML package to endpoint, you need to provide the endpoint back-end |
Preview of BF-to-MARC conversion | Requires back-end system |
Scriptshifter Transliteration integration | Requires back-end system (open service hosted by LC) |
Lookup Resources in the id.loc.gov ecosystem (Names/Subjects/Vocabulary Terms) | |
Be configured to use external authorities | Requires back-end system |
Publish name authorities | Requires back-end system |
Copy Cataloging | Requires back-end system + OCLC API keys |
Shelf Listing | Requires back-end system |
Validation | Requires back-end system |
We use a very barebones Node Express server to provide these back-end services but you would likely want to modify how it works or provide a different platform or service: https://github.com/lcnetdev/marva-backend