\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: }{For further help, see } } \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 .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 .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 , 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 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 ‘’’’} 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}