Skip to content

ISODoc: Bibliographic Models

Nick Nicholas edited this page Jan 27, 2018 · 22 revisions

bibliography

creator =
  element creator { CreatorInfo }

CreatorInfo {
    fullname?, affiliation?, role*, person_identifier*
}

publisher = { CreatorInfo }
# a publisher has a subset of the roles of a creator

role =
  element role {
    attribute type? { ( "author" | "edition" | "publisher" | "custom" ) },
    attribute name {text},
    text
}

fullname =
  element fullname {
    prefix*, forename*, initial*, surname, addition*
}

prefix = element prefix { text }
initial = element initial { text }
addition = element addition { text }
surname = element surname { text }
forename = element forename { text }

affiliation =
  element affiliation { Organization }

Organization= {
    orgname, uri?, address?, org_identifier*
}

orgname =
  element name { text }

uri =
  element uri { text }

address =
  element address {
    # iso191606 TODO
    street+, city, state?, country, postcode?
}

street = element street { text }
city = element city { text }
state = element state { text }
country = element country { text }
postcode = element postcode { text }

person_identifier =
  element identifier {
    attribute type { ("isni" | "uri") },
    text
  }

org_identifier =
  element identifier {
    attribute type { ("orcid" | "uri") },
    text
  }

citation =
  element citation { CitationType }

CitationType = {
    attribute bibItemId { xsd:IDREF },
    locality*, date?
}

date = element date { string }

bibLocality =
  element bibLocality {
    attribute type { ( "section" | "clause" | "part" | "paragraph" | "chapter" | "page" | "whole" ) },
    text
}

bibItem =
  element bibItem { BibliographicItem }

BibliographicItem =
     attribute id { xsd:ID },
     attribute type { "article" | "book" | "booklet" | "conference" | "manual" |
                      "proceedings" | "presentation" | "thesis" | "techreport" |
                      "standard" | "unpublished" }?,
    bname, source?, publishDate, docIdentifier*, accessedDate?, creator*, publisher*, edition?,
    comment*, partOf*, creationDate?, language*, script*
    # type has been mentioned twice, and not identified as of enum type BibItemType
    # what is code for?
}

bname = element name { text }
source = element source { xsd:anyUri }
publishDate = element publishDate { text }
docIdentifier = element docIdentifier { text }
accessedDate = element accessedDate { text }
creationDate = element creationDate { text }
comments = element comments { paragraph+ }

partOf = element partOf { BibliographicItem }

Items for discussion (threaded: identify by number)

  1. citation/source: source is the text element that the citation belongs to; this is in context the text element the citation occurs in (or next to), so it does not need to be included in a schema

    1. Don’t we need to refer to the textElement?

    2. I’m really having trouble understanding your reasoning here. Could you give some illustrations throughout?

  2. destination/bibItem: well, no, that’s conceptual model thinking. destination contains a pointer to a bibItem, not the bibItem itself. The bibItem appers in the document model only in the references, never in the citation.

    1. We don’t have destination?

    2. Again, destination is a pointer to a bibItem, not the bibItem. Need examples here. Destination should look like "[1]" or "Nicholas 2003" or "ISO 613", not a full repetition of the contents of BibItem. I’m replacing BibItem with Cite-As, per your example.

  3. bibLocality/*: all of these need to be optional (in reality, choice of one or more, with page and whole mutually exclusive to the remainder)

    1. Yes you’re right. And these are multiple because one can reference "sections X to Y" or "pages 3, 4, and 5".

  4. bibLocality/clause, bibLocality/paragraph: would be nice to use unique name, both clause and paragraph already used elsewhere. (clauseref, pararef?) That applies for most ambiguous element names, though am ok for "name" to be reused, it always means the same thing

    1. Fixed.

  5. bibItem/type: type has been mentioned twice, and not identified as of enum type BibItemType

    1. Fixed. Problem when extracting it…​

  6. bibItem/code: what is code for?

    1. Document Code, such as ISO numbers.

    2. DocumentIdentifier would be clearer

      1. Fixed.

  7. bibItem/comments: consider making this paragraph[1..*]

    1. Done

  8. affiliation/uri: should be optional

    1. Done

  9. affiliation/address: should be optional

    1. Done

  10. CreatorRole/Name, CreatorRole/Value: Please give an illustration

    1. Provided.

  1. In the example of: This is a <eref citation="citation_123" cite-as="(ISO 613, section 31)" normative=true>codeframe Text</eref><citation id="citation_123" bibitem="bibitem_1234" biblocality-type="section" biblocality-ref="31"/><bibitem id="bibitem_1234" code=613 name="ISO 613"/>:

    1. eref.text = "codeframe Text"

    2. eref.citeAs = "(ISO 613, section 31)"

    3. eref.citation = <Citation id="citation_123" bibitem="bibitem_1234" biblocality=<BibLocality type="section" ref="31">

    4. eref.citation.bibItem = <BibItem id="bibitem_1234" code=613 name="ISO 613">

  1. It might be simpler to have simply: <citation cite-as="(ISO 613, section 31)" normative=true bibitem="bibitem_1234"> <locality type="section">31</locality>codeframe Text</citation>

    • remember you can have multiple localities, hence keeping locality as a separate element. But it would be far more elegant to keep just one locality and have: <citation cite-as="(ISO 613, section 31)" normative=true bibitem="bibitem_1234" locality-type="section" locality="31">codeframe Text</citation>, if not <citation cite-as="(ISO 613, section 31)" normative=true bibitem="bibitem_1234"> <locality type="section">31</locality><text>codeframe Text</text></citation>

      1. Both are valid instantiations of the UML, but the first one seems cleaner.

Clone this wiki locally