If there are no explicit METS to JSON-LD transformations, it might be worth
looking at METS to RDF/XML workflow. Going from RDF/XML (or other
serialisations) to JSON-LD is straight forward.
On Wed, 2 Aug 2023, 17:37 Manuela Pallotto Strickland, <
[log in to unmask]> wrote:
> Hi Gregory,
> Thanks so much for your comment. I am getting the sense that the general
> opinion is that there is not a lot to think about but simply converting ad
> hoc from XML if/when needed. I just had a look at the METS 2.0
> documentation in GitHub and cannot really see any explicit/direct reference
> to Linked Data in it (although the original working group was interested in
> modelling the schema as a more LD-friendly schema). Nonetheless, the 2.0
> documentation references hybrid/LD-compatible data exchange standard
> formats and protocols such as IIIF and BagIt, so who knows... I will post
> my question in the METS listserv, and see what they say.
> Thanks again!
> Best,
> Manuela
>
>
>
> __________________________________________________________________________________
>
> Dr Manuela Pallotto Strickland | Metadata and Digital Preservation
> Coordinator | Archives & Research Collections | Libraries & Collections
> King's College London | Strand | London WC2R 2LS |
> [log in to unmask]
> Tel: Please call me using MS Teams or Skype for Business, or email to
> arrange a call
>
> W: https://www.kcl.ac.uk/library/collections/archives
> T: twitter.com/KingsArchives and twitter.com/kingslibraries
> Blog: blogs.kcl.ac.uk/kingscollections
>
> -----Original Message-----
> From: Code for Libraries <[log in to unmask]> On Behalf Of Murray,
> Gregory
> Sent: Tuesday, August 1, 2023 5:09 PM
> To: [log in to unmask]
> Subject: Re: [CODE4LIB] METS in JSON-LD?
>
> [You don't often get email from [log in to unmask] Learn why this
> is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Hi Manuela,
>
> Personally I'd recommend storing and managing your METS documents as XML
> and converting to JSON only at the point where you need to process them as
> JSON. That assumes you have the option of storing as XML. If your database
> is built mainly or only for JSON, then you'll have to do a one-time
> conversion from XML to JSON. In any case, as has already been said it's
> strictly a matter of conversion, and there are lots of tools that can take
> XML and output generic JSON in a lossless way. Whether you would then need
> to have another process to go from JSON to JSON-LD I don't know; that's
> outside my knowledge.
>
> Hope this helps,
> Greg
>
>
> Gregory Murray
> Director of Digital Initiatives
> Wright Library
> Princeton Theological Seminary
>
>
> From: Code for Libraries <[log in to unmask]> on behalf of parker,
> anson D (adp6j) <[log in to unmask]>
> Date: Tuesday, August 1, 2023 at 10:55 AM
> To: [log in to unmask] <[log in to unmask]>
> Subject: Re: [CODE4LIB] METS in JSON-LD?
> [You don't often get email from
> [log in to unmask] Learn why this is
> important at https://aka.ms/LearnAboutSenderIdentification ]
>
> might be worth spending a minute on some AI bots to play with this
>
> at the end of the day it's an XML->JSON project and there are a bunch of
> tools that will streamline that
>
> for instance here's a dumbed down python script with a streamlit interface
> i got out of claude.ai in a couple of queries
>
>
> import streamlit as st
> import xml.etree.ElementTree as ET
> import json
>
> st.title('METS to JSON-LD Converter')
>
> uploaded_file = st.file_uploader('Choose a METS XML file', type=['xml'])
>
> if uploaded_file is not None:
> # Load METS file
> tree = ET.parse(uploaded_file)
> root = tree.getroot()
>
> # JSON-LD context
> context = {
> '@vocab': 'http://schema.org/<http://schema.org/>',
> 'dc': 'http://purl.org/dc/elements/1.1/<
> http://purl.org/dc/elements/1.1/>'
> }
>
> jsonld = {'@context': context}
> jsonld['metadata'] = []
>
> # Parse METS and generate JSON-LD
> for dmdSec in root.iter('dmdSec'):
> # Extract metadata
> md = {
> 'name':
> dmdSec.find('mdWrap/xmlData/mods/titleInfo/title').text,
> 'author': [{'@type': 'Person', 'name': namePart.text} for
> namePart in dmdSec.find('mdWrap/xmlData/mods/name')],
> 'datePublished':
> dmdSec.find('mdWrap/xmlData/mods/originInfo/dateIssued').text,
> 'publisher': {'@type': 'Organization', 'name':
> dmdSec.find('mdWrap/xmlData/mods/originInfo/publisher').text},
> 'genre': dmdSec.find('mdWrap/xmlData/mods/genre').text,
> 'description': dmdSec.find('mdWrap/xmlData/mods/abstract').text
> }
>
> jsonld['metadata'].append(md)
>
> # Output JSON-LD file for download
> json_txt = json.dumps(jsonld, indent=4)
> st.download_button('Download JSON-LD', json_txt, 'metadata.jsonld')
>
> ________________________________________
> From: Code for Libraries <[log in to unmask]> on behalf of Manuela
> Pallotto Strickland <[log in to unmask]>
> Sent: Tuesday, August 1, 2023 10:47 AM
> To: [log in to unmask]
> Subject: [CODE4LIB] METS in JSON-LD?
>
> Hello,
> I am posting this question on a couple of lists, so sincere apologies to
> those who might see it twice (or thrice).
> Does anyone know of any work that has been/is being/will be done on 'a'
> METS JSON-LD serialization?
> Any relevant info or comment in this re will be very much appreciated.
> Thank you!
> Best wishes,
> Manuela
>
>
>
> __________________________________________________________________________________
>
> Dr Manuela Pallotto Strickland | Metadata and Digital Preservation
> Coordinator | Archives & Research Collections | Libraries & Collections
> King's College London | Strand | London WC2R 2LS |
> [log in to unmask]<mailto:
> [log in to unmask]>
> Tel: Please call me using MS Teams or Skype for Business, or email to
> arrange a call
>
> W: https://www.kcl.ac.uk/library/collections/archives<
> https://www.kcl.ac.uk/library/collections/archives>
> T: twitter.com/KingsArchives<http://twitter.com/KingsArchives> and
> twitter.com/kingslibraries<http://twitter.com/kingslibraries>
> Blog: blogs.kcl.ac.uk/kingscollections<
> http://blogs.kcl.ac.uk/kingscollections>
>
|