relaton / relaton-bib

MIT License
3 stars 1 forks source link

Refactor bibitem #1

Closed opoudjis closed 5 years ago

opoudjis commented 5 years ago

Through the refactoring, bibitem has had some elements removed, and they will only appear in bibdata/ext instead. relaton-bib is only meant to create the elements in bibitem; the elements in bibdata/ext are specific to each flavour. Therefore relaton-bib needs to be updated.

With the updated grammar (on relaton-models/grammars/biblio.rnc), bibitem looks like this:

bibitem =
  element bibitem {
     attribute id { xsd:ID },
     BibliographicItem
}

BibliographicItem =
    attribute type { BibItemType }?,
    fetched?,
    (btitle+ | formattedref), bsource*, docidentifier*, docnumber?, bdate*, contributor*,
    edition?, version?, biblionote*, language*, script*,
    abstract?, status?, copyright?, docrelation*, series*, medium?, bplace*,
    extent*, accesslocation*, bclassification?, validity?

Note that extent now is used to model what used to be the allparts attribute in ISO, as <extent type="part"><referenceFrom>all</referenceFrom></extent>. That means that extent will need to be modelled more elaborately than is currently the case.

Note also that the status element now always contains a stage element; any status data needs to go there.

We will also eventually need to be able to specify in YAML parts of contributor/person names, i.e. given name vs surname vs completename. So names will need to be specified more elaborately as well. The information model should be able to convey everything that the XML can do, because eventually we will want to generate the XML via YAML, using as key values the constructors of this gem.

Any element no longer in bibitem has been moved to bibdata (apart from allparts, which is now modelled differently). The requirements of bibdata/ext are specific to each flavour gem, and will be described in tickets for those gems.

Note that bibitem/@type is ALWAYS henceforth "standard" for the relaton suite of gems. The more specific type of standard is now set in bibdata/ext/doctype.