Graph ontology

The property graph schema.

Every chart computation produces a typed property graph using this schema, emittable as Cypher, SurrealQL, JSON-LD, or embedding text.

Example

What it looks like in Cypher.

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

// vedaksha-emit · CypherEmitter
// 10 node types · 13 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"})
MERGE (sun)-[:InNakshatra]->(:Nakshatra {name:"U.Bhadrapada"})

// 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-05-04

Schema — nodes

10 node types.

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

ChartRoot node — holds julian_day, latitude, longitude, DataClassification tag.
PlanetPlanetary body with longitude, latitude, distance, speed, retrograde flag, sign index, house.
SignZodiac sign with name, index (0–11), element, modality.
HouseHouse cusp with number (1–12), cusp longitude, house system name.
NakshatraLunar mansion with name, index (0–26), lord, deity.
PadaSub-division of a nakshatra: nakshatra index, pada number (1–4), start longitude.
PatternGeometric pattern (e.g. T-Square) described by pattern_type and description.
DashaPeriodA period in Vimshottari or other dasha system: lord, level, start/end JD.
YogaAn astrological yoga with name, yoga_type, description.
FixedStarFixed star with name, longitude, latitude, magnitude.

RECEIPT · 10 node types · sourced from NodeType enum · last verified 2026-05-04

Schema — edges

13 edge types.

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

PlacedInPlanetSign
Planet is placed in Sign.
OccupiesPlanetHouse
Planet occupies House.
AspectsPlanetPlanet
Planet aspects Planet. Edge carries aspect_type, orb, applying, strength.
RulesPlanetSign
Planet rules Sign (domicile ruler).
DispositsPlanetPlanet
Planet disposits Planet (dispositor chain).
CuspOfHouseSign
House cusp falls in Sign.
BelongsToNodeChart
Any node belongs to its Chart.
PartOfPatternPlanetPattern
Planet participates in Pattern.
InNakshatraPlanetNakshatra
Planet is in Nakshatra.
ConjunctStarPlanetFixedStar
Planet is conjunct a FixedStar. Edge carries orb.
DashaLordDashaPeriodPlanet
DashaPeriod is ruled by Planet.
ContainsPeriodDashaPeriodDashaPeriod
DashaPeriod contains child DashaPeriod (antardasha nesting).
HasYogaChartYoga
Chart has Yoga.

RECEIPT · 13 edge types · sourced from EdgeType enum · last verified 2026-05-04

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 · classification.rs · last verified 2026-05-04