|Table of Contents|
This page provides information about fixed properties which were introduced to Semantic MediaWiki in version 1.8.0.
The SQL store (SQLStore3) provides a feature called fixed properties. Fixed properties are properties used heavily (minimum of 1,000 or better even more data values set) in a wiki which use a dedicated database table. The general idea is that fixed properties allow to save disk space and memory usage.
For example a wiki about people will have a property called "Has age" used extensively within the wiki. To optimize operations on this property there is support to have property-value tuples of these properties stored in a separate dedicated database table rather than in the generic table used for their datatypes. This potentially speeds up some comparisons at query time through smaller indexes which means that there are less things to compare when searching a data value.
This feature is still experimental and needs some testing. If you are able to produce some performance gain using this feature please refer to it on this page's talk page.
To use this feature you must be using SQLStore3. The fixed property is set as an a array consisting of a key => value pair, where the key is the property name used in the wiki (a space " " must be replaced with an underscore "_" and the first letter must be capitalized) and the value as the constant used to denote properties of the respective type in class SMWDataItem. This value is one of the following:
SMWDataItem::TYPE_BLOB // properties of type text and code
SMWDataItem::TYPE_URI // properties of type email, telephone number, URL and annotation URI
SMWDataItem::TYPE_WIKIPAGE // properties of type page
SMWDataItem::TYPE_NUMBER // properties of type number and quantity
SMWDataItem::TYPE_TIME // properties of type date
SMWDataItem::TYPE_BOOLEAN // properties of type boolean
SMWDataItem::TYPE_CONTAINER // properties of type record
SMWDataItem::TYPE_GEO // properties of type geographic coordinates
As of Semantic MediaWiki 1.9.0 fixed properties must be set within the LocalSettings.php of your wiki below the inclusion of Semantic MediaWiki. The following setting is an example for a fixed property called "Has age" which is of type "Number".
$smwgFixedProperties = array(
'Has_age' => SMWDataItem::TYPE_NUMBER
A setup run using SMWAdmin or via command line is needed to create these tables. If an already used property is assigned a new table all old data for this property will become inaccessible for SMW. This can be repaired by either migrating it to the new table or will eventually be updated on page edits.
This section is proposed to be moved to a separate page within Category:Developer documentation
The name of the database table is formed using md5
$tableName = 'smw_fpt_' . md5( $propertyKey );
- SQLStore update collected notes for the SQLStore3 design
- Database tables collects notes on the Database tables used in SQLStore3
Help:Fixed properties en 1.9.0