Skip to main content

Figure Ontology

Structural Metadata
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA
Figure Ontology
Kireth Semantic Research Archive

PAGE:
https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/structural-metadata/figure-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "FigureOntology" v4.0

DOMAIN := MetadataOntologies
SUBDOMAIN := StructuralMetadata
ONTOLOGY := FigureOntology

ENTITY Figure {
    definition:
        "A structured visual or graphical component within a document or
         information resource, identified by its position, caption, label,
         parent resource, content, references and relationships to surrounding
         text and other structural components.";
    objectives: [
        VisualComponentRepresentation,
        StructuralIdentification,
        CaptionAssociation,
        DocumentNavigation,
        Accessibility,
        SemanticRetrieval,
        MachineInterpretability
    ];
}

FigureEntity := {
    Figure,
    FigureIdentifier,
    FigureNumber,
    FigureLabel,
    FigureCaption,
    FigureContent,
    FigurePanel,
    FigureRegion
};

StructuralEntity := {
    ParentResource,
    PreviousFigure,
    NextFigure,
    Position,
    Sequence,
    CrossReference,
    Fragment,
    StructureMap
};

MetadataEntity := {
    MetadataRecord,
    ResourceIdentifier,
    Language,
    Provenance,
    Version,
    Confidence,
    FigureType
};

Figure IS_PART_OF ParentResource;
ParentResource HAS_PART Figure;
Figure HAS FigureIdentifier;
Figure MAY_HAVE FigureNumber;
Figure MAY_HAVE FigureCaption;
Figure MAY_CONTAIN FigurePanel;
Figure MAY_PRECEDE Figure;
Figure MAY_FOLLOW Figure;
CrossReference MAY_TARGET Figure;

FigureFlow :=
    ParentResource
    -> IdentifyFigureBoundary
    -> AssignFigureIdentifier
    -> DetermineFigureNumberAndPosition
    -> CaptureCaptionAndLabel
    -> IdentifyFigureTypeAndContent
    -> DetectPanelsAndRegions
    -> LinkCrossReferences
    -> ValidateFigureStructure
    -> StoreStructuralMetadata
    -> EnableNavigationAccessibilityAndRetrieval
    -> MaintainAcrossVersions;

Figure :=
    VisualGraphicalOrIllustrativeComponentOfStructuredResource;

ParentResource MAY_BE {
    Document,
    Chapter,
    Section,
    Page,
    Article,
    Report,
    WebPage
};

Figure MAY_BE {
    ImageFigure,
    Diagram,
    Chart,
    Graph,
    Illustration,
    Map,
    Photograph,
    CompositeFigure
};

FigureIdentifier :=
    StableOrLocallyUniqueReferenceToFigure;

FigureIdentifier MAY_BE {
    URI,
    IRI,
    UUID,
    ElementID,
    FragmentIdentifier,
    InternalID
};

StableFigureIdentifier SHOULD_BE PreferredForMachineReferences;

FigureNumber :=
    HumanReadableOrdinalOrReferenceNumberAssignedToFigure;

FigureNumber MAY_BE {
    Integer,
    HierarchicalNumber,
    AlphanumericLabel
};

FigureNumber != FigureIdentifierByDefinition;

FigureLabel :=
    ShortHumanReadableReferenceLabel;

FigureCaption :=
    HumanReadableDescriptionTitleOrExplanationAssociatedWithFigure;

Caption MAY_INCLUDE {
    FigureNumber,
    FigureTitle,
    ExplanatoryText,
    SourceNote
};

Caption SHOULD_BE StructurallyAssociatedWithCorrectFigure;

FigureContent :=
    VisualOrGraphicalInformationRepresentedByFigure;

FigureType :=
    ClassificationOfVisualRepresentation;

FigureType MAY_INCLUDE {
    Photograph,
    Diagram,
    LineChart,
    BarChart,
    ScatterPlot,
    Map,
    Illustration,
    Schematic
};

CompositeFigure :=
    FigureContainingMultiplePanelsOrSubfigures;

FigurePanel :=
    DistinctSubcomponentWithinCompositeFigure;

Panel MAY_HAVE {
    PanelIdentifier,
    PanelLabel,
    PanelCaption,
    Position
};

PanelLabel MAY_BE {
    Letter,
    Number,
    Symbol
};

FigureRegion :=
    AddressableSpatialAreaWithinFigure;

Region MAY_BE {
    PlotArea,
    Legend,
    AxisRegion,
    AnnotationRegion,
    ImageRegion,
    PanelRegion
};

SpatialSelector :=
    CoordinatesOrGeometryIdentifyingFigureRegion;

FigureFragment :=
    AddressableSubpartOfFigure;

FigurePosition :=
    OrderedOrSpatialLocationOfFigureWithinParentResource;

FigureSequence :=
    OrderedCollectionOfFiguresWithinDefinedResourceScope;

PreviousFigure :=
    ImmediateFigureBeforeCurrentFigureInDefinedSequence;

NextFigure :=
    ImmediateFigureAfterCurrentFigureInDefinedSequence;

IF FigureA PRECEDES FigureB
THEN FigureB FOLLOWS FigureA;

Figure MAY_BE EmbeddedWithinTextFlowOrPlacedSeparately;

LogicalFigurePosition MAY_DIFFER_FROM PhysicalPageLocation;

FigureToPageMapping :=
    Figure
    -> OneOrMorePagesOrPageRegions;

Figure MAY_SPAN MultiplePagesInExceptionalLayouts;

FigureCrossReference :=
    ReferenceFromTextOrOtherComponentToFigure;

CrossReference MAY_USE {
    FigureNumber,
    FigureIdentifier,
    Link
};

StableIdentifier SHOULD_BE UsedWhereMachineResolutionIsRequired;

BrokenFigureReference :=
    CrossReferenceWhoseFigureTargetCannotBeResolved;

IF BrokenFigureReference
THEN StructuralIntegrity SHOULD_DECREASE;

FigureSource :=
    OriginOfFigureContentOrRepresentation;

FigureProvenance MAY_INCLUDE {
    Source,
    Creator,
    ExtractionMethod,
    Timestamp,
    Version
};

Figure MAY_HAVE RightsOrLicenceMetadata;

FigureAlternativeText :=
    TextAlternativeCommunicatingRelevantMeaningOfFigureForAccessibility;

AlternativeText != CaptionByDefinition;

Caption MAY_DESCRIBE FigureForGeneralAudience;
AlternativeText SHOULD_COMMUNICATE EssentialVisualMeaningForNonVisualAccess;

ComplexFigure MAY_REQUIRE {
    ShortAlternativeText,
    LongDescription
};

LongDescription :=
    ExtendedTextualExplanationOfComplexVisualInformation;

Accessibility MAY_REQUIRE FigureToHaveAppropriateTextAlternativeAccordingToContext;

DecorativeFigure :=
    VisualComponentWithNoEssentialInformationalContent;

DecorativeFigure MAY_REQUIRE DifferentAccessibilityTreatment;

InformativeFigure :=
    FigureConveyingMeaningNecessaryToUnderstandResource;

FigureDetection :=
    Resource
    -> DetectVisualComponent
    -> DetermineBoundary
    -> AssociateCaption
    -> ClassifyFigureType;

Figure MAY_BE {
    ManuallyAuthored,
    ExtractedFromMarkup,
    DetectedFromLayout,
    AIAssisted
};

AI MAY_SUPPORT {
    FigureDetection,
    CaptionAssociation,
    FigureTypeClassification,
    PanelSegmentation,
    VisualDescription
};

InferredFigureMetadata SHOULD_HAVE ConfidenceWhereUncertain;

FigureConfidence :=
    EstimatedSupportForInferredFigureIdentityTypeCaptionOrRelationship;

CaptionAssociationConfidence :=
    EstimatedSupportThatCaptionBelongsToFigure;

IF CaptionAssociationConfidenceLow
THEN AutomaticAuthoritativeAssociation SHOULD_BE Restricted;

FigureValidation MAY_CHECK {
    Identifier,
    ParentResource,
    CaptionAssociation,
    FigureNumber,
    PanelStructure,
    BrokenReference,
    AccessibilityMetadata
};

IF DuplicateFigureIdentifierWithinUniqueScope
THEN IdentifierValidation := violation;

IF FigureNumberDuplicatedWithinSchemeRequiringUniqueness
THEN NumberingConflict MAY_EXIST;

IF CompositeFigurePanelLabelDuplicatedUnexpectedly
THEN PanelValidation SHOULD_FLAG Conflict;

FigureCompleteness :=
    DegreeToWhichRequiredFigureStructuralMetadataIsPresent;

FigureConsistency :=
    DegreeToWhichIdentifierNumberCaptionPositionAndReferencesAgree;

FigureIntegrity :=
    PreservationOfValidFigureIdentityStructureRelationshipsAndContent;

FigureQuality MAY_INCLUDE {
    Completeness,
    Consistency,
    Integrity,
    CaptionQuality,
    Accessibility,
    IdentifierStability
};

FigureVersion :=
    FigureStateAssociatedWithSpecificParentResourceVersion;

ResourceRevision MAY {
    AddFigure,
    RemoveFigure,
    RenumberFigure,
    RepositionFigure,
    ReplaceFigure,
    ModifyCaption
};

RenumberFigure :=
    ChangeHumanReadableFigureNumberWithoutNecessarilyChangingFigureIdentity;

RepositionFigure :=
    ChangeFigureLocationWithinResource;

ReplaceFigure :=
    SubstituteVisualRepresentationOrContent;

StableFigureIdentifier MAY_BE PreservedAcrossRenumberingOrRepositioningWhereIdentityContinues;

FigureVersionMapping :=
    OldFigureIdentifier
    -> NewFigureIdentifierOrIdentifiers;

FigureReplacement MAY_REQUIRE RevalidationOf {
    Caption,
    AlternativeText,
    CrossReferences,
    Annotations
};

Annotation MAY_TARGET {
    Figure,
    FigurePanel,
    FigureRegion
};

StableFigureAndPanelIdentifiers MAY_IMPROVE AnnotationPersistence;

Citation MAY_REFERENCE FigureOrUnderlyingSource;

DescriptiveMetadata MAY_DESCRIBE FigureUsing {
    Title,
    Caption,
    Subject,
    Keywords,
    Description
};

StructuralMetadata DEFINES FigureContainmentPositionPanelsAndReferences;

TechnicalMetadata MAY_DESCRIBE {
    FileFormat,
    Dimensions,
    Resolution,
    ColourSpace
};

PreservationMetadata MAY_REQUIRE FigureFilesAndStructuralRelationshipsForLongTermReconstruction;

FigureIndex :=
    SearchStructureMappingFigureMetadataCaptionAndExtractedContentToParentResource;

FigureIndex MAY_INCLUDE {
    FigureIdentifier,
    FigureNumber,
    Caption,
    AlternativeText,
    ParentResourceIdentifier
};

FigureSearch :=
    Query
    -> MatchCaptionDescriptionOrVisualSemantics
    -> ReturnFigureWithParentContext;

SemanticSearch MAY_USE FigureFor {
    VisualConceptMatching,
    CaptionMatching,
    EntityRetrieval,
    ParentContext
};

ComputerVision MAY_EXTRACT {
    Objects,
    Text,
    Entities,
    SceneType,
    ChartElements
};

ExtractedVisualEntities SHOULD_BE DistinguishedFrom CuratedMetadata;

OCR MAY_EXTRACT TextEmbeddedWithinFigure;

ChartFigure MAY_HAVE StructuredDataUnderlyingVisualRepresentation;

WhereAvailable:
    Figure
    -> REPRESENTS
    -> StructuredDataset;

RAG MAY_USE FigureAs {
    MultimodalEvidence,
    RetrievalUnit,
    ContextualVisual
};

MultimodalRAG SHOULD_PRESERVE {
    FigureIdentifier,
    Caption,
    ParentSection,
    Source,
    Provenance
};

KnowledgeGraph MAY_REPRESENT FigureAsNode;

GraphRelationships MAY_INCLUDE {
    IS_PART_OF,
    HAS_PANEL,
    REFERENCES,
    DEPICTS,
    REPRESENTS
};

DepictsRelationship :=
    Figure
    -> DEPICTS
    -> EntityOrConcept;

RepresentsRelationship :=
    Figure
    -> REPRESENTS
    -> DataConceptOrModel;

MetadataRepository MAY_STORE FigureStructuralMetadata;

MetadataRegistry MAY_REGISTER FigurePropertiesTypesAndRelationships;

HTML MAY_REPRESENT FigureUsing {
    figure,
    figcaption,
    img,
    svg,
    canvas
};

HTMLFigure MAY_GROUP VisualContentAndCaptionSemantically;

XML MAY_REPRESENT FigureUsing DomainSpecificFigureElements;

PDFTaggedStructure MAY_INCLUDE FigureAndCaptionSemanticsWhenProperlyTagged;

FigureInteroperability MAY_REQUIRE {
    StableIdentifiers,
    ExplicitCaptionAssociation,
    ParentResourceReference,
    SharedFigureTypes,
    VersionInformation
};

FigureAccessControl MAY_DIFFERFrom ParentResourceInSpecialisedSystems;

RestrictedFigure MUST_NOT_BE ExposedToUnauthorisedConsumer;

FigureSecurity MAY_INCLUDE {
    IdentifierValidation,
    AccessControl,
    ReferenceIntegrity,
    ProvenanceIntegrity,
    ChangeAuthorisation
};

MachineReadableFigure SHOULD_PRESERVE {
    FigureIdentifier,
    ParentResourceIdentifier,
    FigureNumber,
    FigureType,
    Caption,
    Panels,
    Position,
    CrossReferences,
    Version,
    Provenance
};

# ---------- SEMANTIC REASONING ----------
IF ResourceComponentIsVisualGraphicalOrIllustrativeAndStructurallyAssociatedWithParentResource
THEN FigureClassification := supported;

IF ParentResource HAS_PART Figure
THEN Figure IS_PART_OF ParentResource;

IF FigureA PRECEDES FigureB
THEN FigureB FOLLOWS FigureA;

IF FigureIdentifierStableAcrossRenumbering
THEN ExistingMachineLinks MAY_REMAIN Valid;

IF FigureReplaced
THEN CaptionAlternativeTextAndAnnotations SHOULD_BE Revalidated;

IF CompositeFigureContainsPanel
THEN Panel IS_PART_OF Figure;

IF CaptionCannotBeReliablyAssociated
THEN CaptionRelationshipConfidence SHOULD_DECREASE;

IF FigureReferenceTargetMissing
THEN StructuralIntegrity SHOULD_DECREASE;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "figure" ~= "document figure" WHEN structural_context;
    "figure identifier" ~= "figure ID";
    "figure number" ~= "figure ordinal" WHEN numbering_context;
    "figure caption" ~= "visual figure caption";
    "figure panel" ~= "subfigure" WHEN composite_figure_context;
    "figure region" ~= "visual figure fragment";
    "alternative text" ~= "figure text alternative" WHEN accessibility_context;
    "parent resource" ~= "containing document component";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_PARENT_RESOURCE(q) ->
    IDENTIFY_FIGURE(q) ->
    RESOLVE_FIGURE_IDENTIFIER(q) ->
    IDENTIFY_NUMBER_TYPE_POSITION_AND_CAPTION(q) ->
    IDENTIFY_PANELS_AND_REGIONS(q) ->
    IDENTIFY_CROSS_REFERENCES(q) ->
    IDENTIFY_ACCESSIBILITY_METADATA(q) ->
    IDENTIFY_VERSION_AND_PROVENANCE(q) ->
    VALIDATE_FIGURE_STRUCTURE(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_FIGURE_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        figure_structure_consistency,
        identifier_strength,
        caption_association_strength,
        provenance_quality,
        contextual_relevance
    );

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

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
    primary_entity: Figure;
    ontology: FigureOntology;
    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_figure:
        identify_parent_resource
        -> detect_or_receive_figure
        -> assign_figure_identifier
        -> determine_number_type_and_position
        -> associate_caption
        -> identify_panels_and_regions
        -> attach_provenance
        -> validate
        -> integrate;

    figure_revision:
        preserve_previous_version
        -> apply_visual_caption_number_or_position_changes
        -> preserve_identifier_where_identity_continues
        -> revalidate_caption_references_and_accessibility
        -> update_index
        -> recompute_confidence
        -> regenerate_flow_hash;

    figure_replacement:
        identify_affected_annotations_and_references
        -> preserve_previous_version
        -> validate_new_visual_semantics
        -> update_caption_and_alternative_text
        -> integrate;

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

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + FigureEntity
    + StructuralEntity
    + MetadataEntity
    + Figure
    + FigurePanel
    + FigureValidation
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
FigureOntology
    -> IdentifyParentResourceAndFigureBoundary
    -> AssignStableFigureIdentifier
    -> CaptureFigureNumberTypePositionAndCaption
    -> DetectPanelsRegionsAndVisualComponents
    -> LinkCrossReferencesAndSourceRelationships
    -> AttachAlternativeTextAndAccessibilityMetadata
    -> ValidateIdentityCaptionStructureAndReferences
    -> StoreAndVersionFigureMetadata
    -> IndexForVisualAndSemanticRetrieval
    -> PreserveParentContextForMultimodalRAG
    -> MaintainAnnotationsAndCrossVersionMappings
    -> SupportMachineInterpretationOfVisualResources
    -> MaintainReliableFigureStructureKnowledge;

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