King Klown Logo
King Klown& KOA

Consumers

Ariane is designed as a data source.

Theseus explores applications and Atlas stores UI graphs; consumers are any external systems that query Atlas to understand how to operate software.

This page describes the main categories of consumers and the typical ways they interact with Ariane’s data.


Types of Consumers

Examples of potential consumers include:


Core Usage Pattern

Most consumers follow a similar high-level pattern:

  1. Identify the current state

    • Obtain a fingerprint (or partial description) of the live UI.
    • Query Atlas to find matching state_id candidates.
  2. Determine possible actions

    • Fetch outgoing transitions from that state.
    • Inspect associated elements, patterns, and intents.
  3. Plan a path

    • Given a goal (expressed in terms of intents or state conditions), search for a path:
      • current_state → ... → goal_state.
  4. Execute or explain

    • Instruct the user or an automation layer to perform the required steps.
    • Optionally adapt or replan if the observed state diverges from expectations.

The exact details depend on the consumer, but the underlying operations are:


State Recognition

To interact meaningfully, a consumer first needs to know “where it is” in the UI.

Typical steps:

  1. Observe the current UI via its own mechanisms (e.g., screen capture + OCR, direct access to accessibility APIs).
  2. Compute or approximate fingerprints compatible with those used in Atlas:
    • Structural analogs (if tree access is available).
    • Visual/perceptual hashes (if screenshots are available).
    • Semantic hints from labels/text.
  3. Query Atlas:
    • “Given these fingerprints/hints, which state(s) are most similar?”

Atlas responds with:

Consumers can then decide whether they have a strong enough state match to proceed.


Transition and Intent Lookup

Once a state is identified, consumers can ask:

Typical queries:

This allows consumers to reason about:


Path Planning

Consumers can use Atlas as a planning substrate.

Example problem:

From the current state S, find a sequence of actions leading to a state where ExportToPDF has been carried out.

Conceptually:

  1. Treat the UI graph in Atlas as a search space.
  2. Use algorithms such as:
    • BFS or Dijkstra-style search for shortest path by steps.
    • Heuristic search if some transitions are cheaper or safer.
  3. Optionally constrain paths by:
    • Maximum depth or number of steps.
    • Safety constraints (avoid destructive intents).
    • Intermediate constraints (must pass through or avoid certain states).

Output to the consumer:


Safety and Constraints

Consumers may impose their own safety rules on top of Atlas:

Atlas provides the raw data (roles, patterns, intents); consumers choose how strictly to interpret and enforce it.


Future Overlay-Style Clients (Non-Core)

One possible consumer type is an overlay or heads-up display that:

From Ariane’s perspective, such a client:

This concept is not part of the core specification for Ariane, but documenting it here clarifies how the data model can support such use cases.

See: Consumers/Future-Overlay-Client