MarcEdit Linked Data Platform–custom linking indexes

By reeset / On / In MarcEdit

Over the past year and half, I’ve been working with MarcEdit to provide the ability for users interested in doing URI entification against various known vocabularies, as well as adding these vocabularies into an authority processing workflow.  The processes work well for the handful (15-20) defined indexes that MarcEdit currently queries.  But long-term, libraries may see a proliferation of indexing services, and the ability to add custom linking services into MarcEdit will become more important. 

So, with the next version of MarcEdit – I’ll be making a change.  While MarcEdit will still have custom code that handles some of the larger national indexes (because this makes sense) – all the information about the collections, their internal labels, and JSON object paths (for values) will be moved into the rules file.  The upside to this is that users will be able to customize the queries MarcEdit is making against a linked data service (if they want) – but more important, they can add their own linked data services.  Initially, custom services will need to return well-formed JSONLD, where the value for the specified URI can be referenced as a JSON object path (i.e., this the path used with the AAT index: results.bindings[0].subj.value), but if it matches that criteria, you’ll be able to add your own services into MarcEdit, and if MarcEdit encounters your defined index label within your metadata, it will ping the service. 

Within the rules file, you’ll see this new structure represented as:

      <name>US Library of Congress Subject Heading</name>
      <path />

Since many of the indexes (national indexes) MarcEdit queries now do not use JSON in their return (or MarcEdit utilizes a special, optimized process) – these will not have paths.  But for other sources like MESH headings, Getty headings, you’ll be able to see how this structure is being utilized.

I’m still testing these changes – as the changes to the linked data framework affect a number of parts of the application – but these will be part of the next update.