Theory scholarly_paper
chapter‹An example ontology for scientific, MINT-oriented papers.›
theory scholarly_paper
imports "Isabelle_DOF.Isa_COL"
keywords "author*" "abstract*" :: document_body
and "Proposition*" "Definition*" "Lemma*" "Theorem*" :: document_body
and "Premise*" "Corollary*" "Consequence*" "Conclusion*" :: document_body
and "Assumption*" "Hypothesis*" "Assertion*" :: document_body
and "Proof*" "Example*" :: document_body
begin
define_ontology "DOF-scholarly_paper.sty" "Writing academic publications."
text‹Scholarly Paper provides a number of standard text - elements for scientific papers.
They were introduced in the following.›
section‹General Paper Structuring Elements›
doc_class title =
short_title :: "string option" <= "None"
doc_class subtitle =
abbrev :: "string option" <= "None"
doc_class author =
email :: "string" <= "''''"
http_site :: "string" <= "''''"
orcid :: "string" <= "''''"
affiliation :: "string"
doc_class abstract =
keywordlist :: "string list" <= "[]"
principal_theorems :: "thm list"
ML‹
val _ =
Monitor_Command_Parser.document_command \<^command_keyword>‹abstract*› "Textual Definition"
{markdown = true, body = true}
(Onto_Macros.enriched_document_cmd_exp (SOME "abstract") []) [] I;
val _ =
Monitor_Command_Parser.document_command \<^command_keyword>‹author*› "Textual Definition"
{markdown = true, body = true}
(Onto_Macros.enriched_document_cmd_exp (SOME "author") []) [] I;
›
text‹Scholarly Paper is oriented towards the classical domains in science:
▸ mathematics
▸ informatics
▸ natural sciences
▸ technology (= engineering)
which we formalize into:›
doc_class text_section = text_element +
main_author :: "author option" <= None
fixme_list :: "string list" <= "[]"
level :: "int option" <= "None"
doc_class "conclusion" = text_section +
main_author :: "author option" <= None
invariant level :: "(level σ) ≠ None ∧ the (level σ) > 0"
doc_class related_work = "conclusion" +
main_author :: "author option" <= None
invariant level :: "(level σ) ≠ None ∧ the (level σ) > 0"
doc_class bibliography = text_section +
style :: "string option" <= "Some ''LNCS''"
invariant level :: "(level σ) ≠ None ∧ the (level σ) > 0"
doc_class annex = "text_section" +
main_author :: "author option" <= None
invariant level :: "(level σ) ≠ None ∧ the (level σ) > 0"
find_consts name:"scholarly_paper.*Leeee"
introduction = text_section +
comment :: string
claims :: "thm list"
invariant level :: "(level σ) ≠ None ∧ the (level σ) > 0"
text‹Technical text-elements posses a status: they can be either an ∗‹informal explanation› /
description or a kind of introductory text to definition etc. or a ∗‹formal statement› similar
to :
❙‹Definition› 3.1: Security.
As Security of the system we define etc...
A formal statement can, but must not have a reference to true formal Isabelle/Isar definition.
›
background = text_section +
comment :: string
claims :: "thm list"
invariant level :: "(level σ) ≠ None ∧ the (level σ) > 0"
section‹Technical Content and Free-form Semi-formal Formats›