This file is indexed.

/usr/share/gtk-doc/html/libtracker-sparql/updating-ontology.html is in libtracker-sparql-doc 2.0.3-1ubuntu4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Updating an ontology: Tracker SPARQL Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="Tracker SPARQL Library Reference Manual">
<link rel="up" href="tracker-ontologies.html" title="Part IV. Defining ontologies">
<link rel="prev" href="accompanying-metadata.html" title="Accompanying metadata">
<link rel="next" href="tracker-private-store.html" title="Part V. Isolating tracker-store clients">
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="tracker-ontologies.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="accompanying-metadata.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="tracker-private-store.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="updating-ontology"></a>Updating an ontology</h2></div></div></div>
<p>
      As software evolves, sometimes changes in the ontology are unavoidable.
      Tracker can transparently handle certain ontology changes on existing
      databases.
    </p>
<p><b><code class="systemitem">Adding a class.</code> </b></p>
<p><b><code class="systemitem">Removing a class.</code> </b>
	All resources will be removed from this class, and all related
	properties will disappear.
      </p>
<p><b><code class="systemitem">Adding a property.</code> </b></p>
<p><b><code class="systemitem">Removing a property.</code> </b>
	The property will disappear from all elements pertaining to the
	class in domain of the property.
      </p>
<p><b><code class="systemitem">Changing rdfs:range of a property.</code> </b>
	The following conversions are allowed:
      </p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p></p></td>
<td>xsd:integer to xsd:bool, xsd:double and xsd:string</td>
</tr>
<tr>
<td><p></p></td>
<td>xsd:double to xsd:bool, xsd:integer and xsd:string</td>
</tr>
<tr>
<td><p></p></td>
<td>xsd:string to xsd:bool, xsd:integer and xsd:double</td>
</tr>
</tbody>
</table></div>
<p><b><code class="systemitem">Adding and removing tracker:domainIndex from a class.</code> </b></p>
<p><b><code class="systemitem">Adding and removing tracker:fulltextIndexed from a property.</code> </b></p>
<p><b><code class="systemitem">Changing the tracker:weight on a property.</code> </b></p>
<p><b><code class="systemitem">Removing nrl:maxCardinality from a property.</code> </b></p>
<p>
      However, there are certain ontology changes that Tracker will find
      incompatible. Either because they are incoherent or resulting into
      situations where it can not deterministically satisfy the change
      in the stored data. Tracker will error out and refuse to do any data
      changes in these situations:
    </p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p></p></td>
<td>
	Properties with rdfs:range being xsd:bool, xsd:date, xsd:dateTime,
	or any other custom class are not convertible. Only conversions
	covered in the list above are accepted.
      </td>
</tr>
<tr>
<td><p></p></td>
<td>
	You can not add rdfs:subClassOf in classes that are not being
	newly added. You can not remove rdfs:subClassOf from classes.
	The only allowed change to rdfs:subClassOf is to correct
	subclasses when deleting a class, so they point a common
	superclass.
      </td>
</tr>
<tr>
<td><p></p></td>
<td>
	You can not add rdfs:subPropertyOf to properties that are not
	being newly added. You can not change an existing
	rdfs:subPropertyOf unless it is made to point to a common
	superproperty. You can however remove rdfs:subPropertyOf from
	non-new properties.
      </td>
</tr>
<tr>
<td><p></p></td>
<td>
	Properties can not move across classes, thus any change in
	rdfs:domain forbidden.
      </td>
</tr>
<tr>
<td><p></p></td>
<td>
	You can not add nrl:maxCardinality restrictions on properties that
	are not being newly added.
      </td>
</tr>
<tr>
<td><p></p></td>
<td>
	You can not add nor remove nrl:InverseFunctionalProperty from a
	property that is not being newly added.
      </td>
</tr>
</tbody>
</table></div>
<p>
      The recommendation to bypass these situations is the same for all,
      use different property and class names and use SPARQL to manually
      migrate the old data to the new format if necessary.
    </p>
<p>
      High level code is in a better position to solve the
      possible incoherences (e.g. picking a single value if a property
      changes from multiple values to single value). After the manual
      data migration has been completed, the old classes and properties
      can be dropped.
    </p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27</div>
</body>
</html>