Summary
One of the main goals achived with this release was to develop Gradle Task interfaces to the various analysis tools provided by openCAESAR. This allows invoking those tools conveniently from Gradle build script and tying them together with Gradle task dependencies to develop analysis chains. We used this capability to create Gradle build scripts for the vocabularies and firesat example repos that invoke the oml2owl
, owl-reason
and oml2bikeshed
tools. We also created Travis CI scripts that invoked those Gradle scripts on every commit. We also published the sources of these repos to Bintrary (Maven repo). This allows these repos to declare dependencies on each other using maven semantic coordinates, as opposed to using Git submodules, as done before.
Another goal of this releasae was to develop the FireSat example to demonstrate the use of a System Engineering methodology (using JPL’s foundation vocabularies) to describe and analyze a mission/project. In this release, we created the descriptions, analyzed them with a DL reasoner, and generated Bikeshed documentation for them. In future releases, we will refine the description, add more analyses, and dissiminate the ideas.
OML
- Add the concept of
description bundle
to aggregate a set of descriptions models to reason on together as a dataset. - Made some classes in the OML metamodel abstract since they should not be instantiated.
- Introduced
OmlCatalog
as a wrapper class for ApacheCatalog
class with utility functions. - Fixed the OML parser to allow the ‘:’ symbol to be surrounded by no whitespace space (reported by T-Systems, thanks!).
- Fixed typoes in the name of some APIs.
- Fixed a NPE with the
OmlWriter
API. - Added an action to the OML tree editor to load an imported ontology from an import statement.
- Fixed an exception in the OML tree editor lwhen oading some elements types.
- Added description of graphical notation to the different element sections in the Concrete Syntax chapter of the OML Specification. (contributed by Damian Rivas, thanks!)
Vocabularies
- Added a Gradle build script that invokes OML analysis tools (
oml2owl
,owl-reason
andoml2bikeshed
) on the ontologies. - Created a Travis CI script that invokes the Gradle build script on every commit.
- Published the source ontologies as a zip artifact to Bintray with a semantic version.
FireSat Example
- Organized the ontologies in the example to attribute the descriptions to the proper level of authority: program (mission), project (spascecraft), workpackage (subsystems), etc.
- Added description of reequiements and functional decompositions, and allocated them to components in the spacecraft (based on work by Geoff Lecourtois, thanks!).
- Added a Gradle build script that invokes OML analysis tools (
oml2owl
,owl-reason
andoml2bikeshed
) on the ontologies. - Made the Gradle script declare the vocabularies used as a dependency, as opposed to getting them by submoduling the vocabulary’s Git repository.
- Created a Travis CI script that invokes the Gradle build script on every commit.
- Published the source ontologies as a zip artifact to Bintray with a semantic version.
OML Rosetta WB
- Added Git and Gradle frameworks support to the workbench out of the box.
- Fixed the published Eclipse
p2
repo to install the OML as a dependency when Rosetta is intalled into an existing Eclipse. - Added
EMF Compare
extensions to better support compare/merge for OML models expressed in XMI. - Added creation wizards to make it easy to create new OML models.
OML Eclipse WB
- Supported v0.7.3 of the OML Language Server.
OML Theia WB
- Supported v0.7.3 of the OML Language Server.
OML VSCode/Gitpod WB
- Supported v0.7.3 of the OML Language Server.
- You can now click on a link to edit the vocabulary repo using Gitpod environment in the cloud (zero installation)!
OWL Adapter
- Fixed the mapping of RelationEntityPredicate to OWL.
- Added some missing dependencies to the Gradle build instructions.
- Added a Gradle Task interface as another way to invoke the adapter.
- Improved the mapping of the OML catalog to the OWL catalog.
- Ported the Bundle Closure algorithm to Java in anticipation of releasing it as an independent library in the owl-tools repo soon.
- Changed the adapter CLI to accept paths to OML/OWL catalogs instead of OML/OWL folders.
DocBook Tools
- Developed an initial version of a CLI that can process a DocBook template that has custom high-level tags and replace them by DocBook regular tags.
- Designed a library of XML tags that can pull information dynamically from OML models (contributed by David Truong, thanks!)
- Added the capability to render a dockbook to HTML or PDF and style it using a set of XSL/CSS sheets.
- Added a Gradle Task interface so the CLI can be invoked using a Gradle build script.
OML Tools
- Moved the
oml2bikeshed
CLI to theoml-tools
repo. - Added a Gradle Task interface to
oml2bikeshed
so it can be invoked from Gradle scripts. - Changed the CLI interface to take an OML catalog instead of an OML folder.
- Upgraded the dependency to the lastest
Bikeshed
tool. - Added a new
oml-merge
tool to merge two or more OML catalogs into one by making a union of the axioms. The tool can be used when integrating multiple datasets. - Added a Gradle Task interface to
oml-merge
so it can invoked from Gradle scripts.
OWL Tools
- Developed
owl-load
andowl-query
as CLIs to faciliate interfacing with a SPARQL endpoint published by a graph database (contributed by David Truong, thanks!) - Added Gradle Task interfaces to
owl-load
,owl-query
andowl-reason
tools to invoke them from Gradle build scripts. - Changed the interface of
owl-reason
to take an ontology IRI as input, and an ontology IRI as output where inferred entailements will be saved. - Made the
owl-reason
tool save the result of reasoning in the form of a Junit result file. -
Improved the analysis results with a concise one sentence explanation and added a minimal ontology that demonstrates the reported problem.
For more information, please contact Maged Elaasar.