Skip to content
genealogixPublic

Latest commit

Β 

History

579 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

GENEALOGIX Specification

Version Go Reference Go Version License CI codecov OpenSSF Scorecard OpenSSF Best Practices Contributors

The official specification for GENEALOGIX (GLX) β€” a portable, extensible archive format for genealogical research and beyond. Built on Git, designed for collaboration, and customizable through archive-owned vocabularies. Your data, your way, forever.

Installation

Download the latest pre-compiled binary for your operating system from the GitHub Releases page.

Developers can install from source:

# Pin the release tag for a reproducible install; bump it when a new release ships
go install github.com/genealogix/glx/glx@v0.0.0-beta.12

# Or track main for changes not yet in a release. `glx --version` then
# reports the commit it was built from (a pseudo-version ending in its hash).
go install github.com/genealogix/glx/glx@main

Quick Start

# Create a new genealogix repository in a new directory
glx init my-family-archive

# Or create a single-file archive
glx init my-family-archive --single-file

# Validate .glx files (checks cross-references and vocabularies)
cd my-family-archive
glx validate

Why GENEALOGIX?

Traditional formats like GEDCOM solve file exchange but stop short of modern collaborative research. GENEALOGIX is a Git-native, evidence-first archive format that aims to be a permanent foundation, not just an export target.

For a side-by-side look at the GEDCOM-vs-GLX wire formats and the assertion model that backs every claim with evidence, see Core Concepts.

Features

  • πŸ“š Evidence-First Model β€” every claim backed by documented sources
  • πŸ” Quality Assessment β€” structured confidence on every assertion, with the nature of the source and of the information recorded separately
  • 🌳 Git-Native Architecture β€” full version control and collaboration support
  • πŸ“‹ Human-Readable Format β€” clear YAML files instead of binary formats
  • βœ… Schema Validation β€” JSON Schema-based validation and error checking
  • πŸ”— Complete Provenance β€” audit trail from repository to conclusion
  • 🎯 Repository-Owned Vocabularies β€” define custom types within each archive

CLI Commands

The glx CLI groups its commands into archive management, import/export, exploration, data entry, analysis, and shell completion. Run glx --help for the list your build has, glx <command> --help for a command's flags, or see the CLI reference for per-command pages with examples.

Archive Management

  • glx init β€” initialize a new archive
  • glx validate β€” validate files and cross-references
  • glx split β€” convert a single-file archive to multi-file
  • glx join β€” convert a multi-file archive to single-file
  • glx merge β€” combine two archives with duplicate detection
  • glx merge-persons β€” merge two person records into one
  • glx migrate β€” migrate an archive to the current format
  • glx rename β€” rename an entity by ID
  • glx cache β€” build, inspect, or clear the binary archive cache

Import & Export

  • glx import β€” import a GEDCOM file
  • glx export β€” export to GEDCOM or Schema.org-aligned JSON-LD
  • glx publish β€” generate a self-contained static HTML site from an archive

Exploration

Data Entry

  • glx census β€” census tooling (see subcommands)
  • glx census add β€” generate entities from a census template
  • glx add β€” create entities (person, place, event, source, citation, repository, relationship, assertion, and more) from flags; glx add --help lists every entity type
  • glx link β€” create a FamilySearch citation (and source/repository scaffolding) from an ARK URL

Analysis

  • glx stats β€” entity-count and confidence dashboard
  • glx places β€” place data quality issues
  • glx cluster β€” FAN-club analysis
  • glx households β€” reconstruct census households for a person or a place
  • glx analyze β€” gap, conflict, and suggestion analysis
  • glx duplicates β€” detect duplicate entities
  • glx coverage β€” research coverage report
  • glx diff β€” diff two archives
  • glx evidence β€” lay out every assertion for one subject+property side-by-side
  • glx proof β€” compile a Genealogical Proof Standard summary for a research question
  • glx migrations β€” trace a person's geographic movement over time

Shell completion

  • glx completion β€” generate shell completion scripts (bash, zsh, fish, powershell)

File Format

All GENEALOGIX files use the same structure:

# Any .glx file
persons:
  person-a1b2c3d4:
    properties:
      name:
        value: "John Smith"
        fields:
          given: "John"
          surname: "Smith"
      sex: "male"

sources:
  source-12345678:
    title: "Birth Certificate"

Key Points:

  • Entity IDs are map keys: person-john-smith or person-a1b2c3d4
  • IDs can be descriptive or random (1–64 alphanumeric/hyphens)
  • Files can contain any combination of entity types
  • Parser collates all entities across all .glx files in repository, except under dot-prefixed directories (.git, .glx, editor scratch dirs), which are not archive content
  • Controlled vocabularies define valid types in vocabularies/ directory

Documentation

Specification Status

This specification follows Semantic Versioning. Current release: v0.0.0-beta.12 (Beta).

  • Draft β€” under active development, may change significantly
  • Release Candidate β€” stable, final review before release
  • Released β€” production-ready, changes discussed via GitHub issues and discussions

Community

Topic Where
Issues & bug reports github.com/genealogix/glx/issues
Discussions & Q&A github.com/genealogix/glx/discussions
Chat Discord
Mailing list groups.google.com/g/genealogix
Contributing CONTRIBUTING.md
Code of Conduct CODE_OF_CONDUCT.md
Security SECURITY.md Β· SECURITY-POSTURE.md (OSPS Baseline, EU CRA readiness)
Releases GitHub Releases

License

Copyright 2025 Oracynth, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Attribution for the third-party components bundled in GLX is listed in the NOTICE file.

Releases

Used by

Contributors

Languages