Hostname: page-component-848d4c4894-pjpqr Total loading time: 0 Render date: 2024-06-22T04:40:03.381Z Has data issue: false hasContentIssue false

Refactoring the Whitby Intelligent Tutoring System for Clean Architecture

Published online by Cambridge University Press:  02 November 2021

PAUL S. BROWN
Affiliation:
University of Leeds, Leeds, UK (e-mail: sc16pb@leeds.ac.uk; v.g.dimitrova@leeds.ac.uk)
VANIA DIMITROVA
Affiliation:
University of Leeds, Leeds, UK (e-mail: sc16pb@leeds.ac.uk; v.g.dimitrova@leeds.ac.uk)
GLEN HART
Affiliation:
Defence Science and Technology Laboratory [dstl]
ANTHONY G. COHN
Affiliation:
University of Leeds Qingdao University of Science and Technology Tongji University Shandong University (e-mail: a.g.cohn@leeds.ac.uk)
PAULO MOURA
Affiliation:
Center for Research in Advanced Computing Systems, INESC-TEC, Portugal (e-mail: pmoura@logtalk.org)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Whitby is the server-side of an Intelligent Tutoring System application for learning System-Theoretic Process Analysis (STPA), a methodology used to ensure the safety of anything that can be represented with a systems model. The underlying logic driving the reasoning behind Whitby is Situation Calculus, which is a many-sorted logic with situation, action, and object sorts. The Situation Calculus is applied to Ontology Authoring and Contingent Scaffolding: the primary activities within Whitby. Thus many fluents and actions are aggregated in Whitby from these two sub-applications and from Whitby itself, but all are available through a common situation query interface that does not depend upon any of the fluents or actions. Each STPA project in Whitby is a single situation term, which is queried for fluents that include the ontology, and to determine what pedagogical interventions to offer. Initially Whitby was written in Prolog using a module system. In the interest of a cleaner architecture and implementation with improved code reuse and extensibility, the initial application was refactored into Logtalk. This refactoring includes decoupling the Situation Calculus reasoner, Ontology Authoring framework, and Contingent Scaffolding framework into third-party libraries that can be reused in other applications. This extraction was achieved by inverting dependencies via Logtalk protocols and categories, which are reusable interfaces and components that provide functionally cohesive sets of predicate declarations and predicate definitions. In this paper the architectures of two iterations of Whitby are evaluated with respect to the motivations behind the refactor: clean architecture enabling code reuse and extensibility.

Type
Original Article
Creative Commons
Creative Common License - CCCreative Common License - BYCreative Common License - NCCreative Common License - SA
This is an Open Access article, distributed under the terms of the Creative Commons Attribution-NonCommercial-ShareAlike licence (http://creativecommons.org/licenses/by-nc-sa/4.0/), which permits non-commercial re-use, distribution, and reproduction in any medium, provided the same Creative Commons licence is used to distribute the re-used or adapted article and the original article is properly cited. The written permission of Cambridge University Press must be obtained prior to any commercial use.
Copyright
© The Author(s), 2021. Published by Cambridge University Press

References

Gamma, E., Helm, R., Johnson, R. and Vlissides, J. 1997. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, Massachusetts.Google Scholar
Gruber, T. R. 1995. Toward principles for the design of ontologies used for knowledge sharing? International Journal of Human-Computer Studies 43, 5–6, 907928.CrossRefGoogle Scholar
ISO/IEC. 1995. International Standard ISO/IEC 13211-1 Information Technology — Programming Languages — Prolog — Part I: General core. ISO/IEC.Google Scholar
ISO/IEC. 2000. International Standard ISO/IEC 13211-2 Information Technology — Programming Languages — Prolog — Part II: Modules. ISO/IEC.Google Scholar
Martin, R. C. 2018. Clean Architecture: A Craftman’s Guide to Software Structure and Design. Prentice Hall, Hudson, New Jersey.Google Scholar
Moura, P. 2011. Programming patterns for Logtalk parametric objects. In Applications of Declarative Programming and Knowledge Management, Abreu, S. and Seipel, D., Eds. Lecture Notes in Artificial Intelligence, Vol. 6547. Springer-Verlag, Berlin Heidelberg, 52–69.Google Scholar
Moura, P. 2021. The Logtalk Handbook (Release 3.46.0 ed.).Google Scholar
Reiter, R. 2001. Knowledge in Action. The MIT Press, Cambridge, Massachusetts.CrossRefGoogle Scholar
Wood, D., Bruner, J. S. and Ross, G. 1976. The role of tutoring in problem solving. Journal of Child Psychology and Psychiatry 17, 2, 89100.CrossRefGoogle ScholarPubMed