Skip to main content

Interaction Design Ontology

Human–Computer Interaction
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA
Interaction Design Ontology
Kireth Semantic Research Archive

PAGE:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/human-computer-interaction/interaction-design-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "InteractionDesignOntology" v4.0

# ---------- DOMAIN ----------
DOMAIN := ComputingOntology
SUBDOMAIN := HumanComputerInteraction
ONTOLOGY := InteractionDesignOntology

# ---------- PRIMARY ENTITY ----------
ENTITY InteractionDesign {
    definition:
        "The design of interactive behaviour, controls, feedback, states and
         task flows through which users communicate with and operate digital
         products, services and computational systems.";

    objectives: [
        EffectiveInteraction,
        EfficientTaskCompletion,
        Learnability,
        Predictability,
        Feedback,
        ErrorTolerance,
        Accessibility
    ];
}

# ---------- CORE ENTITIES ----------
InteractionEntity := {
    User,
    Goal,
    Task,
    Action,
    InterfaceElement,
    SystemState,
    Feedback,
    Context
};

InteractionPattern := {
    Selection,
    Navigation,
    DataEntry,
    Manipulation,
    Confirmation,
    Search,
    Dialogue,
    ProgressiveDisclosure
};

InteractionProperty := {
    Discoverability,
    Feedback,
    Consistency,
    Affordance,
    Mapping,
    Constraint,
    UserControl,
    ErrorRecovery
};

DesignArtifact := {
    UserFlow,
    TaskFlow,
    Wireframe,
    Prototype,
    StateDiagram,
    InteractionSpecification
};

# ---------- FUNDAMENTAL RELATIONSHIPS ----------
User HAS Goal;
User PERFORMS Task;
Task CONSISTS_OF Action;
Action TARGETS InterfaceElement;
InterfaceElement HAS SystemState;
Action MAY_CHANGE SystemState;
SystemState PRODUCES Feedback;
Context AFFECTS Interaction;
InteractionDesign DEFINES BehaviourAcross UserAndSystem;

# ---------- INTERACTION CYCLE ----------
UserGoal ->
    IdentifyPossibleAction
    -> SelectAction
    -> ExecuteAction
    -> SystemReceivesInput
    -> ProcessAction
    -> ChangeState
    -> PresentFeedback
    -> UserEvaluatesOutcome;

IF GoalNotAchieved
THEN User MAY_CONTINUE InteractionCycle;

# ---------- GOAL ----------
Goal :=
    DesiredUserOutcome;

Goal MAY_HAVE {
    Priority,
    SuccessCondition,
    Context
};

InteractionDesign SHOULD_SUPPORT GoalAchievement;

# ---------- TASK ----------
Task :=
    ActivityRequiredToProgressTowardGoal;

Task MAY_DECOMPOSE_INTO Subtask;

TaskFlow :=
    ordered_or_conditional_set(TaskOrAction);

# ---------- ACTION ----------
UserAction MAY_BE {
    Click,
    Tap,
    Type,
    Select,
    Drag,
    Swipe,
    Speak,
    Confirm,
    Cancel
};

Action HAS {
    Trigger,
    Target,
    ExpectedEffect
};

# ---------- INTERFACE ELEMENT ----------
InterfaceElement MAY_BE {
    Button,
    Link,
    InputField,
    Menu,
    Dialog,
    Slider,
    Toggle,
    List,
    Card
};

InterfaceElement SHOULD_COMMUNICATE PossibleAction;

# ---------- AFFORDANCE ----------
Affordance :=
    ActionPossibilityProvidedByElement;

PerceivedAffordance :=
    ActionPossibilityRecognisedByUser;

Signifier COMMUNICATES Affordance;

IF AffordanceExistsButNotPerceived
THEN Discoverability MAY_BE Low;

# ---------- SIGNIFIER ----------
Signifier :=
    PerceivableCueIndicatingHowOrWhereToAct;

Signifier MAY_BE {
    Label,
    Icon,
    Shape,
    Position,
    VisualStyle
};

# ---------- FEEDBACK ----------
Feedback :=
    SystemResponseCommunicatingStateOrOutcome;

Feedback SHOULD_BE {
    Timely,
    Relevant,
    Understandable
};

IF ActionHasDelayedOutcome
THEN ProgressOrLoadingFeedback SHOULD_BE Considered;

# ---------- MAPPING ----------
Mapping :=
    RelationshipBetween ControlAndResult;

NaturalMapping :=
    MappingAlignedWithUserExpectationOrSpatialRelationship;

GoodMapping MAY_REDUCE CognitiveEffort;

# ---------- CONSTRAINT ----------
InteractionConstraint :=
    RestrictionOnAvailableAction;

Constraint MAY_BE {
    Physical,
    Logical,
    Semantic,
    Cultural,
    SystemDefined
};

Constraint MAY_PREVENT InvalidAction;

# ---------- CONSISTENCY ----------
InteractionConsistency :=
    SimilarActionsProducePredictableRelatedResults;

Consistency MAY_SUPPORT {
    Learnability,
    Efficiency,
    Trust
};

# ---------- SYSTEM STATE ----------
SystemState :=
    CurrentConditionOfInteractiveSystem;

State MAY_BE {
    Idle,
    Loading,
    Active,
    Disabled,
    Error,
    Success,
    Completed
};

User SHOULD_BE_ABLE_TO UnderstandRelevantState;

# ---------- STATE TRANSITION ----------
StateTransition :=
    CurrentState
    + Trigger
    -> NextState;

StateDiagram REPRESENTS StateTransition;

InvalidTransition SHOULD_BE PreventedOrHandled;

# ---------- MODE ----------
Mode :=
    SystemStateInWhichSameActionHasDifferentMeaning;

Mode MAY_INCREASE InteractionComplexity;

Mode SHOULD_BE ClearlyCommunicated;

# ---------- NAVIGATION ----------
Navigation :=
    InteractionForMovingBetweenViewsOrInformationLocations;

NavigationPattern MAY_INCLUDE {
    Menu,
    Tabs,
    Breadcrumb,
    Search,
    SequentialFlow
};

Navigation SHOULD_SUPPORT Orientation;

# ---------- SELECTION ----------
Selection :=
    ChooseOneOrMoreOptions;

SelectionControl MAY_BE {
    RadioControl,
    Checkbox,
    List,
    Dropdown,
    Toggle
};

ControlType SHOULD_MATCH SelectionSemantics;

# ---------- DATA ENTRY ----------
DataEntry :=
    UserProvidesStructuredOrUnstructuredInput;

DataEntryDesign SHOULD_SUPPORT {
    ClearLabels,
    AppropriateInputType,
    Validation,
    ErrorRecovery
};

# ---------- VALIDATION ----------
Validation :=
    Input
    -> EvaluateRules
    -> Valid | Invalid;

IF Invalid
THEN Feedback SHOULD_IDENTIFY ProblemAndCorrection;

# ---------- CONFIRMATION ----------
Confirmation :=
    UserExplicitlyApprovesAction;

HighImpactAction MAY_REQUIRE Confirmation;

Confirmation SHOULD_NOT BeOverusedForLowRiskActions;

# ---------- UNDO / REDO ----------
Undo :=
    ReversePreviousReversibleAction;

Redo :=
    ReapplyPreviouslyUndoneAction;

UndoAndRedo SUPPORT UserControlAndExploration;

# ---------- DIRECT MANIPULATION ----------
DirectManipulation :=
    ActOnVisibleObject
    -> ImmediateVisibleEffect;

DirectManipulation MAY_INCREASE {
    Learnability,
    Feedback,
    UserControl
};

# ---------- PROGRESSIVE DISCLOSURE ----------
ProgressiveDisclosure :=
    ShowEssentialInformationFirst
    -> RevealAdditionalComplexityWhenNeeded;

ProgressiveDisclosure MAY_REDUCE InitialCognitiveLoad;

# ---------- DIALOGUE ----------
InteractionDialogue :=
    SequenceOfUserAndSystemTurns;

DialogueState PRESERVES RelevantContext;

ConversationalInteraction IS_A InteractionDialogue;

# ---------- ERROR PREVENTION ----------
ErrorPrevention :=
    DesignToReduceLikelihoodOfUserError;

ErrorPrevention MAY_USE {
    Constraints,
    Defaults,
    Validation,
    ClearLabels,
    Confirmation
};

# ---------- ERROR RECOVERY ----------
ErrorRecovery :=
    DetectError
    -> ExplainError
    -> PreserveUsefulState
    -> OfferCorrection
    -> ResumeTask;

GoodErrorRecovery MAY_REDUCE Frustration;

# ---------- USER CONTROL ----------
UserControl MAY_INCLUDE {
    Cancel,
    Back,
    Undo,
    Edit,
    Exit
};

User SHOULD_NOT BeTrappedInUnwantedInteractionState;

# ---------- DEFAULT ----------
Default :=
    PreselectedOrInitialValue;

Default SHOULD_BE SafeAndAppropriate;

MisleadingDefault MAY_CREATE ErrorOrEthicalConcern;

# ---------- MICROINTERACTION ----------
Microinteraction :=
    SmallFocusedInteractionAroundSingleTaskOrEvent;

Microinteraction MAY_HAVE {
    Trigger,
    Rule,
    Feedback,
    LoopOrMode
};

# ---------- RESPONSIVE INTERACTION ----------
Interaction SHOULD_REMAIN FunctionalAcrossSupportedDevicesAndInputMethods;

ResponsiveInteraction MAY_ADAPT {
    Layout,
    ControlPresentation,
    NavigationPattern
};

# ---------- ACCESSIBILITY ----------
InteractionAccessibility MAY_REQUIRE {
    KeyboardOperation,
    FocusManagement,
    AccessibleNames,
    SemanticControls,
    AlternativeInput,
    AdequateTargetSize
};

InteractionPattern SHOULD_NOT DependOnSingleInputModalityWithoutNeed;

# ---------- PROTOTYPING ----------
InteractionPrototype :=
    TestableRepresentationOfInteractiveBehaviour;

Prototype MAY_TEST {
    TaskFlow,
    Navigation,
    Feedback,
    StateTransition,
    ErrorRecovery
};

# ---------- EVALUATION ----------
InteractionEvaluation MAY_INCLUDE {
    UsabilityTesting,
    HeuristicEvaluation,
    CognitiveWalkthrough,
    Analytics,
    A_B_Test
};

Evaluation PRODUCES InteractionEvidence;

# ---------- COGNITIVE WALKTHROUGH ----------
CognitiveWalkthrough :=
    EvaluateTaskStepByStep
    FOR LearnabilityAndActionDiscoverability;

AtEachStep ASK {
    WillUserKnowWhatToDo,
    WillUserFindControl,
    WillUserUnderstandFeedback
};

# ---------- SEMANTIC REASONING ----------
IF UserCannotDiscoverRequiredAction
THEN DiscoverabilityIssue := true;

IF ActionProducesNoFeedback
THEN FeedbackQuality := insufficient;

IF SameActionHasUnexpectedDifferentResult
THEN Consistency := decrease;

IF DestructiveActionEasyToTriggerAndHardToReverse
THEN ErrorPreventionRequirement := increase;

IF UserCanUndoReversibleAction
THEN UserControl := increase;

IF InteractionRequiresPointerOnly
THEN KeyboardAccessibility MAY_BE insufficient;

IF PrototypeTestingShowsRepeatedFailureAtSameStep
THEN InteractionRevision := recommended;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "interaction design" ~= "IxD";
    "interaction flow" ~= "user interaction flow";
    "task flow" ~= "user task flow";
    "system feedback" ~= "interaction feedback";
    "direct manipulation" ~= "direct-manipulation interaction";
    "progressive disclosure" ~= "progressive information disclosure";
    "error recovery" ~= "interaction error recovery";
    "cognitive walkthrough" ~= "task-based cognitive walkthrough";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_USER_GOAL(q) ->
    IDENTIFY_TASK(q) ->
    IDENTIFY_ACTIONS(q) ->
    IDENTIFY_INTERFACE_ELEMENTS(q) ->
    IDENTIFY_STATES_AND_TRANSITIONS(q) ->
    IDENTIFY_FEEDBACK(q) ->
    IDENTIFY_ERRORS_AND_RECOVERY(q) ->
    IDENTIFY_ACCESSIBILITY(q) ->
    MAP_TO_ONTOLOGY(q) ->
    APPLY_REASONING(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        interaction_evidence,
        usability_evidence,
        accessibility_evidence,
        semantic_consistency,
        contextual_relevance
    );

CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
    primary_entity: InteractionDesign;
    ontology: InteractionDesignOntology;
    parse_entities: true;
    parse_relationships: true;
    preserve_relationship_direction: true;
    resolve_semantic_equivalence: true;
    execute_reasoning_rules: true;
    apply_confidence_weighting: true;
    preserve_provenance: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
    new_interaction:
        identify_goal
        -> identify_task
        -> identify_actions
        -> identify_states
        -> identify_feedback
        -> integrate;

    new_pattern:
        validate
        -> classify
        -> identify_applicable_tasks
        -> identify_accessibility_implications
        -> integrate;

    new_evaluation_evidence:
        identify_method
        -> record_observation
        -> identify_issue
        -> update_interaction_evidence
        -> integrate;

    design_revision:
        update_task_flow
        -> update_state_transitions
        -> update_feedback
        -> update_error_recovery
        -> recompute_confidence
        -> regenerate_flow_hash;

    conflict:
        preserve_provenance
        -> compare_interaction_evidence
        -> adjust_confidence
        -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + InteractionEntity
    + InteractionPattern
    + InteractionProperty
    + DesignArtifact
    + SystemState
    + InteractionEvaluation
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
InteractionDesignOntology
    -> IdentifyUserGoal
    -> AnalyseTask
    -> DefineActions
    -> SelectInteractionPatterns
    -> DefineInterfaceElements
    -> ModelStatesAndTransitions
    -> ProvideFeedback
    -> PreventAndRecoverFromErrors
    -> PreserveUserControl
    -> PrototypeInteraction
    -> EvaluateWithUsers
    -> RefineInteractionFlow
    -> MaintainEffectiveAccessibleInteraction;

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ