Skip to content

2020 02 06 METS & XLink

Aaron Elkiss edited this page Feb 6, 2020 · 1 revision

Background

There are problems with the XLink schema that the METS schema references - specifically, that it is incompatible with the XLink schema published by W3C, which causes problems when METS is used together with schemas that rely on the W3C-published XLink schema.

We have decided to look into removing the dependency on the XLink schema, as XLink is not a widely used standard and PREMIS3 and EAD3 have both removed their dependencies on XLink.

Most of the discussion of the issue on this GitHub issue: https://github.com/mets/METS-board/issues/19

A couple other issues also touch on it:

https://github.com/mets/METS-board/issues/33 https://github.com/mets/METS-board/issues/30

See also the notes on the Trello board, for example https://trello.com/c/aeZ0iJ94/157-xlink-issues

Approaches to removing XLink

  • PREMIS 2 used only XLink simpleLinks; PREMIS 3 replaced the simpleLink attribute group with a single "simpleLink" attribute of type xs:anyURI
  • EAD2002 had several elements that used the extended XLink attributes as well as several that used the simple XLink attributes. So far as I can tell (not being that familiar with EAD), EAD3 does away with the elements that used the extended XLink attributes. For simple XLinks, it retains those attributes, but in the EAD namespace.
  • SVG2 (still a draft standard) deprecates xlink:href and xlink:title; xlink:href moves to a new 'href' attribute in the SVG namespace (https://www.w3.org/TR/SVG2/linking.html)

Notes

We discussed a couple possibilities for making a backwards-compatible change:

  • just adding xsd:anyAttr as necessary to remove the dependence on the XLink schema, possibly with an auxiliary Schematron document for doing the XLink validation
  • adding same-named attributes in the METS namespace; deprecating the use of the XLink namespace and adding xsd:anyAttr as above but also declaring our own attributes with our own names

Neither of these options seemed appealing, and the original issue that was raised seems either to no longer apply or to apply only in very narrow cases.

Resolved that for now we will not make any changes to METS 1.x regarding XLink.

We agreed that if or when we produce METS 2, we will remove the dependency on XLink. The bigger question is what other issues to consider with respect to METS 2. We will review the previous work done on METS 2 and discuss at our next meeting whether we should move forward with work on METS 2.

For METS 2 there were two issues regarding XLink to consider:

Should we retain structLink?

At least in the existing registered METS profiles structLink is not widely used. There were likely uses in the past for archiving websites, but WARC is more common for that purpose now. However, there may be some cases where it is still useful.

For now, we will consider moving structLink to an optional extension schema and moving the extended XLink attributes to that schema's namespace. behaviorSec would also be a candidate for moving to this optional extension schema.

How would we structure simple links in METS2?

So far as we can tell none of the XLink attributes besides href are in use in any of the registered profiles for simple links. So, we would retain only an href attribute in the METS namespace (i.e. an approach like SVG2)

What else would we want to consider for METS2?

Could we simplify/flatten the METS structure somehow, reduce the number of elements? could some attributes be elements?

We need to think about the potential benefits of METS2 and focus on the goals of a backwards-incompatible schema. Easier to learn? Easier for humans to read? Easier to use for interchange between systems? Easier to use for either extension or restriction?

There was a paper on path to METS version 2 & objectives - presentation from Tom in 2010/2011? In 2015 - METS in RDF. These issues have been conflated in the past, but it is probably best if METS 2 and an RDF expression of METS should be separate things.

We could probably not get to a METS lite that would be a universal use for all implementors to date...

Actions for now

  • Review the work to date on METS 2
  • Discuss whether to pursue METS 2 at the next meeting (on Feb 27)

https### _4922663812``://github.com/mets/METS-board.wiki.git

Clone this wiki locally