Open tomschr opened 8 years ago
Hi Tom,
this looks very interesting... (edited your post, so your questions are numbered)
I am not sure about either the FODS or the CSV you provided as the source (though the CSV seems better). Having worked with an FODT on my thesis, I can tell you that LibreOffice is emphatically not git-compatible. It does not do minimal diffs, it will always rename what styles are called in your document source, and occasionally you get superfluous span-like elements. If you want useful diffs (e.g. to look up when an item changed) from a LibreOffice-compatible file, the CSV seems much better. At the same time, CSVs can't store any markup and are a bit hard to edit by hand (counting columns is not so fun), especially in the case of long CSVs. I guess they could be made to work though with enough toolchain for editing and validation though.
In any case, here are some ideas of what kinds of things the ideal format should support (wishful thinking, of course):
In terms of functionality, what I think would be necessary (could be separated among multiple executables):
Thanks for the feedback, great! :+1:
I am not sure about either the FODS or the CSV you provided as the source (though the CSV seems better).
Right, the .fods was just added as a format for "easier" editing. Although this could also be done by CSV, if possible.
[...]
I like all of your comments. Especially the separation of concerns (separate tools for our audience) is a good idea.
Should we define some workflows first? Or design the entries in our database? Maybe I start with some workflows first as it could also influence our database design.
The following describes the typical admin workflows. Not sure if it makes all sense, it is definitely not carved in stone. Feel free to correct it. :smiley:
For the time being, we define "database" as a file somewhere in the filesystem. It could be a pickle, shelve, or a sqlite file. Of course, the code should be easily extensible to anything different like MariaDB, PostgreSQL, or whatever database is out there. As long as there are Python bindings. :smirk:
termadmin
script to create the database (file). The script expects a location, a name, and a type (pickle, shelve, or sqlite). The name is used to differentiate between different terminology databases.~/.config/suse/terminology.conf
.termadmin
script to import a CSV file. The script expects the name of the terminology database and the CSV file.csv
module.termadmin
script to import a CSV file. The script expects the name of the terminology database and the CSV file.(Question: Not entirely sure about this)
termadmin
script. The script expects the name of the terminology database and some parameters(?)
@sknorr: This may be probably interesting for you. ;-) We talked last week about this.
This is the very, very first draft of a "terminology system". The bare bones of the idea is there, it needs to be filled with the real implementation. I've created two terminology files, both as .fodt (Flat LibreOffice XML) and .csv. Fee free to change/correct/amend it.
Of course, test cases, documentation, and the Python infrastructure needs to be created too.
Some questions about this crazy idea:
Some further ideas to discuss: