situation is a Python package that provides the Situation Modeling Language (SML) - an ontology for describing social situations. Documentation Status


The following is a full Situation in which Alice and Bob are members of a Sports Club. When this code is executed, a situation will be created within the database and will then be printed to the screen.

from situation import dump, Person, Group
from situation.debug_app import quick
with quick().app_context():
    bob = Person.create(name="Bob")
    alice = Person.create(name="Alice")
    club = Group.create(name="Sports Club")
    club.members.extend([bob, alice])

A situation is specified using Situation Modeling Language (SML). SML is like a Domain Specific Language for Situations built on top of Python.

A Situation is actually a full database-driven Flask-Diamond application. As an application, this can be an extremely flexible data platform.


Install situation using Python pip.

pip install situation