Supported ontology changes

The ontology is a predefined schema for data, that is well-defined and shared between applications. It can be considered an API, and as such we try to keep it as stable as possible.

But it happens that the ontologies can have a bug or an addition has to be made. Tracker "compiles" the ontology into a relational database, and modifying the schema is non-trivial and not always possible.

Here you can find a list of the possible ontology changes and the support status in Tracker's implementation.

The possible status are:

  • Done: already supported in the code
  • In progress: we are working on it
  • Doable: it is possible but not in the roadmap
  • Not supported: some technical reason prevent this to be implemented on tracker
  • To investigate: more info is needed before we make a decision

The possible Automated test status are:

  • No: not tested yet
  • Yes: functional test available

  • Yes (EF): functional test available but marked as expectedFailure. These cases will probably work with the new journaling.

  • Yes (card. 1): It seems the code paths doing the modifications in properties with cardinality 1 or N is completely different. This change is tested on properties with cardinality 1. but not on properties with cardinality N.

Change

Status

Comments

Automated test

--disable-journal

Add new class

Done

YES

YES

Add new property

Done

YES

YES

Add new .ontology file

Done

But not supported for apps

YES

Add a tracker:domainIndex

Done

YES

YES

Remove a tracker:domainIndex

Done

YES

YES

Remove a class

Done

Still on DB unless journal replay is forced

YES

YES

Remove a property

Done

Still on DB unless journal replay is forced

YES

YES

Remove .ontology file

?

Superclass: add/remove superclass of a class

Done

YES (EF removing the subClassOf relation)

NO

Superclass: change superclass of a class

?

NO

Superclass: add 2nd superclass of a class

?

NO

Change superproperty of a property

?

NO

Change property's range int/double to string

Done

YES (card. 1)

YES

Change property's range string to int/double

Done

YES (card. 1)

YES

Change property's range date to string

Done

YES (card. 1)

YES

Change property's range string to date

Done

YES (card. 1)

NO

Change property's range any to resource

?

Change property's resource to any

?

Change property's domain to superclass

Done

Move a property to a superclass

YES (promotion/relegation with 1 and n cardinality)

NO

Change tracker:fullTextIndex in a property

?

YES

Change tracker:notify in a property

Done

YES

YES

Change tracker:writeback in a property

Done

YES

Change tracker:indexed in a property

Done

YES

YES

Change nrl:maxCardinality in a property

Done

YES but only from 1 to N)

YES but only from 1 to N

Attic/Tracker/Documentation/SupportedOntologyChanges (last edited 2023-08-14 12:50:00 by CarlosGarnacho)