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
Download Code
Copy to Clipboard