IN.IDEA Core: Node and Edge Specifications
This document defines the formal structure of the graph.
Important notes on performance: This documentation deals exclusively with the basic structure, not with possible performance optimization, as would be necessary for production. See performance and scaling and roadmap for more information.
Important notes on fixtures:
* For better readability, we use string-based IDs in the fixtures. In production, we would use INTs, as we aim to use an SQL database as our sSoT.
* The scope property of IDENTIFIED_AS_CONCEPT is not used in the fixtures.
General Conventions
- Labels: PascalCase (e.g.,
CompositionEntity). - Properties: lower_snake_case (e.g.,
reasoning_statement). - Edges: UPPER_SNAKE_CASE (e.g.,
IDENTIFIED_AS_CONCEPT). - Directionality: Fixed from the specific/concrete to the abstract/conceptual.
- Uniqueness: All properties ending in
_idare enforced as unique constraints.
1. Physical Layer (Object Level)
Node: Unit
Description: Represents the physical/virtual object/carrier.
Labels: Unit
| Property | Type | Unique | Description |
|---|---|---|---|
unit_id |
INT | Yes | Unique identifier for the physical/virtual object/carrier. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_COMPOSITION | Composition | N:M | Links the physical/virtual object/carrier its visual containers/compositions. |
Note: Compositions can be linked to multiple units (if the units are definitely identical, serially produced).
2. Formal Analysis Layer (Description Level)
Node: Composition
Description: A visual container of a unit containing all formal elements.
Labels: Composition
| Property | Type | Unique | Description |
|---|---|---|---|
composition_id |
INT | Yes | Unique identifier for the composition. |
chromaticity |
ENUM | No | Color properties (e.g., "Polychromatic", "Monochromatic"). |
Note: We consider modelling chromaticity as a separate node. See know issues.
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_COMPOSITION_ENTITY | CompositionEntity | 1:N | Identifies a distinct entity in the image. |
| HAS_COMPOSITION_CONTEXT | CompositionContext | 1:N | Links to the publication or historical context/meaning. |
| HAS_COMPOSITION_GROUP | CompositionGroup | 1:N | Logical grouping of elements. |
| HAS_PATTERN | CompositionPattern | 1:N | Reified link to an iconographical pattern. |
| HAS_COMPOSITION_COMPARISON | CompositionComparison | 1:N | Links to a comparative analysis with other compositions. |
Node: CompositionEntity
Description: A neutral, formal element identified in the composition (e.g., a figure, an object, decoration).
Labels: CompositionEntity
| Property | Type | Unique | Description |
|---|---|---|---|
composition_entity_id |
INT | Yes | Unique identifier for the formal entity. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_COMPOSITION_FEATURE | CompositionFeature | 1:N | Assigns an attribute or state to this entity. |
| HAS_COMPOSITION_RELATION | CompositionRelation | 1:N | Starts a directed action/relation from this entity. |
| IS_PART_OF_COMPOSITION_GROUP | CompositionGroup | N:M | (Optional) Assigns the entity to a group/container. |
| HAS_INTERPRETATION | Interpretation | 1:N | Links to the epistemic identification of the entity. |
Node: CompositionFeature
Description: A formal attribute or temporary state belonging to a CompositionEntity.
Labels: CompositionFeature
| Property | Type | Unique | Description |
|---|---|---|---|
composition_feature_id |
INT | Yes | Unique identifier for the feature. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_INTERPRETATION | Interpretation | 1:N | Links to the epistemic identification of the feature. |
Node: CompositionRelation
Description: An atomic action or relationship between two entities.
Labels: CompositionRelation
| Property | Type | Unique | Description |
|---|---|---|---|
composition_relation_id |
INT | Yes | Unique identifier for the relation. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_COMPOSITION_RELATION_OBJECT | CompositionEntity | N:1 | Defines the target entity (object) of the relation. |
| HAS_COMPOSITION_MODIFIER | CompositionModifier | 1:N | Adds specific details (e.g., handedness) to the relation. |
| HAS_COMPOSITION_EVENT | CompositionEvent | 1:N | Groups the atomic relation into a macro-event. |
| HAS_INTERPRETATION | Interpretation | 1:N | Links to the epistemic identification of the action. |
Node: CompositionModifier
Description: Describes the specific execution of a CompositionRelation.
Labels: CompositionModifier
| Property | Type | Unique | Description |
|---|---|---|---|
composition_modifier_id |
INT | Yes | Unique identifier for the modifier. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_INTERPRETATION | Interpretation | 1:N | Links to the epistemic identification of the modifier. |
Node: CompositionEvent
Description: Represents a macro-level action consisting of (multiple) relations.
Labels: CompositionEvent
| Property | Type | Unique | Description |
|---|---|---|---|
composition_event_id |
INT | Yes | Unique identifier for the event. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_INTERPRETATION | Interpretation | 1:N | Links to the epistemic identification of the event. |
Node: CompositionGroup
Description: A logical container or spatial region within a composition.
Labels: CompositionGroup
| Property | Type | Unique | Description |
|---|---|---|---|
composition_group_id |
INT | Yes | Unique identifier for the group. |
group_function |
ENUM | No | Purpose of the group (e.g., "LogicalUnit", "TextContainer"). |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_READING | Reading | 1:N | Links to the epistemic interpretation of text in this group. |
3. Epistemic Layer (Interpretation Level)
Node: Interpretation
Description: The central node for semantic assignment and uncertainty modeling.
Labels: Interpretation (Sub-labels: EntityInterpretation, FeatureInterpretation, RelationInterpretation, ModifierInterpretation, EventInterpretation, ContextInterpretation)
| Property | Type | Unique | Description |
|---|---|---|---|
interpretation_id |
INT | Yes | Unique identifier for the interpretation. |
certainty |
FLOAT | No | Confidence value (0.0 to 1.0). |
status |
ENUM | No | Assignment status: "Primary", "Alternative", "Rejected", "Outdated". |
reasoning_statement |
TEXT | No | Expert justification for this specific interpretation. |
timestamp |
STRING | No | Date of the interpretation. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| IDENTIFIED_AS_CONCEPT | Concept | 1:N | Semantic link to ThING. Requires scope if N > 1. |
| STATED_BY | Agent | N:1 | The Agent who created the interpretation. |
| REJECTED_BY / ACCEPTED_BY | Agent | N:M | Validation by one or more agents. |
| SUPPORTED_BY | Architectonic | N:M | Methodological grounding (e.g., logical deduction). |
| IMPAIRED_BY | Architectonic | N:M | Weakening factors (e.g., ambiguity). |
| HAS_SOURCE_REFERENCE | SourceReference | 1:N | Links to external evidence (reference images, literature). |
| RECOGNIZED_PATTERN | Pattern | N:1 | Links an interpretation to a generic Pattern definition (only for CompositionsPatterns). |
| DEPENDS_ON | Interpretation | 1:N | Logical dependency on another interpretation. |
Edge Properties for IDENTIFIED_AS_CONCEPT:
(if N > 1)
scope: ENUM ("VisualAppearance", "ActualMeaning", "FunctionalMeaning")
Edge Properties for ACCEPTED_BY / REJECTED_BY:
(if Interpretation timestamp and Edge timestamp are not equal)
timestamp: STRING (if different from interpretation timestamp)
Node: Reading
Description: The interpretation of signs/letters.
Labels: Reading
| Property | Type | Unique | Description |
|---|---|---|---|
reading_id |
INT | Yes | Unique identifier. |
read_string |
STRING | No | The transcribed content. |
certainty |
FLOAT | No | Confidence in the reading. |
lang |
STRING | No | Language code (e.g., "EN", "LAT"). |
status |
ENUM | No | "Primary", "Alternative", "Rejected", "oOtdated". |
timestamp |
STRING | No | Date of entry. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| STATED_BY | Agent | N:1 | The Agent who created the interpretation. |
| REJECTED_BY / ACCEPTED_BY | Agent | N:M | Validation by one or more agents. |
| IMPAIRED_BY | Architectonic | N:M | Factors like wear or fragmentation. |
Node: SourceReference
Description: A specific evidentiary statement linking an interpretation to a source.
Labels: SourceReference
| Property | Type | Unique | Description |
|---|---|---|---|
source_reference_id |
INT | Yes | Unique identifier. |
reference |
STRING | No | Specific locator (e.g., page number, image-ID). |
refrence_statement |
TEXT | No | Description of the evidence found in the source. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_SOURCE | Source | N:1 | Links to the container source. |
| HAS_EVIDENTIARY_RELATIONSHIP| Architectonic| N:1 | Nature of evidence (e.g., "concurring", "conflicting"). |
4. Ontological Layer (ThING & Patterns)
Node: Concept
Description: Semantic lemma in the Tree of Concepts.
Labels: Concept (Sub-labels: Entity, Feature, Relation, Modifier, Event, Context)
| Property | Type | Unique | Description |
|---|---|---|---|
concept_id |
INT | Yes | Semantic URI or ID. |
concept_path_ids |
ARRAY | Yes | Array containing the concept_id of the current node and all parent nodes |
Note: concept_path_ids is already a performance optimization
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| IS_A | Concept | N:M | Hierarchical parent-child relationship (Strictly Acyclic). |
Node: Pattern
Description: Abstract iconographical pattern defining a scene structure.
Labels: Pattern
| Property | Type | Unique | Description |
|---|---|---|---|
pattern_id |
INT | Yes | Unique identifier for the pattern. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_PATTERN_ENTITY | PatternEntity | 1:N | Defines an abstract actor in the pattern. |
Node: PatternEntity
Description: Abstract placeholder for an entity within a pattern.
Labels: PatternEntity
| Property | Type | Unique | Description |
|---|---|---|---|
pattern_entity_id |
INT | Yes | Unique identifier. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_CONCEPT | Concept | N:M | The required semantic type for this actor. |
| HAS_PATTERN_RELATION | PatternRelation | 1:N | Defines actions expected from this actor in the pattern. |
Edge Properties for HAS_CONCEPT:
(if N > 1)
scope: ENUM ("VisualAppearance", "ActualMeaning", "FunctionalMeaning")
Node: PatternRelation
Description: Abstract placeholder for an action within a pattern.
Labels: PatternRelation
| Property | Type | Unique | Description |
|---|---|---|---|
pattern_relation_id |
INT | Yes | Unique identifier. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| HAS_CONCEPT | Concept | N:M | The required semantic type for the action. |
| HAS_PATTERN_RELATION_OBJECT| PatternEntity | N:1 | The abstract target of the action. |
Edge Properties for HAS_CONCEPT:
(if N > 1)
scope: ENUM ("VisualAppearance", "ActualMeaning", "FunctionalMeaning")
Node: Architectonic
Description: Meta-concepts for methodology and epistemic classification.
Labels: Architectonic (Sub-label: Methodology)
| Property | Type | Unique | Description |
|---|---|---|---|
architectonic_id |
INT | Yes | Unique identifier. |
Outgoing Edges:
| Type | Target Node | Cardinality | Description |
| :--- | :--- | :--- | :--- |
| IS_A | Architectonic | N:M | Hierarchical relationship (Strictly Acyclic). |
Node: Agent
Description: Entities (Human or AI) responsible for statements and validations.
Labels: Agent (Sub-labels: HumanAgent, AIAgent)
| Property | Type | Unique | Description |
|---|---|---|---|
agent_id |
INT | Yes | Unique identifier for the agent. |
Node: Source
Description: Bibliographic or archival container (e.g., a book or database).
Labels: Source
| Property | Type | Unique | Description |
|---|---|---|---|
source_id |
INT | Yes | Unique identifier. |