In a previous post we considered our initial model for describing software and the components required. As we continue to collect requirements from the user community and being to test this model with some actual software descriptions two things have become clear.
Firstly, that the initial model is not adequate to capture all that is needed by the community. To some extent, this was inevitable as the initial model was precisely this; an initial prototype which we would build on. At least three other features of software have emerged as important to the curation and digital preservation community and we have expanded the model to also cover these, as seen in the figure highlighted in blue. These additional features are operating system on which the software can be executed, version information and licensing. We previously discussed some of these issues in blogs on versioning, licensing and operating systems.
Secondly, that a software ontology is made of potentially modular components which may usefully be separate ontologies. Each one of the boxes in red and the three new components in blue could potentially separated into individual ontologies each with a rich description of the area they model. There are some reasons we might consider this module approach to building the software ontology.
Firstly, a modular approach would facilitate reuse. Licenses, for instance, can apply to many domains such as literature publishing and images. Organizations may have many more functions than producing and publishing software. Data formats have an impact on almost all software and data, beyond the scope of the SWORD project.
Secondly, the approach enables concurrent editing. A lack of viable tooling for concurrent ontology editing in OWL makes working on a single OWL ontology file problematic; in this modular manner, separate files can be operated on and imported back together to integrate components.
Thirdly, that having a “core” set of classes in a single OWL file, representing just the “upper ontology of software”, that is the key structures under which other classes and individuals should be subclassed and composed, allows other ontology developers to develop under a similar framework without having to use the full SWO. This may be desirable for those working in other fields, such as business applications, real-time systems or even computer games.
We will be checking in the various files along with a read me into the SWO SourceForge repository.