Prerequisites

Run the Terminal

From the project directory:

> Terminal_Launcher.bat
        

This launches terminal.py, displays the ASCII logo, and opens the interactive shell.

Create Your First Sigils

Create User/Sigils/room.yml and User/Sigils/hall.yml:

sigil:
  id: room
  type: object
  properties:
    label: "Misty Room"
  relations:
    connected_to: ["@hall"]
        
sigil:
  id: hall
  type: object
  properties:
    label: "Long Hall"
  relations: {}
        

Define a Relation

Create User/Relations/connected_to.yml:

sigil:
  id: connected_to
  type: relation
  properties:
    directed: false
    symmetric: true
    arity: 2
    roles: [subject, subject]
    category: association
    script: Scripts/connected_to.py
        

(Optional) Create User/Scripts/connected_to.py:

def handle(pulse: dict, src: str, rel: str, dst: str, api) -> dict:
    api.graph.set_property(dst, "visited", True)
    return {"targets": None, "updates": {}, "emit": []}
        

Emit a Pulse

From the terminal, emit a pulse from @room:

> emit @room payload:{ step: 1 }
        

The pulse will traverse connected_to edges and mark @hall as visited via the relation script.

Folders

Next Steps