Subjective behavior is essential for applications that must adapt their behavior to changing circumstances. Many different solutions have been proposed in the past, based, for example, on perspectives, roles, contextual layers, and force trees. Although these approaches are somehow equally expressive, each imposes a particular world view which may not be appropriate for all applications. We propose a unification of these approaches, called Subjectopia, which makes explicit the underlying abstractions needed to support subjective behavior, namely subjects, contextual elements and decision strategies. We demonstrate how Subjectopia subsumes existing approaches, provides a more general foundation for modeling subjective behavior, and offers a means to alter subjective behavior in a running system.


Daniel Langone’s Subjectopia presentation: Modeling Subjectivity

Getting Started

To get started you can either use a ready-made image (suggested), or try to load the code yourself.


  1. Download the Subjectopia distribution.

Load the Code

  1. Download a PharoCore 1.1.1 image.
  2. Load the code in Monticello from the squeaksource repository


  1. Daniel Langone, Jorge Ressia, and Oscar Nierstrasz. Unifying Subjectivity. In Proceedings of the 49th International Conference on Objects, Models, Components and Patterns (TOOLS'11), LNCS 6705 p. 115—130, Springer-Verlag, June 2011. DOI PDF 
  2. Daniel Langone. Subjectopia — Unifying Subjectivity. Master's Thesis, University of Bern, February 2011. PDF 

Last changed by admin on 21 April 2009