I'm currently in the preparation for my master thesis, starting in a few days.
My task is, roughly speaking, to extend ODK1 with an RDF export.
My current plan is to first use a static RDF-template file that the collected data could be inserted into (basically a "proof of concept") and later to extend ODK Build to allow the user to interactively build such a template (provided there is enough time..).
So I'm currently trying to understand the structure of the ODK Aggregate code to find a starting point for my extension.
I assume that such an undertaking should be started by going through the steps of the CSV or JSON export to understand the workflow and use this as a starting point?
Or is there any sort of guide on how to build an additional data-export functionality? If so, I'd be thrilled if someone pointed me to it.
Thanks for your interest in ODK!
I'd suggest focusing on other ODK tools like Briefcase or Central, instead of Aggregate. Aggregate is on sunset mode, meaning that we will be adding only bug fixes and security improvements. Aggregate will be eventually replaced by Central during the next months and I'm afraid that adding a new export format in Aggregate won't have a very long run for end users.
Also, Aggregate is quite complex due to having to support 4 different database backends, decomposing forms into DB tables, and having to deal with both synchronous tasks and a background queue of tasks.
Briefcase and Central have a more modern codebase, better testing infrastructure, and they're easier to work in overall. You could extend both Briefcase's and Central's data exporting features to add support for RDF.
If you still want to work in Aggregate, yes, that would the first thing to do. There is no defined process for adding new export formats.
Best of luck!
thanks a lot for the reply!
This is actually the first time I've heard about ODK Central so I'll make sure to have a look at it.
I will discuss with my supervisors whether it suits the timeframe to switch over to the tools you mentioned.