Hi all, after re-reading this thread, I noticed that I had missed a few questions/comments partly directed at me, apologies.
That could be very handy for people (like me) who want to try using R for some data analysis and presentation.
For that I don’t think an API is necessary. In fact I use Jupyter (with Python, but you mentioned you can also call the Python code from R) directly with the Gramps Python library to have fun with data analysis & visualization. This will become even easier once Gramps becomes pip-installable, which will allow doing this in a virtual environment.
Have you considered the possibility of keeping the WebApp a multi-user ‘Read Only’ database tool but adding a Feedback form that sends free-form edit suggestions to the webmaster?
That’s a great idea for allowing contributions from relatives but not trusting them with making direct edits (I see a lot of motivation for that)! I think this is “only” an issue of permissions and UI: it can be handled within Gramps as a note with a certain tag (TODO or something like that), so one would only have to make sure that a certain user only has API permissions to add new notes. The rest is “just” the UI implementation.
To me, this would be broken into maybe 3 parts - the web GUI (design), the API design, and the back-end (core) GRAMPS database. We’d want to be able to leverage as much from the existing core Gramps as possible, but I think most of it is GUI/front-end work, that would need to be totally re-done.
Fully agree. The backend should be almost completely covered by
gramps.gen, but one could make minor additions that make the use for the API easier without affecting the desktop app (such as this one). Concerning the frontend, I am working on one, but the great thing about a common API would be that there can be multiple different approaches/apps. Whether an “official” one will emerge I am not sure. At the moment it seems a bit too ambitious to me.
If our databases became accessible from the web, most definitely the owner would be able to set it as read-only. As far as being able to update a database from multiple users…I know most genealogists cringe at this idea, but if we could develop in a way that tracks changes, and easy revert, or like GIT where people can submit changes, for review.
If I think about my own use case, I would definitely want to keep it read-only for most users, perhaps allowing the “feedback as note” suggested by @emyoulation above. But I do see a use case also for allowing full edits - for instance, by myself when I’m sitting in an archive and don’t have my laptop with me. Or maybe for one or two select genealogists in my wider family whom I trust.
Having versioning with possible rollbacks is certainly intersting, but to do this in full generality seems too ambitious to me as it would probably require major changes to the database model, with no benefit for the deskstop app. More realistically, one could enable automated XML exports on every edit. (One could even think about making a pretty visualization of a diff between two Gramps XMLs, maybe somebody has already done that?)