\RequirePackage{ifvtex}
\documentclass[25pt, a0paper, portrait]{tikzposter}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\bibliographystyle{abbrvnat}
\usepackage[english]{babel}
\RequirePackage[caption]{subfig}
\usepackage{isabelle}
\usepackage{isabellesym}
\IfFileExists{DOF-core.sty}{}{%
  \PackageError{DOF-core}{Isabelle/DOF not installed. 
    This is a Isabelle_DOF project. The document preparation requires
    the Isabelle_DOF component from:
    <isadofurl>
  }{For further help, see <isadofurl>}
}
\input{ontologies}
\IfFileExists{preamble.tex}{\input{preamble.tex}}{}%
\usepackage{amsmath}
\usepackage{DOF-amssymb}
\usepackage[numbers, sort&compress, sectionbib]{natbib}
\usepackage{graphicx}
\usepackage{hyperref}
\setcounter{tocdepth}{3} 
\hypersetup{%
   bookmarksdepth=3
  ,pdfpagelabels
  ,pageanchor=true
  ,bookmarksnumbered
  ,plainpages=false
} % more detailed digital TOC (aka bookmarks)
\sloppy
\allowdisplaybreaks[4]
\urlstyle{rm}
\isabellestyle{it}

\newenvironment{frontmatter}{}{}

\title{%
\parbox{\linewidth}{%
\centering Isabelle/DOF:\\
A Framework for Proving Ontology-Relations
and Runtime Testing Ontology Instances%
}}
\author{Idir Ait-Sadoune, Nicolas Méric and Burkhart Wolff}
\date{\today}
\institute{Université Paris-Saclay, LMF, France}

\usepackage{blindtext}
\usepackage{comment}
\usepackage{amsmath}

% Process bibliography using biber engine.
%\usepackage[
  % biber, the default backend of biblatex, supports Ascii,
  % 8-bit encodings, utf-8, on-the-fly reencoding, locale-specific sorting,
  % and many other features.
  % Locale-specific sorting, case-sensitive sorting,
  % and upper/lowercase precedence are controlled by the options
  % sortlocale, sortcase, and sortupper, respectively.
  % See biblatex documentation file biblatex.pdf,
  % 3.12, 2018/10/30, section 3.1.1, page 45.
%  backend=biber,
  % Whether or not to print back references in the bibliography.
  % The back references are a list of page numbers indicating the pages
  % on which the respective bibliography entry is cited.
  % If there are refsection environments in the document,
  % the back references are local to the reference sections.
  % Strictly speaking, this option only controls
  % whether the biblatex package collects the data required
  % to print such references.
  % This feature still has to be supported by the selected bibliography style.
  % All standard styles which come with this package do so.
  % See biblatex documentation file biblatex.pdf,
  % 3.12, 2018/10/30, section 3.1.2.1, page 50.
%  backref=true,
  % Loads the citation style <file>.cbx.
  % See § 3.3.1 for an overview of the standard citation styles.
  % See biblatex documentation file biblatex.pdf,
  % 3.12, 2018/10/30, section 3.1.1, page 45.
%  citestyle=alphabetic,
  % Loads the bibliography style <file>.bbx.
  % See § 3.3.2 for an overview of the standard bibliography styles.
  % See biblatex documentation file biblatex.pdf,
  % 3.12, 2018/10/30, section 3.1.1, page 45.
%  bibstyle=alphabetic,
%]{biblatex}

\usetheme{Simple}

% Add bibliography using biblatex macro.
%
% Adds a <resource>, such as a .bib file, to the default resource list.
% This command is only available in the preamble.
% It replaces the \bibliography legacy command.
% Note that files must be specified with their full name,
% including the extension.
% Do not omit the .bib extension from the filename.
% Also note that the <resource> is a single resource.
% If the resources contain duplicate entries (that is, duplicate entrykeys),
% it is backend dependent what then happens.
% For example, by default biber will ignore
% further occurrence of entrykeys unless its --noskipduplicates options is
% used.
% Invoke \addbibresource multiple times to add more resources.
% See biblatex documentation file biblatex.pdf,
% 3.12, 2018/10/30, section 3.7.1, page 81-82.
%\addbibresource{bibliography.bib}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\HyperFirstAtBeginDocument#1{#1}
\begin{document}
\begin{frontmatter}
  \maketitle
  % \tableofcontents
\end{frontmatter}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{columns}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\column{0.33}

% \block{Overview}{
% \begin{itemize}
%   \item
%     Why (Document) Ontologies
%   \item
%     Ontologies and Formal Theories
%   \item
%     DOF Design
%   \item
%     Isabelle/DOF Implementation
%  \item
%     Some Application Scenarios
% \end{itemize}
% TODO: Add figure
% PUBLIC RELEASE:
% http/10.5281/zenodo.3370483
% }

\block{Linking the Formal and the Informal: Why Ontologies?}{
% \begin{itemize}
%   \item
%     More powerful ITP systems
%     \(\Longrightarrow\) body of formalised mathematics and engineering
  % \item
    The Isabelle Archive Formal of Proof as example :
\begin{tikzfigure}
  \includegraphics[width=0.4\linewidth]{%
    figures/afp_growth_in_number_of_articles.png}
\end{tikzfigure}
In 2022, the count stood at 661
articles, 420 authors and 3.3 M loc !
  % \item
}
Problem of logical consistency technically solved via continuous proof-checking

Problem of knowledge retrieval and of linking semi-formal explanations to
definitions and proofs still largely open.

The central role in technologies adressing the \emph{knowledge} problem
is played by \emph{document ontologies}, i.e., a machine-readable form
of meta-data attached to document-elements as well as their document discourse.
In order 
to make these techniques applicable to \emph{formal theory development},
the following is needed:
\begin{itemize}
  \item 
a general mechanism to define and develop \emph{domain-specific} ontologies,
\item
... that should be adapted to entities occurring in formal theories,
  i.e., provide built-in support for types, terms, theorems, proofs, etc.,
\item
ways to annotate meta-data generated by ontologies to the document elements,
  as ``deep'' as possible, together with strong validation checks,
\item
a smooth integration into the theory document development process, and
\item
ways to relate ontologies and ontology-conform documents along different
  ontologies by \emph{ontological mappings} and \emph{data translations}
  \footnote{We follow throughout this text the terminology established in 
              \cite{books/daglib/0032976}, pp. 39 ff.}
\end{itemize}
    % Rising need for:
    % % \begin{itemize}
    %   % \item
    %     structuring and consistency,
    %   % \item
    %     advanced “semantic” search,
    %   % \item
    %     tool-interaction.
   % % \end{itemize}
% % \end{itemize}

% % \begin{itemize}
  % % \item
    % This requires more structured and typed meta-information
    % % for our application domain
    % in theory developments
% % \item
   % and a better dependency-control of the different document elements,
   % like
  % % \begin{itemize}
    % % \item
    %   types, terms, theorems
    % % \item
    %   code % (proof-terms, proof generating programs, SML, LaTeX etc, but also Scala and C! )
    % % \item
    %   text and diagrams %(and perhaps animations, see Jupyter Notebooks https://jupyter.org/ )
    % % \item
    %   … and the links between them, requiring notions of
    %   consistency and coherence for collaborative development
  % % \end{itemize}
  % % \item

    % The language in which such meta-information can be specified
    % is called a \emph{document ontology} %(or \emph{vocabulary})
% % \end{itemize}
}

% \block{Linking the Formal and the Informal\\ - Existing Approaches -}{
% \begin{itemize}
%   \item
%     Code Antiquotations as in LISP, MetaML, SML, …
% \begin{tikzfigure}
%   \includegraphics[width=0.4\linewidth]{%
%     figures/code_antiquotations.png}
% \end{tikzfigure}
%   \item
%     Document pragmas as in JavaDoc, Doxygen, et al
%     TODO: Add figure
%     \item
%       Compilation process allows for document generation and some consistency checks
%       \(\Longrightarrow\) batch mode consistency only.
%   \item
%     The Isabelle Approach to “Text-Antiquotations”
%     (heavily used to assure \emph{coherence} and
%     \emph{traceability} in the technical documentations and papers)
%   \item
%     Definitions and proofs can be mixed with text elements
%     \begin{tikzfigure}
%       \includegraphics[width=0.4\linewidth]{%
%         figures/text_element.png}
%     \end{tikzfigure}
%   \item
%     Text Elements may contain Antiquotations to Formal Content
%     in the Logical Context, which are checked and animated in the IDE:
%     \begin{tikzfigure}
%       \includegraphics[width=0.4\linewidth]{%
%         figures/text_element_with_formal_content.png}
%     \end{tikzfigure}
%   \item
%     The global doc-generation process yields a presentation in, e.g.,  .pdf :
%     \begin{tikzfigure}
%       \includegraphics[width=0.4\linewidth]{%
%         figures/output.png}
%     \end{tikzfigure}
%   \item
%     Similarly, Isabelle Code uses heavily “SML-Antiquotations” 
%   \item
%     SML System Code can be mixed with antiquotations producing
%     SML level representation of types and terms:
%     \begin{tikzfigure}
%       \includegraphics[width=0.4\linewidth]{%
%         figures/sml_code_with_antiquotations.png}
%     \end{tikzfigure}
% \end{itemize}
% }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \column{0.33}

% \block{Isabelle's Document-Centric View on Formal Development}{
% \begin{itemize}
%   \item
%     Primary document type: “XXX.thy”
%     \begin{tikzfigure}
%       \includegraphics[width=0.4\linewidth]{%
%         figures/theories_hierarchy.png}
%     \end{tikzfigure}
%   \begin{itemize}
%     \item
%       Acyclic Graph of units that consist of
%       a sequence of \emph{document elements}
%       called “commands”
%     \item
%       commands user-programmable in SML
%     \item
%       Support of Cascade Syntax:
%       @{SML ‹ … @{type ‹  ….  ›} … ›}
%     \item
%       Commands are semantically transformers
%       of the logical context : \(\Theta \Rightarrow \Theta\)
%     \item
%       anti-quotations are “semantic macros” and as such partial) functions:
%       \(\Theta \Rightarrow \text{text}\)
%       \(\Theta \Rightarrow \text{sml}\)
%       \(\Theta \Rightarrow \text{term}\)
%     \item
%       pervasive continuous build/check of Isabelle/PIDE supports anti-quotations.
%   \end{itemize}
% \end{itemize}
% }

\block{Isabelle/DOF}{
\begin{itemize}
  \item
    DOF : The Document Ontology Framework
    has been designed as an Isabelle component that attempts to answer these needs.
  \item
    Prior Versions of Isabelle/DOF support semantic annotations of text and code-contexts:

    \(
text*[label::classid, attr1 =E1 , ... attrn =En ]⟨ some semi-formal text ⟩
\)

\(
ML*[label::classid, attr1 =E1 , ... attrn =En ] ⟨ some SML code ⟩
\)
    TODO: Add figure
  \item
    Novelty in Isabelle/DOF: support of \(\lambda\)-term-contexts, e.g.:
    \(value*[label::classid, attr1 =E1 , ... attrn =En ]⟨ some annotated \lambda-term ⟩\)
    TODO: Add figure

  formal, machine-checked invariants on meta-data, which correspond to the concept of
  ``rules'' in OWL~ \cite{OWL2014} or ``constraints'' in UML, and which can be specified in
  common Isabelle/HOL \(\lambda\)-term syntax.
\end{itemize}

% \innerblock{Isabelle/DOF}{
%   AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
% }
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\column{0.33}

\block{Isabelle/DOF Core : ODL}{
\begin{itemize}
  \item
    The Ontology Definition Language (ODL):
    The Mechanism to \emph{define} Ontologies
  \item
    Features:
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/odl.png}
    \end{tikzfigure}
    \begin{itemize}
      \item
        classes (for the “concepts”)
      \item
        classes may have attributes
        with HOL type
      \item
        class declarations  can be
        interleaved with arbitrary HOL
        declarations
      \item
        attributes of class-instances
        are mutable;  (default) values
        can be denoted by HOL-terms
      \item
        class declarations induce a HOL-type;
        this allows to establish “ontological links”
    \end{itemize}
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/dof_classes.png}
    \end{tikzfigure}
    \begin{itemize}
      \item
        classes have single inheritance
        (is a - relation)
      \item
        attribute overriding of attributes is possible
      \item
        meta-level types of the ITP were included as abstract HOL types;
        their inhabitance is checked
        in the global context \(\theta\)
    \end{itemize}
\end{itemize}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \column{0.33}

\block{DOF Example Document}{
\begin{itemize}
  \item
    Defining the Ontological Context
\begin{tikzfigure}
  \includegraphics[width=0.4\linewidth]{%
    figures/ontological_context.png}
\end{tikzfigure}
  \item
    And there we go:
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/dof_document.png}
    \end{tikzfigure}
  \item
    … where title* and
    abstract* are macros
    for text*[a::title,…],
    etc…
  \item
    … and the meta-data
    instances are a, abs,
    intro, T1, attached to
    these  doc elements  …
\end{itemize}
}

\block{Isabelle/DOF Core : Class Invariants}{
\begin{itemize}
  \item
    ODL used already  \(\lambda\)-(ground)-terms to denote values for attributes.
  \item
    New: ODL uses arbitrary \(\lambda\)-terms containing generated
    \emph{term-antiquotations in invariants},
    attribute definitions and commands like value*
  \item
    Eg.: Invariants for
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/classes_with_invariant.png}
    \end{tikzfigure}
    TODO: FIGURE MUST BU UPDATED!!! See original example
    \begin{itemize}
      \item
        data-integrity constraints
      \item
        … using “built-in” term antiquotations for “term”, “typ”, “thm”
      \item
        may use DOF-generated term-antiquotations
        like @{result ‘’<some result instance>’’}
        or @{introduction ‘’intro’’} or @{instance-of ‘’result’’}, etc.
      \item
        “a result text element must provide evidence
        in form of a proven theorem …”
    \end{itemize}
\end{itemize}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\column{0.33}

\block{Consequences}{
\begin{itemize}
  \item
    If an ODL ontology generates “intra-logical” representations,
    what’s the benefit ?
    \begin{itemize}
      \item
        We don't have to learn a new (meta)-language
      \item
        We can define new operations on them inside
        the  logic and develop their theory …
      \item
        … to develop a query language, for example:
        \(
          value*⟨ filter (is_interesting) @\{instances-of "result"\} ⟩
        \)
      \item
        We can relate ontologies and ontology instances
        by formal proof (‘’ontology alignment, ontology mapping’’)
    \end{itemize}
\end{itemize}
}

\block{Consequences: Example Proof of an Ontology Mapping}{
\begin{itemize}
  \item
    A “‘Generic’ Reference Ontology” vs. a “‘local’ Ontology”
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/reference_ontology.png}
    \end{tikzfigure}
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/local_ontology.png}
    \end{tikzfigure}
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/morphism.png}
    \end{tikzfigure}
  \item
    “The mapping is correct (preserves the invariants)”
    \begin{tikzfigure}
      \includegraphics[width=0.4\linewidth]{%
        figures/invariant_preserved.png}
    \end{tikzfigure}
\end{itemize}
}

\block{But what “are” ontology-generated term antiquotations  ???}{
\begin{itemize}
  \item
    First of all: how are they processed:
    \begin{itemize}
      \item parsing
      \item type checking
      \item validation (an argument is indeed a valid reference in the context)
      \item expansion (replacement of a reference against logical terms)
      \item evaluation (to SML code, or by nbe)
    \end{itemize}
  \item
    Then “built-in” term-anti quotations can be:
    \begin{itemize}
      \item
        just uninterpreted constants (without expansion)
        TODO: Add figure
      \item
        a ‘’shallow’’ data-type representation (without expansion)
        TODO: Add figure
      \item
        or a “deep” data-type representation into an Isabelle
        Meta-Model such as [Nipkow,Rosskopf 21] (with expansion)
        TODO: Add figure
    \end{itemize}
\end{itemize}
}

\block{Conclusion}{
\begin{itemize}
  \item
    DOF provides a framework
    \begin{itemize}
      \item
        for defining ontologies in the context of ITP systems
      \item
        its typed ! It has a logical interpretation !
      \item
        provides a generated infrastructure for meta-data of
        types, terms, thm’s and text and code elements
    \end{itemize}
  \item
    DOF provides a framework to enforce on-the-fly
    ontology-conform documentation checking
  \item
    DOF provides infrastructure for proofs over the
    logical representation of ontologies and meta-data …
  \item
    Ontologies generating meta-data can be used
    for other forms of Tool Interaction via “deep
    interpretations” into a meta-model
  \item
    (P)IDE's are more than just a technical asset
  \item
    … it is a corner-stone for a revolution
    \begin{itemize}
      \item
        1970’ies          TEXT
      \item
        1990’ies          HYPERTEXT
      \item
        2010’ies          REACTIVE DOCUMENTS
      \item
        2020’ies          SEMANTIC DOCUMENTS (???)
    \end{itemize}
\end{itemize}
}

\end{columns}

\input{session}

\block{References}{
% optional bibliography
\IfFileExists{root.bib}{{\bibliography{root}}}{}
\end{document}
%\printbibliography
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \begin{columns}
%     \column{0.4}
%     \block{More text}{Text and more text}
    
%     \column{0.6}
%     \block{Something else}{Here, \blindtext \vspace{4cm}}
%     \note[
%         targetoffsetx=-9cm, 
%         targetoffsety=-6.5cm, 
%         width=0.5\linewidth
%         ]
%         {e-mail \texttt{welcome@overleaf.com}}
% \end{columns}

% \begin{columns}
%     \column{0.5}
%     \block{A figure}
%     {
%         \begin{tikzfigure}
%             % \includegraphics[width=0.4\textwidth]{images/overleaf-logo}
%         \end{tikzfigure}
%     }
%     \column{0.5}
%     \block{Description of the figure}{\blindtext}
% \end{columns}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}

