fix typo
[arxana.git] / org / arxana-redux.org
blob2631d8c5152a5b59f617f780583ffd0d29f209e0
1 #+TITLE:     Arxana Redux
2 #+AUTHOR:    Joe Corneli, Raymond Puzio
3 #+EMAIL:     contact@planetmath.org
4 #+DATE:      April 15, 2017 for Friday, 26 May, 2017 deadline
5 #+DESCRIPTION: Organizer for presentation on arxana and math text analysis at Oxford.
6 #+KEYWORDS: arxana, hypertext, inference anchoring
7 #+LANGUAGE: en
8 #+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t
9 #+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:nil tags:not-in-toc
10 #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
11 #+EXPORT_SELECT_TAGS: export
12 #+EXPORT_EXCLUDE_TAGS: noexport
13 #+LINK_UP:
14 #+LINK_HOME:
15 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://metameso.org/~joe/solarized-css/build/solarized-light.css" />
16 #+BIBLIOGRAPHY: arxana-redux-refs plain
17 #+LATEX_HEADER: \usepackage[backend=bibtex,sorting=none]{biblatex}
18 #+LATEX_HEADER: \addbibresource{arxana-redux-refs}
19 #+STARTUP: showeverything
21 * Overview (Introduction)
23 For the Scheme 2017 workshop at the International Conference on
24 Functional Programming to take place at Oxford this Autumn, we will be
25 making a presentation on Arxana and math texts.
27 We plan to get some version of /Arxana/ working, then use it to mark
28 up some mathematical text along the lines of /IAT/ and then come up
29 with a demo which shows what such a /scholiumific representation/ is
30 good for.  We draw on /CD/ theory to move /IAT/ style representations
31 into a computable form.
33 ** Glossary of keywords
35 - IAT :: Inference Anchoring Theory was devised by Budzynska et
36      al \cite{budzynska2014model} to model the logical structure
37      of dialogical arguments.  This has since been adapted to
38      model mathematical arguments \cite{corneli2017qand}.  The
39      primary features of this adaptation are: (1) to introduce
40      more explicit relationships between pieces of mathematical
41      content; and (2) to advance a range of ``predicates'' that
42      relate mathematical propositions.  These predicates
43      describe inferential structure, judgements of validity or
44      usefulness, and reasoning tactics.
46 - scholium :: A scholium is a word for a marginal annotation or
47      scholarly, explanatory, remark. Corneli and Krowne proposed
48      a "scholia-based document model" \cite{corneli2005scholia}
49      for "commons-based peer production," that is, the kind of
50      collaborative online knowledge-building that happens on
51      sites like Wikipedia or in online forums
52      \cite{benkler2002coase}, or in other digital libraries
53      broadly construed \cite{krowne2003building}.  The proposal
54      is that online text resources grow ``by attaching.''  One
55      familiar class of examples is provided by revision control
56      systems, e.g., Git, which builds a network history of
57      changes to documents in a directed acyclic graph (DAG).
59 - Arxana :: Arxana is the name given to a series of prototype
60      implementations of the scholium-based document model with
61      an Emacs front-end.  Arxana is inspired in part by Ted
62      Nelson's Xanadu™ project, which was the first effort to
63      work with ``hypertext'' per se
64      \cite{nelson1981literary}. We have been specifically
65      interested in applications within mathematics, which has
66      given Arxana a unique flavour.  In particular, we propose
67      to use a scholium model to model the logic of proofs, not
68      just to represent mathematical texts for reading.
70 - CD :: Conceptual Dependence was introduced as a tool for
71      understanding natural language \cite{schank1972conceptual}. It
72      is also used to represent knowledge about actions
73      \cite{lytinen1992conceptual,sowa2008conceptual}.  The basis of
74      the theory is a set of /primitives/ which describe basic types
75      of actions such as "PTRANS — transfer of location" or "MBUILD
76      — construction of a thought or new information". Each
77      primitive comes with a set of /slots/ which accept objects of
78      certain types. By filling in the slots of a primitive, one
79      obtains the most elementary form of a /conceptual dependency
80      graph/. By combining such basic graphs, one can build up more
81      complicated CD graphs which describe actions in greater
82      detail.  A simple example from \cite{lytinen1992conceptual}
83      schematizes the sentence "John gave Mary a book" as an
84      s-expression:
86 #+BEGIN_SRC lisp
87 (atrans actor  (person name john)
88         object (phys-obj type book)
89         recip  (person name mary))
90 #+END_SRC
92 ** Statement of the research problem
94 The kinds of structures that are described by ``IAT+Content''
95 are still more or less graphs.  However, to work with
96 mathematics we need to be able to talk about /hypergraphs/.  For
97 example, if we say ``In September 1993, an error was found in
98 Wiles's proposed proof of Fermat's Last Theorem'' we would like
99 to point to the entire proposed proof as an object.  Similarly,
100 we would like to be able to draw a connection between this 1993
101 proposal with the corrected version published in 1995.
103 As we will see (*I should think! -JC*), even a proof itself is
104 more conveniently represented by hypergraph structures.  In
105 particular, some of the ``predicates'' are really generative
106 functions.  Indeed, some of them are ``heuristics'' which take
107 some work to specify.
109 Another feature of our representation is that hypergraphs can be
110 placed inside nodes and links of other hypergraphs.  This allows
111 one to organize ther representation by levels of generality.  For
112 instance, at the highest level, there might be the structure of
113 statements and proofs of theorems.  At thje next level, there
114 would be the individual propositions and the argument structure.
115 At the lowest level, there would be the grammatical structure of
116 the propositions.  Having a way of ``coarse-graining'' the
117 representation is important in order to have it be managable and
118 allow users to zoom in and out of the map to find the appropriate
119 level of detail.   This is related to Fare's categorical theory
120 of levels of a computer system [add citation].
122 One effect of this is that the markup we are devising is
123 ``progressive'' in the sense that we can describe heuristics with
124 nodes without fully formalising them.  A corresponding user feature is
125 to be able to fold things at many levels.  This is important because
126 the diagrams get quite large.
128 *** Proofs and prologues
130 In several of our examples, such as the Gowers problem and Artin's
131 book, on sees a structure in which a proof or calculation is preceded
132 by a kind of prologue in which the author describes motivation and
133 strategy.  Unlike the proof proper which consists of mathematical
134 statements and deductions, the language here is more general and
135 the reasoning may be abductive, inductive, or heuristic.
137 We would like to have a representation for these sorts of prologues
138 and indicate how they connect with the proof which they introduce
139 as well as the rest of the text.  A challenge here is that the
140 texts in question can allude and refer to all sorts of referents
141 including themselves at a high level of abstraction and require
142 a certain amount of common sense to be understood.
144 Since the issues that arise here are similar to those which arise in
145 undestanding and representing natural language stories, we should be
146 able to adapt techniques such as conceptual dependency relation or
147 goals and themes to a mathematical context.
149 *** Registers of mathematical discourse
151 The natural language which occurs in mathematical texts comes in
152 several different types.  Since these types differ in their
153 vocabulary, manner of reasoning, subject matter, and degree of
154 literality, it simplifies the study of the subject to distinguish
155 these types and examine them individually.
157 **** The formal register
158 One type of mathematical language is what we may call the
159 /formal register/.  This is the type of language which is used to state
160 mathematical propositions.  For example, "Every natural number can be
161 expressed as the sum of four squares." or "In every triangle, the sum
162 of the angles equals two right angles."  In this register, vocabulary
163 is interpreted in a certain technical fashion and the reasoning is
164 purely deductive.  Semantically, such statements are assumed to be
165 equivalent to symbolic expressions in formal logic (in whatever formal
166 system one is working).  For the examples, the following would be
167 formal equivalents:
168 \begin{align*}
169   &(\forall n \in \mathbb{N}) (\exists a, b, c, d \in \mathbb{N})
170      n = a^2 + b^2 + c^2 + d^2 \\
171   &(\forall \Delta abc \in \mathrm{triangle})
172      \angle abc + \angle bca + \angle cab = 2 * \perp
173 \end{align*}
174 Indeed, in mathematical writing, such statements in natural language
175 and their formal equivalents both appear and may even be combined
176 within a single sentence, such as "Whenever $(x, y)$ lies inside the
177 region, we have $x^2 + y^4 < 12$."
179 This register of discourse has been studied by de Bruijn, Ranta, GG
180 and others and there exist parsers which can translate between natural
181 language and formal expressions.  While there is much work to be done,
182 at least some basic principles are understood and have been
183 illustrated with example programs so, for the purpose of this project,
184 we shall take this subject as given and allow ourselves to introduce
185 formal restatements of propositions without worrying about how the
186 translation might be accomplished.
188 **** The expository register
189 Another type of mathematical language is what we will call the
190 /expository register/.  This is the sublanguage which is used to
191 express how and why one is interested in a particular formal statement
192 and describe mathematical reasoning.  Examples of such language
193 include:
195 + It is easy to see that our theory is complete if we assume the
196   descending chain condition.
198 + A more elegant way of proving theorem 5 is by induction on the
199   degree; however, we chose to present the current proof because it
200   makes it clear that the result depends upon the factorizibility
201   condition.
203 + Is it possible to prove that any point and any line will do?
205 + Can we do this for $x+yx+y$? For $e$? Rationals with small denominator?
207 The expository register has several salient features:
209 - Mathematical content :: The things which it discusses are mathematical objects and mathematical propositions (as opposed, say, to physical objects or psychological states).  It is used to convey narratives of how one or more actors navigate their way through mathematical hyperreality.
211 - Metamathematical reasoning :: It is metamathematical, discussing not only with objects and propositions, but also inference and proofs.  For instance, in the first example "it is easy" says something about the proof of a statement.  Likewise, it discusses types of proofs and proof strategies.
213 - Heuristic value judgements :: Whereas the formal register only has deductive reasoning of the strictest sort, in the expository register we also have inductive and abductive reasoning as well as reasoning by analogy, heuristics, and looser forms of approximate and plausible reasoning.  Concomittantly, the truth judgements made go beyond the truth values of formal logic to vaguer assertions such as "this proof is elegant" or "this statement sounds likely to be false".  This is closer to what one has in non-mathetical discourse.  These sorts of assertions influence the choice of actions and strategies.
215 These aspects are modelled in "IATC" or "Inference Anchoring Theory + Content" \cite{martin2017bootstrapping,corneli2017towards}.
217 *** Related fields
219 In order to build a computational theory of the expository register,
220 we will draw upon several well-studied topics in AI which deal with
221 situations that have common features, namely the block world, board
222 games, and story comprehension.
224 |   | Block World | Board Games | Story Comprehension | Mathematical Texts |
225 |---+-------------+-------------+---------------------+--------------------|
226 |   |             |             |                     |                    |
228 ** Suitability of venue
230 As we will also see, it is not just incidental that our work is
231 implemented in LISP.  Actually, the kind of hypergraph programs
232 we use are a ``natural'' extension of the basic LISP data model.
234 Emacs (and Org mode) are suitable for interacting with other
235 programming languages and long-running processes, e.g., MAXIMA.
237 *** What is on offer in this approach
239 One thing we have here is links that contain code.
241 Another thing hypergraphs give us is links to links - of course
242 we can also think about higher-dimensional versions of the same,
243 but links to link.
245 * The core language
247 Here we'll describe the structures coming from several different
248 places, e.g., Gabi, Lakatos, etc.
250 ** Content (=structure=)                                               :GRAY:
251 *** object $O$ is =used_in= proposition $P$
252 **** Example: ``The Caley graph of group \(G\)'' has sub-object $G$
253 *** proposition $Q$ is a =sub-proposition= of proposition $P$
254 **** Example: ``$P$ is difficult to prove'' has sub-proposition $P$
255 *** proposition $R$ is a =reformed= version of proposition $P$
256 **** Example: ``Every $x$ is a \(P\)'' might be reformed to ``Some $x$ is a \(P\)''
257 *** property $p$ is as the =extensional_set= of all objects with property $p$
258 **** Example: the set $\mathcal{P}$ of primes is the extension of the predicate $\mathit{prime}$.
259 *** $O$ =instantiates= some class $C$
260 **** Comment: This is not quite syntactic sugar for =has_property=!
261 If we have a class of items $C$ we want to be able say that $x$ is a
262 member of $C$.  In principle, we could write $x$ =has_property= $C$.
263 But I think there are cases where we would want to
264 distinguish between, e.g.,
265 $2$ =has_property= prime, and $prime(2)$ =instantiates=
266 $prime(x)$.  This =instantiates= operation is a natural extension of
267 backquote; so e.g., we could write the true statement
268 $prime(4)$ =instantiates= $prime(x)$, even though $prime(4)$ is false.
269 **** Comment: Perhaps we need a further distinction between objects and 'schemas'
270 So we might write =has_property(member_of(x,primes))= to talk about
271 class membership.  Presumably (except in Russell paradox situations)
272 this is the same as =has_property(x,prime)=, or whatever.
273 *** $s$ =expands= $y$
274 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
275 *** $s$ =sums= $y$
276 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
277 *** $s$ =contains as summand= $t$
278 **** Comment: This is more specific than the =used in= relation
279 This relation is interesting, for example, in the case of sums like
280 $s+t$ where $t$ is, or might be, ``small''.  Note that there
281 would be similar ways to talk about any algebraic or
282 syntactic relation (e.g., multiplicand or integrand or whatever).
283 In my opinion this is better than having one general-purpose 'structural'
284 relation that loses the distinction between all of these.  However,
285 generalising in this way does open a can of worms for addressing.
286 I.e. do we need XPATH or something like that for indexing into
287 something deeply nested?
288 *** $M$ =generalises= $m$
289 **** Comment: Here, content relationships between methods.
290 Does this work?  Instead of talking about content relationships 'at
291 the content level' we are now interested in assertions like
292 "binomial theorem" =generalises= "eliminate cross terms",
293 where both of the quoted concepts are heuristics, not 'predicates'
294 *** Proposition vs Object vs Binder vs Inference rule?
295 Note that there are different kinds of `content'.  If for example I
296 say `\(0<a<b<1 \Rightarrow a^N < b^N\)', then this is more than just a
297 proposition, but something that can be used as a ``binder''; i.e., if
298 I fill in specific values of $a$ and $b$ (and, optionally, $N$) I know
299 the property holds for them.  At the same time, this sort of "binder"
300 is presumably also a *theorem* that has been proved.  This is,
301 additionally, similar to an *inference rule* since it allows us to move
302 from one statement to another, schematically (see discussion above
303 about "instantiates").  Anyway, this isn't yet about another kind of
304 structural relation, but it does suggest that we should be a bit
305 careful about how we think about content.
306 ** inferential structure (=rel=)                                       :PINK:
307 *** =stronger= (s,t)
308 *** =not= (s)
309 *** =conjunction= (s,t)
310 *** =has_property= (o,p)
311 **** Comment: It seems useful in some case to be able to say that a 'method' or heuristic has a property
312 E.g. =has_property(strategyx, HAL)=
313 **** Comment: has_property should probably 'emit' the property as a side-effect
314 This way we can more easily see which is the object and which is the property.
315 It seems that thing that has a property may also be a 'proposition',
316 or, at least, a bit of 'object code' (like: "compute XYZ").
317 Furthermore, at least in this case, the 'property' might be a heuristic
318 or method (like "we actually know how to compute this").
319 *** =instance_of= (o,m)
320 *** =independent_of= (o,d)
321 *** =case_split= (s, {si}.i)
322 *** =wlog= (s,t)
323 ** reasoning tactics; ``meta''/guiding (=meta=)                        :BLUE:
324 *** =goal= (s)
325 *** =strategy= (s,m)
326 **** Note: use method $m$ to prove $s$
327 **** Comment: perhaps this should be =strategy= (m [, s ]) so that s is optional
328 This is because, just for graphical simplicity, we might assume that
329 the statement that we want to prove is known in advance (e.g., it is
330 the statement of the problem).
332 This is the style at the beginning of gowers-example.pdf
333 **** Comment: how to show that a suggestion 'has been implemented'?
334 We might need some other form of 'certificate' for that.
335 E.g., it would say =implements(BLOB OF CODE,strategyx)=.
336 *** =auxiliary= (s,a)
337 *** =analogy= (s,t)
338 **** Comment: analogies between statements are different from auxiliaries to prove
339 Introducing some set of 'analogies' in a way sets us up for
340 'inductive' reasoning across a class of examples.  What do they all
341 have in common?  Which one is the most suitable?  Etc.
342 ** heuristics and value judgements (=value=)                          :GREEN:
343 *** =easy= (s,t)
344 *** =plausible= (s)
345 *** =beautiful= (s)
346 *** =useful= (s)
347 *** =heuristic= (x)
348 **** Comment: It seems that we will have several layers of 'guidance'
349 Many of them will be neither value judgements nor metamathematical tags
350 like =strategy=, =goal=, or =auxiliary=.  Rather, the heuristics may be
351 used at an even higher level to produce or to implement these.  So,
352 for example, the heuristic might be what a =strategy= concretely
353 suggests.  It's also true that a given =auxiliary= might need a
354 heuristic "header", that explains /why/ this auxiliary problem has
355 been suggested.  Similar to a =strategy= the heuristic might look
356 for something that 'satisfies' or 'implements' the heuristics.
357 In some cases we've looked at, this 'satisficing' object will appear
358 directly as the argument of the heuristic, hence =heuristic(x)=.
359 For example: =specialise(THE PROBLEM, (sqrt(2)+sqrt(3))^2)=.
360 Incidentally, this particular example is only meaningful in connection
361 with *another* heuristic that has told us how to *generalise* the
362 problem, i.e., that has turned a static expression into something
363 with a variable in it.
364 ** Performatives (=perf=)                                            :YELLOW:
365 *** =Agree= (s [, a ])
366 **** Note: optional argument $a$ is a justification for $s$
367 *** =Assert= (s [, a ])
368 **** Note: optional argument $a$ is support for $s$
369 **** Comment: It seems like we might want to be able to assert a 'graph structure'
370 Here is an example from early in gowers-example.pdf
371 #+BEGIN_SRC c
372 Assert(exists(strategy(PROBLEM, strategyx))
373        AND has_property(strategyx,HAL))
374 #+END_SRC
375 *** =Challenge= (s [, c ])
376 **** Note: $c$ is a counter-argument or counter-example to $s$
377 *** =Define= (o,p)
378 **** Note: object with name $o$ satisfies property $p$
379 *** =Judge= (s)
380 **** Note: takes a =value= argument
381 *** =Query= (s)
382 *** =QueryE= ({pi(X)}.i)
383 **** Note: Asks for the class of objects  for which all of the properties pi hold
384 *** =Retract= (s [, a ])
385 **** Note: can only be made by someone who asserted $s$; $a$ is an optional reason
386 *** =Suggest= (s)
387 **** Note: Takes a =meta= argument
389 * Extensions to the core
391 ** IAT + CD
393 By itself, IAT is useful for describing *what* takes place in a
394 mathematical discourse, but not so useful for figuring out *why*
395 and *how*.  To address these issues, we will augment it with the
396 framework of /conceptual dependency theory/ (CD), which has been used
397 for such purposes in the context of machine understanding of stories
398 \cite{leon2011computational}.
400 The main ingredient of CD is a set of primitives which describe
401 types of actions.  Ususally, these consist of various physical and
402 mental operations but, for the purpose at hand, we will take them to
403 be the performatives of IAT.
405 We will have two classes of objects: the participants in the dialogue
406 and mathematical propositions.  
408 *** TODO We should figure out what the inferences between basic assertions (I/R, I/E, etc.) would look like here.
410 ** Goals
412 In order to figure out why and how actions take place, CD theory
413 introduces procedural knowledge in the form of scripts, MOPs, TOPs,
414 goals, and plans.  For our purposes, goals and plans will be used.
416 This relates to the meta items of the spec.  Maybe we should expand
417 the goal item using some sort of ontology like that of Schank and
418 Ableson.
420 ** Parsing
424 * Task tree
426 ** Infrastructure
428 This file is in versioned storage in the "mob" branch of our arxana
429 repo; instructions to access are here:
430 http://repo.or.cz/w/arxana.git/blob_plain/d187e244a8eb7d2208f1fe98db1ef895c6cd4a36:/README.mob
432 A working copy of this repository is checked out at
433 =/home/shared-folder/arxana-redux/arxana/= on the Linode.
435 And a "scratch" copy of the file has been copied to:
436 =/home/shared-folder/arxana-redux/arxana-redux.org=
438 This can be edited in live sessions using =togetherly.el=.
440 ** Progress on paper
442 *** Corpus/Examples: Hand-drawn diagrams in IAT+C
444 /We are allowed to submit an appendix without a size limit, so if we don't have room for all of the diagrams in the paper, we could put them in the appendix./
446 - Minipolymath, treated by Gabi in the Transactions on Social Computing paper, pdf available from https://www.overleaf.com/read/jyhzpqsythzq
447 - Our randomly selected MathOverflow discussion (from Q&A article)
448 - Gowers 2012 trick problem, http://metameso.org/ar/gowers-example.pdf
449 - Also there's Schuam's Abstract Algebra exercise 337, a diagram is shown on arxana.net.
450  - Redone using IATC: http://metameso.org/ar/schuams-example.pdf
451 - An example from the Ganesalingam and Gowers paper: http://metameso.org/ar/robotone-example.pdf
452 - Galois theory. Emil Artin's book.
453 - Euclid algorithm
454 - possibly an example from metamath or coq or whatever to show that we can model that stuff as discourse...
455 - ...
457 *** Other Background
459 **** Items we've worked on before
461 Over the years as we've worked on Arxana, we have generated all sorts
462 of files.  Here are descriptions and locations of some of them which
463 are relevant to the current project.
465 Many of these are stored in =/home/shared-folder/public_html/=, and
466 accessible on the web at [[http://metameso.org/ar/]].
468 ***** Research notes
470 - "nemas" document:  http://metameso.org/ar/metamathematics.pdf
471 - Joe's thesis Appendix B: http://metameso.org/ar/thesis-appendix-b.pdf
472 - Metamathematics preprint: http://metameso.org/ar/mathematical-semantics.pdf
473 - hcode function spec: http://metameso.org/ar/hcode.pdf
474 - Lakatos game spec: http://metameso.org/ar/lakatos-flowchart.pdf
476 ***** Wiki
478 - [[http://metameso.org/cgi-bin/current.pl?action=browse;oldid=Arxana;id=A_scholium-based_document_model][A scholium-based document model]] is the wiki homepage for Arxana and has several relevant discussions.
479 - [[http://metameso.org/cgi-bin/current.pl/Two_years_later][Two years later]] collects many of the mathematical themes in
480   overview
481 - [[http://metameso.org/cgi-bin/current.pl/samples_of_formal_mathematical_writing][samples of formal mathematical writing]] is a small collection
482   of statements in mathematical language (leaving out ``the part
483   in between dollar signs'')
485 ***** Website
487 - [[http://arxana.net][arxana.net]] has links to source code from various prototypes
488  - It also has a small gallery of hand-drawn diagrams
490 **** And other things elsewhere:
492 - /Handbook of artificial intelligence/ by Barr and Feigenbaum describes *SAM* and *PAM*, the /Script Applier Mechanism/ and /Plan Applier Mechanism/ by Schank and Abelson et al., on page 306 et seq. \cite{barr1981handbook}
493 - Winograd, Natural language and stories --- MIT AI Technical Report 235, February 1971 with the title "Procedures as a Representation for Data in a Computer Program for Understanding Natural Language" ([[http://hci.stanford.edu/winograd/shrdlu/AITR-235.pdf][link]])
494  - Could we reuse this stuff for the "narrative"
495  - How do we know how to read the text and transform it into IATC?
496  - An example is Gowers's "total stuckness": how do we turn that into code?
497 - Conceptual dependency representation - from "Deep Blue" website ([[https://deepblue.lib.umich.edu/bitstream/handle/2027.42/30278/0000679.pdf?sequence=1][link]]).
498  - Schank's MARGIE system is described on page 300 /et seq./ of \cite{barr1981handbook}.
499 - AI textbook in wiki.
501 *** TODO Initial non-working pseudocode prototype
503 Here it makes sense to at least try and transcribe the main examples
504 in some "pseudocode", inspired by IATC and hcode, which we can then
505 refine into a working version later.
507 Several examples have been transcribed:
509 - http://metameso.org/ar/mpm3.html
510 - http://metameso.org/ar/gowers2012.html
511 - http://metameso.org/ar/robotone-opensets.html
513 However, as per the headline, these don't currently *do* anything.
515 *** TODO Basic working version
517 *** TODO Can the system come up with answers to new, basic, questions?
519 - Inspired by Nuamah et al's geography examples
520 - Simple comparisons, like, how does this concept relate to that concept?  We informally talk about this as ``analogy'' between concepts.  But...
522 *** TODO Foldable views (like in Org mode) so that people can browse proofs
524 - This may come after the May submission
525 - Folding and unfolding the definitions of terms in something like an APM context is relevant example.  Just `unpacking' terms.
527 * Related work
529 ** In a mathematics context
531 - ``Lakatos-style Collaborative Mathematics through Dialectical,
532   Structured and Abstract Argumentation'' shows how it is possible to
533   ``formalize'' the informal logic proposed by Lakatos
534   \cite{pease2017lakatos}.
535 - [[http://www.emis.de/monographs/Trzeciak/biglist.html][Mathematical English Usage - a Dictionary]] (Jerzy Trzeciak)
536 - [[https://case.edu/artsci/math/wells/pub/html/abouthbk.html][The Handbook of Mathematical Discourse]] (Charles Wells)
537 - [[http://universaar.uni-saarland.de/monographien/volltexte/2015/111/pdf/wolska_mathematicalProofs_komplett_e.pdf][Students'language in computer-assisted tutoring of mathematical proofs]] (Magdalena A. Wolska)
539 ** Does what we're doing relate in any way to other formal proof checkers?
541 - Default answer: no, because people have build large repositories of formal math (Mizar, Coq, metamath, etc.).  These other projects don't make a serious effort to deal with mathematical text.  TeX is in one place, and logic is in another place.
543  - There's another paper by Josef Urban et al. that is the exception that proves the rule \cite{kaliszyk2014developing} (see also the poster that accompanied this paper \cite{kaliszyk2014developing-misc})
545 - There's also a generative program by Ganesalingam and Gowers thath meshes natural language and formal mathematical reasoning.
547 - With these examples in mind, we assert that what we are doing can be combined with proof checkers synergistically.  For instance, one could attach scholia to the statements in an IAT representation which contain formalized representations of the content, and scholia which indicate that certain statements have been formally verified.
549 ** Further afield
551 /We're probably better off pruning these out of the final paper, but some topics of interest can be noted here./
553 - One interesting project within the DAG paradigm is the
554   [[https://github.com/ipfs/ipfs/blob/master/papers/ipfs-cap2pfs/ipfs-p2p-file-system.pdf][InterPlanetary File System]] (IPFS).
556 * Future work
558 - I think it is probably not realistic to get the clojure.spec
559   type-based work running *in addition* to the scholium-based
560   stuff, but the topics seem related.  In particular, the
561   objects that we would describe using clojure.spec are somehow
562   the "C" in IAT+C.  So, we could have a think about how
563   structural relationships between objects and propositions (per
564   Gabi's description of IAT+C) might relate to the clojure.spec
565   stuff.  I think would be appropriate to have a few pages of
566   ``future work'' describing these issues.
568 * References                                                       :noexport:
570 # bibliography items are rendered
571 # with the following command
573 \printbibliography
576 * Annex
578 Tasks, timeline, and other things we don't need to include in the
579 final report.
581 ** Timeline
583 Note: this could be more nicely organized using the org agenda.
585 ** Week 17th April
586 *** Science March on Saturday
587 ** Week 24th April
588 *** Met: Tuesday 25th April
589 *** DONE Joe get this document under version control
590 ** Week 1 May
591 *** Meet Monday 1 May (note: this is a Bank Holiday in the UK)
592 ** Week 8 May
593 *** Meet Saturday May 13
594 ** Week 15 May
595 *** *outline* of talk May 16th
596 ** Week 22 May
597 *** *Present* 23/24th May at [[http://dream.inf.ed.ac.uk/events/ciao-2017/][CIAO 2017]].                                :TALK:
598 *** *Submit* 26th May                                              :DEADLINE:
600 ** Completed tasks
602 *** DONE Figure out what to do and record it in this document.         :meta:
603 *** DONE Set up collaborative editing for files.
604 *** WONTFIX Some way to share images (e.g. whiteboard in BBB or screenshare or...)
605 *** DONE Debug Togetherly
606 *** DONE make =visible-mode= on by default in this buffer
608 #+BEGIN_COMMENT
609 The following is for controlling Togetherly and Org mode.  This might
610 not be necessary if line 454 of togetherly.el is commented
611 out/changed.  Also, it isn't actually evaluated.  How to fix?
612 #+END_COMMENT
614 #+BEGIN_SRC emacs-lisp
615 (defun execute-startup-block ()
616   (interactive)
617   (show-all))
618 #+END_SRC
620 # Local Variables:
621 # eval: (+ 1 1)
622 # End: