This is a catch-all blog post outlining the final modifications I made to SWO prior to the 1.5 release. This will be the last bit of work I am doing (for the moment) on SWO as I have reached the end of this contract – it’s been fun!
- Resolved tracker items
- has specified data input / has specified data output: We decided to put these two properties as children of the RO properties “has input” and “has output”. Our properties have a very specific meaning and should remain distinct, but it also makes sense that they are children of the more general relations.
- The original intent of is encoded in was to link both a programming language to software *and* a data format specification to data. This is exemplified by the original definition in SWO of is encoded in: “Relationship between data or software and the format used to specify the syntax”. Since that time, we have introduced the relation has format specification to use for the latter situation between data and data format. To make its association with is encoded in clear, we have refactored it as a child of is encoded in. The definitions have been modified accordingly.
- moved has declared status, has clause and has license to be children of is about, which is an IAO term whose domain and range are information content entities. This does not change any modelling or anything within SWO other than the hierarchy of these relationships to make things more clear.
- Added the software Segway 1.2 and associated classes
- Added a number of formats as described in https://sourceforge.net/p/theswo/swo-term-request/1/
- Back in 2011, James wrote this post about data I/O. Basically it said we might model software and its data I/O in one of two ways: firstly, via “is executed in” and the associated information processing; secondly, more directly from data to software without this “is executed in”. The justification for the first was that data I/O is only relevant during execution, and the justification for the second was that “the data is declared at the level of the software and whether this is used in the process is effectively irrelevant for the primary description; the software can use these sorts of data and that is enough to describe it.”
In practice the decision was to connect data and software more directly, without the “is executed in”. We still use “is executed in” a lot in SWO, but mainly to link software to types of information processing without tying that processing to data I/O. This decision was codified in the SWO paper and associated diagrams. There was no change to SWO for this, but it is worth including the discussion here so we know it was a deliberate change from earlier drafts of software modelling.