Graph ontology

Astrology chart graph schema

Chart computation returns structured chart data. Convert it with emit_graph or chart_to_graph to produce a property graph. A computed chart supplies four node types and seven edge types. The full vocabulary and the types built from a chart are distinguished below.

Example

What it looks like in Cypher.

Deterministic IDs make re-emitting the same chart idempotent. Multi-chart queries become graph patterns.

// vedaksha-graph, emitters feature · CypherEmitter
// Illustrative graph using chart-supported edge types
MERGE (c:Chart {id:"chart_2024_03_20"})
MERGE (sun:Planet {name:"Sun"})
MERGE (sun)-[:Occupies]->(:House {number:4})
MERGE (sun)-[:PlacedIn]->(:Sign {name:"Pisces"})

// traverse like any graph
MATCH (m:Planet {name:'Mars'})
   -[:Aspects]->(s:Planet {name:'Saturn'})
RETURN m, s

RECEIPT · Cypher emit · edge labels verified against ontology.rs · last verified 2026-08-16

Schema, nodes

9 node types.

Sourced from crates/vedaksha-graph/src/ontology.rs.

Chartbuilt from a chart
Root node, holds julian_day, latitude, longitude, DataClassification tag.
Planetbuilt from a chart
Planetary body with longitude, latitude, distance, speed, retrograde flag, sign index, house.
Signbuilt from a chart
Zodiac sign with name, index (0–11), element, modality.
Housebuilt from a chart
House cusp with number (1–12), cusp longitude, house system name.
Nakshatradefined, not chart-built
Lunar mansion with name, index (0–26), lord, deity.
Padadefined, not chart-built
Sub-division of a nakshatra: nakshatra index, pada number (1–4), start longitude.
Patterndefined, not chart-built
Geometric pattern (e.g. T-Square) described by pattern_type and description.
DashaPerioddefined, not chart-built
A period in Vimshottari or other dasha system: lord, level, start/end JD.
FixedStardefined, not chart-built
Fixed star with name, longitude, latitude, magnitude.

RECEIPT · 9 node types from the NodeType enum · 4 built by chart_to_graph · last verified 2026-08-18

Schema, edges

12 edge types.

Each edge carries an optional properties payload (e.g. Aspects carries orb, applying, strength).

PlacedInPlanet → Signbuilt from a chart
Planet is placed in Sign.
OccupiesPlanet → Housebuilt from a chart
Planet occupies House.
AspectsPlanet → Planetbuilt from a chart
Planet aspects Planet. Edge carries aspect_type, orb, applying, strength.
RulesPlanet → Signbuilt from a chart
Planet rules Sign (domicile ruler).
DispositsPlanet → Planetbuilt from a chart
Planet disposits Planet (dispositor chain).
CuspOfHouse → Signbuilt from a chart
House cusp falls in Sign.
BelongsToNode → Chartbuilt from a chart
Any node belongs to its Chart.
PartOfPatternPlanet → Patterndefined, not chart-built
Planet participates in Pattern.
InNakshatraPlanet → Nakshatradefined, not chart-built
Planet is in Nakshatra.
ConjunctStarPlanet → FixedStardefined, not chart-built
Planet is conjunct a FixedStar. Edge carries orb.
DashaLordDashaPeriod → Planetdefined, not chart-built
DashaPeriod is ruled by Planet.
ContainsPeriodDashaPeriod → DashaPerioddefined, not chart-built
DashaPeriod contains child DashaPeriod (antardasha nesting).

RECEIPT · 12 edge types from the EdgeType enum · 7 built by chart_to_graph · last verified 2026-08-18

Privacy

Every chart is tagged at construction.

DataClassification is set at the Chart node. Upgrading to Pseudonymized or Identified is an explicit caller decision, never the default.

// crates/vedaksha-graph/src/classification.rs
// ChartGraph is always constructed Anonymous by default.
ChartGraph {
  …,
  classification: DataClassification::Anonymous,
}
// caller upgrades explicitly: never automatic:
// DataClassification::Pseudonymized
// DataClassification::Identified

RECEIPT · DataClassification · 3 variants from classification.rs · last verified 2026-08-16