1. 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 |