🗃️: Gramps Data Model Diagram (github.com/mod-by-cis/gramps-data-model)
Graphical representation of the data model in the gramps genealogy program. I did not understand the of relation in gramps-data, until I exploring by creating a diagram - CC0 - Shared under Creative Commons Zero terms. I don't claim any rights if it helps anyone, I just wanted to share it in case it might help someone.
⚠️ The license does not apply to the./model
folder. The DTD and RNG files are copies of the files in the./data
folder in the gramps repository and are subject to the license of that repository. The remaining files in the./model
folder are converted from the official DTD and RNG files from the./data
folder in the gramps repository.
- 0️⃣: About Gramps
- 1️⃣: Gramps Data Model Diagram >>> (eng v2025) | (pol v2025) | (pol v2018)
- 2️⃣: Official Files of GrampsXML Data Model DTD and RNG
- 3️⃣: Files converted from official DTD and RNG GrampsXML
Gramps (Genealogical Research and Analysis Management Programming System) – is one of the most advanced genealogy programs, surpassing others in terms of complexity. Moreover, it is available for free.
- [gramps-project.org]
- 👁️ The official website of the Gramps program (https://gramps-project.org/blog/)
- 👁️ Manual for Gramps (https://gramps-project.org/wiki/index.php/)
- 👁️ Reporting bugs and technical support (https://gramps-project.org/bugs)
- 👁️ Release history of Gramps (https://gramps-project.org/wiki/index.php?title=Previous_releases_of_Gramps)
- 👁️ Official description of the Gramps-XML format (https://gramps-project.org/wiki/index.php/Gramps_XML)
- [github.com]
- 👁️ The repository for Gramps (https://github.com/gramps-project/gramps)
- 👁️ Repository gramps-web (https://github.com/gramps-project/gramps-web)
- 👁️ Repository gramps-web-api (https://github.com/gramps-project/gramps-web-api)
- 👁️ Documentation for file format Gramps XML (https://raw.githubusercontent.com/gramps-project/gramps/refs/heads/master/data/grampsxml.dtd)
- 👁️ Documentation for file format Gramps XML (https://raw.githubusercontent.com/gramps-project/gramps/refs/heads/master/data/grampsxml.rng)
- 👁️ Discourse group (https://gramps.discourse.group/)
- 👁️ Discourse group (https://www.facebook.com/groups/370692133138445)
- 👁️ gramps-web (https://www.grampsweb.org/)
- 👁️ gramps-hub (https://www.grampshub.com/)
- 👁️ There are also various tutorials on YouTube. (eg. https://www.youtube.com/@tech-tutorials/videos)
- [not official]
1️⃣: Gramps Data Model Diagram
The graphs of the data model were created in the free yEd programme of the yWorks. yEd - live, yEd - downloads.
diagram available in format:
.graphml
: 📥💾 gramps-6.0.0_MODEL_(eng).graphml - - - - - - - The free programyEd
is required to open the original.graphml
file..svg
: 📥💾 gramps-6.0.0_MODEL_(eng).svg.png
: 📥💾 gramps-6.0.0_MODEL_(eng).png.jpg
: 📥💾 gramps-6.0.0_MODEL_(eng).jpg.pdf (text plain)
: 📥💾 gramps-6.0.0_MODEL_(eng)_text-plain.pdf.pdf (text vectorized)
: 📥💾 gramps-6.0.0_MODEL_(eng)_text-vectorized.pdf
diagram available in format:
.graphml
: 📥💾 gramps-6.0.0_MODEL_(pol).graphml - - - - - - - The free programyEd
is required to open the original.graphml
file..svg
: 📥💾 gramps-6.0.0_MODEL_(pol).svg.png
: 📥💾 gramps-6.0.0_MODEL_(pol).png.jpg
: 📥💾 gramps-6.0.0_MODEL_(pol).jpg.pdf (text plain)
: 📥💾 gramps-6.0.0_MODEL_(pol)_text-plain.pdf.pdf (text vectorized)
: 📥💾 gramps-6.0.0_MODEL_(pol)_text-vectorized.pdf
diagram available in format:
.graphml
: 📥💾 gramps-5.0.0_MODEL_(pol).graphml - - - - - - - The free programyEd
is required to open the original.graphml
file..png
: 📥💾 gramps-5.0.0_MODEL_(pol).png.pdf (text vectorized)
: 📥💾 gramps-5.0.0_MODEL_(pol).pdf
The official GRAMPS repository contains the data model for the *.gramps
file in both DTD and RNG formats. I am including these files as copies from the official repository to serve as the foundation for outlining the dependency model. The table shows the latest versions of gramps that use a given model.
gramps: grampsxml: |
🕒 | v6.0.0-rc1 v1.7.2 |
v5.1.6 v1.7.1 |
v4.1.3 v1.6.0 |
v4.0.4 v1.5.1 |
v4.0.1 v1.5.0 |
v3.4.5 v1.5.0 |
v3.3.1 v1.4.0 |
v3.2.6 v1.3.0 |
v3.0.4 v1.2.0 |
v2.2.10 v1.1.4 |
---|---|---|---|---|---|---|---|---|---|---|---|
Document Type Definition | 🔄️ | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd |
Relax NG | 🔄️ | 📜.rng | 📜.rng | 📜.rng | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd | 📜.dtd |
- to convert
*.DTD
to*.DTD.XSD
, I used 30 days trial version, XMLSpy-by-altova- to convert
*.DTD.XSD
to*.DTD.XSD.JSON
, I used script./utils/download-official-DTD-RNG.ts
- (TO DO) to generate diagram
*.DTD.XSD.JPG
from*.DTD.XSD
and*.RNG.XSD.JPG
from*.RNG.XSD
, I used trial version, Stylus Studio- to convert
*.RNG
to*.RNG.XSD
and to*.RNG.XSD.JSON
, I used script./utils/covert_RNG_toXSD_andToJSON.ts
(this script uses external tool jing-trang download from.. It might be a copy from..)
DTD (Document type definition) | 📜.dtd | grampsxml.dtd mirror from official repo of gramps using ./utils/covert_DTD-XSD_toJSON.ts |
---|---|---|
XSD (XML Schema) | 📜.dtd.xsd | converted from grampsxml.dtd using XMLSpy-by-altova |
XSD (XML Schema) as JSON | 📜.dtd.xsd.json | converted from grampsxml.dtd.xsd using ./utils/covert_DTD-XSD_toJSON.ts |
RNG (RELAX NG schema) | 📜.rng | grampsxml.rng mirror from official repo of gramps using ./utils/covert_DTD-XSD_toJSON.ts |
RNG (RELAX NG schema) as JSON | 📜.rng.json | converted from grampsxml.rng when file was downloading using ./utils/download-official-DTD-RNG.ts |
XSD (XML Schema) | 📜.rng.xsd | converted from grampsxml.rng using ./utils/covert_RNG_toXSD_andToJSON.ts |
XSD (XML Schema) as JSON | 📜.rng.xsd.json | converted from grampsxml.rng.xsd using ./utils/covert_RNG_toXSD_andToJSON.ts |