fragment_downloaded_cb({"url":"defining-ontologies.html#updating-an-ontology","fragment":"Updating an ontology\nAs software evolves, sometimes changes in the ontology are unavoidable.\nTracker can transparently handle certain ontology changes on existing\ndatabases.\nAdding a class.\nRemoving a class.\nAll resources will be removed from this class, and all related\nproperties will disappear.\nAdding a property.\nRemoving a property.\nThe property will disappear from all elements pertaining to the\nclass in domain of the property.\nChanging rdfs:range of a property.\nThe following conversions are allowed:\nAdding and removing nrl:domainIndex from a class.\nAdding and removing nrl:fulltextIndexed from a property.\nChanging the nrl:weight on a property.\nRemoving nrl:maxCardinality from a property.\nHowever, there are certain ontology changes that Tracker will find\nincompatible. Either because they are incoherent or resulting into\nsituations where it can not deterministically satisfy the change\nin the stored data. Tracker will error out and refuse to do any data\nchanges in these situations:\nThe recommendation to bypass these situations is the same for all,\nuse different property and class names and use SPARQL to manually\nmigrate the old data to the new format if necessary.\nHigh level code is in a better position to solve the\npossible incoherences (e.g. picking a single value if a property\nchanges from multiple values to single value). After the manual\ndata migration has been completed, the old classes and properties\ncan be dropped.\n\n\nxsd:integer to xsd:bool, xsd:double and xsd:string\n\n\nxsd:double to xsd:bool, xsd:integer and xsd:string\n\n\nxsd:string to xsd:bool, xsd:integer and xsd:double\n\n\n\nProperties with rdfs:range being xsd:bool, xsd:date, xsd:dateTime,\nor any other custom class are not convertible. Only conversions\ncovered in the list above are accepted.\nYou can not add rdfs:subClassOf in classes that are not being\nnewly added. You can not remove rdfs:subClassOf from classes.\nThe only allowed change to rdfs:subClassOf is to correct\nsubclasses when deleting a class, so they point a common\nsuperclass.\nYou can not add rdfs:subPropertyOf to properties that are not\nbeing newly added. You can not change an existing\nrdfs:subPropertyOf unless it is made to point to a common\nsuperproperty. You can however remove rdfs:subPropertyOf from\nnon-new properties.\nProperties can not move across classes, thus any change in\nrdfs:domain is forbidden.\nYou can not add nrl:maxCardinality restrictions on properties that\nare not being newly added.\nYou can not add nor remove nrl:InverseFunctionalProperty from a\nproperty that is not being newly added.\n\n"});