Pedagogical Object is a basic software component in SAIL. Each PO is made up of assets, other POs, and data defining the relations between them.
To reach the learner, a PO must be part of a unit which when executed becomes a run.
When the learning environment takes a user through a run, it creates a runtime context in which the POs operate. The relieves the PO of messy details. For example, if the PO wanted to address the learner by first name, it could just ask the context what that is. If it wants to store an interaction, it could just pass it to the context to store as appropriate.