2019-08-15 14:09:55 +00:00
|
|
|
(*************************************************************************
|
|
|
|
* Copyright (C)
|
2021-01-05 11:32:26 +00:00
|
|
|
* 2019-2020 The University of Exeter
|
2020-08-25 07:17:36 +00:00
|
|
|
* 2018-2020 The University of Paris-Saclay
|
2019-08-15 14:09:55 +00:00
|
|
|
* 2018 The University of Sheffield
|
|
|
|
*
|
|
|
|
* License:
|
|
|
|
* This program can be redistributed and/or modified under the terms
|
|
|
|
* of the 2-clause BSD-style license.
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
*************************************************************************)
|
|
|
|
|
2018-12-04 05:31:45 +00:00
|
|
|
(*<*)
|
|
|
|
theory "00_Frontmatter"
|
2019-07-12 19:20:02 +00:00
|
|
|
imports "Isabelle_DOF.technical_report"
|
2018-12-04 05:31:45 +00:00
|
|
|
begin
|
|
|
|
|
2020-12-02 08:32:48 +00:00
|
|
|
|
2020-12-22 18:50:00 +00:00
|
|
|
section\<open>Local Document Setup.\<close>
|
|
|
|
text\<open>... introducing document specific abbreviations and macros.\<close>
|
2020-08-26 07:56:25 +00:00
|
|
|
|
2020-12-22 18:50:00 +00:00
|
|
|
define_shortcut* dof \<rightleftharpoons> \<open>\dof\<close>
|
|
|
|
isadof \<rightleftharpoons> \<open>\isadof\<close>
|
2020-12-22 07:07:19 +00:00
|
|
|
|
|
|
|
define_shortcut* TeXLive \<rightleftharpoons> \<open>\TeXLive\<close>
|
|
|
|
BibTeX \<rightleftharpoons> \<open>\BibTeX{}\<close>
|
|
|
|
LaTeX \<rightleftharpoons> \<open>\LaTeX{}\<close>
|
|
|
|
TeX \<rightleftharpoons> \<open>\TeX{}\<close>
|
|
|
|
pdf \<rightleftharpoons> \<open>PDF\<close>
|
|
|
|
pdftex \<rightleftharpoons> \<open>\pdftex{}\<close>
|
2020-08-26 15:08:45 +00:00
|
|
|
|
2020-12-22 18:50:00 +00:00
|
|
|
text\<open>Note that these setups assume that the associated \<^LaTeX> macros
|
|
|
|
are defined, \<^eg>, in the document prelude. \<close>
|
2020-08-26 15:08:45 +00:00
|
|
|
|
2020-12-23 08:41:26 +00:00
|
|
|
define_macro* index \<rightleftharpoons> \<open>\index{\<close> _ \<open>}\<close>
|
2020-12-22 19:37:15 +00:00
|
|
|
define_macro* bindex \<rightleftharpoons> \<open>\bindex{\<close> _ \<open>}\<close>
|
2020-08-26 07:56:25 +00:00
|
|
|
|
2020-08-27 13:54:51 +00:00
|
|
|
|
|
|
|
ML\<open>
|
|
|
|
|
|
|
|
fun boxed_text_antiquotation name (* redefined in these more abstract terms *) =
|
|
|
|
DOF_lib.gen_text_antiquotation name DOF_lib.report_text
|
|
|
|
(fn ctxt => DOF_lib.string_2_text_antiquotation ctxt
|
2020-09-15 06:28:32 +00:00
|
|
|
#> DOF_lib.enclose_env false ctxt "isarbox")
|
2020-08-27 13:54:51 +00:00
|
|
|
|
2020-08-28 10:42:20 +00:00
|
|
|
val neant = K(Latex.text("",\<^here>))
|
2020-08-27 13:54:51 +00:00
|
|
|
|
|
|
|
fun boxed_theory_text_antiquotation name (* redefined in these more abstract terms *) =
|
|
|
|
DOF_lib.gen_text_antiquotation name DOF_lib.report_theory_text
|
|
|
|
(fn ctxt => DOF_lib.string_2_theory_text_antiquotation ctxt
|
2020-09-15 06:28:32 +00:00
|
|
|
#> DOF_lib.enclose_env false ctxt "isarbox"
|
2020-08-28 10:42:20 +00:00
|
|
|
(* #> neant *)) (*debugging *)
|
|
|
|
|
|
|
|
fun boxed_sml_text_antiquotation name =
|
|
|
|
DOF_lib.gen_text_antiquotation name (K(K()))
|
|
|
|
(fn ctxt => Input.source_content
|
|
|
|
#> Latex.text
|
2020-09-15 06:28:32 +00:00
|
|
|
#> DOF_lib.enclose_env true ctxt "sml")
|
2020-08-28 10:42:20 +00:00
|
|
|
(* the simplest conversion possible *)
|
|
|
|
|
|
|
|
fun boxed_pdf_antiquotation name =
|
|
|
|
DOF_lib.gen_text_antiquotation name (K(K()))
|
|
|
|
(fn ctxt => Input.source_content
|
|
|
|
#> Latex.text
|
2020-09-15 06:28:32 +00:00
|
|
|
#> DOF_lib.enclose_env true ctxt "out")
|
2020-08-28 10:42:20 +00:00
|
|
|
(* the simplest conversion possible *)
|
|
|
|
|
|
|
|
fun boxed_latex_antiquotation name =
|
|
|
|
DOF_lib.gen_text_antiquotation name (K(K()))
|
|
|
|
(fn ctxt => Input.source_content
|
|
|
|
#> Latex.text
|
2020-09-15 06:28:32 +00:00
|
|
|
#> DOF_lib.enclose_env true ctxt "ltx")
|
2020-08-28 10:42:20 +00:00
|
|
|
(* the simplest conversion possible *)
|
|
|
|
|
|
|
|
fun boxed_bash_antiquotation name =
|
|
|
|
DOF_lib.gen_text_antiquotation name (K(K()))
|
|
|
|
(fn ctxt => Input.source_content
|
|
|
|
#> Latex.text
|
2020-09-15 06:28:32 +00:00
|
|
|
#> DOF_lib.enclose_env true ctxt "bash")
|
2020-08-28 10:42:20 +00:00
|
|
|
(* the simplest conversion possible *)
|
2020-08-27 13:54:51 +00:00
|
|
|
\<close>
|
|
|
|
|
|
|
|
setup\<open>(* std_text_antiquotation \<^binding>\<open>my_text\<close> #> *)
|
|
|
|
boxed_text_antiquotation \<^binding>\<open>boxed_text\<close> #>
|
|
|
|
(* std_text_antiquotation \<^binding>\<open>my_cartouche\<close> #> *)
|
|
|
|
boxed_text_antiquotation \<^binding>\<open>boxed_cartouche\<close> #>
|
|
|
|
(* std_theory_text_antiquotation \<^binding>\<open>my_theory_text\<close>#> *)
|
2020-08-28 10:42:20 +00:00
|
|
|
boxed_theory_text_antiquotation \<^binding>\<open>boxed_theory_text\<close> #>
|
|
|
|
|
|
|
|
boxed_sml_text_antiquotation \<^binding>\<open>boxed_sml\<close> #>
|
|
|
|
boxed_pdf_antiquotation \<^binding>\<open>boxed_pdf\<close> #>
|
|
|
|
boxed_latex_antiquotation \<^binding>\<open>boxed_latex\<close>#>
|
2020-09-15 06:28:32 +00:00
|
|
|
boxed_bash_antiquotation \<^binding>\<open>boxed_bash\<close>
|
2020-08-28 15:41:16 +00:00
|
|
|
\<close>
|
2020-08-27 13:54:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-06 11:31:12 +00:00
|
|
|
open_monitor*[this::report]
|
2018-12-04 05:31:45 +00:00
|
|
|
|
|
|
|
(*>*)
|
|
|
|
|
2020-11-04 10:18:43 +00:00
|
|
|
title*[title::title] \<open>Isabelle/DOF\<close>
|
2019-07-23 06:51:27 +00:00
|
|
|
subtitle*[subtitle::subtitle]\<open>User and Implementation Manual\<close>
|
2020-11-04 10:18:43 +00:00
|
|
|
author*[ adb,
|
|
|
|
email ="\<open>a.brucker@exeter.ac.uk\<close>",
|
|
|
|
orcid ="\<open>0000-0002-6355-1200\<close>",
|
|
|
|
http_site ="\<open>https://www.brucker.ch/\<close>",
|
|
|
|
affiliation ="\<open>University of Exeter, Exeter, UK\<close>"]\<open>Achim D. Brucker\<close>
|
|
|
|
author*[ bu,
|
|
|
|
email = "\<open>wolff@lri.fr\<close>",
|
|
|
|
affiliation = "\<open>Université Paris-Saclay, LRI, Paris, France\<close>"]\<open>Burkhart Wolff\<close>
|
2019-07-21 15:14:42 +00:00
|
|
|
|
2020-11-04 10:18:43 +00:00
|
|
|
abstract*[abs, keywordlist="[\<open>Ontology\<close>, \<open>Ontological Modeling\<close>, \<open>Document Management\<close>,
|
|
|
|
\<open>Formal Document Development\<close>,\<open>Document Authoring\<close>,\<open>Isabelle/DOF\<close>]"]
|
|
|
|
\<open> \<^isadof> provides an implementation of \<^dof> on top of Isabelle/HOL.
|
|
|
|
\<^dof> itself is a novel framework for \<^emph>\<open>defining\<close> ontologies
|
|
|
|
and \<^emph>\<open>enforcing\<close> them during document development and document
|
|
|
|
evolution. \<^isadof> targets use-cases such as mathematical texts referring
|
|
|
|
to a theory development or technical reports requiring a particular structure.
|
|
|
|
A major application of \<^dof> is the integrated development of
|
|
|
|
formal certification documents (\<^eg>, for Common Criteria or CENELEC
|
|
|
|
50128) that require consistency across both formal and informal
|
|
|
|
arguments.
|
|
|
|
|
|
|
|
\<^isadof> is integrated into Isabelle's IDE, which
|
|
|
|
allows for smooth ontology development as well as immediate
|
|
|
|
ontological feedback during the editing of a document.
|
|
|
|
Its checking facilities leverage the collaborative
|
|
|
|
development of documents required to be consistent with an
|
|
|
|
underlying ontological structure.
|
|
|
|
|
|
|
|
In this user-manual, we give an in-depth presentation of the design
|
|
|
|
concepts of \<^dof>'s Ontology Definition Language (ODL) and describe
|
|
|
|
comprehensively its major commands. Many examples show typical best-practice
|
|
|
|
applications of the system.
|
2019-07-30 21:57:22 +00:00
|
|
|
|
2020-11-04 10:18:43 +00:00
|
|
|
It is an unique feature of \<^isadof> that ontologies may be used to control
|
|
|
|
the link between formal and informal content in documents in a machine
|
|
|
|
checked way. These links can connect both text elements as well as formal
|
|
|
|
modelling elements such as terms, definitions, code and logical formulas,
|
|
|
|
alltogether *\<open>integrated\<close> in a state-of-the-art interactive theorem prover.
|
2018-12-04 05:31:45 +00:00
|
|
|
\<close>
|
|
|
|
|
|
|
|
(*<*)
|
|
|
|
end
|
|
|
|
(*>*)
|
|
|
|
|