diff --git a/grammars/basicdoc-models b/grammars/basicdoc-models index 769c81f..79e0797 160000 --- a/grammars/basicdoc-models +++ b/grammars/basicdoc-models @@ -1 +1 @@ -Subproject commit 769c81fd9b2c0688a35647c95c607345884637a8 +Subproject commit 79e0797fcf627e1f83678eb46ebf5252e54c41dc diff --git a/grammars/biblio.rnc b/grammars/biblio.rnc index 866382a..1e1bdb2 100644 --- a/grammars/biblio.rnc +++ b/grammars/biblio.rnc @@ -73,52 +73,56 @@ edition = element edition { } ## multiple values are comma-delimited -LocalizedStringAttributes = +LocalizedStringAttributes = attribute language { LanguageType }?, attribute locale { LocaleType }?, attribute script { ScriptType }? -LocalizedString1 = +LocalizedString = LocalizedStringAttributes, text -## FormattedString which optionally specifies its language, locale, and/or script -LocalizedString = - LocalizedString1 | - ## Variants of the string, with the same content, but in different language, script, or format - element variant { LocalizedString1 }+ +#LocalizedString = +# LocalizedStringAttributes, +# text +# +#LocalizedString = +# LocalizedString1 | +# element variant { LocalizedString1 }+ -LocalizedMarkedUpString1 = +LocalizedMarkedUpString = LocalizedStringAttributes, - TextElement+ + PureTextElement+ -LocalizedMarkedUpString = - LocalizedMarkedUpString1 | - ## Variants of the string, with the same content, but in different language, script, or format - element variant { LocalizedMarkedUpString1 }+ +#LocalizedMarkedUpString = + #LocalizedMarkedUpString1 | + # Variants of the string, with the same content, but in different language, script, or format + #element variant { LocalizedMarkedUpString1 }+ # Unlike UML, change type to format: type is overloaded # Would be need if plain were default value and could omit the attribute # Added LocalizedStringOrXsAny -## String which is formatted according to conventions specified in a named MIME type -FormattedString = - ## MIME type for string (defailts to text/plain). - ## NOTE: `docbook`, `AsciiDoc`, `Metanorma` are not registered IANA Media Types - attribute format { - "text/plain" | "text/html" | "application/docbook+xml" | - "application/tei+xml" | "text/x-asciidoc" | "text/markdown" | "application/x-metanorma+xml" | text - }?, - ## String - LocalizedStringOrXsAny - -LocalizedStringOrXsAny1 = + +#LocalizedStringOrXsAny1 = + +LocalizedStringOrXsAny = LocalizedStringAttributes, ( text | AnyElement )+ -LocalizedStringOrXsAny = - LocalizedStringOrXsAny1 | - ## Variants of the string, with the same content, but in different language, script, or format - element variant { LocalizedStringOrXsAny1 }+ +#LocalizedStringOrXsAny = +# LocalizedStringOrXsAny1 | +# element variant { LocalizedStringOrXsAny1 }+ + +## String which is formatted according to conventions specified in a named MIME type +#FormattedString = + ## MIME type for string (defailts to text/plain). + ## NOTE: `docbook`, `AsciiDoc`, `Metanorma` are not registered IANA Media Types + #attribute format { + #"text/plain" | "text/html" | "application/docbook+xml" | + #"application/tei+xml" | "text/x-asciidoc" | "text/markdown" | "application/x-metanorma+xml" | text + #}?, + ### String + #LocalizedStringOrXsAny ## Description of a contributor to the production of the bibliographic item contributor = @@ -185,7 +189,6 @@ FullNameType = ## which are the initials only of the forenames of the person name_abbreviation?, ( - ( ## A prefixed addition to the name of the person, such as "Dr" prefix*, ## A forename or given name of the person. Includes middle names @@ -196,12 +199,11 @@ FullNameType = ## or "J-P.". Can be used instead of forenames formatted-initials?, ## The surname, family name, or equivalent of the person - surname, + surname?, ## A suffixed addition to the name of the person, such as "Jr" - addition* - ) | - ## A preformatted version of the name of the person, not broken down into its component parts - completeName + addition*, + ## A preformatted version of the name of the person, not broken down into its component parts + completeName? ), ## An additional note about the name of the person biblionote*, @@ -249,10 +251,10 @@ affiliation = affiliationname = element name { LocalizedString } -affiliationdescription = element description { LocalizedMarkedUpString } +affiliationdescription = element description { LocalizedMarkedUpString } ## Organization associated with a bibliographic item -organization = element organization { OrganizationType} +organization = element organization { OrganizationType } OrganizationType = ## The name of the organization @@ -268,7 +270,11 @@ OrganizationType = ## A logo for the organization logo? -orgname = element name { LocalizedString | NameWithVariants } +orgname = element name { + ## Type of organisation name, to differentiate variant names + attribute type { text }?, + LocalizedString +} ## Subdivision of organization associated with a bibliographic item subdivision = element subdivision { @@ -288,17 +294,14 @@ depiction = element depiction { image-no-id* } -NameWithVariants = - ## Primary name of the organization - element primary { LocalizedString }, - ## A variant name of the organization - element variant { NameWithVariants1 }* - -NameWithVariants1 = - ## Type of variant name of organisation - attribute type { text }, - ## Value of variant name - LocalizedString +#NameWithVariants = + #element primary { LocalizedString }, + #element variant { NameWithVariants1 }* +# +#NameWithVariants1 = + #attribute type { text }, + #element primary { LocalizedString }, + #element variant { NameWithVariants1 }* abbreviation = element abbreviation { LocalizedString } @@ -332,21 +335,19 @@ email = element email { text } ## An address for a person or organization address = element address { - # iso191606 TODO - ( + # iso191606 TODO ## The street and street number or equivalent in the address, as one or more lines of text street*, ## The settlement or municipality in the address - city, + city?, ## The region of the country in the address state?, ## The country in the address - country, + country?, ## The postal code or equivalent in the address - postcode? - ) | - ## Preformatted version of the address, not decomposed into its component parts - formattedAddress + postcode?, + ## Preformatted version of the address, not decomposed into its component parts + formattedAddress? } street = element street { text } @@ -365,17 +366,17 @@ person-identifier = attribute type { text }, ## The identifier value text - } +} ## An identifier of an organization according to an international identifier scheme org-identifier = element identifier { ## The international identifier scheme for the identifier of the organization. ## Examples include GRID, LEI, CrossRef, and Ringgold - attribute type { text }, + attribute type { text }?, ## The identifier value text - } +} ## Representation of a citation of a bibliographic item, typically within a document citation = @@ -726,6 +727,8 @@ TypedTitleString = ## "subtitle": Subsidiary title of the item ## "main": The default title of the item, privileged in citation attribute type { text }?, + ## (legacy attribute) format; can have value text/plain + attribute format { text }?, ## Content of title LocalizedMarkedUpString @@ -832,22 +835,20 @@ bclassification = element classification { DocIdentifierType } ## Place associated with the production of a bibliographic item bplace = element place { - ## Name of the place, not broken down semantically - text | - ( ## City - bibliocity, + bibliocity?, ## Region that city is located in, given for disambiguation purposes. biblioregion*, ## Country that city is located in, given for disambiguation purposes. bibliocountry*, + ## Name of the place, not broken down semantically + formattedPlace?, ## URI in a geographical registry identifying the place uri? - ) } bibliocity = element city { text } - +formattedPlace = element formattedPlace { text } biblioregion = element region { RegionType } bibliocountry = element country { RegionType } @@ -920,7 +921,8 @@ accesslocation = element accesslocation { text } ## A sequence of sizes can be used to indicate different numberings, e.g. xii + 40 pp., ## or different kinds of measures, e.g. pages + plates sizevalue = element value { - ## The type of size. Recommended values: page, volume, time (in ISO 8601 duration values), data (including unit), value (free-form string) + ## The type of size. Recommended values: page, volume, time (in ISO 8601 duration values), + ## data (including unit), value (free-form string) attribute type { text }, ## The quantity of the size text? @@ -1116,25 +1118,27 @@ vedition = element edition { xsd:int } revision-date = element revision-date { ISO8601Date } draft = element draft { text } +#bkeyword = element keyword { + #LocalizedString | + #( + #element vocab { LocalizedString }, + #vocabid+ + #) | + #( + #element taxon { LocalizedString }+, + #vocabid+ + #) +#} + ## Keyword for a bibliographic item bkeyword = element keyword { - ## Representation of keyword as a string in an uncontrolled vocabulary - LocalizedString | - ## Representation of keyword as a string in a controlled vocabulary - ( - ## The keyword as a controlled vocabulary item - element vocab { LocalizedString }, - ## Identifiers for the keyword as a controlled vocabulary - vocabid+ - ) | - ## Reprsentation of keyword as a hierarchical sequence of strings with associated identifiers (taxonomy) - ( - ## The keyword as a taxonomy. For example, the sequence of `taxon` elements - ## `pump`, `centrifugal pump`, `line shaft pump` represents a taxonomic classification - element taxon { LocalizedString }+, - ## Identifiers for the keyword in a taxonomy - vocabid+ - ) + ## The keyword as a single, controlled or uncontrolled vocabulary item + element vocab { LocalizedString }?, + ## The keywords as a hierarchical taxonomy. For example, the sequence of `taxon` elements + ## `pump`, `centrifugal pump`, `line shaft pump` represents a taxonomic classification + element taxon { LocalizedString }+, + ## Identifiers for the keyword as a controlled vocabulary + vocabid* } ## Item in a controlled vocabulary diff --git a/grammars/biblio.rng b/grammars/biblio.rng index bd7990f..1a206da 100644 --- a/grammars/biblio.rng +++ b/grammars/biblio.rng @@ -134,67 +134,38 @@ NOTE: The number attribute can be used to represent the numeric equivalent of th - + - - FormattedString which optionally specifies its language, locale, and/or script - - - - - Variants of the string, with the same content, but in different language, script, or format - - - - - - + + - + - - - - - - Variants of the string, with the same content, but in different language, script, or format - - - - - + - - String which is formatted according to conventions specified in a named MIME type - - - MIME type for string (defailts to text/plain). -NOTE: `docbook`, `AsciiDoc`, `Metanorma` are not registered IANA Media Types - - text/plain - text/html - application/docbook+xml - application/tei+xml - text/x-asciidoc - text/markdown - application/x-metanorma+xml - - - - - - String - - - + + @@ -203,18 +174,24 @@ NOTE: `docbook`, `AsciiDoc`, `Metanorma` are not registered IANA Media Types - - - - - - Variants of the string, with the same content, but in different language, script, or format - - - - - + + String which is formatted according to conventions specified in a named MIME type + + MIME type for string (defailts to text/plain). +NOTE: `docbook`, `AsciiDoc`, `Metanorma` are not registered IANA Media Types + + String + Description of a contributor to the production of the bibliographic item @@ -316,39 +293,41 @@ surname. Can be used instead of the complete name. Distinct from formatted-initi which are the initials only of the forenames of the person - - - - - A prefixed addition to the name of the person, such as "Dr" - - - - - A forename or given name of the person. Includes middle names - - - - - The initials of the person, as a formatted string, including punctuation, dropping + + + + A prefixed addition to the name of the person, such as "Dr" + + + + + A forename or given name of the person. Includes middle names + + + + + The initials of the person, as a formatted string, including punctuation, dropping punctuation as desired, and including hyphens where necessary. For example, the initial set for Jean-Paul would be J, P; the formatted initials would be "J.-P." or "J-P.". Can be used instead of forenames - - + + + The surname, family name, or equivalent of the person - - - A suffixed addition to the name of the person, such as "Jr" - - - - - A preformatted version of the name of the person, not broken down into its component parts - - + + + + A suffixed addition to the name of the person, such as "Jr" + + + + + A preformatted version of the name of the person, not broken down into its component parts + + + An additional note about the name of the person @@ -470,11 +449,6 @@ real names (if the person is named with a pseudonym or user name); previous lega Abbreviation under which the organization is known - - - A URI with information about the organization - - An identifier of the organization according to an international identifier scheme @@ -493,10 +467,12 @@ real names (if the person is named with a pseudonym or user name); previous lega - - - - + + + Type of organisation name, to differentiate variant names + + + @@ -532,26 +508,16 @@ real names (if the person is named with a pseudonym or user name); previous lega - - - Primary name of the organization - - - - - A variant name of the organization - - - - - - - Type of variant name of organisation - - - Value of variant name - - + @@ -603,35 +569,37 @@ real names (if the person is named with a pseudonym or user name); previous lega An address for a person or organization - + - - - - The street and street number or equivalent in the address, as one or more lines of text - - - - The settlement or municipality in the address - - - - The region of the country in the address - - - - The country in the address - - - - The postal code or equivalent in the address - - - + + The street and street number or equivalent in the address, as one or more lines of text + + + + + The settlement or municipality in the address + + + + + The region of the country in the address + + + + + The country in the address + + + + + The postal code or equivalent in the address + + + Preformatted version of the address, not decomposed into its component parts - + @@ -684,10 +652,12 @@ Examples include "isni", "orcid", "uri" An identifier of an organization according to an international identifier scheme - - The international identifier scheme for the identifier of the organization. + + + The international identifier scheme for the identifier of the organization. Examples include GRID, LEI, CrossRef, and Ringgold - + + The identifier value @@ -1325,6 +1295,11 @@ for which this claim of validity is made, if applicable "main": The default title of the item, privileged in citation + + + (legacy attribute) format; can have value text/plain + + Content of title @@ -1483,31 +1458,31 @@ is for a particular instance of the document, e.g. for a particular format or ed Place associated with the production of a bibliographic item - - + + + City + + + + + Region that city is located in, given for disambiguation purposes. + + + + + Country that city is located in, given for disambiguation purposes. + + + + Name of the place, not broken down semantically - - - - City - - - - Region that city is located in, given for disambiguation purposes. - - - - - Country that city is located in, given for disambiguation purposes. - - - - - URI in a geographical registry identifying the place - - - - + + + + + URI in a geographical registry identifying the place + + @@ -1515,6 +1490,11 @@ is for a particular instance of the document, e.g. for a particular format or ed + + + + + @@ -1654,7 +1634,8 @@ A sequence of sizes can be used to indicate different numberings, e.g. xii + 40 or different kinds of measures, e.g. pages + plates - The type of size. Recommended values: page, volume, time (in ISO 8601 duration values), data (including unit), value (free-form string) + The type of size. Recommended values: page, volume, time (in ISO 8601 duration values), +data (including unit), value (free-form string) @@ -2001,41 +1982,40 @@ provided that it is not the entire bibliographic item that is so related + Keyword for a bibliographic item - - - Representation of keyword as a string in an uncontrolled vocabulary - - - Representation of keyword as a string in a controlled vocabulary - - The keyword as a controlled vocabulary item - - - - - Identifiers for the keyword as a controlled vocabulary - - - - - Reprsentation of keyword as a hierarchical sequence of strings with associated identifiers (taxonomy) - - - The keyword as a taxonomy. For example, the sequence of `taxon` elements + + + The keyword as a single, controlled or uncontrolled vocabulary item + + + + + + The keywords as a hierarchical taxonomy. For example, the sequence of `taxon` elements `pump`, `centrifugal pump`, `line shaft pump` represents a taxonomic classification - - - - - - Identifiers for the keyword in a taxonomy - - - - + + + + + + Identifiers for the keyword as a controlled vocabulary + + diff --git a/images/RelBib_DataTypes.png b/images/RelBib_DataTypes.png index efb4b1b..022775f 100644 Binary files a/images/RelBib_DataTypes.png and b/images/RelBib_DataTypes.png differ diff --git a/models/FormattedString.lutaml b/models/FormattedString.lutaml deleted file mode 100644 index d98d0db..0000000 --- a/models/FormattedString.lutaml +++ /dev/null @@ -1,13 +0,0 @@ -class FormattedString{ - definition { - String which is formatted according to conventions specified - in a named MIME type (<>). - } - +type: StringFormat { - definition { - The corresponding MIME types, defaults to "text/plain". - - NOTE: `docbook`, `AsciiDoc`, `Metanorma` are not registered IANA Media Types. - } - } -} diff --git a/models/LocalizedString.lutaml b/models/LocalizedString.lutaml index 04c6e49..5a8c403 100644 --- a/models/LocalizedString.lutaml +++ b/models/LocalizedString.lutaml @@ -17,14 +17,9 @@ class LocalizedString{ Script of string. } } - +content: LocalizedString { + +content: String { definition { The string being localized. } } - +variant: LocalizedString[0..*] { - definition { - Variants of the string, with the same content, but in different language, script, or format. - } - } } diff --git a/models/StringFormat.lutaml b/models/StringFormat.lutaml deleted file mode 100644 index 49afabf..0000000 --- a/models/StringFormat.lutaml +++ /dev/null @@ -1,40 +0,0 @@ -enum StringFormat { - definition { - The MIME type for a formatted string. - } - text/plain { - definition { - Plain text. - } - } - text/html { - definition { - HTML. - } - } - application/docbook+xml { - definition { - DocBook. - } - } - application/tei+xml { - definition { - TEI (Text Encoding Initiative). - } - } - text/x-asciidoc { - definition { - AsciiDoc. - } - } - text/markdown { - definition { - Markdown. - } - } - application/x-metanorma+xml { - definition { - Metanorma. - } - } -} diff --git a/views/RelBib_DataTypes.lutaml b/views/RelBib_DataTypes.lutaml index 1f4f52d..fa08111 100644 --- a/views/RelBib_DataTypes.lutaml +++ b/views/RelBib_DataTypes.lutaml @@ -10,19 +10,7 @@ diagram RelBib_DataTypes { include ../models/DateTime.lutaml include ../models/TypedUri.lutaml include ../models/LocalizedString.lutaml - include ../models/FormattedString.lutaml - include ../models/StringFormat.lutaml - association { - owner LocalizedString - member FormattedString - owner_type inheritance - } - association { - owner FormattedString - member StringFormat - owner_type inheritance - } association { owner Uri member TypedUri