Skip to main content

MathChat: Computational Mathematics via a Social Machine

  • Conference paper
  • First Online:
Intelligent Computer Mathematics (CICM 2018)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 11006))

Included in the following conference series:

Abstract

The main question of this research is: How does a social machine discover algorithmic mathematical knowledge? A social machine is a system of humans and computers engaged in some purposeful activity. To address the main question, an empiric and theoretical framework for algorithmic mathematical knowledge discovered by the social machine is proposed. The framework is derived from findings in Distributed Cognition documenting how collaborators evolve a mathematical algorithm. By combining Distributed Cognition with the standard Message Passing Model of Distributed Computing, a formalism is introduced to specify the activities of the social machine and its algorithmic knowledge. Furthermore, the software system MathChat is introduced which provides an online environment for social machines engaged in mathematical computations. An application of MathChat in network analysis education is described which outlines a social machine covered by the proposed framework.

Supported by Comcast Innovation Fund.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Attiya, H., Welch, J.: Distributed Computing: Fundamentals, Simulations, and Advanced Topics. Wiley Series on Parallel and Distributed Computing. Wiley, Hoboken (2004)

    Book  Google Scholar 

  2. Bunt, A., Terry, M., Lank, E.: Challenges and opportunities for mathematics software in expert problem solving. Hum.-Comput. Interact. 28(3), 222–264 (2013)

    Article  Google Scholar 

  3. Cranshaw, J., Kittur, A.: The polymath project: lessons from a successful online collaboration in mathematics. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI 2011, pp. 1865–1874. ACM, New York (2011)

    Google Scholar 

  4. Davis, M., Sigal, R., Weyuker, E.J.: Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science. Elsevier, New York (1994)

    Google Scholar 

  5. Fantl, J.: Knowing-how and knowing-that. Philos. Compass 3(3), 451–470 (2008)

    Article  Google Scholar 

  6. Hollan, J., Hutchins, E., Kirsh, D.: Distributed cognition toward a new foundation for human-computer interaction research. ACM Trans. Comput.-Hum. Interact. 7(2), 174–196 (2000)

    Article  Google Scholar 

  7. Hutchins, E.: Cognition in the Wild. MIT Press, Cambridge (1995)

    Google Scholar 

  8. Kitcher, P.: The Nature of Mathematical Knowledge. Cambridge University Press, Cambridge (1984)

    MATH  Google Scholar 

  9. Kitzelmann, E.: Inductive programming: a survey of program synthesis techniques. In: Schmid, U., Kitzelmann, E., Plasmeijer, R. (eds.) AAIP 2009. LNCS, vol. 5812, pp. 50–73. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-11931-6_3

    Chapter  Google Scholar 

  10. Kohlhase, M.: The flexiformalist manifesto. In: 2012 14th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, pp. 30–35, September 2012

    Google Scholar 

  11. Mac Lane, S.: Categories for the Working Mathematician GTM, vol. 5. Springer, New York (1978). https://doi.org/10.1007/978-1-4757-4721-8

    Book  MATH  Google Scholar 

  12. Martin, U., Pease, A.: Mathematical practice, crowdsourcing, and social machines. In: Carette, J., Aspinall, D., Lange, C., Sojka, P., Windsteiger, W. (eds.) CICM 2013. LNCS (LNAI), vol. 7961, pp. 98–119. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39320-4_7

    Chapter  Google Scholar 

  13. Minimair, M.: Collaborative computer algebra. In: Kotsireas, I., Martínez-Moro, E. (eds.) ACA 2015. Springer Proceedings in Mathematics & Statistics, vol. 198, pp. 289–303. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-56932-1_20

    Chapter  MATH  Google Scholar 

  14. Minimair, M.: ChatConsole, April 2018. https://github.com/mincode/chconsole

  15. Moran, S., Nakata, K., Inoue, S.: Bridging the analytical gap between distributed cognition and actor network theory using a tool for information trajectory analysis. In: Proceedings of the 30th European Conference on Cognitive Ergonomics, ECCE 2012, pp. 72–77. ACM, New York (2012)

    Google Scholar 

  16. Nardi, B.A.: Studying context: a comparison of activity theory, situated action models, and distributed cognition. In: Nardi, B.A. (ed.) Context and Consciousness, pp. 69–102. MIT Press, Cambridge (1996)

    Google Scholar 

  17. Ragan-Kelley, M., Perez, F., Granger, B., Kluyver, T., Ivanov, P., Frederic, J., Bussonier, M.: The Jupyter/IPython architecture: a unified view of computational research, from interactive exploration to communication and publication. AGU Fall Meeting Abstracts 44, December 2014. http://adsabs.harvard.edu/abs/2014AGUFM.H44D..07R

  18. Sage Foundation: Sage - Open-Source Mathematical Software System. http://www.sagemath.org/

  19. Stahl, G.: Group Cognition. MIT Press, Cambridge (2006)

    Google Scholar 

  20. Stahl, G.: Studying Virtual Math Teams, vol. 11. Springer, Boston (2009). https://doi.org/10.1007/978-1-4419-0228-3

    Book  MATH  Google Scholar 

Download references

Acknowledgments

The author thanks the anonymous reviewers for valuable suggestions for improving the paper and Comcast Innovation Fund for financially supporting the project.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Manfred Minimair .

Editor information

Editors and Affiliations

Appendix

Appendix

The author has developed the software system MathChat to realize mathematical social machines in an online environment. For an introduction to its functionality see Sect. 5. This appendix elaborates on key design and implementation issues.

The software system MathChat supports collaborative computational mathematics by tightly integrating mathematical command entry with chat for communications among the collaborators. Its main software component ChatConsole is available at [14] as an open-source project. The software, written in the programming language Python, is based on the Jupyter project [17] which defines a protocol allowing user client software to communicate with computational kernels (processor of Fig. 3), such as iPython [17] or the Sage system [18] which runs under Python. In Fig. 4, the users enter commands in the scripting language Python. The author’s software project [14] currently focuses on computational kernels accepting commands in Python, but the implementation techniques described in this section are general enough to be used for kernels accepting other languages.

Fig. 5.
figure 5

Input area

To distinguish chat from commands, the chat messages are prefixed with a pound sign, which is also the sign for a comment in Python. Furthermore, the input lines show the names of the users who entered the commands or chat messages. The users enter text in an input area, shown at the bottom of the screen shot in Fig. 5. The users may switch the input area between chat- and code-entry mode by clicking on the corresponding button in the lower left-hand corner. Additionally, when in code mode, the ChatConsole automatically interprets any entered line starting with a pound sign as a chat message. The chat mode is more convenient when entering multi-line chat messages. By integrating chat with the commands in the output shown in ChatConsole, the chat messages serve the team’s communication and coordination during an ongoing collaboration session and document the common work after it is completed. In addition to enabling chat, the ChatConsole user clients keep track of users connecting to and disconnecting to an ongoing session with the computational kernel.

The implementation of ChatConsole is driven by the Jupyter protocol [17], which the software components use to communication with each other. To distribute chat messages and notifications about users connecting and disconnecting in the system, ChatConsole uses an additional protocol embedded in messages sent through the Jupyter protocol. This addition does not require modifying the Jupyter protocol or kernel. In the Jupyter protocol, the kernel echos all received lines of code to all the connected clients. This echo also includes commands that have no computational effect, such as comments, prefixed with a pound sign in Python. Using the echo, ChatConsole sends special messages, starting with a pound sign and a secret string followed by some special textual data (Fig. 6), to all the clients. Correspondingly, the clients filter and process messages received according to the secret string. (If ChatConsole is connected to a kernel expecting commands in a language other than Python, then the pound sign would be replaced with the comment symbol of that language.) Messages that are identified with the secret strings are treated as chat communications relayed to all the connected users or internal instructions for user management, such as “user cindy has joined”, which allow the ChatConsoles to update their internal lists of connected users. The secret string must be known to all connected clients. Since each Jupyter session has a unique secret identifier determined by the kernel, the secret string may be automatically generated from the session identifier, which makes it available to the clients upon connecting to the kernel. The encoding of the data, transporting the chat messages or user management instructions, is documented in the software repository [14] and subject to change as new features are added to ChatConsole requiring the expansion of the encoding.

Fig. 6.
figure 6

Additional special data embedded in transmitted comments

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Minimair, M. (2018). MathChat: Computational Mathematics via a Social Machine. In: Rabe, F., Farmer, W., Passmore, G., Youssef, A. (eds) Intelligent Computer Mathematics. CICM 2018. Lecture Notes in Computer Science(), vol 11006. Springer, Cham. https://doi.org/10.1007/978-3-319-96812-4_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-96812-4_17

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-96811-7

  • Online ISBN: 978-3-319-96812-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics