
Hi Martin, I think this makes sense and currently the MEI source at https://raw.githubusercontent.com/music-encoding/schema/refs/heads/main/5.0/... would fit of the requirements (<schemaSpec> with no <*Ref> children). In the past, I have been using the --localSource parameter to override p5subset with the MEI source, essentially setting the base odd for further chaining. Raff On Wed, Feb 12, 2025 at 12:47 PM Martin Holmes <mholmes@uvic.ca> wrote:
Hi all,
The ATOP group has been grappling with the issue of ODD chaining, and in particular, how to determine, starting from a customization ODD to process and following its chain of precursors, how to know when you reach a base ODD and don't have to go any further.
This is easy if the ultimate base ODD is p5subset, and that is indeed the default. However, it's perfectly possible that you don't want anything at all from P5, you just want to customize a base ODD that you've already created. One obvious sign of a base ODD is that there is no <schemaSpec> element -- which is the case for p5subset -- but we know that many base ODDs in the wild DO have a `<schemaSpec>` element, and it also seems intuitive that if you're creating a schema specification, you should use a `<schemaSpec>` element.
So we've arrived at a definition of a base ODD, which we believe is testable; it goes like this (adapted from our meeting notes):
EITHER the ODD has no `<schemaSpec>` element, OR it has a <schemaSpec> with no `@source` (meaning that the source would default to p5subset), BUT there are no `<*Ref>` children of that `<schemaSpec>` invoking content from p5subset so there is no need to retrieve it.
This is based on the assumption that if you use any `<*Ref>` element at the base level (i.e. as a direct child of `<schemaSpec>`), that constitutes a call to retrieve something from p5subset; but any such `<*Ref>` at a lower level must be referring to what is already in the schema (either because it's locally defined, or because it was brought in by a top-level `<moduleRef>`, `<elementRef>`, etc.).
So my question is: does all this make sense to you all? If so, and we proceed on this basis, then P5 could probably use some more explanation of what a base ODD is, and how it fits into the chaining process.
I should also say that current approaches to ODD chaining with the current Stylesheets involve pre-compiling any ODD which is earlier in the chain, so that it constitutes a .processedodd file (see <https://teic.github.io/PDF/howtoChain.pdf> section 4), but we would like ATOP to be able to do all that automatically, so that all you do is specify the source for your customization, and the processor can construct the entire chain and compile everything in sequence.
Cheers, Martin -- ------------------------------------------ Martin Holmes UVic Humanities Computing and Media Centre
I acknowledge and respect the lək̓ʷəŋən peoples on whose traditional territory the university stands and the Songhees, Esquimalt and WSÁNEĆ peoples whose historical relationships with the land continue to this day.
_______________________________________________ Tei-council mailing list -- tei-council@lists.tei-c.org To unsubscribe send an email to tei-council-leave@lists.tei-c.org