diff --git a/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy b/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy index 1b70da0..21ae2e3 100755 --- a/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy +++ b/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy @@ -38,8 +38,8 @@ text\ \<^isadof> consists consists basically of five components: \<^item> the \<^emph>\core\ in \<^theory>\Isabelle_DOF.Isa_DOF\ providing the \<^emph>\ontology definition language\ - (called ODL) which allow for the definitions of document-classes - and necessary auxiliary datatypes, + (ODL) which allow for the definitions of document-classes + and necessary datatypes, \<^item> the \<^emph>\core\ also provides an own \<^emph>\family of commands\ such as \<^boxed_theory_text>\text*\, \<^boxed_theory_text>\declare_reference*\, \<^etc>.; They allow for the annotation of text-elements with meta-information defined in ODL, @@ -57,12 +57,12 @@ text\ system-extensions. Ontologies in \<^isadof> are not just a sequence of descriptions in \<^isadof>'s Ontology Definition Language (ODL). Rather, they are themselves presented as integrated sources that provide textual descriptions, abbreviations, macro-support and even ML-code. - Conceptually, the library of \<^isadof> is currently organized as follows\<^footnote>\Note that the \<^emph>\technical\ + Conceptually, the library of \<^isadof> is currently organized as follows\<^footnote>\The \<^emph>\technical\ organization is slightly different and shown in @{technical (unchecked) \infrastructure\}.\: % \begin{center} -\begin{minipage}{.9\textwidth}\small +\begin{minipage}{.9\textwidth}\footnotesize \dirtree{% .1 COL\DTcomment{The Common Ontology Library}. .2 scholarly\_paper\DTcomment{Scientific Papers}. @@ -216,7 +216,7 @@ text\ specifications~@{cite "wenzel:isabelle-isar:2020"}, and abstract type declarations. \ -text\Note that \<^isadof> works internally with fully qualified names in order to avoid confusions +text\\<^isadof> works internally with fully qualified names in order to avoid confusions occurring otherwise, for example, in disjoint class hierarchies. This also extends to names for \<^boxed_theory_text>\doc_class\es, which must be representable as type-names as well since they can be used in attribute types. Since theory names are lexically very liberal @@ -241,7 +241,7 @@ A document class\<^bindex>\document class\ can be defined using the \<^rail>\ name '::' '"' type '"' default_clause? \ \<^item> \invariant_decl\:\<^index>\invariant\_decl@\invariant_decl\\ Invariants can be specified as predicates over document classes represented as - records in HOL. Note that sufficient type information must be provided in order to + records in HOL. Sufficient type information must be provided in order to disambiguate the argument of the expression and the \<^boxed_text>\\\ symbol is reserved to reference the instance of the class itself. \<^rail>\ 'invariant' (name '::' '"' term '"' + 'and') \ @@ -317,7 +317,7 @@ text-elements and, in some cases, terms. subsection\Syntax\ text\In the following, we formally introduce the syntax of the core commands as -supported on the Isabelle/Isar level. Note that some more advanced functionality of the core +supported on the Isabelle/Isar level. Some more advanced functionality of the core is currently only available in the SML API's of the kernel. \<^item> \obj_id\:\<^index>\obj\_id@\obj_id\\ (or \<^emph>\oid\\<^index>\oid!oid@\see obj_id\\ for short) a \<^emph>\name\ @@ -356,10 +356,10 @@ is currently only available in the SML API's of the kernel. \ '\' string '\' '_' '\' string '\' \ \ text\Recall that except \<^theory_text>\text*[]\...\\, all \<^isadof> commands were mapped to visible -layout (such as \<^LaTeX>); these commands have to be wrapped into - \<^verbatim>\(*<*) ... (*>*)\ brackets if this is undesired. \ +layout; these commands have to be wrapped into + \<^verbatim>\(*<*) ... (*>*)\ if this is undesired. \ -subsection\Ontologic Text-Contexts and their Management\ +subsection\Ontological Text-Contexts and their Management\ text\ With respect to the family of text elements, \<^theory_text>\text*[oid::cid, ...] \ \ text \ \ \ is the core-command of \<^isadof>: it permits to create an object of meta-data belonging to the class \<^theory_text>\cid\\<^index>\cid!cid@\see class_id\\. @@ -368,7 +368,7 @@ The class invariants were checked for all attribute values at creation time if not specified otherwise. Unspecified attributed values were represented by fresh free variables. This instance object is attached to the text-element -and makes it thus ``trackable" for \<^isadof>, \<^ie>, it can be referenced +and makes it thus ``trackable'' for \<^isadof>, \<^ie>, it can be referenced via the \<^theory_text>\oid\\<^index>\oid!oid@\see obj_id\\, its attributes can be set by defaults in the class-definitions, or set at creation time, or modified at any point after creation via \<^theory_text>\update_instance*[oid, ...]\. The \<^theory_text>\class_id\ is syntactically optional; @@ -402,7 +402,7 @@ in the context of the SML toplevel of the Isabelle system as in the correspondin subsection\Ontological Term-Contexts and their Management\ text\The major commands providing term-contexts are \<^theory_text>\term*[oid::cid, ...] \ \ HOL-term \ \\ and -\<^theory_text>\value*[oid::cid, ...] \ \ HOL-term \ \\\<^footnote>\Note that the meta-argument list is optional.\. +\<^theory_text>\value*[oid::cid, ...] \ \ HOL-term \ \\\<^footnote>\The meta-argument list is optional.\. Wrt. creation, track-ability and checking they are analogous to the ontological text and code-commands. However the argument terms may contain term-antiquotations stemming from an ontology definition. Both term-contexts were type-checked and \<^emph>\validated\ against @@ -485,7 +485,7 @@ text\ that introduces several ontology concepts; its overall class-tree it provides looks as follows: % \begin{center} -\begin{minipage}{.9\textwidth}\small +\begin{minipage}{.9\textwidth}\footnotesize \dirtree{% .0 . .1 Isa\_COL.text\_element. @@ -511,7 +511,7 @@ doc_class text_element = variants :: "String.literal set" <= "{STR ''outline'', STR ''document''}" \} -As mentioned in @{technical \sss\} (without explaining the origin of \<^typ>\text_element\), +As mentioned in @{technical \sss\}, \<^const>\level\ defines the section-level (\<^eg>, using a \<^LaTeX>-inspired hierarchy: from \<^boxed_theory_text>\Some -1\ (corresponding to \<^boxed_latex>\\part\) to \<^boxed_theory_text>\Some 0\ (corresponding to \<^boxed_latex>\\chapter\, respectively, \<^boxed_theory_text>\chapter*\) @@ -543,9 +543,9 @@ abbreviations: ) \ \ -text\ Note that the command syntax follows the implicit convention to add a "*" to -the command in order to distinguish them from the standard Isabelle text-commands -which are not "ontology-aware" but function similar otherwise.\ +text\The command syntax follows the implicit convention to add a ``*'' +to distinguish them from the (similar) standard Isabelle text-commands +which are not ontology-aware.\ subsection*["text-elements"::technical]\The Ontology \<^verbatim>\scholarly_paper\\ (*<*) @@ -556,10 +556,7 @@ ML\writeln (DOF_core.print_doc_class_tree toLaTeX)\ (*>*) text\ The \<^verbatim>\scholarly_paper\ ontology is oriented towards the classical domains in science: -\<^enum> mathematics -\<^enum> informatics -\<^enum> natural sciences -\<^enum> technology and/or engineering +mathematics, informatics, natural sciences, technology, or engineering. It extends \<^verbatim>\COL\ by the following concepts: \begin{center} @@ -1204,8 +1201,8 @@ text\ This paves the way for a new mechanism to query the ``current'' instances presented as a HOL \<^type>\list\. Arbitrarily complex queries can therefore be defined inside the logical language. - Thus, to get the list of the properties of the instances of the class \result\, - or to get the list of the authors of the instances of the \introduction\ class, + To get the list of the properties of the instances of the class \result\, + or to get the list of the authors of the instances of \introduction\, it suffices to treat this meta-data as usual: @{theory_text [display,indent=5, margin=70] \ value*\map (result.property) @{result-instances}\ @@ -1216,7 +1213,7 @@ value*\map (text_section.authored_by) @{introduction-instances}\ @{theory_text [display,indent=5, margin=70] \ value*\filter (\\. result.evidence \ = proof) @{result-instances}\ \} - Analogously, the list of the instances of the class \introduction\ whose \level\ > 1, + The list of the instances of the class \introduction\ whose \level\ > 1, can be filtered by: @{theory_text [display,indent=5, margin=70] \ value*\filter (\\. the (text_section.level \) > 1) @@ -1255,7 +1252,7 @@ text\ \<^boxed_bash>\src/ontologies\ and consist of an Isabelle theory file and a \<^LaTeX>-style file: % \begin{center} -\begin{minipage}{.9\textwidth}\small +\begin{minipage}{.9\textwidth}\footnotesize \dirtree{% .1 . .2 src. @@ -1276,7 +1273,7 @@ text\ \end{center} \ text\ - Developing a new ontology ``\<^boxed_bash>\foo\'' requires, from a technical perspective, the + Developing a new ontology ``\<^boxed_bash>\foo\'' requires the following steps: \<^item> create a new sub-directory \<^boxed_bash>\foo\ in the directory \<^boxed_bash>\src/ontologies\ \<^item> definition of the ontological concepts, using \<^isadof>'s Ontology Definition Language (ODL), in @@ -1293,12 +1290,11 @@ text\ subsection\Document Templates\ text\ Document-templates\<^index>\document template\ define the overall layout (page size, margins, fonts, - etc.) of the generated documents and are the main technical means for implementing layout - requirements that are, \<^eg>, required by publishers or standardization bodies. Document-templates + etc.) of the generated documents. Document-templates are stored in a directory \<^path>\src/document-templates\:\<^index>\document template!directory structure\ \begin{center} -\begin{minipage}{.9\textwidth}\small +\begin{minipage}{.9\textwidth}\footnotesize \dirtree{% .1 . .2 src. @@ -1333,11 +1329,9 @@ subsection\The Core Template\ text\ Document-templates\<^bindex>\document template\ define the overall layout (page size, margins, fonts, - etc.) of the generated documents and are the main technical means for implementing layout - requirements that are, \<^eg>, required by publishers or standardization bodies. + etc.) of the generated documents. If a new layout is already supported by a \<^LaTeX>-class, then developing basic support for it - is straightforward: after reading the authors guidelines of the new template, - developing basic support for a new document template is straightforward. In most cases, it is + is straightforward: In most cases, it is sufficient to replace the document class in \autoref{lst:dc} of the template and add the \<^LaTeX>-packages that are (strictly) required by the used \<^LaTeX>-setup. In general, we recommend to only add \<^LaTeX>-packages that are always necessary for this particular template, as loading