opencaesar / community

The openCAESAR community
3 stars 1 forks source link

[QUESTION] -How does a project team get started? #8

Closed mprather closed 1 year ago

mprather commented 3 years ago

Is there are good tutorial that outlines how a team would start from a blank page with the goal of creating a project that works with OpenCAESAR?

For example, if you work with Visual Studio (or any advanced IDE), there's an opportunity to "Create New Project". This then gives you a skeleton from which to work.

In essence, what is the skeleton structure needed by the OpenCAESAR system?

Exploring deeper in what is a OpenCAESAR project and building tools that will interact with those types of projects, the following questions then emerge:

melaasar commented 3 years ago

There are some existing ways to start on an OML project from scratch (but of course more can be done):

  1. Clone/fork the oml-template project

A good way to create an OML project that is IDE independent, and gives you git integration out of the box is to clone/fork the oml-template project. This comes with representative ontologies to get you started, along with a gradle build with a pipeline to reason on the ontologies.

  1. Use Add New Project wizard in OML Rosetta

In (Eclipse-based) OML-Rosetta, you can selection action File -> New... -> Project -> Oml -> Oml Project, specify some info for your first ontology, and you will get a project template to start from (additional ontologies can be created by File -> New ..-> Oml -> Oml Model. We do not have a similar capability in (VS Code-based) Oml Luxor yet, so if you like to see that also, please open a feature request on oml-luxor, and/or contribute a PR for this and we can review it.

Re: validation of work along the way, the gradle build task in the resulting OML project can be used to validate the OML files. Further validation can be done by writing owl queries or shacl rules and invoking the owlQuery and/or the owlShacl tasks.

melaasar commented 3 years ago

Re: Is there an adapter interface that can be utilized?

OML has an API that can be used to develop adapters, which are transformations between OML and other formats. There are some existing adapters for OWL, Ecore, and Papyrus UML. I don't yet have an adapter-template project in Github to represent a simple starting point, but those mentioned adapters can be inspected for such example. If you like to see a template adapter project documented in its own repo, please open a ticket on the OML repo itself.

melaasar commented 3 years ago

Re: Should tools stay within the OML realm or should they go as far as working with RDF?

I think for ontology authoring and IDE integration needs, OML provides a good option since a) it represents a small subset of OWL2 that is well suited for systems engineering, and b) it provides an API that conforms to modern Java tool stacks liike EMF, Xtext, Gitpod, etc.

OML also has a ready adapter to OWL. This opens up OML models to all the analytical tools for OWL including reasoners, query/validation languages, triple stores (graph databases) etc.

For going beyond OML and OWL for analysis needs, one could either go from OML -> other analysis tools directly (this allows for ex use many EMF based transformation languages like QVT, ATL, ETL, etc), or OML -> OWL -> other analysis tools, if going through OWL makes it easier (like if you need to use the inferred axioms).