Frontmatter Reference - banisterious/obsidian-charted-roots GitHub Wiki
Frontmatter Reference
This document defines all frontmatter properties recognized by Charted Roots for person notes, place notes, source notes, organization notes, and map notes.
Table of Contents
- Note Type Detection
- Data Model Overview
- Person Note Properties
- Place Note Properties
- Event Note Properties
- Source Note Properties
- Organization Note Properties
- Map Note Properties
- Universe Note Properties
- See Also
Note Type Detection
Charted Roots uses multiple methods to identify note types, checked in this order:
cr_typeproperty (default for new installations) - Namespaced to avoid conflicts with other pluginstypeproperty (legacy) - Supported for backwards compatibility- Tags - Optional fallback via tags like
#person,#place,#event
Recommended: Use cr_type for new notes to avoid conflicts with Templater, Dataview, and other plugins that use type.
cr_type: person # Recommended (new standard)
type: person # Also supported (legacy)
See Flexible Note Type Detection for configuration options.
Data Model Overview
β οΈ Nested Properties and Obsidian Compatibility
Charted Roots uses nested YAML structures for certain advanced features (like the Evidence Service). Obsidian's property panel doesn't support nested properties and will show "Type mismatch" warnings for them.
Important: Do not click "update" on any property showing a type mismatch warning, as this will corrupt the data by converting it to "[object Object]" strings.
To view or edit nested properties, use Source mode (Settings β Editor β Properties in document β Source) instead of the property panel.
The following diagram shows how the main entity types relate to each other:
erDiagram
PERSON ||--o| PERSON : "father"
PERSON ||--o| PERSON : "mother"
PERSON }o--o{ PERSON : "spouse"
PERSON ||--o{ PERSON : "children"
PERSON }o--o| PLACE : "birth_place"
PERSON }o--o| PLACE : "death_place"
PERSON }o--o| PLACE : "burial_place"
PERSON ||--o{ EVENT : "events"
PERSON ||--o{ MEMBERSHIP : "memberships"
PERSON }o--o{ SOURCE : "source"
EVENT }o--o| PLACE : "place"
PLACE ||--o| PLACE : "parent_place"
ORGANIZATION ||--o| ORGANIZATION : "parent_org"
ORGANIZATION }o--o| PLACE : "seat"
MEMBERSHIP }o--|| ORGANIZATION : "org"
PERSON {
string cr_id PK
string name
string born
string died
string gender
string father_id FK
string mother_id FK
string collection
}
EVENT {
string cr_id PK
string title
string event_type
string date
string date_end
string date_precision
array persons FK
string place FK
string confidence
}
PLACE {
string cr_id PK
string name
string place_type
string place_category
string parent_place_id FK
float lat
float long
}
SOURCE {
string cr_id PK
string title
string source_type
string source_date
string source_repository
string confidence
string media
}
ORGANIZATION {
string cr_id PK
string name
string org_type
string parent_org FK
string founded
string dissolved
string seat FK
string universe
}
MEMBERSHIP {
string membership_orgs FK "parallel array"
string membership_org_ids FK "parallel array"
string membership_roles "parallel array"
string membership_from_dates "parallel array"
string membership_to_dates "parallel array"
string membership_notes "parallel array"
}
Key relationships:
- Person β Person: Family relationships (father, mother, spouse, child) with dual wikilink +
_idstorage - Person β Place: Geographic links for life events (birth, death, burial, marriage locations)
- Person β Event β Place: Life events (residence, occupation, education, military, etc.) with locations
- Person β Source: Documentary evidence linked to person notes (census, vital records, photos, etc.)
- Person β Membership β Organization: Organization affiliations with roles and dates
- Organization β Organization: Hierarchical structure (sub-organizations under parent)
- Organization β Place: Seat location linking to place notes
- Place β Place: Hierarchical structure (city β state β country)
- Collection: Shared grouping property across entity types
Person Note Properties
Identity (Required)
| Property | Type | Description | Example |
|---|---|---|---|
cr_id |
string |
Unique identifier (UUID). Required for all person notes. | "a1b2c3d4-e5f6-7890-abcd-ef1234567890" |
cr_type |
string |
Note type identifier. Must be "person". |
"person" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
name |
string |
Display name of the person | "John Robert Smith" |
nickname |
string |
Informal name, pet name, or alternate identity | "Jack", "The Colonel" |
alt_name |
string |
Alternate name for multilingual display (shown as second line on Family Chart cards) | "εΌ δΈ", "Johann MΓΌller" |
born |
string |
Birth date (YYYY, YYYY-MM, YYYY-MM-DD, or with GEDCOM qualifiers like ABT, BEF, AFT) |
"1888-05-15", "ABT 1888" |
died |
string |
Death date (YYYY, YYYY-MM, YYYY-MM-DD, or with GEDCOM qualifiers) | "1952-08-20", "BEF 1953" |
birth_place |
string |
Location of birth | "London, England" |
death_place |
string |
Location of death | "New York, USA" |
marriage_place |
string |
Location of marriage (used by map view for markers) | "[St. Mary's Church](/banisterious/obsidian-charted-roots/wiki/St.-Mary's-Church)" |
marriage_date |
string |
Date of marriage (used by map view) | "1910-06-15" |
sex |
string |
Biological sex (for GEDCOM, historical records) | "male", "female", "nonbinary", "unknown" |
gender |
string |
Gender (backwards compatibility - prefer sex or gender_identity) |
"Male", "Female" |
gender_identity |
string |
Gender identity (distinct from biological sex) | "male", "female", "nonbinary", "genderfluid" |
pronouns |
string or string[] |
Pronouns for the person (displayed in person pickers when enabled). Supports a single string for backward compatibility, but array format is preferred. | "she/her", ["she/her", "they/them"] |
occupation |
string |
Primary occupation | "Farmer" |
burial_date |
string |
Burial date | "1920-11-25" |
burial_place |
string |
Location of burial | "Waldfriedhof Cemetery, Munich" |
adoption_date |
string |
Adoption date for adoptees (renders as "Adopted" on person timeline block) | "1920-05-15", "ABT 1920" |
death_cause |
string |
Cause of death | "Heart failure" |
research_level |
number |
Research progress level (0-6) | 3 |
Name Components
Additional name fields for GEDCOM compatibility. These are populated during GEDCOM import and used for accurate GEDCOM export.
| Property | Type | Description | Example |
|---|---|---|---|
given_name |
string |
First/given name(s) (GEDCOM GIVN) | "Johann" |
surnames |
string[] |
Surnames (supports multiple) | ["MΓΌller"] |
maiden_name |
string |
Birth surname (before marriage) | "Schmidt" |
married_names |
string[] |
Married surnames | ["Anderson", "Cooper"] |
name_prefix |
string |
Name prefix (GEDCOM NPFX) | "Dr.", "Rev." |
name_suffix |
string |
Name suffix (GEDCOM NSFX) | "Jr.", "III" |
surname_prefix |
string |
Surname prefix (GEDCOM SPFX) | "von", "de la" |
Person Attributes
Additional person attributes imported from GEDCOM. All are optional strings unless noted.
| Property | Type | Description | Example |
|---|---|---|---|
title |
string |
Title or nobility (GEDCOM TITL) | "Count", "Sir" |
religion |
string |
Religion (GEDCOM RELI) | "Lutheran", "Catholic" |
nationality |
string |
Nationality (GEDCOM NATI) | "German", "Austrian" |
physical_description |
string |
Physical description (GEDCOM DSCR) | "Tall, brown hair" |
identity_number |
string |
National ID number (GEDCOM IDNO) | "DE-1850-0315" |
property |
string |
Property or possessions (GEDCOM PROP) | "Estate in Bavaria" |
caste |
string |
Caste (GEDCOM CAST) | "Nobility" |
children_count |
number |
Number of children (GEDCOM NCHI) | 3 |
marriage_count |
number |
Number of marriages (GEDCOM NMR) | 2 |
ssn |
string |
Social Security Number (GEDCOM SSN) | "123-45-6789" |
Research Level
Tracks research progress toward GPS-compliant documentation, based on Yvette Hoitink's "Six Levels of Ancestral Profiles" system.
| Level | Name | Description |
|---|---|---|
| 0 | Unidentified | Ancestor exists but no name established (placeholder) |
| 1 | Name Only | Name known, appears in others' records, no vital dates |
| 2 | Vital Statistics | Birth, marriage, death dates researched |
| 3 | Life Events | Occupations, residences, children, spouses documented |
| 4 | Extended Records | Property, military, religion, legal records researched |
| 5 | GPS Complete | Exhaustive research complete, written proof summary exists |
| 6 | Biography | Full narrative biography with historical context |
Notes:
- If
research_levelis not set, the person is treated as "not assessed" (distinct from level 0) - Level 0 means "we know this ancestor exists but don't know their name" (a placeholder)
- Manual entry only β research level is a qualitative judgment about exhaustiveness, not just data completeness
- UI for editing research level requires "Enable fact-level source tracking" in Settings
Import/Export:
- GEDCOM: Exported as
_RESEARCH_LEVELcustom tag, imported when present - Gramps: Exported as
<attribute type="Research Level">, imported from person attributes
Parent Relationships
Charted Roots supports dual storage: wikilinks for Obsidian graph visibility, plus _id fields for reliable programmatic resolution.
Biological parents:
| Property | Type | Description | Example |
|---|---|---|---|
father |
string |
Wikilink to father's note | "[John Smith Sr](/banisterious/obsidian-charted-roots/wiki/John-Smith-Sr)" |
father_id |
string |
Father's cr_id |
"f1234567-..." |
mother |
string |
Wikilink to mother's note | "[Mary Jones](/banisterious/obsidian-charted-roots/wiki/Mary-Jones)" |
mother_id |
string |
Mother's cr_id |
"m7654321-..." |
parents |
string or string[] |
Gender-neutral parent wikilinks (opt-in via Settings β Enable inclusive parents) | "[Alex Smith](/banisterious/obsidian-charted-roots/wiki/Alex-Smith)" |
parents_id |
string or string[] |
Gender-neutral parent cr_ids |
["f1234567-..."] |
Adoptive parents:
| Property | Type | Description | Example |
|---|---|---|---|
adoptive_father |
string |
Wikilink to adoptive father's note | "[Uncle Bob](/banisterious/obsidian-charted-roots/wiki/Uncle-Bob)" |
adoptive_father_id |
string |
Adoptive father's cr_id |
"f8765432-..." |
adoptive_mother |
string |
Wikilink to adoptive mother's note | "[Aunt Carol](/banisterious/obsidian-charted-roots/wiki/Aunt-Carol)" |
adoptive_mother_id |
string |
Adoptive mother's cr_id |
"m2345678-..." |
adoptive_parent |
string or string[] |
Gender-neutral adoptive parent wikilink(s) β fallback when the matching gender-specific slot is occupied (e.g., two adoptive fathers) or when sex is unspecified | "[Guardian Name](/banisterious/obsidian-charted-roots/wiki/Guardian-Name)" |
adoptive_parent_id |
string or string[] |
Gender-neutral adoptive parent cr_id(s) |
["f8765432-..."] |
Step-parents:
| Property | Type | Description | Example |
|---|---|---|---|
stepfather |
string or string[] |
Wikilink(s) to stepfather's note | "[George Smith](/banisterious/obsidian-charted-roots/wiki/George-Smith)" |
stepfather_id |
string or string[] |
Stepfather's cr_id(s) |
["s1234567-..."] |
stepmother |
string or string[] |
Wikilink(s) to stepmother's note | "[Jane Doe](/banisterious/obsidian-charted-roots/wiki/Jane-Doe)" |
stepmother_id |
string or string[] |
Stepmother's cr_id(s) |
["s7654321-..."] |
Adopted children (reverse side β on the adoptive parent's note):
| Property | Type | Description | Example |
|---|---|---|---|
adopted_child |
string or string[] |
Wikilink(s) to adopted child's note | "[Adopted Kid Name](/banisterious/obsidian-charted-roots/wiki/Adopted-Kid-Name)" |
adopted_child_id |
string or string[] |
Adopted child's cr_id(s) |
["c1234567-..."] |
Wikilink Format for Duplicate Names
When multiple people have the same name, Obsidian creates files like "John Doe 1.md", "John Doe 2.md". Charted Roots handles this automatically using Obsidian's alias format:
father: "[John Doe 1](/banisterious/obsidian-charted-roots/wiki/John-Doe)" # Links to "John Doe 1.md", displays as "John Doe"
How it works:
- The plugin automatically uses
[filename](/banisterious/obsidian-charted-roots/wiki/display-name)format when the file's basename differs from the person's name - This applies to all relationship fields (father, mother, spouse, children) and other entity references
- You don't need to create these manually - the plugin handles it when you add relationships
Spouse Relationships
Simple Format (Single or Multiple Spouses)
| Property | Type | Description | Example |
|---|---|---|---|
spouse |
string | string[] |
Wikilink(s) to spouse note(s) | "[Jane Doe](/banisterious/obsidian-charted-roots/wiki/Jane-Doe)" or ["[Jane Doe](/banisterious/obsidian-charted-roots/wiki/Jane-Doe)", "[Mary Smith](/banisterious/obsidian-charted-roots/wiki/Mary-Smith)"] |
spouse_id |
string | string[] |
Spouse's cr_id(s) |
"s1234567-..." or ["s1234567-...", "s7654321-..."] |
Enhanced Format (Indexed Spouse with Metadata)
For complex marital histories, use indexed properties:
| Property | Type | Description | Example |
|---|---|---|---|
spouse1 |
string |
Wikilink to first spouse | "[Jane Doe](/banisterious/obsidian-charted-roots/wiki/Jane-Doe)" |
spouse1_id |
string |
First spouse's cr_id |
"s1234567-..." |
spouse1_marriage_date |
string |
Date of first marriage | "1910-06-15" |
spouse1_marriage_location |
string |
Location of first marriage | "St. Mary's Church, London" |
spouse1_marriage_status |
string |
Status: current, divorced, widowed, separated, annulled |
"widowed" |
spouse2 |
string |
Wikilink to second spouse | "[Mary Smith](/banisterious/obsidian-charted-roots/wiki/Mary-Smith)" |
spouse2_id |
string |
Second spouse's cr_id |
"s7654321-..." |
spouse2_marriage_date |
string |
Date of second marriage | "1925-03-20" |
| ... | ... | Continue pattern for spouse3, spouse4, etc. | ... |
Legacy Format (Structured Spouses Array)
spouses:
- person: "[Jane Doe](/banisterious/obsidian-charted-roots/wiki/Jane-Doe)"
person_id: "s1234567-..."
marriage_date: "1910-06-15"
marriage_location: "London"
status: "widowed"
- person: "[Mary Smith](/banisterious/obsidian-charted-roots/wiki/Mary-Smith)"
person_id: "s7654321-..."
marriage_date: "1925-03-20"
Child Relationships
| Property | Type | Description | Example |
|---|---|---|---|
children |
string | string[] |
Wikilink(s) to children's notes | ["[John Jr](/banisterious/obsidian-charted-roots/wiki/John-Jr)", "[Mary](/banisterious/obsidian-charted-roots/wiki/Mary)"] |
children_id |
string | string[] |
Children's cr_id(s) |
["c1234567-...", "c7654321-..."] |
Deprecation Note: The
childproperty (singular) is deprecated as of v0.18.11. Usechildren(plural) for consistency withchildren_id. Charted Roots still reads both properties for backward compatibility, but new notes should usechildren. Use the Cleanup Wizard (Step 14) to migrate existing notes.
Charted Roots Metadata
| Property | Type | Description | Example |
|---|---|---|---|
cr_root |
boolean |
Designates this person as root of a tree | true |
cr_living |
boolean |
Manual override for living status detection. When true, person is treated as living (protected in exports). When false, person is treated as deceased (not protected). When omitted, automatic detection is used based on death date and age threshold. |
true, false |
collection |
string |
User-defined grouping/collection name | "Smith Family" |
private |
boolean |
Marks note as containing private data (set automatically during Gramps import if any attached note has privacy flag) | true |
private_fields |
string[] |
List of field names to treat as private. These fields will be excluded from exports unless explicitly included with user confirmation. | ["previous_names", "medical_notes"] |
external_id |
string |
Original ID from the import source (e.g., GEDCOM xref, Gramps handle). Preserved during re-export for round-trip support. | "I0001", "abc123def456" |
external_id_source |
string |
Source of the external ID. Set automatically during import. | "gedcom", "gramps" |
Private Fields
The private_fields property allows you to mark specific frontmatter fields as private. Fields listed here will be excluded from exports by default, with a confirmation dialog shown before any private data is included.
Common use cases:
| Field | Use Case |
|---|---|
previous_names |
Protect deadnames or names a person no longer uses |
medical_notes |
Sensitive health information |
legal_notes |
Legal matters or immigration status |
personal_notes |
Private family information |
Example:
name: Alex Johnson
previous_names:
- Alexandra Johnson
- Alex Smith
medical_notes: "Family history of heart disease"
private_fields:
- previous_names
- medical_notes
Behavior:
- Fields listed in
private_fieldsare still visible in the note content and Edit Person modal - During export, private fields trigger a confirmation dialog
- Users can choose to include private fields, exclude them, or cancel the export
Media Files
Person notes can link to media files (photos, portraits, documents) in the vault:
| Property | Type | Description | Example |
|---|---|---|---|
media |
string | string[] |
Wikilink(s) to media files | "[portrait.jpg](/banisterious/obsidian-charted-roots/wiki/portrait.jpg)" or ["[portrait.jpg](/banisterious/obsidian-charted-roots/wiki/portrait.jpg)", "[family-photo.jpg](/banisterious/obsidian-charted-roots/wiki/family-photo.jpg)"] |
Note: The first media item serves as the thumbnail, displayed on Family Chart person cards.
Life Events
Beyond birth, death, and marriage (which use flat properties above), additional life events can be recorded in an events array. These events appear as markers on the Map View.
| Property | Type | Description | Example |
|---|---|---|---|
events |
array |
Array of life event objects | See below |
Event Object Properties:
| Property | Type | Required | Description | Example |
|---|---|---|---|---|
event_type |
string |
Yes | Type of event | "residence" |
place |
string |
Yes | Wikilink to place note | "[New York](/banisterious/obsidian-charted-roots/wiki/New-York)" |
date_from |
string |
No | Start date | "1920" or "1920-05-15" |
date_to |
string |
No | End date (for duration events) | "1935" |
description |
string |
No | Brief description | "Family home" |
Supported Event Types:
| Category | Event Types |
|---|---|
| Residence | residence, immigration |
| Career | occupation, education, military |
| Religious | baptism, confirmation, ordination |
| Other | custom |
Example:
events:
- event_type: residence
place: "[New York](/banisterious/obsidian-charted-roots/wiki/New-York)"
date_from: "1920"
date_to: "1935"
description: "Family home on 5th Ave"
- event_type: military
place: "[Normandy](/banisterious/obsidian-charted-roots/wiki/Normandy)"
date_from: "1944-06-06"
date_to: "1944-08-25"
description: "D-Day invasion"
- event_type: education
place: "[Harvard University](/banisterious/obsidian-charted-roots/wiki/Harvard-University)"
date_from: "1915"
date_to: "1919"
description: "BA in History"
Ownership & Transfer Tracking
For genealogical research involving enslaved ancestors or property tracking, person notes can include ownership properties:
| Property | Type | Description | Example |
|---|---|---|---|
property_of |
string |
Current/final owner (wikilink) | "[John Smith Jr.](/banisterious/obsidian-charted-roots/wiki/John-Smith-Jr.)" |
held_at |
string |
Current/final location (wikilink to place note) | "[Smith Plantation](/banisterious/obsidian-charted-roots/wiki/Smith-Plantation)" |
appraised_value |
number |
Value from estate records | 150 |
Example:
cr_type: person
cr_id: person_mary_enslaved
name: Mary
property_of: "[John Smith Jr.](/banisterious/obsidian-charted-roots/wiki/John-Smith-Jr.)"
held_at: "[Smith Plantation](/banisterious/obsidian-charted-roots/wiki/Smith-Plantation)"
appraised_value: 150
Notes:
- These properties represent the current/final state; use transfer events for historical ownership changes
- The
charted-roots-transferscode block can display chronological transfer history - See Dynamic Note Content for transfer history visualization
Fact-Level Source Tracking (Research Tools)
When the "Enable fact-level source tracking" setting is enabled, person notes can include detailed source citations for specific facts. This aligns with the Genealogical Proof Standard (GPS) methodology.
Each fact type has its own flat property containing an array of source wikilinks:
| Property | Type | Description |
|---|---|---|
sourced_birth_date |
array |
Sources for date of birth |
sourced_birth_place |
array |
Sources for location of birth |
sourced_death_date |
array |
Sources for date of death |
sourced_death_place |
array |
Sources for location of death |
sourced_parents |
array |
Sources for parent relationships |
sourced_spouse |
array |
Sources for spouse relationships |
sourced_marriage_date |
array |
Sources for date of marriage |
sourced_marriage_place |
array |
Sources for location of marriage |
sourced_occupation |
array |
Sources for occupation |
sourced_residence |
array |
Sources for residence locations |
Example:
sourced_birth_date:
- "[1900 Census - Smith Family](/banisterious/obsidian-charted-roots/wiki/1900-Census---Smith-Family)"
- "[Birth Certificate - John Smith](/banisterious/obsidian-charted-roots/wiki/Birth-Certificate---John-Smith)"
sourced_birth_place:
- "[Birth Certificate - John Smith](/banisterious/obsidian-charted-roots/wiki/Birth-Certificate---John-Smith)"
sourced_death_date:
- "[Obituary - John Smith 1952](/banisterious/obsidian-charted-roots/wiki/Obituary---John-Smith-1952)"
sourced_parents:
- "[1900 Census - Smith Family](/banisterious/obsidian-charted-roots/wiki/1900-Census---Smith-Family)"
Notes:
- Each property is a simple array of source wikilinks, compatible with Obsidian's property panel
- Missing properties are treated as "not yet tracked" (different from "unsourced")
- An empty array means the fact is explicitly marked as unsourced
- The Control Center's Data Quality tab shows research coverage statistics when this feature is enabled
- The legacy nested
sourced_factsformat (pre-v0.18.9) is still read for backwards compatibility, but new notes should use the flat properties above
Reference Numbering Systems
Charted Roots can generate genealogical reference numbers:
| Property | Type | Description | Example |
|---|---|---|---|
ahnentafel |
number |
Ahnentafel (Sosa-Stradonitz) number | 1, 2, 3, ... |
henry |
string |
Henry system number | "1", "11", "112" |
dangelo |
string |
d'Aboville system number | "1", "1.1", "1.1.2" |
degroot |
string |
de Villiers/Pama system number | "b1", "b1c2" |
meurgey |
string |
Meurgey de Tupigny system | "I", "I-1", "I-1-a" |
Place Note Properties
Status: Complete. See Geographic Features for full documentation.
Identity
| Property | Type | Description | Example |
|---|---|---|---|
cr_type |
string |
Must be "place" (recommended) |
"place" |
type |
string |
Must be "place" (legacy, also supported) |
"place" |
cr_id |
string |
Unique identifier for the place | "place_abc123" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
name |
string |
Primary name of the place | "London" |
aliases |
string[] |
Alternative names | ["City of London", "Londinium"] |
place_type |
string |
Type of place | "city", "village", "country", "castle", "region" |
Classification
| Property | Type | Description | Example |
|---|---|---|---|
place_category |
string |
Category of place | "real", "historical", "disputed", "legendary", "mythological", "fictional" |
universe |
string |
Fictional universe (for non-real places) | "A Song of Ice and Fire", "Middle-earth" |
Place Categories Explained:
| Category | Description | Examples |
|---|---|---|
real |
Verified real-world location (default) | London, New York, Tokyo |
historical |
Real place that no longer exists or changed significantly | Babylon, Constantinople |
disputed |
Location debated by historians/archaeologists | Troy, King Solomon's Mines |
legendary |
May have historical basis but heavily fictionalized | Camelot, El Dorado |
mythological |
Place from mythology/religion | Asgard, Mount Olympus |
fictional |
Invented for a story/world | Winterfell, Mordor |
Hierarchy
| Property | Type | Description | Example |
|---|---|---|---|
parent_place |
string |
Wikilink to parent place | "[England](/banisterious/obsidian-charted-roots/wiki/England)" |
parent_place_id |
string |
Parent place's cr_id |
"place_xyz789" |
Coordinates
Geographic Coordinates (Real-World Maps)
| Property | Type | Description | Example |
|---|---|---|---|
coordinates.lat |
number |
Latitude (real-world) | 51.5074 |
coordinates.long |
number |
Longitude (real-world) | -0.1278 |
Pixel Coordinates (Custom Image Maps)
For places on pixel-based custom maps (using L.CRS.Simple):
| Property | Type | Description | Example |
|---|---|---|---|
pixel_x |
number |
X position in pixels (0 = left edge) | 1200 |
pixel_y |
number |
Y position in pixels (0 = bottom edge) | 2400 |
Note: Flat properties (
pixel_x,pixel_y) are preferred over nested formats for better compatibility with Obsidian's Properties view.
Historical Names
historical_names:
- name: "Londinium"
period: "Roman"
- name: "Lundenwic"
period: "Anglo-Saxon"
Grouping
| Property | Type | Description | Example |
|---|---|---|---|
collection |
string |
User-defined grouping (shared with person notes) | "Smith Family" |
The collection property allows places to be grouped with related person notes. For example, a "Smith Family" collection could include both the Smith family members and the places associated with them.
Map Association
| Property | Type | Description | Example |
|---|---|---|---|
maps |
string[] |
Map IDs this place belongs to (restricts marker to specific maps) | ["the-dying-earth"] |
linked_map |
string |
Map ID for drill-down navigation (shows "Open map" button in marker popup) | "river-scaum" |
See Custom Maps β Linked Maps for usage details.
Ownership
For tracking property ownership (useful for plantation research, estate records):
| Property | Type | Description | Example |
|---|---|---|---|
property_of |
string |
Owner of this place (wikilink) | "[John Smith Jr.](/banisterious/obsidian-charted-roots/wiki/John-Smith-Jr.)" |
Example:
cr_type: place
name: Smith Plantation
property_of: "[John Smith Jr.](/banisterious/obsidian-charted-roots/wiki/John-Smith-Jr.)"
Media Files
Place notes can link to media files (location photos, historical maps, floor plans):
| Property | Type | Description | Example |
|---|---|---|---|
media |
string | string[] |
Wikilink(s) to media files | "[castle-photo.jpg](/banisterious/obsidian-charted-roots/wiki/castle-photo.jpg)" |
Privacy
| Property | Type | Description | Example |
|---|---|---|---|
private |
boolean |
Marks note as containing private data (set automatically during Gramps import if any attached note has privacy flag) | true |
Source Note Properties
Status: Complete. See Evidence & Sources for full documentation.
Source notes document evidence and citations for genealogical research. Each source can be linked to person notes to provide documentary evidence for facts in the family tree.
Identity
| Property | Type | Description | Example |
|---|---|---|---|
cr_type |
string |
Must be "source" (recommended) |
"source" |
type |
string |
Must be "source" (legacy, also supported) |
"source" |
cr_id |
string |
Unique identifier for the source | "src_abc123" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
title |
string |
Descriptive title of the source | "1900 US Census - Smith Family" |
source_type |
string |
Type of source (see types below) | "census" |
author |
string |
Author or creator of the source | "State Archives" |
source_date |
string |
Date of the original document | "1900-06-01" |
source_date_accessed |
string |
When the source was accessed | "2024-03-15" |
Source Types
Charted Roots includes built-in source types organized by category. Custom types can also be created in the Control Center.
| Category | Source Types |
|---|---|
| Vital records | vital_record, obituary |
| Census | census |
| Church records | church_record |
| Legal & property | court_record, land_deed, probate |
| Military | military |
| Other | immigration |
| Media & correspondence | photo, correspondence, newspaper, oral_history |
| Custom | custom (or user-defined types) |
Repository Information
| Property | Type | Description | Example |
|---|---|---|---|
repository |
string |
Archive or website where source is held (short form) | "Ancestry.com" |
source_repository |
string |
Archive or website where source is held (long form, also supported) | "Ancestry.com" |
source_repository_url |
string |
Direct URL to the online source | "https://..." |
collection |
string |
Record group or collection name | "1900 United States Federal Census" |
location |
string |
Geographic location of the record | "New York, Kings County, Brooklyn" |
Source Hierarchy
Link a source note to a parent source to model multi-document record groups (e.g., probate packets, census pages within an enumeration district).
| Property | Type | Description | Example |
|---|---|---|---|
source_parent |
string |
Wikilink to the parent source note | "[Hardwick Probate Packet](/banisterious/obsidian-charted-roots/wiki/Hardwick-Probate-Packet)" |
source_parent_id |
string |
cr_id of the parent source (for reliable resolution) |
"src_abc123" |
Both properties follow the dual-storage pattern used elsewhere in Charted Roots. When both are present, source_parent_id is used for resolution and source_parent provides Obsidian graph/backlink visibility.
Confidence Level
| Property | Type | Description | Example |
|---|---|---|---|
confidence |
string |
How reliable is this source | "high", "medium", "low", "unknown" |
Confidence Levels Explained:
| Level | Description |
|---|---|
high |
Primary source with direct evidence (e.g., original certificate, firsthand account) |
medium |
Secondary source or indirect evidence (e.g., derivative, transcription) |
low |
Unverified or questionable source |
unknown |
Not yet assessed |
Source Quality (GPS Methodology)
For users following the Genealogical Proof Standard, sources can be classified by their quality per Elizabeth Shown Mills' methodology:
| Property | Type | Description | Example |
|---|---|---|---|
source_quality |
string |
GPS quality classification | "primary", "secondary", "derivative" |
Source Quality Classifications:
| Quality | Description | Examples |
|---|---|---|
primary |
Created at or near the time of the event by a participant or witness | Original vital records, census enumeration, contemporary letters |
secondary |
Created later from memory or hearsay | Family bibles with later entries, obituaries, oral histories |
derivative |
Copies, transcriptions, or abstracts of other sources | Database transcriptions, published abstracts, photocopies |
Default Quality by Source Type:
If source_quality is not explicitly set, Charted Roots infers quality from the source type:
| Source Type | Default Quality |
|---|---|
census, vital_record, church_record, military, court_record, land_deed, probate, photo, correspondence, immigration |
primary |
newspaper, obituary, oral_history, custom |
secondary |
Note: Users should override the default when appropriate. For example, a census transcription from Ancestry.com should be marked as derivative rather than accepting the default primary quality.
Source Classification (Mills' Evidence Explained)
For users following Mills' methodology, three optional classification axes provide more precise analytical layering than source_quality alone. These are independent of each other β a source can have any combination.
| Property | Type | Description | Example |
|---|---|---|---|
source_classification |
string |
What is the document itself? | "original", "derivative", "authored_narrative" |
information_classification |
string |
Who provided the information? | "primary", "secondary", "undetermined" |
evidence_classification |
string |
How does the information relate to the research question? | "direct", "indirect", "negative" |
Source Classification:
| Value | Description | Examples |
|---|---|---|
original |
First recording of information, or an image of the original | Original vital record, handwritten census schedule |
derivative |
A copy, transcription, abstract, or extract of another source | Database transcription, published abstract, photocopy |
authored_narrative |
An interpretive or synthesized work | Published genealogy, local history, biographical sketch |
Information Classification:
| Value | Description | Examples |
|---|---|---|
primary |
Information provided by a participant or eyewitness | Mother reporting a birth, census respondent's own age |
secondary |
Information provided from memory, hearsay, or later knowledge | Informant reporting parent's birthplace on a death certificate |
undetermined |
Cannot determine who provided the information | Unsigned record, anonymous entry |
Evidence Classification:
| Value | Description | Examples |
|---|---|---|
direct |
Directly answers the research question | Birth certificate proving date of birth |
indirect |
Requires inference or combination with other evidence | Age on census implying birth year |
negative |
Expected information is absent from the record | Person missing from a census where they should appear |
Relationship to source_quality: These three properties provide finer-grained analysis alongside the existing source_quality property. When information_classification is set, it takes precedence over source_quality for evidence analysis (e.g., determining whether a source counts as "primary" or "secondary" in the Research Gaps Report).
Media Files
Sources can link to media files (images, scans, documents) in the vault:
| Property | Type | Description | Example |
|---|---|---|---|
media |
string[] |
Array of wikilinks to media files | See below |
media:
- "[census-1900-smith-p1.jpg](/banisterious/obsidian-charted-roots/wiki/census-1900-smith-p1.jpg)"
- "[census-1900-smith-p2.jpg](/banisterious/obsidian-charted-roots/wiki/census-1900-smith-p2.jpg)"
Image Crop Regions
Define crop regions for images to display specific portions (e.g., a face from a group photo). The crop is applied when rendering thumbnails in the media block, Family Chart avatars, and Entity Profile View.
| Property | Type | Description | Example |
|---|---|---|---|
media_crop |
array |
Array of crop region definitions | See below |
media_crop[].image |
string |
Filename matching a media item | "group-photo.jpg" |
media_crop[].x |
number |
X offset (pixels from left) | 100 |
media_crop[].y |
number |
Y offset (pixels from top) | 50 |
media_crop[].w |
number |
Width of crop region (pixels) | 200 |
media_crop[].h |
number |
Height of crop region (pixels) | 250 |
media:
- "[group-photo.jpg](/banisterious/obsidian-charted-roots/wiki/group-photo.jpg)"
media_crop:
- image: group-photo.jpg
x: 100
y: 50
w: 200
h: 250
To set a crop visually, right-click an image in the charted-roots-media block and select Set crop region.
Citation Override
| Property | Type | Description | Example |
|---|---|---|---|
citation_override |
string |
Manual citation text (overrides auto-generated) | See example below |
Person Roles
Track the roles that people play in a source documentβuseful for FAN research and assessing information quality.
| Property | Type | Description | Example |
|---|---|---|---|
principals |
string[] |
Subject(s) of the document | ["[John Smith Sr.\](/banisterious/obsidian-charted-roots/wiki/John-Smith-Sr.-(Decedent))"] |
witnesses |
string[] |
Named witnesses | ["[Thomas Brown](/banisterious/obsidian-charted-roots/wiki/Thomas-Brown)"] |
informants |
string[] |
Person providing information | ["[Jane Smith\](/banisterious/obsidian-charted-roots/wiki/Jane-Smith-(Daughter))"] |
officials |
string[] |
Authority figures | ["[James Wilson\](/banisterious/obsidian-charted-roots/wiki/James-Wilson-(Appraiser))"] |
enslaved_individuals |
string[] |
Persons listed as property | ["[Mary](/banisterious/obsidian-charted-roots/wiki/Mary)", "[Peter](/banisterious/obsidian-charted-roots/wiki/Peter)"] |
family |
string[] |
Family members of principals | ["[John Smith Jr.\](/banisterious/obsidian-charted-roots/wiki/John-Smith-Jr.-(Heir))"] |
others |
string[] |
Any role not fitting above | ["[Robert Davis\](/banisterious/obsidian-charted-roots/wiki/Robert-Davis-(Neighbor))"] |
Format: Each entry is a wikilink with optional display text containing role details in parentheses:
principals:
- "[John Smith Sr.](/banisterious/obsidian-charted-roots/wiki/John-Smith-Sr.-(Decedent))"
officials:
- "[Thomas Brown](/banisterious/obsidian-charted-roots/wiki/Thomas-Brown-(Administrator))"
- "[James Wilson](/banisterious/obsidian-charted-roots/wiki/James-Wilson-(Appraiser))"
enslaved_individuals:
- "[Mary](/banisterious/obsidian-charted-roots/wiki/Mary)"
- "[Peter](/banisterious/obsidian-charted-roots/wiki/Peter)"
Role properties are optional on any source type but are most useful for:
probateβ Wills, estate inventories, appraisementsvital_recordβ Birth, death, marriage certificatescourt_recordβ Legal proceedingschurch_recordβ Baptism, marriage, burial records
See Person Roles in Sources for full documentation.
Linking Sources to Person and Event Notes
Sources are linked to person and event notes using the sources property as a YAML array:
| Property | Type | Description | Example |
|---|---|---|---|
sources |
string[] |
Array of wikilinks to source notes | See below |
Recommended format (array):
sources:
- "[1900 US Census - Smith Family](/banisterious/obsidian-charted-roots/wiki/1900-US-Census---Smith-Family)"
- "[1910 US Census - Smith Family](/banisterious/obsidian-charted-roots/wiki/1910-US-Census---Smith-Family)"
- "[Birth Certificate - John Smith](/banisterious/obsidian-charted-roots/wiki/Birth-Certificate---John-Smith)"
Note: An older indexed format (
source,source_2,source_3...) is no longer supported as of v0.17.0. If you have notes using this format, use the Cleanup Wizard (Step 6: Source Migration) to convert them to the array format.
Example Source Note (Census)
---
cr_type: source
cr_id: "src_1900_census_smith"
title: "1900 US Census - Smith Family"
source_type: census
source_date: "1900-06-01"
source_date_accessed: "2024-03-15"
source_repository: "Ancestry.com"
collection: "1900 United States Federal Census"
location: "New York, Kings County, Brooklyn"
confidence: high
source_quality: derivative
media: "[census-1900-smith.jpg](/banisterious/obsidian-charted-roots/wiki/census-1900-smith.jpg)"
---
# 1900 US Census - Smith Family
## Census Information
| Field | Value |
|-------|-------|
| Census year | 1900 |
| State/country | New York |
| County | Kings |
| Township/city | Brooklyn |
| Enumeration district | 123 |
| Sheet/page | 5A |
## Household Members
| Name | Relation | Age | Birthplace | Occupation |
|------|----------|-----|------------|------------|
| John Smith | Head | 45 | New York | Merchant |
| Mary Smith | Wife | 42 | Ireland | |
| John Jr. | Son | 18 | New York | Clerk |
## Transcription
[Full transcription of census entries...]
## Research Notes
Confirms John Smith's age and occupation...
Example Source Note (Vital Record)
---
cr_type: source
cr_id: "src_birth_john_smith"
title: "Birth Certificate - John Robert Smith"
source_type: vital_record
source_date: "1855-03-15"
source_repository: "New York City Municipal Archives"
location: "New York, NY"
confidence: high
---
# Birth Certificate - John Robert Smith
## Document Information
| Field | Value |
|-------|-------|
| Event type | Birth |
| Event date | 1855-03-15 |
| Event place | New York, NY |
| Certificate number | 12345 |
## People Named
- John Robert Smith (subject)
- John Smith Sr. (father)
- Mary Jones (mother)
## Transcription
[Transcription of birth certificate...]
Map Note Properties
Map notes define custom image maps for fictional worlds or historical maps.
Identity
| Property | Type | Description | Example |
|---|---|---|---|
cr_type |
string |
Must be "map" (recommended) |
"map" |
type |
string |
Must be "map" (legacy, also supported) |
"map" |
map_id |
string |
Unique identifier for the map | "middle-earth" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
name |
string |
Display name of the map | "Middle-earth" |
universe |
string |
Fictional universe for filtering | "tolkien" |
image |
string |
Path to map image in vault | "assets/maps/middle-earth.jpg" |
Coordinate System
| Property | Type | Description | Example |
|---|---|---|---|
coordinate_system |
string |
"geographic" (default) or "pixel" |
"pixel" |
Geographic Mode Properties
For maps with arbitrary lat/lng-style coordinates:
| Property | Type | Description | Example |
|---|---|---|---|
bounds_north |
number |
North bound | 50 |
bounds_south |
number |
South bound | -50 |
bounds_east |
number |
East bound | 100 |
bounds_west |
number |
West bound | -100 |
center_lat |
number |
Initial center latitude | 0 |
center_lng |
number |
Initial center longitude | 0 |
Pixel Mode Properties
For maps where coordinates match pixel positions:
| Property | Type | Description | Example |
|---|---|---|---|
image_width |
number |
Image width in pixels (auto-detected if omitted) | 2048 |
image_height |
number |
Image height in pixels (auto-detected if omitted) | 3072 |
center_x |
number |
Initial center X coordinate | 1024 |
center_y |
number |
Initial center Y coordinate | 1536 |
Zoom Settings
| Property | Type | Description | Example |
|---|---|---|---|
default_zoom |
number |
Initial zoom level | 2 |
min_zoom |
number |
Minimum zoom level | -2 |
max_zoom |
number |
Maximum zoom level | 4 |
Map Hierarchy
| Property | Type | Description | Example |
|---|---|---|---|
parent_map |
string |
map_id of the parent map (enables breadcrumb navigation) |
"the-dying-earth" |
parent_region_x |
number |
X offset of overlay region on parent map (pixels) | 4700 |
parent_region_y |
number |
Y offset of overlay region on parent map (pixels) | 1300 |
parent_region_w |
number |
Width of overlay region on parent map (pixels) | 1500 |
parent_region_h |
number |
Height of overlay region on parent map (pixels) | 1200 |
When parent_map is set, a breadcrumb appears in the Map View toolbar. When parent_region_* values are also set, a clickable overlay rectangle is rendered on the parent map showing where this child map sits.
Distortable Image Corners (Advanced)
For interactive image alignment and georeferencing, you can define corner positions. When corners are set, the map enters "distortable mode" where you can drag, rotate, scale, and distort the image to align it with your coordinate system.
| Property | Type | Description | Example |
|---|---|---|---|
corner_nw_lat |
number |
Northwest corner latitude | 45.5 |
corner_nw_lng |
number |
Northwest corner longitude | -90.0 |
corner_ne_lat |
number |
Northeast corner latitude | 45.5 |
corner_ne_lng |
number |
Northeast corner longitude | -60.0 |
corner_sw_lat |
number |
Southwest corner latitude | 25.0 |
corner_sw_lng |
number |
Southwest corner longitude | -90.0 |
corner_se_lat |
number |
Southeast corner latitude | 25.0 |
corner_se_lng |
number |
Southeast corner longitude | -60.0 |
Use cases:
- Align historical maps to modern coordinates
- Fit hand-drawn fictional world maps to a coordinate system
- Adjust scanned maps that aren't perfectly rectangular
Note: Corner positions are saved automatically when you use the "Save Alignment" button in edit mode.
Schema Note Properties
Schema notes define validation rules for person notes. See Schema Validation for complete documentation.
Identity
| Property | Type | Description | Example |
|---|---|---|---|
cr_type |
string |
Must be "schema" (recommended) |
"schema" |
type |
string |
Must be "schema" (legacy, also supported) |
"schema" |
cr_id |
string |
Unique identifier for the schema | "schema-house-stark" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
name |
string |
Display name of the schema | "House Stark Schema" |
description |
string |
Optional description | "Validation rules for House Stark" |
Scope
| Property | Type | Description | Example |
|---|---|---|---|
applies_to_type |
string |
Scope type: collection, folder, universe, or all |
"collection" |
applies_to_value |
string |
Value for the scope (not needed for all) |
"House Stark" |
Schema Definition (JSON Code Block)
The validation rules are defined in a json schema code block in the note body:
{
"requiredProperties": ["name", "allegiance"],
"properties": {
"gender": {
"type": "enum",
"values": ["Male", "Female"]
},
"birth_place": {
"type": "wikilink",
"targetType": "place"
}
},
"constraints": [
{
"rule": "!died || born",
"message": "Cannot have death date without birth date"
}
]
}
Property Definition Options:
| Option | Description | Applies To |
|---|---|---|
type |
Property type: string, number, date, boolean, enum, wikilink, array, sourced_facts |
All |
values |
Allowed values | enum |
min, max |
Value range | number |
targetType |
Required note type for link target | wikilink |
requiredIf |
Conditional requirement | All |
default |
Default value if missing | All |
Property Types:
| Type | Description |
|---|---|
string |
Plain text value |
number |
Numeric value |
date |
Date string (various formats supported) |
boolean |
true/false value |
enum |
One of a predefined set of values (use values to define) |
wikilink |
Link to another note [Target]] or [[Target\](/banisterious/obsidian-charted-roots/wiki/Display) |
array |
Array of values |
sourced_facts |
Fact-level source tracking structure (validates GPS research citations) |
The sourced_facts Type:
When validating sourced_facts, the schema system checks that:
- The value is an object (not array or primitive)
- Each key is a valid fact key (
birth_date,birth_place,death_date, etc.) - Each fact entry has a
sourcesarray - Each source in the array is a valid wikilink format (
[Source Name](/banisterious/obsidian-charted-roots/wiki/Source-Name))
Property Naming Conventions
Charted Roots follows these conventions:
| Convention | Examples |
|---|---|
| Snake_case for all properties | birth_place, father_id, cr_id |
| Singular for single values | father, mother, spouse |
| Plural for arrays (legacy) | spouses (structured array) |
_id suffix for cr_id references |
father_id, spouse_id, children_id |
| Indexed properties for ordered multiples | spouse1, spouse2, spouse1_marriage_date |
Property Aliases
If your vault uses different property names than Charted Roots defaults, you can create property aliases to map your custom names to the canonical Charted Roots fields. This allows Charted Roots to work with existing vaults without requiring you to rename your frontmatter properties.
Configuring Aliases
Go to Settings β Charted Roots β Property & value aliases to add, edit, or remove aliases.
How Aliases Work
| Scenario | Behavior |
|---|---|
| Reading notes | Charted Roots checks for the canonical property first, then falls back to your alias |
| Creating/importing notes | New notes use your aliased property name instead of the canonical name |
| Both properties exist | The canonical property takes precedence |
Example
If your vault uses birthdate instead of born:
- Add an alias:
birthdateβborn - Charted Roots will now read
birthdateas the birth date - When importing GEDCOM files, notes will be created with
birthdateinstead ofborn
Supported Properties
All person note properties can be aliased:
| Category | Properties |
|---|---|
| Identity | name, cr_id, sex, gender, gender_identity, pronouns, nickname, alt_name, maiden_name |
| Dates | born, died |
| Places | birth_place, death_place |
| Relationships | father, father_id, mother, mother_id, spouse, spouse_id, children, children_id |
| Sources | sources |
| Other | occupation, universe, image, sourced_facts, relationships, research_level |
Tips
- Aliases are case-sensitive:
Birthdateandbirthdateare different - Only one alias per canonical property is supported
- The Essential Properties card in Getting Started shows your aliased names when configured
Value Aliases
In addition to property name aliases, you can create value aliases to map custom property values to Charted Roots' canonical values. This is useful when your vault uses different terminology for enumerated fields like event types, sex values, place categories, or note types.
Configuring Value Aliases
Go to Settings β Charted Roots β Property & value aliases β Value aliases to add, edit, or remove value aliases.
Supported Fields
| Field | Canonical Values |
|---|---|
| Event type | birth, death, marriage, burial, residence, occupation, education, military, immigration, baptism, confirmation, ordination, custom |
| Sex | male, female, nonbinary, unknown |
| Place category | real, historical, disputed, legendary, mythological, fictional |
How Value Aliases Work
| Scenario | Behavior |
|---|---|
| Reading notes | Charted Roots checks for canonical values first, then resolves aliases |
| Unknown event types | Resolve to custom (graceful degradation) |
| Unknown sex/place category/note type | Pass through unchanged (may trigger validation warning) |
| Creating/importing notes | Uses your aliased values when writing |
Example
If your worldbuilding vault uses nameday instead of birth for event types:
- Add a value alias:
namedayβbirth(Event type) - Charted Roots will recognize
event_type: namedayas a birth event - Events with
namedaywill appear with the birth icon on maps and timelines - When importing GEDCOM files, birth events will be written as
nameday
Use Cases
| Use Case | Example Aliases |
|---|---|
| Worldbuilding | nameday β birth, coronation β custom |
| Sex abbreviations | m β male, f β female, nb β nonbinary |
| Fantasy settings | canon β fictional, apocryphal β disputed |
Essential Properties
When using "Add essential properties" in Data Quality tools, these properties are added if missing:
cr_id(generated UUID)name(empty string)born(empty string)died(empty string)father(empty string)mother(empty string)spouses(empty array)
Example Person Note
---
cr_id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
cr_type: "person"
name: "John Robert Smith"
born: "1888-05-15"
died: "1952-08-20"
birth_place: "London, England"
death_place: "New York, USA"
sex: "male"
pronouns: "he/him"
occupation: "Merchant"
father: "[John Smith Sr](/banisterious/obsidian-charted-roots/wiki/John-Smith-Sr)"
father_id: "f1234567-..."
mother: "[Mary Jones](/banisterious/obsidian-charted-roots/wiki/Mary-Jones)"
mother_id: "m7654321-..."
spouse1: "[Jane Doe](/banisterious/obsidian-charted-roots/wiki/Jane-Doe)"
spouse1_id: "s1111111-..."
spouse1_marriage_date: "1910-06-15"
spouse1_marriage_location: "St. Mary's Church, London"
spouse1_marriage_status: "widowed"
spouse2: "[Margaret Brown](/banisterious/obsidian-charted-roots/wiki/Margaret-Brown)"
spouse2_id: "s2222222-..."
spouse2_marriage_date: "1935-09-01"
children:
- "[John Smith Jr](/banisterious/obsidian-charted-roots/wiki/John-Smith-Jr)"
- "[Mary Elizabeth Smith](/banisterious/obsidian-charted-roots/wiki/Mary-Elizabeth-Smith)"
children_id:
- "c1111111-..."
- "c2222222-..."
cr_root: true
collection: "Smith Family"
ahnentafel: 1
media:
- "[john-smith-portrait.jpg](/banisterious/obsidian-charted-roots/wiki/john-smith-portrait.jpg)"
- "[smith-family-photo-1920.jpg](/banisterious/obsidian-charted-roots/wiki/smith-family-photo-1920.jpg)"
sources:
- "[1900 US Census - Smith Family](/banisterious/obsidian-charted-roots/wiki/1900-US-Census---Smith-Family)"
- "[Birth Certificate - John Robert Smith](/banisterious/obsidian-charted-roots/wiki/Birth-Certificate---John-Robert-Smith)"
sourced_facts:
birth_date:
sources:
- "[Birth Certificate - John Robert Smith](/banisterious/obsidian-charted-roots/wiki/Birth-Certificate---John-Robert-Smith)"
birth_place:
sources:
- "[Birth Certificate - John Robert Smith](/banisterious/obsidian-charted-roots/wiki/Birth-Certificate---John-Robert-Smith)"
parents:
sources:
- "[1900 US Census - Smith Family](/banisterious/obsidian-charted-roots/wiki/1900-US-Census---Smith-Family)"
---
# John Robert Smith
Notes about this person...
Example Place Note
---
cr_type: place
cr_id: "place_london_001"
name: "London"
aliases:
- "City of London"
- "Londinium"
place_category: real
place_type: city
parent_place: "[England](/banisterious/obsidian-charted-roots/wiki/England)"
coordinates:
lat: 51.5074
long: -0.1278
historical_names:
- name: "Londinium"
period: "Roman (43-410 AD)"
- name: "Lundenwic"
period: "Anglo-Saxon (600-886 AD)"
---
# London
Capital city of England and the United Kingdom...
Example Place Note (Pixel Coordinates)
---
cr_type: place
cr_id: "place_winterfell_001"
name: "Winterfell"
place_category: fictional
place_type: castle
universe: "A Song of Ice and Fire"
pixel_x: 1200
pixel_y: 2400
---
# Winterfell
Seat of House Stark in the North...
Example Map Note (Geographic Mode)
---
cr_type: map
map_id: middle-earth
name: Middle-earth
universe: tolkien
image: assets/maps/middle-earth.jpg
coordinate_system: geographic
bounds_north: 50
bounds_south: -50
bounds_west: -100
bounds_east: 100
center_lat: 0
center_lng: 0
default_zoom: 3
---
# Middle-earth Map
Map of J.R.R. Tolkien's Middle-earth...
Example Map Note (Pixel Mode)
---
cr_type: map
map_id: westeros
name: Westeros
universe: got
image: assets/maps/westeros.png
coordinate_system: pixel
image_width: 2048
image_height: 3072
center_x: 1024
center_y: 1536
default_zoom: 0
min_zoom: -2
max_zoom: 3
---
# Westeros Map
Map of Westeros from A Song of Ice and Fire...
Example Map Note (Distortable with Corners)
---
cr_type: map
map_id: historical-europe
name: Historical Europe 1850
universe: real
image: assets/maps/europe-1850.jpg
coordinate_system: geographic
bounds_north: 72
bounds_south: 35
bounds_west: -15
bounds_east: 45
default_zoom: 4
corner_nw_lat: 71.5
corner_nw_lng: -14.5
corner_ne_lat: 71.8
corner_ne_lng: 44.5
corner_sw_lat: 35.2
corner_sw_lng: -14.8
corner_se_lat: 35.0
corner_se_lng: 44.8
---
# Historical Europe 1850
A historical map of Europe circa 1850, aligned to modern coordinates
for comparison with contemporary maps...
Example Schema Note
---
cr_type: schema
cr_id: schema-date-validation
name: Date Validation
description: Ensures date fields are logically consistent
applies_to_type: all
---
# Date Validation Schema
This schema validates that all person notes have logically consistent dates.
```json schema
{
"requiredProperties": [],
"properties": {
"born": {
"type": "date"
},
"died": {
"type": "date"
}
},
"constraints": [
{
"rule": "!died || born",
"message": "Cannot have death date without birth date"
},
{
"rule": "!died || !born || new Date(died) >= new Date(born)",
"message": "Death date must be on or after birth date"
}
]
}
```
Event Note Properties
Event notes document life events, story events, and timeline entries as standalone notes. See Events And Timelines for complete documentation.
Identity
| Property | Type | Description | Example |
|---|---|---|---|
cr_type |
string |
Must be "event" (recommended) |
"event" |
type |
string |
Must be "event" (legacy, also supported) |
"event" |
cr_id |
string |
Unique identifier | "evt_birth_john_1850" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
title |
string |
Display title of the event | "Birth of John Smith" |
event_type |
string |
Type of event (see types below) | "birth" |
description |
string |
Additional details about the event | "Born at the family homestead" |
Event Types
Charted Roots includes built-in event types organized by category. Custom types can also be created in the Control Center.
| Category | Event Types |
|---|---|
| Core (vital) | birth, death, marriage, divorce |
| Extended (life) | residence, occupation, military, immigration, education, burial, baptism, confirmation, ordination, transfer |
| Narrative | anecdote, lore_event, plot_point, flashback, foreshadowing, backstory, climax, resolution |
| Custom | custom (or user-defined types) |
Transfer Events
Transfer events track changes in ownership, property, or status. When event_type is transfer, an additional property specifies the type of transfer:
| Property | Type | Description | Example |
|---|---|---|---|
transfer_type |
string |
Type of transfer | "inheritance", "purchase", "gift" |
age |
string |
Age at event (from GEDCOM AGE sub-tag) | "30", "INFANT" |
cause |
string |
Cause (from GEDCOM CAUS sub-tag, e.g., cause of death) | "Heart failure" |
Transfer Types:
| Type | Description |
|---|---|
inheritance |
Transfer at death via will/probate |
purchase |
Sale transaction |
gift |
Transfer without payment |
hire |
Temporary transfer (hiring out) |
seizure |
Court-ordered transfer, debt collection |
birth |
Born into ownership |
relocation |
Move to different location (same owner) |
Example transfer event:
cr_type: event
cr_id: evt_transfer_1817
title: Estate Division of John Smith Sr.
event_type: transfer
transfer_type: inheritance
date: "1817-03-15"
persons:
- "[Mary (enslaved)](/banisterious/obsidian-charted-roots/wiki/Mary-(enslaved))"
- "[John Smith Sr.](/banisterious/obsidian-charted-roots/wiki/John-Smith-Sr.)"
- "[William Smith](/banisterious/obsidian-charted-roots/wiki/William-Smith)"
place: "[Chester County Courthouse](/banisterious/obsidian-charted-roots/wiki/Chester-County-Courthouse)"
sources:
- "[Chester County Probate Book A, p. 47](/banisterious/obsidian-charted-roots/wiki/Chester-County-Probate-Book-A,-p.-47)"
description: "Estate division per will of John Smith Sr."
Date Information
| Property | Type | Description | Example |
|---|---|---|---|
date |
string |
Event date (ISO format or fictional calendar) | "1850-03-15" |
date_end |
string |
End date for range events | "1855-06-20" |
date_precision |
string |
How precise the date is | "exact", "month", "year", "decade", "estimated", "range", "unknown" |
date_system |
string |
Fictional date system ID | "westeros" |
Date Precision Values:
| Precision | Description | Example |
|---|---|---|
exact |
Known to the day | "1850-03-15" |
month |
Known to the month | "1850-03" |
year |
Known to the year | "1850" |
decade |
Known to the decade | "1850s" |
estimated |
Approximate | "circa 1850" |
range |
Between two dates | Use date + date_end |
unknown |
Date unknown | Use relative ordering |
Person and Place Links
| Property | Type | Description | Example |
|---|---|---|---|
persons |
string[] |
People involved in the event (wikilink array) | ["[John Smith](/banisterious/obsidian-charted-roots/wiki/John-Smith)"] or ["[John Smith](/banisterious/obsidian-charted-roots/wiki/John-Smith)", "[Jane Doe](/banisterious/obsidian-charted-roots/wiki/Jane-Doe)"] |
place |
string |
Where the event occurred (wikilink) | "[London](/banisterious/obsidian-charted-roots/wiki/London)" |
Note: As of v0.18.0, all events use the
personsarray property. Single-participant events simply have an array with one element. The legacyperson(singular) property is deprecated but still read for backward compatibility. Use the Cleanup Wizard (Step 11) to migrate existing notes.
Sources and Confidence
| Property | Type | Description | Example |
|---|---|---|---|
sources |
string[] |
Sources documenting this event | ["[1850 Census](/banisterious/obsidian-charted-roots/wiki/1850-Census)", "[Family Bible](/banisterious/obsidian-charted-roots/wiki/Family-Bible)"] |
confidence |
string |
How reliable is this event | "high", "medium", "low", "unknown" |
Confidence Levels:
| Level | Description |
|---|---|
high |
Well-documented with primary sources |
medium |
Some supporting evidence |
low |
Unverified or questionable |
unknown |
Not yet assessed |
Media Files
Event notes can link to media files (ceremony photos, certificates, illustrations):
| Property | Type | Description | Example |
|---|---|---|---|
media |
string | string[] |
Wikilink(s) to media files | "[wedding-photo.jpg](/banisterious/obsidian-charted-roots/wiki/wedding-photo.jpg)" |
Relative Ordering
For events without precise dates, use relative ordering to establish sequence:
| Property | Type | Description | Example |
|---|---|---|---|
before |
string[] |
Events that happen after this one | ["[Marriage of John and Jane](/banisterious/obsidian-charted-roots/wiki/Marriage-of-John-and-Jane)"] |
after |
string[] |
Events that happen before this one | ["[Birth of John Smith](/banisterious/obsidian-charted-roots/wiki/Birth-of-John-Smith)"] |
sort_order |
number |
Computed sort value for ordering | 10, 20, 30 |
Tip: Use the "Compute sort order" button in the Events tab to automatically calculate
sort_ordervalues from yourbefore/afterrelationships using topological sort. Values are assigned in increments of 10 to allow manual insertion between computed values.
Timeline and Worldbuilding
| Property | Type | Description | Example |
|---|---|---|---|
timeline |
string |
Parent timeline note | "[Smith Family Timeline](/banisterious/obsidian-charted-roots/wiki/Smith-Family-Timeline)" |
is_canonical |
boolean |
Authoritative truth for worldbuilders | true |
universe |
string |
Fictional universe | "westeros" |
groups |
string[] |
Groups/factions involved in this event | ["Rohan", "Isengard"] |
The groups property enables filtering in timeline exports by nation, faction, or organization. Useful for:
- Worldbuilding: organize events by nation, guild, or power structure
- Genealogy: tag events by family branch or immigrant group
Example Event Note
---
cr_type: event
cr_id: evt_birth_john_1850
title: Birth of John Smith
event_type: birth
date: "1850-03-15"
date_precision: exact
persons:
- "[John Smith](/banisterious/obsidian-charted-roots/wiki/John-Smith)"
place: "[London](/banisterious/obsidian-charted-roots/wiki/London)"
sources:
- "[Birth Certificate - John Smith](/banisterious/obsidian-charted-roots/wiki/Birth-Certificate---John-Smith)"
- "[Family Bible](/banisterious/obsidian-charted-roots/wiki/Family-Bible)"
confidence: high
description: Born at the family homestead on Elm Street
---
# Birth of John Smith
John Robert Smith was born on March 15, 1850 in London...
Example Narrative Event Note
---
cr_type: event
cr_id: evt_red_wedding
title: The Red Wedding
event_type: lore_event
date: "299 AC"
date_precision: exact
date_system: westeros
persons:
- "[Robb Stark](/banisterious/obsidian-charted-roots/wiki/Robb-Stark)"
- "[Catelyn Stark](/banisterious/obsidian-charted-roots/wiki/Catelyn-Stark)"
place: "[The Twins](/banisterious/obsidian-charted-roots/wiki/The-Twins)"
is_canonical: true
universe: westeros
confidence: high
after:
- "[Battle of the Blackwater](/banisterious/obsidian-charted-roots/wiki/Battle-of-the-Blackwater)"
before:
- "[Purple Wedding](/banisterious/obsidian-charted-roots/wiki/Purple-Wedding)"
groups:
- "House Stark"
- "House Frey"
- "House Bolton"
description: The massacre at the wedding feast
---
# The Red Wedding
A pivotal event in the War of the Five Kings...
Organization Note Properties
Organization notes define non-genealogical hierarchies such as noble houses, guilds, and corporations. See Organization Notes for complete documentation.
Identity
| Property | Type | Description | Example |
|---|---|---|---|
cr_type |
string |
Must be "organization" (recommended) |
"organization" |
type |
string |
Must be "organization" (legacy, also supported) |
"organization" |
cr_id |
string |
Unique identifier | "org-house-stark" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
name |
string |
Display name of the organization | "House Stark" |
org_type |
string |
Organization type (see below) | "noble_house" |
motto |
string |
Organization motto or slogan | "Winter is Coming" |
universe |
string |
Fictional universe for filtering | "westeros" |
Organization Types
| Type ID | Description |
|---|---|
noble_house |
Feudal houses, dynasties |
guild |
Trade guilds, craftsmen |
corporation |
Modern companies |
military |
Armies, regiments, navies |
religious |
Churches, monasteries |
political |
Kingdoms, republics |
educational |
Schools, universities |
custom |
User-defined |
Hierarchy
| Property | Type | Description | Example |
|---|---|---|---|
parent_org |
string |
Wikilink to parent organization | "[The North](/banisterious/obsidian-charted-roots/wiki/The-North)" |
Dates
| Property | Type | Description | Example |
|---|---|---|---|
founded |
string |
Founding date (supports fictional dates) | "Age of Heroes" |
dissolved |
string |
Dissolution date | "298 AC" |
Location
| Property | Type | Description | Example |
|---|---|---|---|
seat |
string |
Wikilink to primary location (place note) | "[Winterfell](/banisterious/obsidian-charted-roots/wiki/Winterfell)" |
Roles
| Property | Type | Description | Example |
|---|---|---|---|
roles |
string[] |
Ordered list of valid role names for this organization; controls display order in charted-roots-members blocks and provides autocomplete suggestions in membership modals |
["Lord", "Heir", "Castellan", "Maester"] |
Role list order defines rank/display order (first = highest). When a charted-roots-members block has no explicit role-order config, the organization's roles property is used as fallback. Organization types can define defaultRoles that auto-populate when creating new organizations of that type.
Media Files
Organization notes can link to media files (logos, group photos, heraldry):
| Property | Type | Description | Example |
|---|---|---|---|
media |
string | string[] |
Wikilink(s) to media files | "[house-sigil.png](/banisterious/obsidian-charted-roots/wiki/house-sigil.png)" |
Person Membership Properties
Person notes can include organization memberships using parallel arrays (recommended) or legacy formats.
Flat Parallel Arrays (Recommended)
The preferred format uses parallel arrays where each index represents the same membership:
membership_orgs:
- "[House Stark](/banisterious/obsidian-charted-roots/wiki/House-Stark)"
- "[Small Council](/banisterious/obsidian-charted-roots/wiki/Small-Council)"
membership_org_ids:
- org-house-stark
- org-small-council
membership_roles:
- Lord of Winterfell
- Hand of the King
membership_from_dates:
- "283 AC"
- "298 AC"
membership_to_dates:
- "298 AC"
- "298 AC"
membership_notes:
- ""
- "Appointed after death of Jon Arryn"
| Property | Type | Description | Example |
|---|---|---|---|
membership_orgs |
string[] |
Wikilinks to organization notes | ["[House Stark](/banisterious/obsidian-charted-roots/wiki/House-Stark)", "[Small Council](/banisterious/obsidian-charted-roots/wiki/Small-Council)"] |
membership_org_ids |
string[] |
Organization cr_ids for robust linking |
["org-house-stark", "org-small-council"] |
membership_roles |
string[] |
Roles/positions within organizations | ["Lord of Winterfell", "Hand of the King"] |
membership_from_dates |
string[] |
Start dates of memberships | ["283 AC", "298 AC"] |
membership_to_dates |
string[] |
End dates (empty string if current) | ["298 AC", "298 AC"] |
membership_notes |
string[] |
Additional context for each membership | ["", "Appointed after death of Jon Arryn"] |
Benefits of flat format:
- Works correctly with Obsidian's Properties editor
- Better compatibility with Dataview queries
- Consistent with
sourced_*properties pattern - No "Type mismatch" warnings in Properties view
Legacy Nested Array Format (Deprecated)
Deprecation Note: The nested
membershipsarray is deprecated as of v0.19.5. Use the flat parallel arrays above. Existing notes using this format still work, but new memberships are saved in the flat format. Use the Data Quality panel to migrate legacy formats.
memberships:
- org: "[House Stark](/banisterious/obsidian-charted-roots/wiki/House-Stark)"
org_id: org-house-stark
role: Lord of Winterfell
from: "283 AC"
to: "298 AC"
- org: "[Small Council](/banisterious/obsidian-charted-roots/wiki/Small-Council)"
org_id: org-small-council
role: Hand of the King
from: "298 AC"
to: "298 AC"
Legacy Simple Format (Deprecated)
Deprecation Note: The simple
house/organizationfields are deprecated. Use the flat parallel arrays above.
house: "[House Stark](/banisterious/obsidian-charted-roots/wiki/House-Stark)"
house_id: org-house-stark
role: Lord of Winterfell
Example Organization Note
---
cr_type: organization
cr_id: org-house-stark
name: House Stark
org_type: noble_house
parent_org: "[The North](/banisterious/obsidian-charted-roots/wiki/The-North)"
founded: "Age of Heroes"
motto: "Winter is Coming"
seat: "[Winterfell](/banisterious/obsidian-charted-roots/wiki/Winterfell)"
universe: westeros
---
# House Stark
The principal house of the North...
Universe Note Properties
Universe notes define fictional worlds as first-class entities. See Universe Notes for complete documentation.
erDiagram
UNIVERSE ||--o| CALENDAR : "default_calendar"
UNIVERSE ||--o| MAP : "default_map"
UNIVERSE ||--o{ PERSON : "universe"
UNIVERSE ||--o{ PLACE : "universe"
UNIVERSE ||--o{ EVENT : "universe"
UNIVERSE ||--o{ ORGANIZATION : "universe"
UNIVERSE ||--o{ SCHEMA : "scoped to"
UNIVERSE {
string cr_id PK
string cr_type
string name
string description
string author
string genre
string status
string default_calendar FK
string default_map FK
date created
}
CALENDAR {
string cr_id PK
string name
array eras
}
MAP {
string cr_id PK
string name
string image_path
object bounds
}
Key relationships:
- Universe β Calendar: Default date system for events in this universe
- Universe β Map: Default custom map for geographic visualization
- Universe β Entities: People, places, events, and organizations can be scoped to a universe via the
universeproperty - Universe β Schema: Validation schemas can be scoped to enforce universe-specific rules
Identity
| Property | Type | Description | Example |
|---|---|---|---|
cr_type |
string |
Must be "universe" |
"universe" |
cr_id |
string |
Unique identifier | "middle-earth" |
Basic Information
| Property | Type | Description | Example |
|---|---|---|---|
name |
string |
Display name of the universe | "Middle-earth" |
description |
string |
Brief description of the world | "A fantasy world created by J.R.R. Tolkien" |
author |
string |
Creator of the fictional world | "J.R.R. Tolkien" |
genre |
string |
Genre (fantasy, sci-fi, etc.) | "fantasy" |
status |
string |
Status: active, draft, archived |
"active" |
Linked Configuration
| Property | Type | Description | Example |
|---|---|---|---|
default_calendar |
string |
ID of default date system | "shire-reckoning" |
default_map |
string |
ID of default custom map | "middle-earth-map" |
Metadata
| Property | Type | Description | Example |
|---|---|---|---|
created |
date |
Creation date of the universe note | "2024-03-15" |
Example Universe Note
---
cr_type: universe
cr_id: middle-earth
name: Middle-earth
description: A fantasy world created by J.R.R. Tolkien
author: J.R.R. Tolkien
genre: fantasy
status: active
default_calendar: shire-reckoning
default_map: middle-earth-map
---
# Middle-earth
Middle-earth is the setting for The Hobbit, The Lord of the Rings,
and The Silmarillion...
See Also
- Events And Timelines - Complete event documentation
- Evidence & Sources - Complete source documentation
- Organization Notes - Complete organization documentation
- Universe Notes - Complete universe documentation
- Schema Validation - Creating and using validation schemas
- Geographic Features - Place notes and map features
- Data Management - Managing your family data