annotate sites/all/modules/rdfx/rdfx.install @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * @file
danielebarchiesi@4 5 * Install, update and uninstall functions for the rdfx module.
danielebarchiesi@4 6 */
danielebarchiesi@4 7
danielebarchiesi@4 8 /**
danielebarchiesi@4 9 * Implements hook_schema().
danielebarchiesi@4 10 */
danielebarchiesi@4 11 function rdfx_schema() {
danielebarchiesi@4 12 $schema['rdfx_vocabulary_graphs'] = array(
danielebarchiesi@4 13 'description' => 'Vocabulary graph, including stubs for any external terms.',
danielebarchiesi@4 14 'fields' => array(
danielebarchiesi@4 15 'gid' => array(
danielebarchiesi@4 16 'description' => 'Graph ID.',
danielebarchiesi@4 17 'type' => 'serial',
danielebarchiesi@4 18 'unsigned' => TRUE,
danielebarchiesi@4 19 'not null' => TRUE,
danielebarchiesi@4 20 ),
danielebarchiesi@4 21 'main_ns' => array(
danielebarchiesi@4 22 'description' => 'The {rdfx_namespaces}.nsid for this vocabulary.',
danielebarchiesi@4 23 'type' => 'int',
danielebarchiesi@4 24 'unsigned' => TRUE,
danielebarchiesi@4 25 'not null' => TRUE,
danielebarchiesi@4 26 'default' => 0,
danielebarchiesi@4 27 ),
danielebarchiesi@4 28 'date_created' => array(
danielebarchiesi@4 29 'description' => 'The Unix timestamp when the vocabulary was created or imported.',
danielebarchiesi@4 30 'type' => 'int',
danielebarchiesi@4 31 'not null' => TRUE,
danielebarchiesi@4 32 'default' => 0,
danielebarchiesi@4 33 ),
danielebarchiesi@4 34 'date_updated' => array(
danielebarchiesi@4 35 'description' => 'The Unix timestamp when the vocabulary was updated.',
danielebarchiesi@4 36 'type' => 'int',
danielebarchiesi@4 37 'not null' => TRUE,
danielebarchiesi@4 38 'default' => 0,
danielebarchiesi@4 39 ),
danielebarchiesi@4 40 ),
danielebarchiesi@4 41 'primary key' => array('gid'),
danielebarchiesi@4 42 );
danielebarchiesi@4 43
danielebarchiesi@4 44 $schema['rdfx_namespaces'] = array(
danielebarchiesi@4 45 'description' => 'Namespace mappings defined in the vocabulary graph. Mappings are defined on a per graph basis (i.e. foaf will be defined multiple times, once for each vocabulary graph that uses foaf terms).',
danielebarchiesi@4 46 'fields' => array(
danielebarchiesi@4 47 'nsid' => array(
danielebarchiesi@4 48 'description' => 'Namespace ID.',
danielebarchiesi@4 49 'type' => 'serial',
danielebarchiesi@4 50 'unsigned' => TRUE,
danielebarchiesi@4 51 'not null' => TRUE,
danielebarchiesi@4 52 ),
danielebarchiesi@4 53 'gid' => array(
danielebarchiesi@4 54 'description' => 'The {rdfx_vocabulary_graphs}.gid of the graph that defined this mapping.',
danielebarchiesi@4 55 'type' => 'int',
danielebarchiesi@4 56 'unsigned' => TRUE,
danielebarchiesi@4 57 'not null' => TRUE,
danielebarchiesi@4 58 'default' => 0,
danielebarchiesi@4 59 ),
danielebarchiesi@4 60 'prefix' => array(
danielebarchiesi@4 61 'description' => 'The prefix as defined by the user for the main namespace, and by the source file for the additional namespaces.',
danielebarchiesi@4 62 'type' => 'varchar',
danielebarchiesi@4 63 'length' => '255',
danielebarchiesi@4 64 'not null' => FALSE,
danielebarchiesi@4 65 ),
danielebarchiesi@4 66 'uri' => array(
danielebarchiesi@4 67 'description' => 'The URI as defined by the user for the main namespace, and by the source file for the additional namespaces.',
danielebarchiesi@4 68 'type' => 'varchar',
danielebarchiesi@4 69 'length' => '255',
danielebarchiesi@4 70 'not null' => TRUE,
danielebarchiesi@4 71 ),
danielebarchiesi@4 72 ),
danielebarchiesi@4 73 'primary key' => array('nsid'),
danielebarchiesi@4 74 'unique keys' => array(
danielebarchiesi@4 75 'gid_uri' => array('gid', 'uri'),
danielebarchiesi@4 76 ),
danielebarchiesi@4 77 );
danielebarchiesi@4 78
danielebarchiesi@4 79 $schema['rdfx_terms'] = array(
danielebarchiesi@4 80 'description' => 'Terms defined or used in the vocabulary graph. Terms are stored on a per graph basis (i.e. foaf:Person will be stored once for each vocabulary graph that asserts something about it).',
danielebarchiesi@4 81 'fields' => array(
danielebarchiesi@4 82 'tid' => array(
danielebarchiesi@4 83 'description' => 'Term ID.',
danielebarchiesi@4 84 'type' => 'serial',
danielebarchiesi@4 85 'unsigned' => TRUE,
danielebarchiesi@4 86 'not null' => TRUE,
danielebarchiesi@4 87 ),
danielebarchiesi@4 88 'nsid' => array(
danielebarchiesi@4 89 'description' => 'The {rdfx_namespaces}.nsid for this term.',
danielebarchiesi@4 90 'type' => 'int',
danielebarchiesi@4 91 'unsigned' => TRUE,
danielebarchiesi@4 92 'not null' => TRUE,
danielebarchiesi@4 93 'default' => 0,
danielebarchiesi@4 94 ),
danielebarchiesi@4 95 'local_name' => array(
danielebarchiesi@4 96 'description' => 'The local name of this term.',
danielebarchiesi@4 97 'type' => 'varchar',
danielebarchiesi@4 98 'length' => '255',
danielebarchiesi@4 99 'not null' => FALSE,
danielebarchiesi@4 100 'default' => '',
danielebarchiesi@4 101 ),
danielebarchiesi@4 102 ),
danielebarchiesi@4 103 'primary key' => array('tid'),
danielebarchiesi@4 104 'unique keys' => array(
danielebarchiesi@4 105 'nsid_ln' => array('nsid', 'local_name'),
danielebarchiesi@4 106 ),
danielebarchiesi@4 107 );
danielebarchiesi@4 108
danielebarchiesi@4 109 $schema['rdfx_term_types'] = array(
danielebarchiesi@4 110 'description' => 'The RDFS and OWL types that apply to the term. Only terms within the main_ns of a vocabulary graph should have term types.',
danielebarchiesi@4 111 'fields' => array(
danielebarchiesi@4 112 'tid' => array(
danielebarchiesi@4 113 'description' => 'The {rdfx_terms}.tid of the term.',
danielebarchiesi@4 114 'type' => 'int',
danielebarchiesi@4 115 'unsigned' => TRUE,
danielebarchiesi@4 116 'not null' => TRUE,
danielebarchiesi@4 117 ),
danielebarchiesi@4 118 'type' => array(
danielebarchiesi@4 119 'description' => 'The term type. Types should use defined constants.',
danielebarchiesi@4 120 'type' => 'varchar',
danielebarchiesi@4 121 'length' => '32',
danielebarchiesi@4 122 'not null' => TRUE,
danielebarchiesi@4 123 ),
danielebarchiesi@4 124 ),
danielebarchiesi@4 125 'primary key' => array('tid', 'type'),
danielebarchiesi@4 126 );
danielebarchiesi@4 127
danielebarchiesi@4 128 $schema['rdfx_vocabulary_details'] = array(
danielebarchiesi@4 129 'description' => 'Additional information about a vocabulary.',
danielebarchiesi@4 130 'fields' => array(
danielebarchiesi@4 131 'gid' => array(
danielebarchiesi@4 132 'description' => 'The {rdfx_vocabulary_graphs}.gid of the vocabulary graph.',
danielebarchiesi@4 133 'type' => 'int',
danielebarchiesi@4 134 'unsigned' => TRUE,
danielebarchiesi@4 135 'not null' => TRUE,
danielebarchiesi@4 136 ),
danielebarchiesi@4 137 'language' => array(
danielebarchiesi@4 138 'description' => 'The language code. Language codes should follow the format in _locale_get_predefined_list() in includes/iso.inc.',
danielebarchiesi@4 139 'type' => 'varchar',
danielebarchiesi@4 140 'length' => '12',
danielebarchiesi@4 141 'not null' => TRUE,
danielebarchiesi@4 142 ),
danielebarchiesi@4 143 'label' => array(
danielebarchiesi@4 144 'description' => 'The name of the vocabulary in language.',
danielebarchiesi@4 145 'type' => 'varchar',
danielebarchiesi@4 146 'length' => '255',
danielebarchiesi@4 147 'not null' => FALSE,
danielebarchiesi@4 148 ),
danielebarchiesi@4 149 'description' => array(
danielebarchiesi@4 150 'description' => 'The description of the vocabulary in language',
danielebarchiesi@4 151 'type' => 'varchar',
danielebarchiesi@4 152 'length' => '4095',
danielebarchiesi@4 153 'not null' => FALSE,
danielebarchiesi@4 154 ),
danielebarchiesi@4 155 ),
danielebarchiesi@4 156 'primary key' => array('gid', 'language'),
danielebarchiesi@4 157 );
danielebarchiesi@4 158
danielebarchiesi@4 159 $schema['rdfx_term_details'] = array(
danielebarchiesi@4 160 'description' => 'Additional information about a term. Only terms within the main_ns of a vocabulary graph should have term details.',
danielebarchiesi@4 161 'fields' => array(
danielebarchiesi@4 162 'tid' => array(
danielebarchiesi@4 163 'description' => 'The {rdfx_terms}.tid of the term.',
danielebarchiesi@4 164 'type' => 'int',
danielebarchiesi@4 165 'unsigned' => TRUE,
danielebarchiesi@4 166 'not null' => TRUE,
danielebarchiesi@4 167 ),
danielebarchiesi@4 168 'language' => array(
danielebarchiesi@4 169 'description' => 'The language code. Language codes should follow the format in _locale_get_predefined_list() in includes/iso.inc.',
danielebarchiesi@4 170 'type' => 'varchar',
danielebarchiesi@4 171 'length' => '12',
danielebarchiesi@4 172 'not null' => TRUE,
danielebarchiesi@4 173 ),
danielebarchiesi@4 174 'label' => array(
danielebarchiesi@4 175 'description' => 'The label for term tid in language.',
danielebarchiesi@4 176 'type' => 'varchar',
danielebarchiesi@4 177 'length' => '255',
danielebarchiesi@4 178 'not null' => FALSE,
danielebarchiesi@4 179 ),
danielebarchiesi@4 180 'comment' => array(
danielebarchiesi@4 181 'description' => 'The comment for term tid in language',
danielebarchiesi@4 182 'type' => 'varchar',
danielebarchiesi@4 183 'length' => '4095',
danielebarchiesi@4 184 'not null' => FALSE,
danielebarchiesi@4 185 ),
danielebarchiesi@4 186 ),
danielebarchiesi@4 187 'primary key' => array('tid', 'language'),
danielebarchiesi@4 188 );
danielebarchiesi@4 189
danielebarchiesi@4 190 $schema['rdfx_term_domains'] = array(
danielebarchiesi@4 191 'description' => 'Domains of properties. Properties within the main_ns can declare classes outside of the main_ns as domains, but not vice versa.',
danielebarchiesi@4 192 'fields' => array(
danielebarchiesi@4 193 'tid' => array(
danielebarchiesi@4 194 'description' => 'The {rdfx_terms}.tid of the property.',
danielebarchiesi@4 195 'type' => 'int',
danielebarchiesi@4 196 'unsigned' => TRUE,
danielebarchiesi@4 197 'not null' => TRUE,
danielebarchiesi@4 198 ),
danielebarchiesi@4 199 'domain_tid' => array(
danielebarchiesi@4 200 'description' => 'The {rdfx_terms}.tid of the domain class.',
danielebarchiesi@4 201 'type' => 'int',
danielebarchiesi@4 202 'unsigned' => TRUE,
danielebarchiesi@4 203 'not null' => TRUE,
danielebarchiesi@4 204 ),
danielebarchiesi@4 205 ),
danielebarchiesi@4 206 'primary key' => array('tid', 'domain_tid'),
danielebarchiesi@4 207 );
danielebarchiesi@4 208
danielebarchiesi@4 209 $schema['rdfx_term_inverses'] = array(
danielebarchiesi@4 210 'description' => 'Inverse properties.',
danielebarchiesi@4 211 'fields' => array(
danielebarchiesi@4 212 'tid' => array(
danielebarchiesi@4 213 'description' => 'The {rdfx_terms}.tid of the property.',
danielebarchiesi@4 214 'type' => 'int',
danielebarchiesi@4 215 'unsigned' => TRUE,
danielebarchiesi@4 216 'not null' => TRUE,
danielebarchiesi@4 217 ),
danielebarchiesi@4 218 'inverse_tid' => array(
danielebarchiesi@4 219 'description' => 'The {rdfx_terms}.tid of the inverse property.',
danielebarchiesi@4 220 'type' => 'int',
danielebarchiesi@4 221 'unsigned' => TRUE,
danielebarchiesi@4 222 'not null' => TRUE,
danielebarchiesi@4 223 ),
danielebarchiesi@4 224 ),
danielebarchiesi@4 225 'primary key' => array('tid', 'inverse_tid'),
danielebarchiesi@4 226 );
danielebarchiesi@4 227
danielebarchiesi@4 228 $schema['rdfx_term_ranges'] = array(
danielebarchiesi@4 229 'description' => 'Ranges of properties. Properties within the main_ns can declare classes outside of the main_ns as ranges, but not vice versa.',
danielebarchiesi@4 230 'fields' => array(
danielebarchiesi@4 231 'tid' => array(
danielebarchiesi@4 232 'description' => 'The {rdfx_terms}.tid of the property.',
danielebarchiesi@4 233 'type' => 'int',
danielebarchiesi@4 234 'unsigned' => TRUE,
danielebarchiesi@4 235 'not null' => TRUE,
danielebarchiesi@4 236 ),
danielebarchiesi@4 237 'range_tid' => array(
danielebarchiesi@4 238 'description' => 'The {rdfx_terms}.tid of the range class.',
danielebarchiesi@4 239 'type' => 'int',
danielebarchiesi@4 240 'unsigned' => TRUE,
danielebarchiesi@4 241 'not null' => TRUE,
danielebarchiesi@4 242 ),
danielebarchiesi@4 243 ),
danielebarchiesi@4 244 'primary key' => array('tid', 'range_tid'),
danielebarchiesi@4 245 );
danielebarchiesi@4 246
danielebarchiesi@4 247 $schema['rdfx_term_superclasses'] = array(
danielebarchiesi@4 248 'description' => 'Superclasses of classes. Classes within the main_ns can declare classes outside of the main_ns as superclasses, but not as subclasses.',
danielebarchiesi@4 249 'fields' => array(
danielebarchiesi@4 250 'tid' => array(
danielebarchiesi@4 251 'description' => 'The {rdfx_terms}.tid of the subclass.',
danielebarchiesi@4 252 'type' => 'int',
danielebarchiesi@4 253 'unsigned' => TRUE,
danielebarchiesi@4 254 'not null' => TRUE,
danielebarchiesi@4 255 ),
danielebarchiesi@4 256 'superclass_tid' => array(
danielebarchiesi@4 257 'description' => 'The {rdfx_terms}.tid of the superclass.',
danielebarchiesi@4 258 'type' => 'int',
danielebarchiesi@4 259 'unsigned' => TRUE,
danielebarchiesi@4 260 'not null' => TRUE,
danielebarchiesi@4 261 ),
danielebarchiesi@4 262 ),
danielebarchiesi@4 263 'primary key' => array('tid', 'superclass_tid'),
danielebarchiesi@4 264 );
danielebarchiesi@4 265
danielebarchiesi@4 266 $schema['rdfx_term_superproperties'] = array(
danielebarchiesi@4 267 'description' => 'Superproperties of properties. Properties within the main_ns can declare properties outside of the main_ns as superproperties, but not as subproperties.',
danielebarchiesi@4 268 'fields' => array(
danielebarchiesi@4 269 'tid' => array(
danielebarchiesi@4 270 'description' => 'The {rdfx_terms}.tid of the subproperty.',
danielebarchiesi@4 271 'type' => 'int',
danielebarchiesi@4 272 'unsigned' => TRUE,
danielebarchiesi@4 273 'not null' => TRUE,
danielebarchiesi@4 274 ),
danielebarchiesi@4 275 'superproperty_tid' => array(
danielebarchiesi@4 276 'description' => 'The {rdfx_terms}.tid of the superproperty.',
danielebarchiesi@4 277 'type' => 'int',
danielebarchiesi@4 278 'unsigned' => TRUE,
danielebarchiesi@4 279 'not null' => TRUE,
danielebarchiesi@4 280 ),
danielebarchiesi@4 281 ),
danielebarchiesi@4 282 'primary key' => array('tid', 'superproperty_tid'),
danielebarchiesi@4 283 );
danielebarchiesi@4 284
danielebarchiesi@4 285 return $schema;
danielebarchiesi@4 286 }
danielebarchiesi@4 287
danielebarchiesi@4 288 /**
danielebarchiesi@4 289 * Enable entity module (new dependency).
danielebarchiesi@4 290 */
danielebarchiesi@4 291 function rdfx_update_7001() {
danielebarchiesi@4 292 module_enable(array(entity));
danielebarchiesi@4 293 drupal_set_message('The Entity API module is now required by the RDFx module and has been enabled.');
danielebarchiesi@4 294 }
danielebarchiesi@4 295
danielebarchiesi@4 296 /**
danielebarchiesi@4 297 * Move the ARC2 library to the new location if the libraries module is used.
danielebarchiesi@4 298 */
danielebarchiesi@4 299 function rdfx_update_7002() {
danielebarchiesi@4 300 if (module_exists('libraries') && is_dir(libraries_get_path('arc'))) {
danielebarchiesi@4 301 if (mkdir(libraries_get_path('ARC2')) && rename(libraries_get_path('arc'), libraries_get_path('ARC2') . '/arc')) {
danielebarchiesi@4 302 drupal_set_message('The ARC2 library has been moved to its new location.');
danielebarchiesi@4 303 }
danielebarchiesi@4 304 else {
danielebarchiesi@4 305 drupal_set_message('There was a problem while moving the ARC library to its new location.', 'error');
danielebarchiesi@4 306 }
danielebarchiesi@4 307 }
danielebarchiesi@4 308 }