Citation Entry Simplification

I suggest starting with something very simple — just to get the feel of it.
Take your Gramps XML file… and ask an AI to help you write a tiny script that extracts a few fields and writes them into a plain text format (Markdown, CSV, whatever you prefer).

And by the way — you don’t even need to start with a Gramps XML file.
You can begin with any text‑based file you already have lying around: a .txt, .md, .csv, or anything with some structure in it. The point is simply to learn how to ask the AI to read a file, extract something, and write a new file.

Once you understand that workflow, switching to the Gramps XML format is just a matter of changing the input file and adjusting the extraction logic. The process is exactly the same.


I still use the Copilot panel in Microsoft Edge for this kind of thing, and I edit and run the code in Visual Studio Code. You can do the same, or just use Google AI in a browser tab until you get comfortable.

The key is to speak plainly in the prompt. For example:

“Can you write a complete Python script that I can copy into Visual Studio Code, which reads the Gramps XML file named ‘[actual filename]’, extracts the full name and birth date for all people, and writes them to a Markdown file called people.md?
Format the birth date as ‘dd. mmm. yyyy’.
Also explain how to install Python and how to run the script in the terminal.”

And one important thing:
If the AI gives you code that doesn’t run, or doesn’t do exactly what you want, don’t give up.
Just copy the error message from the terminal and paste it back to the AI. Or tell it:

“The script didn’t do what I wanted. Here is the exact output I got: [paste].
I want the result to look like this instead: [describe the format in your own words].”

After a few iterations, the AI will understand your instructions better and adjust the code.
This is completely normal — you almost always need two or three rounds before the script does exactly what you want.

And finally:
Always tell the AI that this is about the Gramps genealogy software project.
There are several unrelated software projects called “Gramps”, and if you don’t specify, the AI may confuse them. Just add a line like:

“This is for the Gramps genealogy software XML format.”

Once you’ve done one or two of these small tasks, everything else becomes much easier.


Once you start getting comfortable with giving the AI clear instructions — and the small scripts you “architect” actually run — you can take the next step and ask the AI to help you build a Gramplet. This is much easier than it sounds.

Even the Copilot panel in a browser is surprisingly good at:

  • setting up the correct file structure

  • generating the Python code

  • adding the right imports and dependencies

  • explaining where each file should go

  • and making sure the code matches the Gramps genealogy software API

Just make sure you always tell the AI:

“This is for the Gramps genealogy software project.”

There are several unrelated software projects called “Gramps”, and the AI may otherwise confuse them.

A nice thing about Gramplets is that they don’t need to be included in Gramps itself. You can keep them as local add‑ons. And the AI knows how to register a Gramplet so it appears exactly where you want it — sidebar, dashboard, person view, whatever.

Once you’ve done a few small scripts, asking the AI to build a Gramplet becomes a natural next step. You stay the architect, and the AI does the heavy lifting.


PS. One more thing that will save you a lot of frustration later:
save your conversations with the AI.

Just copy everything out and store it as a plain text file or a Markdown file. If you don’t already use a note system, that’s totally fine — but having a record of what you tried, what worked, and what didn’t is incredibly useful.

I use Obsidian and the FOAM extension in Visual Studio Code for this kind of technical note‑taking, but you can use anything you like.

Why this matters:

  • You can go back and see exactly what instructions produced working code.

  • You can copy the whole conversation back into the AI if your chat gets reset or the browser closes.

  • You can build your own little “playbook” of prompts and working scripts.

  • You avoid losing good solutions because of a refresh or a timeout.

Most AI clients save chats automatically, but not all of them — and not always reliably. Having your own copy means you’re never dependent on the UI.

If you can run gramps, you already have the Python source on your computer. The first time you run Gramps, it is the slowest start. That’s because it compiles each Python module into a __pycache__ for faster future use. The (free) addons are the same. You are welcome to hack any part of the program that doesnt suit your liking.

Most likely, you will be tweaking plugins: reports, import/export, gramplets, tools, filter rules… either built-in or add-on. For all of these, you can quickly located the module filepath and filename using the info section of Plugin Manager Enhanced addon. In debug mode, it even has a shortcut button to load the module into whatever editor you have associated with .py file type.

If you go to the Help category in this forum, there is a Manual subcategory. Pinned near the top is a thread with links to the various resources. Including a Developers Guide to the Gramps API in a Sphinx doc management system. It gives good insight into the parameter passing. And the “Simple” library offers a framework for GUI (tables, print formatting) and database access. If you want to bypass the GUI entirely, there are plugin shells for SQL queries, Python scripts and more. The SuperTool (contributed by the Isotammi group of Finland) does most of the include necessary to work with data in the active category. And its Help catalog is excellent. As is the collection of sample scripts.

You would do well to download the PDFs of the User Guides: for Gramps and for the Addons. If is FAR easier to search those 2 files than the thousands of Wiki pages.

Regarding AIs, I was alerted today when trying to submit a Gramplet update that the rules changed a bit again. But that might have been triggered by my use of GitHub’s Copilot. Apparently Copilot is unlikely to generated code compatible with the GPL licensing. So now I have to learn what will be necessary to become compliant.

If I enter a person’s event and I don’t want to enter a citation for it, who cares? If I don’t want to enter a source, who cares? If my citation has no source, who cares? If my source has no repository, who cares? You want to enter all that stuff?… be my guest. Make the connections, or leave them blank. Why force your methods onto me?

We do not force you. It is only so that you remember where you found this event and to be able to get it again. Will you remember in 10 years where you will find the event?

who is “we”, and yes, it sounds like you want to force everyone to enter information “your way”. If I choose to leave anything blank, that’s my problem. In the form I’ve displayed, you can clearly see if information is missing. I don’t think you, or anyone, should force me to enter something. If I want to enter just a name with nothing else, that’s my problem.

Huh? How do you reach that conclusion? Did you not read:

This is fascinating. So far I’ve downloaded Visual Studio Code, and GitHub Copilot and asked the AI to do create a form and some controls and…done. Amazing.

I cannot find a Gramps XML file. I’m using Linux Mint. Where might I find it?

You keep saying “We”. Who is “WE”?

I would have thought that by now you would have worked it out.

It’s obvious that anyone who is not you is by implication “WE”

Non-participant readers of this thread have started flagging your postings as being combative for no apparent reason. If something outside has irritated you, please don’t carry it over when responding to people who are just trying to be constructive.

This is a group of volunteers … not disinterested employees being paid to respond.

If the tone does not improve, this thread will be locked until everyone cools down.

At least one responder is a contributing Developer and I am a Moderator. So the ‘we’ mentioned is the volunteer developers who work to expand the capabilities of Gramps and to do community support. (You can look at the core ‘Team’ to see the people who volunteer for specific responsibilities. There is a very incomplete and outdated list of developers in the Credits tab of the Help->About dialog.) But Developers (and support volunteers) must work within the design constraints of the database. (We inherited that… and most design limits… constraint from complying with the GEDCOM standard.) And one of those constraints is that a record for “Citation” entry cannot be created in the Database without a “Source” record to reference.

But what is called a “Source” in Gramps may be different than what you are thinking.

A source is a Titled reference work… all the other elements are optional. The Title could be the name of a Book, a newspaper, a video, a web resource or even a Person’s name/job title. It is not from where/who the reference work sprouted. Citation has the details about the information being cited within that Reference Work. It could be a page number, a transcription, a description, whatever you like.

"It is important to remember that these aren’t ‘my methods’—these are universal research standards that have existed for centuries to ensure verifiability. They predate any modern software or manual.

When you request changes to a project like Gramps that would fundamentally undermine these standards, it is frankly inappropriate to push back against those pointing out why those standards exist. Correcting a request that contradicts established genealogical methodology isn’t ‘imposing a style’; it’s protecting the integrity of the tool and the data it produces. If you choose to ignore these practices privately, that’s your prerogative, but expecting a community project to adapt to non-standard, error-prone workflows is not a reasonable request."


So, I can ask the same from you, why do you want to force your faulty workflow on me?


If you’re looking for an advanced typewriter without strict standards, I’d recommend using Markdown and a tool like Obsidian. There, you can be as unstructured as you like.

I use Obsidian for all my own research, though I employ even more structured methods than what Gramps currently offers—integrating tools like Zotero for citations, Aeon Timeline for chronology, and Gephi for relationship mapping.

Gramps is a relational database designed for research integrity. If you want a non-standardized ‘note-taking’ flow, there are better tools for that than forcing a specialized genealogical database to degrade its core structure.


Claims without sources aren’t “your method.” They’re just fairy tales and fiction.

I see. Thank you. I think it’s important for people to introduce themselves, especially if they are acting for a group of developers or moderators. Like: “Hi, I’m a member of a group of Gramps developers and I’ve read your posts and I think… “ . Something like that would be very helpful.

I’m sorry, I misunderstood. I confused XML with XLS. I was looking for a database in spreadsheet form. Yeah, I know, I really am that stupid.

there is a group on facebook, i dont remember its name, but the guy administrating it has made a complete set with Excel templates for advanced genealogy research, but they are yet easy to use…

But, seriously, I recommend you to take a look at Obsidian, you can make MD-tables in a note if you like and link people with simple [[wiki-links]]…
then when you are ready for more advanced sources etc. start with a more fullended genealogy software…
If you can use Excel or Word, you can use Obsidian with a little reading… very simple, make one note for each person/object, source, place, event, write what you want, how you want and link information between the notes with wiki-links, to hold a little order, make folders for the different objects…

There is even a person that has made a plugin for genealogy for Obsidian where you can import/export information to and from Gramps…

My personal recommendation is to learn using Gramps and register your sources correctly… you will benefit from it when you start to get a few hundred people in your tree and need to double check who is who and where they fit…

… the FB group is this one Genedocs

the XML file I am talking about is an export format specific for Gramps, you find it under the meny Family Tree in Gramps, up on the left side corner and then “Export…”

Thank you very much. I appreciate it. I used to be very familiar with GEDCOM but it was a little limited in what it could do. I and even wrote a very cool tree drawing app from my family GEDCOM file which included more than a hundred family members. I got stuck trying to print it on a large sheet of paper (size E) and I kind of gave up after a while.