Semantic MediaWiki and related extensions
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
SMW\Store Class Reference
Inheritance diagram for SMW\Store:
Inheritance graph
[legend]
Collaboration diagram for SMW\Store:
Collaboration graph
[legend]

Public Member Functions

 getSemanticData (DIWikiPage $subject, $filter=false)
 
 getPropertyValues ( $subject, DIProperty $property, $requestoptions=null)
 
 getPropertySubjects (DIProperty $property, $value, $requestoptions=null)
 
 getAllPropertySubjects (DIProperty $property, $requestoptions=null)
 
 getProperties (DIWikiPage $subject, $requestOptions=null)
 
 getInProperties (DataItem $object, $requestoptions=null)
 
 getWikiPageSortKey (DIWikiPage $dataItem)
 
 getRedirectTarget (DataItem $dataItem)
 
 deleteSubject (Title $subject)
 
 updateData (SemanticData $semanticData)
 
 clearData (DIWikiPage $di)
 
 changeTitle (Title $oldtitle, Title $newtitle, $pageid, $redirid=0)
 
 getQueryResult (SMWQuery $query)
 
 getPropertiesSpecial ( $requestoptions=null)
 
 getUnusedPropertiesSpecial ( $requestoptions=null)
 
 getWantedPropertiesSpecial ( $requestoptions=null)
 
 getStatistics ()
 
 service ( $service,... $args)
 
 setup ( $verbose=true)
 
 drop ( $verbose=true)
 
 refreshData (&$index, $count, $namespaces=false, $usejobs=true)
 
 getOptions ()
 
 setOption ( $key, $value)
 
 getOption ( $key, $default=null)
 
 clear ()
 
 getInfo ( $type=null)
 
 setConnectionManager (ConnectionManager $connectionManager)
 
 getConnection ( $type)
 
- Public Member Functions inherited from SMW\QueryEngine
 getQueryResult (Query $query)
 

Static Public Member Functions

static setupStore ( $verbose=true, $options=null)
 

Public Attributes

const OPT_CREATE_UPDATE_JOB = 'opt.create.update.job'
 

Protected Member Functions

 doDataUpdate (SemanticData $data)
 
 fetchQueryResult (SMWQuery $query)
 

Protected Attributes

 $connectionManager = null
 
 $options = null
 

Detailed Description

The abstract base class for all classes that implement access to some semantic store. Besides the relevant interface, this class provides default implementations for some optional methods, which inform the caller that these methods are not implemented.

Author
Markus Krötzsch

Member Function Documentation

◆ changeTitle()

SMW\Store::changeTitle ( Title  $oldtitle,
Title  $newtitle,
  $pageid,
  $redirid = 0 
)
abstract

Update the store to reflect a renaming of some article. Normally this happens when moving pages in the wiki, and in this case there is also a new redirect page generated at the old position. The title objects given are only used to specify the name of the title before and after the move – do not use their IDs for anything! The ID of the moved page is given in $pageid, and the ID of the newly created redirect, if any, is given by $redirid. If no new page was created, $redirid will be 0.

◆ clear()

SMW\Store::clear ( )
Since
2.0

◆ clearData()

SMW\Store::clearData ( DIWikiPage  $di)

Clear all semantic data specified for some page.

Parameters
DIWikiPage$di

◆ deleteSubject()

SMW\Store::deleteSubject ( Title  $subject)
abstract

Delete all semantic properties that the given subject has. This includes relations, attributes, and special properties. This does not delete the respective text from the wiki, but only clears the stored data.

Parameters
Title$subject

◆ doDataUpdate()

SMW\Store::doDataUpdate ( SemanticData  $data)
abstractprotected

Update the semantic data stored for some individual. The data is given as a SemanticData object, which contains all semantic data for one particular subject.

Parameters
SemanticData$data

◆ drop()

SMW\Store::drop (   $verbose = true)
abstract

Drop (delete) all storage structures created by setup(). This will delete all semantic data and possibly leave the wiki uninitialised.

Parameters
boolean$verbose

◆ fetchQueryResult()

SMW\Store::fetchQueryResult ( SMWQuery  $query)
protected
Note
Change the signature to abstract for the 3.* branch
Since
2.1
Parameters
SMWQuery$query
Returns
SMWQueryResult

◆ getAllPropertySubjects()

SMW\Store::getAllPropertySubjects ( DIProperty  $property,
  $requestoptions = null 
)
abstract

Get an array of all subjects that have some value for the given property. The result is an array of DIWikiPage objects.

Returns
DIWikiPage[]

◆ getConnection()

SMW\Store::getConnection (   $type)
Since
2.1
Parameters
string$type
Returns
mixed

◆ getInfo()

SMW\Store::getInfo (   $type = null)
Since
3.0
Parameters
string | null$type
Returns
array

◆ getInProperties()

SMW\Store::getInProperties ( DataItem  $object,
  $requestoptions = null 
)
abstract
See also
EntityLookup::getInProperties
Parameters
DataItem$object
RequestOptions | null$requestOptions
Returns
DataItem[]|[]

◆ getOption()

SMW\Store::getOption (   $key,
  $default = null 
)
Since
3.0
Parameters
string$key
mixed$default
Returns
mixed

◆ getOptions()

SMW\Store::getOptions ( )
Since
2.5
Returns
Options

◆ getProperties()

SMW\Store::getProperties ( DIWikiPage  $subject,
  $requestOptions = null 
)
abstract
See also
EntityLookup::getProperties
Parameters
DIWikiPage$subjectdenoting the subject
SMWRequestOptions | null$requestOptionsoptionally defining further options
Returns
DataItem

◆ getPropertiesSpecial()

SMW\Store::getPropertiesSpecial (   $requestoptions = null)
abstract

Return all properties that have been used on pages in the wiki. The result is an array of arrays, each containing a property data item and a count. The expected order is alphabetical w.r.t. to property names.

If there is an error on creating some property object, then a suitable SMWDIError object might be returned in its place. Even if there are errors, the function should always return the number of results requested (otherwise callers might assume that there are no further results to ask for).

Parameters
SMWRequestOptions$requestoptions
Returns
array of array( DIProperty|SMWDIError, integer )

◆ getPropertySubjects()

SMW\Store::getPropertySubjects ( DIProperty  $property,
  $value,
  $requestoptions = null 
)
abstract

◆ getPropertyValues()

SMW\Store::getPropertyValues (   $subject,
DIProperty  $property,
  $requestoptions = null 
)
abstract
See also
EntityLookup::getPropertyValues
Parameters
$subjectmixed SMWDIWikiPage or null
$propertyDIProperty
$requestoptionsSMWRequestOptions
Returns
array of DataItem

◆ getQueryResult()

SMW\Store::getQueryResult ( SMWQuery  $query)
abstract
Note
Change the signature in 3.* to avoid for subclasses to manage the hooks; keep the current signature to adhere semver for the 2.* branch

Execute the provided query and return the result as an SMWQueryResult if the query was a usual instance retrieval query. In the case that the query asked for a plain string (querymode MODE_COUNT or MODE_DEBUG) a plain wiki and HTML-compatible string is returned.

Parameters
SMWQuery$query
Returns
SMWQueryResult

◆ getRedirectTarget()

SMW\Store::getRedirectTarget ( DataItem  $dataItem)

Convenience method to find the redirect target of a DIWikiPage or DIProperty object. Returns a dataitem of the same type that the input redirects to, or the input itself if there is no redirect.

Parameters
DataItem$dataItem
Returns
DataItem

◆ getSemanticData()

SMW\Store::getSemanticData ( DIWikiPage  $subject,
  $filter = false 
)
abstract
See also
EntityLookup::getSemanticData
Parameters
DIWikiPage$subject
string[]|bool$filter

◆ getStatistics()

SMW\Store::getStatistics ( )
abstract

Return statistical information as an associative array with the following keys:

  • 'PROPUSES': Number of property instances (value assignments) in the datatbase
  • 'USEDPROPS': Number of properties that are used with at least one value
  • 'DECLPROPS': Number of properties that have been declared (i.e. assigned a type)
  • 'OWNPAGE': Number of properties with their own page
  • 'QUERY': Number of inline queries
  • 'QUERYSIZE': Represents collective query size
  • 'CONCEPTS': Number of declared concepts
  • 'SUBOBJECTS': Number of declared subobjects
Returns
array

◆ getUnusedPropertiesSpecial()

SMW\Store::getUnusedPropertiesSpecial (   $requestoptions = null)
abstract

Return all properties that have been declared in the wiki but that are not used on any page. Stores might restrict here to those properties that have been given a type if they have no efficient means of accessing the set of all pages in the property namespace.

If there is an error on creating some property object, then a suitable SMWDIError object might be returned in its place. Even if there are errors, the function should always return the number of results requested (otherwise callers might assume that there are no further results to ask for).

Parameters
SMWRequestOptions$requestoptions
Returns
array of DIProperty|SMWDIError

◆ getWantedPropertiesSpecial()

SMW\Store::getWantedPropertiesSpecial (   $requestoptions = null)
abstract

Return all properties that are used on some page but that do not have any page describing them. Stores that have no efficient way of accessing the set of all existing pages can extend this list to all properties that are used but do not have a type assigned to them.

Parameters
SMWRequestOptions$requestoptions
Returns
array of array( DIProperty, int )

◆ getWikiPageSortKey()

SMW\Store::getWikiPageSortKey ( DIWikiPage  $dataItem)

Convenience method to find the sortkey of an SMWDIWikiPage. The result is based on the contents of this store, and may differ from the MediaWiki database entry about a Title objects sortkey. If no sortkey is stored, the default sortkey (title string) is returned.

Parameters
DIWikiPage$dataItem
Returns
string sortkey

◆ refreshData()

SMW\Store::refreshData ( $index,
  $count,
  $namespaces = false,
  $usejobs = true 
)
abstract

Refresh some objects in the store, addressed by numerical ids. The meaning of the ids is private to the store, and does not need to reflect the use of IDs elsewhere (e.g. page ids). The store is to refresh $count objects starting from the given $index. Typically, updates are achieved by generating update jobs. After the operation, $index is set to the next index that should be used for continuing refreshing, or to -1 for signaling that no objects of higher index require refresh. The method returns a decimal number between 0 and 1 to indicate the overall progress of the refreshing (e.g. 0.7 if 70% of all objects were refreshed).

The optional parameter $namespaces may contain an array of namespace constants. If given, only objects from those namespaces will be refreshed. The default value FALSE disables this feature.

The optional parameter $usejobs indicates whether updates should be processed later using MediaWiki jobs, instead of doing all updates immediately. The default is TRUE.

Parameters
$indexinteger
$countinteger
$namespacesmixed array or false
$usejobsboolean
Returns
float between 0 and 1 to indicate the overall progress of the refreshing

◆ service()

SMW\Store::service (   $service,
  $args 
)

Store administration

Returns store specific services. Services are registered with the store implementation and may provide different services that are only available for a particular store.

Since
3.0
Parameters
string$service
Returns
mixed
Exceptions
ServiceNotFoundException

◆ setConnectionManager()

SMW\Store::setConnectionManager ( ConnectionManager  $connectionManager)
Since
2.1
Parameters
ConnectionManager$connectionManager

◆ setOption()

SMW\Store::setOption (   $key,
  $value 
)
Since
3.0
Parameters
string$key
mixed$value

◆ setup()

SMW\Store::setup (   $verbose = true)
abstract

Setup all storage structures properly for using the store. This function performs tasks like creation of database tables. It is called upon installation as well as on upgrade: hence it must be able to upgrade existing storage structures if needed. It should return "true" if successful and return a meaningful string error message otherwise.

The parameter $verbose determines whether the procedure is allowed to report on its progress. This is doen by just using print and possibly ob_flush/flush. This is also relevant for preventing timeouts during long operations. All output must be valid in an HTML context, but should preferably be plain text, possibly with some linebreaks and weak markup.

Parameters
boolean$verbose
Returns
boolean Success indicator

◆ setupStore()

static SMW\Store::setupStore (   $verbose = true,
  $options = null 
)
static

Setup the store.

Since
1.8
Parameters
bool$verbose
Options | null$options
Returns
boolean Success indicator

◆ updateData()

SMW\Store::updateData ( SemanticData  $semanticData)

Update the semantic data stored for some individual. The data is given as a SemanticData object, which contains all semantic data for one particular subject.

Parameters
SemanticData$semanticData

Member Data Documentation

◆ OPT_CREATE_UPDATE_JOB

const SMW\Store::OPT_CREATE_UPDATE_JOB = 'opt.create.update.job'

Option to define whether creating updates jobs is allowed for a request or not.


The documentation for this class was generated from the following file:

About | General disclaimer | Privacy policy