Here you can find TS 38.331 version 19.0.0 in OpenDocument Text (ODT) format.
It was converted semi-automatically, i.e. the initial version was generated by LibreOffice, with subsequent polishing which was done partly manually and partly through the use of custom scripts.
The intention is to demonstrate that a complex specification such as 38.331 can be made more "lightweight" in ODT than in DOCX, and to verify that it is indeed faster (for loading, navigation and editing). An additional goal is to test how stable ODT tools (e.g. LibreOffice) are and how well it supported by other tools people may want to use.
## Figures and Embedded Objects
One major change I had to do is related to figures. As of today, 38.331 (and indeed all other specifications) include figures as embedded objects (in whatever format, which can be Visio, MSCgen, etc). Such objects are embedded using OLE, which is a Microsoft Windows technology not available on other platforms. Therefore, to make it truly cross-platform, I've converted all the drawable objects to .PNG images (it doesn't have to be PNG, in fact SVG would be better, however there is no easy way to convert a raster image to a vetor image in SVG).
Furthermore, as we are likely to want to maintain our images not in SVG (at least not in all cases), but in some sort of editable format (e.g. MSCgen, PlantUML, Mermaid, etc), this probably implies that the "source code" (e.g. PlantUML) would need to be maintained in separate files, from which images (e.g. PNG or SVG) would be generated automatically. To make use of those generated images in an .ODT document, the best way is to "link" them as opposed to embedding them in the ODT document. To demonstrate how this is done, all the images are stored in a folder and linked to from ODT.
> **Note:** We will have to do something similar with DOCX too, if we chose to keep it.
## Math
All the equations have been converted into OpenFormula and these are the only embedded objects in the document. They are cross-platform and editable.
## Cleanup
As one of the goals is to improve loading and editing speed, we've done some cleanup, specifically:
- Removed non-essential boilterplate (e.g. generic hooters and headers)
- Removed bookmarks (NOT table of contents, ToC is there) where were added for no good reason
- Removed "weird metadata" which the document had quite a bit (including a reference to one company's Sharepoint!)
- Removed most (but not all) custom styles - the document had hundreds
## Automatic tools
As mentioned in our contribution, with ODT it becomes possible to write tools to verify the specs are compliant with whatever ODT restrictions we may chose to impose (and I think we would need to). An example of such script is provided in <code>verify_odt.py</code>.
⚠ Found 1 orphaned image file(s) (not linked in document):
⚠ - 10000001000005980000015E4CD415F8.png
⚠ Found 4383 custom/automatic style(s)
ERRORS:
✗ Found 1 missing image file(s):
✗ - 10000001000005980000015F3C0FC9FF.png
✗ Too many fonts used: 22 (maximum allowed: 10)
✗ Fonts used: Arial, Arial1, Arial2, Batang, Calibri, Courier New, DengXian, Lucida Sans, Lucida Sans1, MS Mincho, Malgun Gothic, Microsoft YaHei, Monotype Sorts, Segoe UI, SimSun, Tahoma, Times New Roman, Times New Roman1, Times New Roman2, TimesNewRomanPSMT, 游ゴシック Light, 游明朝