Isabelle_DOF/examples/technical_report/Isabelle_DOF-Manual/01_Introduction.thy

127 lines
7.1 KiB
Plaintext
Raw Normal View History

2018-12-04 05:31:45 +00:00
(*<*)
theory "01_Introduction"
imports "00_Frontmatter"
begin
(*>*)
chapter*[intro::introduction]\<open> Introduction \<close>
text*[introtext::introduction]\<open>
The linking of the \<^emph>\<open>formal\<close> to the \<^emph>\<open>informal\<close> is perhaps the most pervasive challenge in the
digitization of knowledge and its propagation. This challenge incites numerous research efforts
summarized under the labels ``semantic web,'' ``data mining,'' or any form of advanced ``semantic''
text processing. A key role in structuring this linking play \<^emph>\<open>document ontologies\<close> (also called
\<^emph>\<open>vocabulary\<close> in the semantic web community~@{cite "w3c:ontologies:2015"}), \ie, a machine-readable
form of the structure of documents as well as the document discourse.
Such ontologies can be used for the scientific discourse within scholarly articles, mathematical
libraries, and in the engineering discourse of standardized software certification
documents~@{cite "boulanger:cenelec-50128:2015" and "cc:cc-part3:2006"}: certification documents
have to follow a structure. In practice, large groups of developers have to produce a substantial
set of documents where the consistency is notoriously difficult to maintain. In particular,
2019-08-02 11:04:41 +00:00
certifications are centered around the \<^emph>\<open>traceability\<close> of requirements throughout the entire
set of documents. While technical solutions for the traceability problem exists (most notably:
DOORS~\cite{doors}), they are weak in the treatment of formal entities (such as formulas and their
logical contexts).
2018-12-04 05:31:45 +00:00
Further applications are the domain-specific discourse in juridical texts or medical reports.
In general, an ontology is a formal explicit description of \<^emph>\<open>concepts\<close> in a domain of discourse
(called \<^emph>\<open>classes\<close>), properties of each concept describing \<^emph>\<open>attributes\<close> of the concept, as well
as \<^emph>\<open>links\<close> between them. A particular link between concepts is the \<^emph>\<open>is-a\<close> relation declaring
2018-12-04 05:31:45 +00:00
the instances of a subclass to be instances of the super-class.
\isadof is a novel framework, extending of Isabelle/HOL, to \<^emph>\<open>model\<close> typed ontologies and to
\<^emph>\<open>enforce\<close> them during document evolution. Based on Isabelle infrastructures, ontologies may refer
to types, terms, proven theorems, code, or established assertions. Based on a novel adaption of the
Isabelle IDE, a document is checked to be \<^emph>\<open>conform\<close> to a particular ontology---\isadof is designed
to give fast user-feedback \<^emph>\<open>during the capture of content\<close>. This is particularly valuable in case
of document evolution, where the \<^emph>\<open>coherence\<close> between the formal and the informal parts of the
2018-12-04 05:31:45 +00:00
content can be mechanically checked.
To avoid any misunderstanding: \isadof is \<^emph>\<open>not a theory in HOL\<close> on ontologies and operations to
track and trace links in texts, it is an \<^emph>\<open>environment to write structured text\<close> which
\<^emph>\<open>may contain\<close> Isabelle/HOL definitions and proofs like mathematical articles, tech-reports and
scientific papers---as the present one, which is written in \isadof itself. \isadof is a plugin
into the Isabelle/Isar framework in the style of~@{cite "wenzel.ea:building:2007"}.\<close>
subsubsection\<open>How to Read This Manual\<close>
2018-12-04 05:31:45 +00:00
(*<*)
declare_reference*[background::text_section]
declare_reference*[isadof_tour::text_section]
declare_reference*[isadof_ontologies::text_section]
declare_reference*[isadof_developers::text_section]
2018-12-04 05:31:45 +00:00
(*>*)
text\<open>
This manual can be read in different ways, depending on what you want to accomplish. We see three
different main user groups:
\<^enum> \<^emph>\<open>\isadof users\<close>, \ie, users that just want to edit a core document, be it for a paper or a
technical report, using a given ontology. These users should focus on
@{docitem_ref (unchecked) \<open>isadof_tour\<close>} and, depending on their knowledge of Isabelle/HOL, also
@{docitem_ref (unchecked) \<open>background\<close>}.
\<^enum> \<^emph>\<open>Ontology developers\<close>, \ie, users that want to develop new ontologies or modify existing
2019-08-02 11:04:41 +00:00
document ontologies. These users should, after having gained acquaintance as a user, focus
on @{docitem_ref (unchecked) \<open>isadof_ontologies\<close>}.
\<^enum> \<^emph>\<open>\isadof developers\<close>, \ie, users that want to extend or modify \isadof, \eg, by adding new
text-elements. These users should read @{docitem_ref (unchecked) \<open>isadof_developers\<close>}
\<close>
2019-07-23 14:30:26 +00:00
subsubsection\<open>Typographical Conventions\<close>
2019-07-23 14:30:26 +00:00
text\<open>
We acknowledge that understanding \isadof and its implementation in all details requires
2019-08-02 11:04:41 +00:00
separating multiple technological layers or languages. To help the reader with this, we
2019-07-23 14:30:26 +00:00
will type-set the different languages in different styles. In particular, we will use
\<^item> a light-blue background for input written in Isabelle's Isar language, \eg:
\begin{isar}
lemma refl: "x = x"
by simp
\end{isar}
2019-08-02 10:54:02 +00:00
\<^item> a green background for examples of generated document fragments (\ie, PDF output):
2019-07-23 14:30:26 +00:00
\begin{out}
The axiom refl
\end{out}
2019-08-02 10:54:02 +00:00
\<^item> a red background for For (S)ML-code:
2019-07-23 14:30:26 +00:00
\begin{sml}
fun id x = x
\end{sml}
2019-08-02 10:54:02 +00:00
\<^item> a yellow background for \LaTeX-code:
2019-07-23 14:30:26 +00:00
\begin{ltx}
\newcommand{\refl}{$x = x$}
\end{ltx}
2019-08-02 10:54:02 +00:00
\<^item> a grey background for shell scripts and interactive shell sessions:
2019-07-23 14:30:26 +00:00
\begin{bash}
achim@logicalhacking:~/Isabelle_DOF$ ls
CHANGELOG.md CITATION examples install LICENSE README.md ROOTS src
2019-07-23 14:30:26 +00:00
\end{bash}
2019-08-02 10:54:02 +00:00
\<close>
subsubsection\<open>How to Cite \isadof\<close>
text\<open>
If you use or extend \isadof in your publications, please use
\<^item> for the \isadof system~@{cite "brucker.ea:isabelle-ontologies:2018"}:
\begin{quote}\small
A.~D. Brucker, I.~Ait-Sadoune, P.~Crisafulli, and B.~Wolff. Using the {Isabelle} ontology
2019-08-02 11:04:41 +00:00
framework: Linking the formal with the informal. In \<^emph>\<open>Conference on Intelligent Computer
Mathematics (CICM)\<close>, number 11006 in Lecture Notes in Computer Science. Springer-Verlag,
2019-08-02 10:54:02 +00:00
Heidelberg, 2018. \href{https://doi.org/10.1007/978-3-319-96812-4\_3}
{10.1007/978-3-319-96812-4\_3}.
\end{quote}
A \BibTeX-entry is available at:
\url{https://www.brucker.ch/bibliography/abstract/brucker.ea-isabelle-ontologies-2018}.
\<^item> for the implementation of \isadof~@{cite "brucker.ea:isabelledof:2019"}:
\begin{quote}\small
A.~D. Brucker and B.~Wolff. \isadof: Design and implementation. In P.~{\"O}lveczky and
2019-08-02 11:04:41 +00:00
G.~Sala{\"u}n, editors, \<^emph>\<open>Software Engineering and Formal Methods (SEFM)\<close>, Lecture Notes
2019-08-02 10:54:02 +00:00
in Computer Science. Springer-Verlag, Heidelberg, 2019.
\end{quote}
A \BibTeX-entry is available at:
\url{https://www.brucker.ch/bibliography/abstract/brucker.ea-isabelledof-2019}.
2019-07-23 14:30:26 +00:00
2019-08-02 10:54:02 +00:00
The source code of \isadof is available at
\url{https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF}.
2019-07-23 14:30:26 +00:00
\<close>
2018-12-04 05:31:45 +00:00
(*<*)
end
(*>*)