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
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
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 and FARM 2017 workshops at the International Conference
24 on Functional Programming (/ICFP/) to take place at Oxford this
25 September, we plan to make presentations about /Arxana/ and math
26 texts. We plan to get some version of Arxana working, then use it to
27 mark up some mathematical text along the lines of /IAT/ and then come
28 up with a demo which shows what such a /scholiumific representation/
29 is good for. We will draw on /CD/ theory to move /IAT/ style
30 representations into a computable form.
32 We have written a 12 page paper for the FARM workshop that describes
33 our ideas in more detail. It can be found here:
34 http://metameso.org/ar/farm-2017.pdf
36 Further information on the project and ongoing development can be
39 ** Glossary of keywords
41 - ICFP :: the International Conference on Functional Programming is an
42 annual academic conference in the field of computer science
43 sponsored by the ACM SIGPLAN, the Association for Computing
44 Machinery's Special Interest Group on programming languages.
45 Previous publications in the conference series touch on
46 things like /A functional programmer's guide to homotopy type theory/,
47 /Program synthesis: opportunities for the next decade/,
48 /Lem: reusable engineering of real-world semantics/ [Lem stands for "[[http://www.cl.cam.ac.uk/~pes20/lem/][Lightweight executable mathematics]]"],
49 /Functional programming with structured graphs/,
50 /Painless programming combining reduction and search: design principles for embedding decision procedures in high-level languages/,
51 /Using camlp4 for presenting dynamic mathematics on the web: DynaMoW, an OCaml language extension for the run-time generation of mathematical contents and their presentation on the web/,
52 /TeachScheme!: a checkpoint/,
53 /A functional I/O system or, fun for freshman kids/ and
54 /Commutative monads, diagrams and knots/
55 (i.e., a selection of papers from the proceedings over
56 the last 10 years that mention "mathematics" or
57 something similar; hopefully at least a few of them
58 are relevant). We plan to submit to the
59 [[http://www.schemeworkshop.org/][Scheme and Functional Programming]] workshop,
60 though perhaps we might also want to have a look
61 at the [[http://functional-art.org/2017/cfp.html][Functional Art, Music, Modelling and Design]]
62 workshop in case it proves to be a better fit.
64 - IAT :: Inference Anchoring Theory was devised by Budzynska et
65 al \cite{budzynska2014model} to model the logical structure
66 of dialogical arguments. This has since been adapted to
67 model mathematical arguments \cite{corneli2017qand}. The
68 primary features of this adaptation are: (1) to introduce
69 more explicit relationships between pieces of mathematical
70 content; and (2) to advance a range of ``predicates'' that
71 relate mathematical propositions. These predicates
72 describe inferential structure, judgements of validity or
73 usefulness, and reasoning tactics.
75 - scholium :: A scholium is a word for a marginal annotation or
76 scholarly, explanatory, remark. Corneli and Krowne proposed
77 a "scholia-based document model" \cite{corneli2005scholia}
78 for "commons-based peer production," that is, the kind of
79 collaborative online knowledge-building that happens on
80 sites like Wikipedia or in online forums
81 \cite{benkler2002coase}, or in other digital libraries
82 broadly construed \cite{krowne2003building}. The proposal
83 is that online text resources grow ``by attaching.'' One
84 familiar class of examples is provided by revision control
85 systems, e.g., Git, which builds a network history of
86 changes to documents in a directed acyclic graph (DAG).
88 - Arxana :: Arxana is the name given to a series of prototype
89 implementations of the scholium-based document model with
90 an Emacs front-end. Arxana is inspired in part by Ted
91 Nelson's Xanadu™ project, which was the first effort to
92 work with ``hypertext'' per se
93 \cite{nelson1981literary}. We have been specifically
94 interested in applications within mathematics, which has
95 given Arxana a unique flavour. In particular, we propose
96 to use a scholium model to model the logic of proofs, not
97 just to represent mathematical texts for reading.
99 - CD :: Conceptual Dependence was introduced as a tool for
100 understanding natural language \cite{schank1972conceptual}. It
101 is also used to represent knowledge about actions
102 \cite{lytinen1992conceptual,sowa2008conceptual}. The basis of
103 the theory is a set of /primitives/ which describe basic types
104 of actions such as "PTRANS — transfer of location" or "MBUILD
105 — construction of a thought or new information". Each
106 primitive comes with a set of /slots/ which accept objects of
107 certain types. By filling in the slots of a primitive, one
108 obtains the most elementary form of a /conceptual dependency
109 graph/. By combining such basic graphs, one can build up more
110 complicated CD graphs which describe actions in greater
113 ** Plan of our ICFP workshop contributions
115 We used these bullet points as our main outline for the paper, though
116 the sections have since been given shorter titles. An early outline
117 of the paper can be found in http://metameso.org/ar/farm-2017.org.
119 - Unlike a classical proof which consists of mathematical statements
120 and deductions, informal mathematical language is more general, and
121 the reasoning involved may be abductive, inductive, or heuristic.
123 - The presentation here will describe a strategy we have been
124 developing for representing mathematical dialogues and other
127 - A publication appearing in "Artificial Intelligence" this month
128 describes the high-level features of informal mathematics, and
129 helped inspire this project.
131 - Our latest efforts produce more detailed models mathematical
134 - A graphical formalism and a corresponding prototype implementation
137 - Applications include modelling collaborative proof dialogues and
138 discursive Q&A, as well as more traditional proofs.
140 - /In our planned next steps we plan to bring in explicit type-theoretic representations of mathematical objects within a service-oriented architecture./
143 - LISP stuff, implementation, search and programming, hypergraphs
144 - pattern matching (like grep), but now since we're doing LISP, and LISP functions are cells -- parsing and grep might fit into this (compare "Graph Grammars" and clojure.spec regexps)
145 - /think about what our ≈five slides would be/
150 - music from corneli, pease, stefanou survey ("Chapter 6")
151 - prior art: board games, story stuff
153 ** Statement of the research problem
155 The kinds of structures that are described by ``IAT+Content''
156 are still more or less graphs. However, to work with
157 mathematics we need to be able to talk about /hypergraphs/. For
158 example, if we say ``In September 1993, an error was found in
159 Wiles's proposed proof of Fermat's Last Theorem'' we would like
160 to point to the entire proposed proof as an object. Similarly,
161 we would like to be able to draw a connection between this 1993
162 proposal with the corrected version published in 1995.
164 As we will see (*I should think! -JC*), even a proof itself is
165 more conveniently represented by hypergraph structures. In
166 particular, some of the ``predicates'' are really generative
167 functions. Indeed, some of them are ``heuristics'' which take
168 some work to specify.
170 Another feature of our representation is that hypergraphs can be
171 placed inside nodes and links of other hypergraphs. This allows
172 one to organize ther representation by levels of generality. For
173 instance, at the highest level, there might be the structure of
174 statements and proofs of theorems. At thje next level, there
175 would be the individual propositions and the argument structure.
176 At the lowest level, there would be the grammatical structure of
177 the propositions. Having a way of ``coarse-graining'' the
178 representation is important in order to have it be managable and
179 allow users to zoom in and out of the map to find the appropriate
180 level of detail. This is related to Faré's categorical theory
181 of levels of a computer system [add citation].
183 One effect of this is that the markup we are devising is
184 ``progressive'' in the sense that we can describe heuristics with
185 nodes without fully formalising them. A corresponding user feature is
186 to be able to fold things at many levels. This is important because
187 the diagrams get quite large.
189 *** Proofs and prologues
191 In several of our examples, such as the Gowers problem and Artin's
192 book, on sees a structure in which a proof or calculation is preceded
193 by a kind of prologue in which the author describes motivation and
194 strategy. Unlike the proof proper which consists of mathematical
195 statements and deductions, the language here is more general and
196 the reasoning may be abductive, inductive, or heuristic.
198 We would like to have a representation for these sorts of prologues
199 and indicate how they connect with the proof which they introduce
200 as well as the rest of the text. A challenge here is that the
201 texts in question can allude and refer to all sorts of referents
202 including themselves at a high level of abstraction and require
203 a certain amount of common sense to be understood.
205 Since the issues that arise here are similar to those which arise in
206 undestanding and representing natural language stories, we should be
207 able to adapt techniques such as conceptual dependency relation or
208 goals and themes to a mathematical context.
210 *** Registers of mathematical discourse
212 The natural language which occurs in mathematical texts comes in
213 several different types. Since these types differ in their
214 vocabulary, manner of reasoning, subject matter, and degree of
215 literality, it simplifies the study of the subject to distinguish
216 these types and examine them individually.
218 **** The formal register
219 One type of mathematical language is what we may call the
220 /formal register/. This is the type of language which is used to state
221 mathematical propositions. For example, "Every natural number can be
222 expressed as the sum of four squares." or "In every triangle, the sum
223 of the angles equals two right angles." In this register, vocabulary
224 is interpreted in a certain technical fashion and the reasoning is
225 purely deductive. Semantically, such statements are assumed to be
226 equivalent to symbolic expressions in formal logic (in whatever formal
227 system one is working). For the examples, the following would be
230 &(\forall n \in \mathbb{N}) (\exists a, b, c, d \in \mathbb{N})
231 n = a^2 + b^2 + c^2 + d^2 \\
232 &(\forall \Delta abc \in \mathrm{triangle})
233 \angle abc + \angle bca + \angle cab = 2 * \perp
235 Indeed, in mathematical writing, such statements in natural language
236 and their formal equivalents both appear and may even be combined
237 within a single sentence, such as "Whenever $(x, y)$ lies inside the
238 region, we have $x^2 + y^4 < 12$."
240 This register of discourse has been studied by de Bruijn, Ranta, Mohan
241 and others and there exist parsers which can translate between natural
242 language and formal expressions. Once we have formal representations,
243 we can reason about them using tools from Frege and others.
245 While there is much work to be done towards developing a formal linguistic
246 theory of mathematics, at least some basic principles are understood and have
247 been illustrated with example programs so, for the purpose of this project,
248 we shall take this subject as given and allow ourselves to introduce
249 formal restatements of propositions without worrying about how the
250 translation might be accomplished.
252 **** The expository register
253 Another type of mathematical language is what we will call the
254 /expository register/. This is the sublanguage which is used to
255 express how and why one is interested in a particular formal statement
256 and describe mathematical reasoning. Examples of such language
259 + It is easy to see that our theory is complete if we assume the
260 descending chain condition.
262 + A more elegant way of proving theorem 5 is by induction on the
263 degree; however, we chose to present the current proof because it
264 makes it clear that the result depends upon the factorizibility
267 + Is it possible to prove that any point and any line will do?
269 + Can we do this for $x+yx+y$? For $e$? Rationals with small denominator?
271 The expository register has several salient features which work together:
273 # Expanded a bit more in http://metameso.org/cgi-bin/current.pl/Two_years_later
274 # terms - put examples
276 - Mathematical content (Universe of discourse) :: The main focus of this type of discusses are mathematical objects and mathematical propositions (which may exist in analogy with physical objects or psychological states). These are used to convey *narratives* of how one or more actors navigate their way through mathematical hyperreality. Formal mathematics models the objects in this universe of discourse and their relationships, but the discourse itself is not necessarily formal.
278 - 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 to see that our theory is complete if we assume the
279 descending chain condition"* says something about the proof of a statement. Likewise, it indicates types of proofs and proof strategies. It is however,
280 not a purely formal statement. It relies on the next feature:
282 - 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.
286 In order to build a computational theory of the expository register,
287 we will draw upon several well-studied topics in AI which deal with
288 situations that have common features, namely the block world, board
289 games, and story comprehension.
291 | /Level/ | *Block World* | *Board Games* | *Story Comprehension* |
292 |-----------------------+-------------------+-----------------------+-----------------------|
293 | universe of discourse | blocks on a table | game pieces on board | everyday life |
294 | reasoning | instructions | rules & strategy | analogy |
295 | value | consistency? | prediction of winning | costs and benefits |
296 | role of disagreement | none | multiple strategies | ethical dilemmas |
298 In a mathematical setting, thespects are modelled in "IATC" or
299 "Inference Anchoring Theory + Content" \cite{martin2017bootstrapping,corneli2017towards}.
301 In a Lakatos setting disagreement is the primary engine that drives discovery.
303 ** Suitability of venue
305 As we will also see, it is not just incidental that our work is
306 implemented in LISP. Actually, the kind of hypergraph programs
307 we use are a ``natural'' extension of the basic LISP data model.
309 Emacs (and Org mode) are suitable for interacting with other
310 programming languages and long-running processes, e.g., MAXIMA.
311 (Also see preiterature on heuristics in LISP from Lenat.)
313 *** What is on offer in this approach
315 Kinematics vs dynamics.
317 Purely formal logic written as graph subsitution - example.
319 One thing we have here is links that contain code.
321 Another thing hypergraphs give us is links to links - of course
322 we can also think about higher-dimensional versions of the same,
323 but links to links is the main thing.
325 * Guide to files in our git repository <<short-docs>>
328 *This file -- a guide to our work in progress.*
329 *** robotone-opensets.org
330 Walk through a simple proof ROBOTONE proof from \cite{Ganesalingam2016} and mark it up in IATC.
332 Walk through parts of a MiniPolymath proof and mark it up in IATC.
334 Our submitted abstract for Scheme 2017 lightning talk.
336 Walk through a simple proof from Gowers and mark it up in IATC.
338 Slides on "Reasoning about mathematics with graphical programs" presented Tuesday 23 May, 2017 at "CIAO 25 AB 70" in Edinburgh.
340 Preliminary outline of our FARM 2017 submission.
346 All of the code for low-layer HONEY functionality.
351 *** search-expanded.el
352 This contains meso-layer search functionality built on top of HONEY.
354 Used for building arxana.net. Could be expanded to produce adaptive text (e.g., narrative tarot readings); see \cite{veale2017dejavu} for an illustration of how.
356 *** arxana-reboot.tex <<arxana2010>>
357 This is the 2010-era version of Arxana. Unlike its predecessor [[arxana2005]], this uses Common Lisp and
358 MySQL for storage, so setup is more complicated. In principle some other external datastore could
359 be used, i.e., a [[https://en.wikipedia.org/wiki/Graph_database][graph database]] like [[https://en.wikipedia.org/wiki/Neo4j][Neo4j]] or a hypergraph database like [[http://hypergraphdb.org/][HypergraphDB]] or [[https://github.com/opencog/atomspace][AtomSpace]],
360 the latter being especially quite close to what we're working on, since they make use
361 of "Atoms" which are similar to our "nemas", and since they have Scheme bindings for their
364 Exposition of the "Higher Order NEsted Yarnknotter" (HONEY) system. Some of this text went into our paper for FARM 2017.
365 *** sbdm4cbpp.tex <<arxana2005>>
366 This is the 2005-era version of Arxana. It runs entirely in Emacs, using a hash table for storage.
367 A version of the software was demoed in Atlanta at the Free Culture and the Digital Library Symposium, in connection with
368 \cite{corneli2005scholia}. It was largely replaced by [[arxana2010]], though this version still has some features that the
369 later version lacked.
371 A figure to illustrate code embedded inside of networks; used in the FARM paper.
373 *** In our web directory
374 *** On the old AsteroidMeta wiki
378 This file is in versioned storage in the "mob" branch of our arxana
379 repo; instructions to access are here:
380 http://repo.or.cz/w/arxana.git/blob_plain/d187e244a8eb7d2208f1fe98db1ef895c6cd4a36:/README.mob
382 A working copy of this repository is checked out at
383 =/home/shared-folder/arxana-redux/arxana/= on the Linode.
385 And a "scratch" copy of the file has been copied to:
386 =/home/shared-folder/arxana-redux/arxana-redux.org=
388 This can be edited in live sessions using floobits.
390 *Note* Due to buggy behavior of togetherly, we've since decided to
391 switch to Floobits for live editing sessions, via:
393 =M-x floobits-join-workspace RET https://floobits.com/holtzermann17/arxana RET=
395 * Extensions to the core of IATC
399 By itself, IAT is useful for describing *what* takes place in a
400 mathematical discourse, but not so useful for figuring out *why*
401 and *how* (viz., kinematics and dynamics). To address these issues,
402 we will augment it with the framework of /conceptual dependency theory/ (CD),
403 which has been used for such purposes in the context of machine understanding of stories
404 \cite{leon2011computational}.
406 # also a chapter in the AI Handbook.
408 The main ingredient of CD is a set of *primitives* which describe
409 types of actions. Ususally, these consist of various physical and
410 mental operations but, for the purpose at hand, we will take them to
411 be the *performatives* of IAT.
413 We will have two classes of objects: the participants in the dialogue
414 and mathematical propositions.
416 *** TODO We should figure out what the inferences between basic assertions (I/R, I/E, etc.) would look like here. (e.g. fig. 7 of Lytinen)
418 - links between basic CD's
419 - e.g., joe communicated the IP address to ray, by talking, so that ray could get on the server
423 In order to figure out why and how actions take place, CD theory
424 introduces procedural knowledge in the form of scripts, MOPs, TOPs,
425 goals, and plans. For our purposes, goals and plans will be used.
427 This relates to the meta items of the spec. Maybe we should expand
428 the goal item using some sort of ontology like that of Schank and
433 A simple example from \cite{lytinen1992conceptual} schematizes the
434 sentence "John gave Mary a book" as an s-expression.
437 (atrans actor (person name john)
438 object (phys-obj type book)
439 recip (person name mary))
442 ** Possible "warm up" example
444 "Adjoints exist and are unique." - See Halmos.
447 (defn adjoint-of-a-bounded-linear-operator-on-a-hilbert-space
451 (bounded-linear-operator A X Y)
455 (eq (inner-product :on Y :of (A x) y)
456 (inner-product :on X :of x (Astar y)))))))
459 adjoint-of-a-bounded-linear-operator-on-a-hilbert-space:fact:
460 adjoints-exist-and-are-unique (A X Y)
463 (bounded-linear-operator A X Y)
464 (bind phi (map phi X Y :takes x
465 :to (inner-product :on Y :of (A x) y)))
466 ;; We need to show that phi is linear, but that’s ‘easy’
469 (properties-of-inner-product))
470 ;; The lemma allows us to spawn a reasonable target
473 (forall u :in X :st (eq (varphi u)
474 (inner-product :in X :of u v))))
475 (uniquely-represent-a-linear-functional-by-an-inner-product
477 (bind Astar (map Astar Y X :takes w :to v))
478 ;; Finally, assert that the Astar so constructed is the adjoint
479 (assert (adjoint-of-a-bounded-linear-operator-on-a-hilbert-space X Y
487 The basis of Arxana is higher-order nested semantic networks. By
488 ``higher order'', it is meant that links can point to other links. By
489 ``nested'', it is meant that the nodes which make up a network may
490 contain other networks, which themselves may have nodes containing yet
491 other networks, etc., ad nauseam or ad infinitum, whichever comes
492 first. In addition, all the links are bidirectional and no
493 fundamental distinction is made between links and nodes. This
494 sophistication makes the package suitable as a platform to construct
495 knowledge bases for such advanced applications as hyperreal
498 For convenience and flexibility, this package has been designed in a
499 modular and extensible fashion. The basic functionality is provided
500 by a back-end which manages the data of the network. In the
501 implementation described here, this data is stored in hash tables, but
502 one could instead have it stored in, say, a relational database or a
503 file system by writing a suitable back-end and using that instead.
504 For higher-level access to the data is mediated by means of a handful
505 of primitive commands and, as long as these commands behave similarly,
506 it does not matter to the end user how they are implemented or how the
507 data is represented internally.
509 Since these primitive command are, well, primitive, restricting
510 oneself to them would be quite a tedious way to interact with the
511 knowledge base except for basic maintenance operations. Thus, on top
512 of the built-in layer, one would normally add a layer or two of
513 application packages which accomplish more sophisticated tasks such as
514 rendering documents or updating links en masse or implement different
515 types of documents as semantic nets. In the interests of integrity of
516 the knowledge base and modularity with respect to its representation,
517 these routines should not access the underlying databases directly but
518 call upon the primitive access functions to do their bidding. In a
519 finished application, one might even have several layers, say a middle
520 end which implements layered services upon the database and a
521 front-end which provides a user-friendly interface to these services.
523 The basic unit from which we will construct our networks is called an
524 ``article''. Articles are data objects which serve to encode both
525 links and nodes and are characterized by the following components:
532 Each article has a unique identifier which the computer assigns to it
533 when it is entered into the database. This identifier is used by the
534 access functions to refer to the article for subsequent operations.
535 Since talking about, say, article 12 pointing to article 5 is not
536 intuitive for most users, the system also has a mechanism for
537 assigning names to articles so that one could instead, say, refer to
538 ``walrus'' pointing to ``mammal'' instead.
540 Source and sink are pointers to other articles and content is a place
541 in which to store a lisp object, which might be some text, or an
542 expression, or maybe a number or maybe something else depending on
543 what intends to represent with one's network and how one intends to
544 use it. In particular, the content of an article can even be another
545 network constructed out of more articles.
547 In order to provide a foundation for building up networks, there is a
548 special article ``ground'' which serves as a foundation. It is the
549 zero object of our system; its source and sink is itself and its
550 content is nil. To enter an article which is meant as a node, we set
551 its source and its sink to ground. We can also set the source to
552 ground and sink to a non-ground article or vice-versa; this provides a
553 means for creating ``stickies'' which attach directly to articles, a
554 construction for which we shall find use from time to time.
556 This system of articles each of which point to two other articles and
557 a ground article is similar to the cons cells of lisp, but expands the
558 paradigm in two important ways --- the cells carry content and the
559 links are bidirectional. These differences allow the system under
560 consideration to accomplish things which would not be feasible with
561 plain old s-expressions.
563 Bidirectional linking means that the links are stored and accessed in
564 a manner which makes it no more costly to find and traverse links in
565 the backwards than the forward direction. This is what makes it
566 practical to make links as mentioned above and done explicitly below.
568 Storing content in articles is what allows us to construct nodes.
569 While, in lisp, =(cons nil nil)= is certainly valid, it's not
570 terribly useful since it doesn't carry much information. However,
571 when we can attach information to a cell, then each such object is
572 able to serve as a distinct carrier of information and can be quite
573 useful. In the case of links, this room for extra information can be
574 used to do things like, say, specify what part of a story is being
575 considered in a link to a comment on a story.
577 *** Hypergraph search
579 - Search item consists of a hypergraph whose articles contain predicates.
581 - Given such a query hypergraph and any other hypergraph, which we
582 will consider as a database, a match consists of a mapping of
583 hypergraphs from the query to the database such that, for every
584 article in the query, the predicate it contains is true of the
585 contents of the corresponding database article.
587 - The predicate can be any lisp function. Within reason, of course
588 --- we want it to say something sensible and relevant when applied
589 to database content. If we have a type system in place, this would
590 be a good place to deploy it.
592 - Since lisp functions can be recursive and nested, the above fact,
593 especially when combined with the text-as-program feature, allows
594 for a high level of expressivity and complexity.
596 - By modelling various structures as hypergraphs, we can search for
599 - If we implement typing via a special node "type" and as links of
600 type "type", we can search for items by type.
602 - If we implement subcollections as cones (essentially the same idea)
603 we can restrict searches to subcollections.
605 - If we represent logical inferences as matching subhypergraphs, this
606 can check or find proofs.
608 - If we represent production rules as hypergraph patterns, we can
609 parse and become experts.
611 - cf. graph grammars.
613 - This also smells like generalized elements and presheaf categories.
615 - What would a relational version a la kanren looked like?
619 We can also treat content of articles as executable programs. This by
620 itself is unteresting since, in lisp, code is data and the content
621 happens to be data so, of course it might be code. What makes it
622 worthy of attention is that we can also specify bindings of symbols
625 Since there are many ways to specify such links but we do not want to
626 prejudice any one of them over any other, we ask that the user
627 provides a function which, given a node, produces an association list
628 of symbols and their values. Similarly, in the interest of
629 generality, we allow the user to specify a function which extracts the
630 code contained in a node. As we shall see, there are circumstances
631 under which one would not want the code to simply be the text
632 contained in a given node.
634 The main function which implements this functionality is ~node-fun~.
635 This function takes as input a node, a function to retrieve links and
636 a function to retrieve code. As output, it produces a lambda
637 expression which is the retrived code wrapped inside a let statement
638 which provides the environment. Furthermore, the wrapper code is
639 written in such a way that evaluation of symbol values does not happen
640 at the time ~node-fun~ runs, but is delayed until that symbol is
641 evaluated. This feature makes possible recursion since, given a
642 function which directly or indirectly calls itsef, unwinding the
643 recursive calls will not be done at once leading to an explosion but
644 will proceed on a need-to know basis.
646 One important use of this facility in the scholium based document
647 model is handling clusions. The basic feature of clusions is that,
648 rather than simply looking at the text of a node, one instead
649 generates a text from that node by processing that text in its
650 network context. A classical example would be one where the text
651 contains link anchors which mean "copy this portion of the texts from
652 some other node". In this case the processing would consist of
653 looking up those references and inserting the portions in the
654 appropriate places (i.e. quasiquotation). Furthermore, due to
655 possibility of recursion described above, it is possible that the
656 texts cited might themselves be in need of similar assembly. To be
657 sure, in such situations, there is a danger of infinite regress
658 crashing the system but, in the spirit of lisp, we have opted to
659 preserve expressivity rather than try to implement some safeguard or
660 another which would limit the what could be said in one way or
661 another. The essence of clusion is replacing ~value~ with ~(value)~.
663 Another use of being able to run scholium-based documents as documents
664 is /annotative programming/, which is a style of programming in which
665 programs take the form of hypertext and dependencies are indicated by
666 links. Other languages which supprort this style are Kurzweil's Flare
670 ** Progress on preparing the work for public consumption
672 *** DONE Corpus/Examples: Hand-drawn diagrams in IAT+C
674 /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./
676 - Minipolymath, treated by Gabi in the Transactions on Social Computing paper, pdf available from https://www.overleaf.com/read/jyhzpqsythzq
677 - Our randomly selected MathOverflow discussion (from Q&A article)
678 - Gowers 2012 trick problem, http://metameso.org/ar/gowers-example.pdf
679 - Also there's Schuam's Abstract Algebra exercise 337, a diagram is shown on arxana.net.
680 - Redone using IATC: http://metameso.org/ar/schuams-example.pdf
681 - An example from the Ganesalingam and Gowers paper: http://metameso.org/ar/robotone-example.pdf
682 - Galois theory. Emil Artin's book.
684 - possibly an example from metamath or coq or whatever to show that we can model that stuff as discourse...
687 *** DONE Other Background
689 **** Items we've worked on before
691 Over the years as we've worked on Arxana, we have generated all sorts
692 of files. Here are descriptions and locations of some of them which
693 are relevant to the current project.
695 Many of these are stored in =/home/shared-folder/public_html/=, and
696 accessible on the web at [[http://metameso.org/ar/]].
700 - "nemas" document: http://metameso.org/ar/metamathematics.pdf
701 - Joe's thesis Appendix B: http://metameso.org/ar/thesis-appendix-b.pdf
702 - Metamathematics preprint: http://metameso.org/ar/mathematical-semantics.pdf
703 - hcode function spec: http://metameso.org/ar/hcode.pdf
704 - Lakatos game spec: http://metameso.org/ar/lakatos-flowchart.pdf
708 - [[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.
709 - [[http://metameso.org/cgi-bin/current.pl/Two_years_later][Two years later]] collects many of the mathematical themes in
711 - [[http://metameso.org/cgi-bin/current.pl/samples_of_formal_mathematical_writing][samples of formal mathematical writing]] is a small collection
712 of statements in mathematical language (leaving out ``the part
713 in between dollar signs'')
717 - [[http://arxana.net][arxana.net]] has links to source code from various prototypes
718 - It also has a small gallery of hand-drawn diagrams
720 **** And other things elsewhere:
722 - /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}
723 - 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]])
724 - Could we reuse this stuff for the "narrative"
725 - How do we know how to read the text and transform it into IATC?
726 - An example is Gowers's "total stuckness": how do we turn that into code?
727 - Conceptual dependency representation - from "Deep Blue" website ([[https://deepblue.lib.umich.edu/bitstream/handle/2027.42/30278/0000679.pdf?sequence=1][link]]).
728 - Schank's MARGIE system is described on page 300 /et seq./ of \cite{barr1981handbook}.
729 - AI textbook in wiki.
731 *** DONE Initial non-working pseudocode prototype
733 It makes sense to at least try and transcribe the main examples in
734 some "pseudocode", inspired by IATC and hcode, which we can then
735 refine into a working version later.
737 **** Initial transcription
739 As per the headline, these don't currently *do* anything.
741 - http://metameso.org/ar/mpm3.html
742 - http://metameso.org/ar/gowers2012.html
743 - http://metameso.org/ar/robotone-opensets.html
745 **** More detailed transcription
747 In our FARM paper we have analysed some of the Gowers paper in more
750 *** TODO Complete a short summary documentation
751 The section [[short-docs]] here is a start.
752 *** TODO Clean up namespaces of functions
753 *** TODO Write an IATCD evaluator
754 *** TODO connect frontend for interaction and backend for storage
755 Backend storage could be a database or something else
756 *** TODO find the generic inteface layer and put it in its own file
757 *** TODO Having assembled a buffer from distributed storage, put things back where they came from :UI:
758 *** TODO Write some simple user language and an interface that generates triplets/quintuplets
759 *** TODO Basic working version
760 What this means is "Demo the system walking through the steps of a
761 proof like GCP or MPM."
762 *** TODO Fuzzy search to retrieve loose matches and analogies
763 *** TODO Demo with APM-Xi content
764 Show interface with types
765 *** TODO Demo with APM prelim problems
766 *** TODO Public demoable version
767 Could go to the BCS contest on *September 1, 2017* if we're ready.
768 *** TODO Write up applications to mathematics
769 Possibly for IJCAI/ECAI.
770 Papers due *January 2018*?
771 To take place *July 13-19, 2018*
772 http://www.chessprogress.com/IJCAI-2018/calls/
773 *** TODO logic programming like in Reasoned Schemer but with hypergraphs
774 Possibly submit to [[http://conf.researchr.org/home/icfp-2018][ICFP]]. Papers due *Fri 16 Mar 2018*.
775 Event to take place in St. Louis, Missouri, United States, to take place *late September*.
776 *** TODO Can the system come up with answers to new, basic, questions?
778 - Inspired by Nuamah et al's geography examples
779 - Simple comparisons, like, how does this concept relate to that concept? We informally talk about this as ``analogy'' between concepts. But...
781 *** TODO Foldable views (like in Org mode) so that people can browse proofs
783 - This may come after the May submission
784 - Folding and unfolding the definitions of terms in something like an APM context is relevant example. Just `unpacking' terms.
787 *** Immediate upcoming
788 **** Emacs NYC July 10th
789 **** Include in Big Proof talk same week
791 **** Demo the system walking through the steps of a proof like GCP or MPM.
792 **** Refine both representations and reasoning aspects.
793 **** Integrate external computer algebra / proof checking systems.
794 *** Embodiment and cognitive science
795 **** Build on CD theory to reason about embodied intuitions in geometric problems, integrate with Lakoff and Núñez's conceptual metaphors \cite{kaliszyk2014developing-misc}.
796 *** Linguistics and NLP
797 **** Integrate parsers to generate IATC+CD automatically.
798 **** Use these models to seed statistical machine learning, e.g., expanding on the work of Kaliszyk et al who ascertained the frequency of various schematic usages like ``let $X$ be a $Y$'' in a specific corpus of proofs.
800 **** Integrate with knowledge bases of mathematical terms and frequency data (as above).
801 **** Model Stack Exchange dialogues, in parallel with the work done on Reddit discussions \cite{zhang2017characterizing}.
802 **** Build a system with multiple agents that ``converse with each other to sharpen their wits'' \cite{heretical-theory}.
806 ** In a mathematics context
808 - ``Lakatos-style Collaborative Mathematics through Dialectical,
809 Structured and Abstract Argumentation'' shows how it is possible to
810 ``formalize'' the informal logic proposed by Lakatos
811 \cite{pease2017lakatos}.
812 - [[http://www.emis.de/monographs/Trzeciak/biglist.html][Mathematical English Usage - a Dictionary]] (Jerzy Trzeciak)
813 - [[https://case.edu/artsci/math/wells/pub/html/abouthbk.html][The Handbook of Mathematical Discourse]] (Charles Wells)
814 - [[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)
816 ** Does what we're doing relate in any way to other formal proof checkers?
818 - 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.
820 - 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})
822 - There's also a generative program by Ganesalingam and Gowers thath meshes natural language and formal mathematical reasoning.
824 - 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
827 Here we'll describe the structures coming from several different
828 places, e.g., Gabi, Lakatos, etc.
830 ** Content (=structure=) :GRAY:
831 *** object $O$ is =used_in= proposition $P$
832 **** Example: ``The Caley graph of group \(G\)'' has sub-object $G$
833 *** proposition $Q$ is a =sub-proposition= of proposition $P$
834 **** Example: ``$P$ is difficult to prove'' has sub-proposition $P$
835 *** proposition $R$ is a =reformed= version of proposition $P$
836 **** Example: ``Every $x$ is a \(P\)'' might be reformed to ``Some $x$ is a \(P\)''
837 *** property $p$ is as the =extensional_set= of all objects with property $p$
838 **** Example: the set $\mathcal{P}$ of primes is the extension of the predicate $\mathit{prime}$.
839 *** $O$ =instantiates= some class $C$
840 **** Comment: This is not quite syntactic sugar for =has_property=!
841 If we have a class of items $C$ we want to be able say that $x$ is a
842 member of $C$. In principle, we could write $x$ =has_property= $C$.
843 But I think there are cases where we would want to
844 distinguish between, e.g.,
845 $2$ =has_property= prime, and $prime(2)$ =instantiates=
846 $prime(x)$. This =instantiates= operation is a natural extension of
847 backquote; so e.g., we could write the true statement
848 $prime(4)$ =instantiates= $prime(x)$, even though $prime(4)$ is false.
849 **** Comment: Perhaps we need a further distinction between objects and 'schemas'
850 So we might write =has_property(member_of(x,primes))= to talk about
851 class membership. Presumably (except in Russell paradox situations)
852 this is the same as =has_property(x,prime)=, or whatever.
853 *** $s$ =expands= $y$
854 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
856 **** Comment: This is something that a computer algebra system like MAXIMA could confirm
857 *** $s$ =contains as summand= $t$
858 **** Comment: This is more specific than the =used in= relation
859 This relation is interesting, for example, in the case of sums like
860 $s+t$ where $t$ is, or might be, ``small''. Note that there
861 would be similar ways to talk about any algebraic or
862 syntactic relation (e.g., multiplicand or integrand or whatever).
863 In my opinion this is better than having one general-purpose 'structural'
864 relation that loses the distinction between all of these. However,
865 generalising in this way does open a can of worms for addressing.
866 I.e. do we need XPATH or something like that for indexing into
867 something deeply nested?
868 *** $M$ =generalises= $m$
869 **** Comment: Here, content relationships between methods.
870 Does this work? Instead of talking about content relationships 'at
871 the content level' we are now interested in assertions like
872 "binomial theorem" =generalises= "eliminate cross terms",
873 where both of the quoted concepts are heuristics, not 'predicates'
874 *** Proposition vs Object vs Binder vs Inference rule?
875 Note that there are different kinds of `content'. If for example I
876 say `\(0<a<b<1 \Rightarrow a^N < b^N\)', then this is more than just a
877 proposition, but something that can be used as a ``binder''; i.e., if
878 I fill in specific values of $a$ and $b$ (and, optionally, $N$) I know
879 the property holds for them. At the same time, this sort of "binder"
880 is presumably also a *theorem* that has been proved. This is,
881 additionally, similar to an *inference rule* since it allows us to move
882 from one statement to another, schematically (see discussion above
883 about "instantiates"). Anyway, this isn't yet about another kind of
884 structural relation, but it does suggest that we should be a bit
885 careful about how we think about content.
886 ** inferential structure (=rel=) :PINK:
889 *** =conjunction= (s,t)
890 *** =has_property= (o,p)
891 **** Comment: It seems useful in some case to be able to say that a 'method' or heuristic has a property
892 E.g. =has_property(strategyx, HAL)=
893 **** Comment: has_property should probably 'emit' the property as a side-effect
894 This way we can more easily see which is the object and which is the property.
895 It seems that thing that has a property may also be a 'proposition',
896 or, at least, a bit of 'object code' (like: "compute XYZ").
897 Furthermore, at least in this case, the 'property' might be a heuristic
898 or method (like "we actually know how to compute this").
899 *** =instance_of= (o,m)
900 *** =independent_of= (o,d)
901 *** =case_split= (s, {si}.i)
903 ** reasoning tactics; ``meta''/guiding (=meta=) :BLUE:
906 **** Note: use method $m$ to prove $s$
907 **** Comment: perhaps this should be =strategy= (m [, s ]) so that s is optional
908 This is because, just for graphical simplicity, we might assume that
909 the statement that we want to prove is known in advance (e.g., it is
910 the statement of the problem).
912 This is the style at the beginning of gowers-example.pdf
913 **** Comment: how to show that a suggestion 'has been implemented'?
914 We might need some other form of 'certificate' for that.
915 E.g., it would say =implements(BLOB OF CODE,strategyx)=.
916 *** =auxiliary= (s,a)
918 **** Comment: analogies between statements are different from auxiliaries to prove
919 Introducing some set of 'analogies' in a way sets us up for
920 'inductive' reasoning across a class of examples. What do they all
921 have in common? Which one is the most suitable? Etc.
922 ** heuristics and value judgements (=value=) :GREEN:
928 **** Comment: It seems that we will have several layers of 'guidance'
929 Many of them will be neither value judgements nor metamathematical tags
930 like =strategy=, =goal=, or =auxiliary=. Rather, the heuristics may be
931 used at an even higher level to produce or to implement these. So,
932 for example, the heuristic might be what a =strategy= concretely
933 suggests. It's also true that a given =auxiliary= might need a
934 heuristic "header", that explains /why/ this auxiliary problem has
935 been suggested. Similar to a =strategy= the heuristic might look
936 for something that 'satisfies' or 'implements' the heuristics.
937 In some cases we've looked at, this 'satisficing' object will appear
938 directly as the argument of the heuristic, hence =heuristic(x)=.
939 For example: =specialise(THE PROBLEM, (sqrt(2)+sqrt(3))^2)=.
940 Incidentally, this particular example is only meaningful in connection
941 with *another* heuristic that has told us how to *generalise* the
942 problem, i.e., that has turned a static expression into something
943 with a variable in it.
944 ** Performatives (=perf=) :YELLOW:
945 *** =Agree= (s [, a ])
946 **** Note: optional argument $a$ is a justification for $s$
947 *** =Assert= (s [, a ])
948 **** Note: optional argument $a$ is support for $s$
949 **** Comment: It seems like we might want to be able to assert a 'graph structure'
950 Here is an example from early in gowers-example.pdf
952 Assert(exists(strategy(PROBLEM, strategyx))
953 AND has_property(strategyx,HAL))
955 *** =Challenge= (s [, c ])
956 **** Note: $c$ is a counter-argument or counter-example to $s$
958 **** Note: object with name $o$ satisfies property $p$
960 **** Note: takes a =value= argument
962 *** =QueryE= ({pi(X)}.i)
963 **** Note: Asks for the class of objects for which all of the properties pi hold
964 *** =Retract= (s [, a ])
965 **** Note: can only be made by someone who asserted $s$; $a$ is an optional reason
967 **** Note: Takes a =meta= argument