dracor-org / dracor-schema

ODD and schemas for dracor.org files
https://dracor.org/doc/odd
5 stars 2 forks source link

Rework odd #67

Open ingoboerner opened 1 month ago

ingoboerner commented 1 month ago

Create a TEI customization (based on TEI Drama ODD) that implements the necessary restrictions for the DraCor API to work.

The derived schema can be used to validate TEI files to be included in DraCor corpora. It allows for greater flexibility in the application of the TEI Guidelines than the original "legacy" ODD derived schema.

The conformance to the API will be tested with Schematron rules that are embedded into the RelaxNG schema.

The ODD also includes definitions for the so-called "features" that were identified in the CLS INFRA Deliverable "On Programmable Corpora" (https://zenodo.org/records/7664964). It includes the explanations of the features developed for the API Ontology (https://github.com/ingoboerner/dracor-ontology/blob/main/v1/dracor_api_ontology.ttl) The identifiers of the features (xml:id s) should allow a automatic linking to the Schemas in the OpenAPI spec (originally, including the links to the ontology, e.g. https://github.com/dracor-org/dracor-api/blob/extend_openapi/api.yaml#L1637-L1639)

At some point it should be possible to gather all <constraintSpec> elements (currently linked with @corresp to the

describing the feature) that are relevant for a feature and thus test if a TEI file in question can be processed by the API to return data on a feature.

The examples from the legacy ODD have been moved to a separate ODD file; eventually it would make sense to re-include them; an open question remains how to proceed in regards to the "Encoding Guidelines" included as a draft in the legacy ODD.

For the initial discussion see also issue #66.

ingoboerner commented 1 month ago

Do we want a warning on the edge case, e.g. pantomime:

<body>
      <div type="act">
        <stage>This is an edge case, e.g. pantomime.</stage>
      </div>
</body>

Schematron rule in <constraintSpec ident="network_check_basic_play_structure_sp"/> would warn that there are no speech acts. But I have rule <constraintSpec ident="network_play_without_speaking_characters"/> that triggers on this edge case and suggests in the case of

<body>
      <div type="act">
<!-- empty -->
      </div>
</body>

to add at least a stage direction.