Author OGC documents using Metanorma
General
The rendering of OGC documents has changed over the years. Metanorma formats OGC documents following current practice:
-
All body text is left justified, with no exceptions allowed.
-
Where section obligations are named (i.e. in annex names), they are only given as “normative” or “informative”; the alternate text of “non-normative” is disallowed.
-
Ordered lists follow ISO style numbering, i.e. “a), b), c) …”, with no exceptions allowed.
Inline formatting
Metanorma-OGC supports highlighting of text [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v1.2.16]:
This is #text to be highlighted#.
Sections
Normative references
The “Normative references” section is named as titled and should occupy Clause 3.
In legacy OGC documents, it can be named just “References”.
Terms and definitions
General
The “Terms and definitions” clause for current OGC documents adhere mostly to the ISO terms and definitions practices.
An OGC "Terms and definitions" section can be specified in the following ways:
-
Standalone terms and definitions
-
Combined terms, definitions and symbols
-
Combined terms, definitions and abbreviated terms
-
Combined terms, definitions, symbols and abbreviated terms
Note
|
The combined clauses feature is similar to that of the ISO combined terms and definitions clauses. |
Note
|
This section supplements Concepts, designations, terms and definitions in general Metanorma documentation. |
Standalone terms and definitions
If the clause contains only terms and definitions. The clause title will be set to “Terms and definitions”.
== Terms and definitions
=== term 1
...
=== term 2
...
Combined terms, definitions and symbols
If the clause contains terms and definitions, together with a list of symbols.
The clause title will be set to “Terms, definitions and symbols”.
== Terms, definitions and symbols
=== Terms and definitions
==== term 1
...
==== term 2
...
=== Symbols
stem:[x + y]:: Notation one
stem:[x - y]:: Notation two
...
Combined terms, definitions and abbreviated terms
If the clause contains terms and definitions, together with a list of abbreviated terms.
The clause title will be set to “Terms, definitions and abbreviated terms”.
== Terms, definitions and abbreviated terms
=== Terms and definitions
==== term 1
...
==== term 2
...
=== Abbreviated terms
OGC:: Open Geospatial Consortium
ISO:: International Organisation for Standardisation
...
Combined terms, definitions, symbols and abbreviated terms
If the clause contains a subclause named "Terms and definitions", "Symbols" and "Abbreviated terms", then the clause title will be set to “Terms, definitions, symbols and abbreviated terms”.
== Terms, definitions, symbols and abbreviated terms
=== Terms and definitions
==== term 1
Definition 1
==== term 2
Definition 2
=== Symbols
stem:[x + y]:: Notation one
stem:[x - y]:: Notation two
...
=== Abbreviated terms
OGC:: Open Geospatial Consortium
ISO:: International Organisation for Standardisation
...
Note
|
Section titles are rendered in sentence-case, i.e. only the first letter of the first word is capitalized. |
Modifying introductory text in "Terms and definitions"
A default OGC introductory text is inserted at the beginning of the clause in accordance to OGC policies.
As described in
generic terms and definitions
documentation, this text can be overridden by using the [.boilerplate]
attribute applied to the first subclause.
== Terms and definitions
[.boilerplate]
=== My predefined text
Predefined content that overwrites the default one taking into
account that:
* The title "My predefined text" will not be shown in the output.
* This practice does not follow OGC requirements.
Glossary for informative terms
OGC documents can contain an optional “Glossary” as an annex that provides terminology for informative purposes.
The Glossary section is recognised as an annex with the title “Glossary”,
or marked up with [heading=glossary]
[added in
https://github.com/metanorma/metanorma-ogc/releases/tag/v1.4.1].
The “Glossary” annex does not support symbols, abbreviations or other sections. Only terms and definitions are allowed. The terms are rendered in the same format as in the "Terms and definitions" clause.
The “Glossary” section, when exists, is placed as the last annex section before the “Revision history” section (if it exists).
[appendix]
== Glossary
=== geospatial
relating to geographic and spatial information
[.source]
<<OGC21-017,clause="4.3">>
=== spatial
...
A glossary section with a customized name can be encoded as follows.
[appendix,heading=glossary]
== Customized glossary section
=== geospatial
relating to geographic and spatial information
[.source]
<<OGC21-017,clause="4.3">>
Preliminary sections
General
The following clauses are preliminary elements, and are moved into the frontispiece of the document (in Metanorma, the “document preface”).
The OGC DocTeam has specified that all these elements are MANDATORY in OGC documents (in this order):
-
Abstract
-
Executive summary (Engineering Reports only)
-
Keywords
-
Preface
-
Security considerations [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v1.2.5]
-
Submitting organizations
-
Submitters
The Foreword and Introduction are not recognised as part of the document preface by default [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v1.0.2].
Note
|
Additional preliminary sections are allowed but not encouraged. There are two mechanisms for adding additional content as preliminary elements:
|
Abstract
The abstract is recognized as the first clause with an abstract
style
attribute:
[abstract]
== Abstract
This standard describes a conceptual and logical model for the exchange
of groundwater data, as well as a GML/XML encoding with examples.
Executive summary
The “Executive summary” section is mandatory for OGC Engineering Reports. It is only allowed for that document type [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v1.5.3].
The Executive Summary section is entered as a clause with the title “Executive summary”.
== Executive summary
This is the executive summary...
Alternatively, it can be explicitly declared if the title is different
[executive_summary]
[added in https://github.com/metanorma/metanorma-ogc/releases/tag/v2.6.0].
[executive_summary]
== Executive summary, differently named
This is the executive summary...
Preface
A preface clause is recognized as a full section, with the title “Preface”. The Preface clause may contain subclauses. [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v1.0.1]
:received-date: 2019-01-01
== Preface
Your preface text...
=== Preface sub-clause
More preface text...
Note
|
Previously, the Preface section can be specified by text entered after a
.Preface label, which has to be placed between the AsciiDoc document
attributes and the first AsciiDoc section title.
This behavior is now deprecated in favor of specifying the Preface as a real
section to allow better reflection of content order.
|
Keywords
“Keywords” are entered as document attributes as :keywords:
, with the
value as a comma-delimited list.
Prefatory text is generated automatically.
:keywords: ogcdoc, OGC document, groundwater, hydrogeology, GWML2
Security considerations
The Security considerations section is entered as a clause with the title “Security considerations”.
== Security considerations
The following security considerations apply...
If the security considerations are not provided in the source document, the clause is inserted with the text “No security considerations have been made for this standard.”
Submitting organizations
“Submitting Organizations” are entered using the :submitting-organizations:
document attribute.
The values are entered using a semi-colon delimited list.
Prefatory text is generated automatically.
:submitting-organizations: Geological Survey of Canada (GSC), Canada; U.S. Geological Survey (USGS), United States of America
Submitters (and Contributors)
“Submitters” are entered using a table, contained in a section with the title “Submitters”.
In OGC Engineering Reports, "Submitters" is rendered as "Contributors".
A title of "Contributors" is treated as equivalent to "Submitters" [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v2.3.14].
The "Contributors" section in an Engineering report can declared using the
clause attribute [contributors]
.
Note
|
Any table included in a Submitters section is automatically unnumbered [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v1.4.1] |
== Submitters
|===
|Name |Affiliation |OGC member
|Steve Liang | University of Calgary, Canada / SensorUp Inc. | Yes
|===
== Submitters
All questions regarding this submission should be directed to the editor or the
submitters:
|===
|Name |Affiliation
|Boyan Brodaric |GSC
|Alexander Kmoch |U Salzburg
|===
Engineering report elements
Preliminary sections specific to Engineering Reports are entered by using the following clause attributes [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v2.6.0].
-
"Overview":
[overview]
-
"Future outlook":
[future_outlook]
-
"Value proposition":
[value_proposition]
Note
|
These clause declarations are equivalent to [.preface,type=…] ,
independent of the actual title provided.
|
[overview]
== Overview
This is an Engineering Report overview.
[value_proposition]
== Proposed value
This is an Engineering Report value proposition.
== Initial clause
This is where the main section of the Engineering Report document begins.
Additional preliminary elements
The OGC DocTeam has specified that additional preliminary elements are allowed in OGC documents but not encouraged.
This is useful for document backwards-compatibility and cross-published standards at other SDOs.
Additional preliminary elements should be encoded under the [.preface]
element, and they will be rendered after the five mandatory preliminary
elements.
Note
|
Functionality implemented in https://github.com/metanorma/metanorma-ogc/issues/83. |
== Preface
...
[.preface]
== Intended audience
...
Annex sections
Revision history
A “Revision History” is an optional section that contains description of changes per revision.
It is always placed as the last annex section if it exists. [added in https://github.com/metanorma/metanorma-ogc/releases/tag/v2.0.1].
Note
|
Currently, this section is not machine-readable. However, OGC has plans to make it so. For future compatibility, please encode the table in the format described in the example below. |
[appendix,obligation="informative"]
== Revision history
[options="header"]
|===
|Date |Release |Editor | Primary clauses modified |Description
|2020-06-04 |0.9.0 |C. Heazel |all |Draft for review
|2020-06-07 |0.9.1 |T. H. Kolbe |Chapter 10 |Bibliography was added
...
|===
Blocks
Example blocks
Unlike typical Metanorma, examples can have captions:
[example]
.Example caption
====
Text
====
Table blocks
Table cells under OGC always have a vertical alignment of middle
[added in
https://github.com/metanorma/metanorma-ogc/releases/tag/v1.4.1].
Any markup instructions to set cell alignment to a different vertical alignment are ignored.
Unnumbered blocks
In Metanorma for OGC, all block elements are auto-numbered in order to facilitate unique referencing.
Each block label is unique and typically composed of the block type with a sequence number. For instance, “Table 3” or “Figure 5”.
In some cases, the author may want to remove the unique label and the numbering applied to a block, for example, when inserting short source code blocks within text that have no need of being uniquely referenced.
All auto-numbered blocks can be marked to not be labelled via the unnumbered
attribute option.
These block types include:
-
Figure
-
Example
-
Equation
-
Source code
-
Table
The unnumbered
attribute can be used in the following ways, in equal effect.
For blocks without the explicit block type defined, prepend with the
[%unnumbered]
attribute right before the block definition.
[%unnumbered]
image::images/fig1.png[]
[%unnumbered]
[example]
Example content
[%unnumbered]
[stem]
++++
x = y + z
++++
[%unnumbered]
[source,json]
----
{
"title": "Buildings in city",
"description": "Access to data about buildings in the city via a Web API."
}
----
[%unnumbered]
[cols="2",options="header"]
|===
| header 1 | header 2
| cell 1 | cell 2
|===
For blocks with their types defined explicitly that do not have the options
attribute list, insert "%unnumbered" right after the block type, before
the block type separator, e.g.: [example%unnumbered]
, [stem%unnumbered]
, etc.
[example%unnumbered]
Example content
[stem%unnumbered]
++++
x = y + z
++++
[source%unnumbered,json]
----
{
"title": "Buildings in city",
"description": "Access to data about buildings in the city via a Web API."
}
----
For tables, we can add the unnumbered
attribute as an option,
e.g.: [cols="…",options="header,unnumbered"]
[cols="2",options="header,unnumbered"]
|===
| header 1 | header 2
| cell 1 | cell 2
|===
As a rule of thumb, if you are unsure how to remove the numbering of a block,
just prepend [%unnumbered]
to it. It works for any block that supports
the unnumbered
attribute.