Status: | effective |
Progress: | 100% |
Version: | 3.0.0+ |
Help:Datatype "Text"
Text | |
---|---|
Holds text of arbitrary length | |
Further information | |
Provided by: | Semantic MediaWiki |
Since version: | 1.0 |
Until version: | still in use |
Datatype ID: | _txt
|
In this wiki: | Text |
Table of Contents | |
The datatype Text is used to store strings of arbitrary length, i.e. text. Since Semantic MediaWiki 1.8.0Released on 2 December 2012 and compatible with MW 1.17.0 - 1.22.x
(except 1.22.1). this datatype depreciated datatype "String"Holds character sequences up to 255 characters for data store SMWSQLStore3
and replaced it entirely in Semantic MediaWiki 1.9.0Released on 3 January 2014 and compatible with MW 1.19.0 - 1.22.x.. Thus it is now possible to use specific values in semantic queries, or to sort query results by such values. It has the following restriction:
If you want to store special character sequences like "::
", you need to store them using the parser function #set
, instead of using in-text annotation syntax "[[Property::value]]
" notation. Thus you cannot embed "regular" semantic annotations inside a text property.
You can use some wiki markup inside a text property such as runs of ' for bold and italic, and the markup will change the appearance of the text.
Restricting values[edit]
Since Semantic MediaWiki 1.0Released on 31 December 2007 and compatible with MW 1.9.x - 1.12.x. you can use special property "Allows value"Lists one permissible value for a property to restrict a property to a particular set of values. For example you could limit a property like "Status" to values like "Active", "Pending", etc. Since Semantic MediaWiki 2.4.0Released on 9 July 2016 and compatible with MW 1.19.0 - 1.27.x. special property special property "Allows pattern"Pattern to match a permissible value lets you restrict values according to patterns matching regular expressions. Semantic MediaWiki 2.4.0Released on 9 July 2016 and compatible with MW 1.19.0 - 1.27.x. also added special property "Has uniqueness constraint"Allows to restrict value annotation to be unique allowing to annotate a unique data value only once.
Starting with Semantic MediaWiki 3.0.0Released on 11 October 2018 and compatible with MW 1.27.0 - 1.31.x. invalid data value annotations will be shown directly on the page together with a warning sign instead of just showing a warning sign as in previous versions.1 See also the page on special property "Has improper value for"Alerts in case the assigned value to a property is invalid.
Searching within values[edit]
Values of type Text are searchable. The length of the string you can search on is variable, depending on a couple of factors. In a nutshell:
- If you use the regular syntax for query conditions, as is more fully explained on the help page about selecting pages,2 the searchable length is limited to :
- the first 40 characters if more than 72 characters are stored as property value (SMW ≥ 1.8.x),
- all 72 characters if a maximum of 72 characters are stored as property value (SMW ≥ 1.8.x),[1]
- or to 300 if $smwgFieldTypeFeatures is set to
SMW_FIELDT_CHAR_LONG
3 (SMW ≥ 3.0.0).4[2]
- If you use full-text search5 (SMW ≥ 2.5.0), provided that it is enabled on your wiki, you are no longer bound to a maximum of 72 characters.[3]
Compatibility note[edit]
In Semantic MediaWiki 1.8.0Released on 2 December 2012 and compatible with MW 1.17.0 - 1.22.x
(except 1.22.1). only this datatype still had the old behaviour for data store SMWSQLStore2
as explained on the help page for previous versions of Semantic MediaWiki. Starting with Semantic MediaWiki 1.9.0Released on 3 January 2014 and compatible with MW 1.19.0 - 1.22.x. you will have to change datatype declarations with special property "Has type"Assigns a datatype to a property from datatype "String"Holds character sequences up to 255 characters to this datatype if you still have these on property pages since aliasing of "String" for "Text" may be removed in any later version of Semantic MediaWiki.
Comparing the datatypes "Page" and "Text"[edit]
Table of comparison between properties of datatype "Page"Holds names of wiki pages, and displays them as a link and datatype "Text"Holds text of arbitrary length | ||
---|---|---|
Property of datatype "Page" | Property of datatype "Text" | |
Naming values | ||
Characters permitted | Value has the naming restrictions that apply to page titles in MediaWiki. See the documentation at MediaWiki.org. | Value may contain arbitrary text, including markup (such as that for bold and italic) |
Length of value permitted | Value may not be longer than 255 bytes, again because of restrictions that apply to page titles in MediaWiki | Value may be longer than 255 bytes |
Use of values in query statements | ||
Support for equivalent values? | Value can be made an alias of another 'Page' value. This is achieved using MediaWiki's #REDIRECT syntax, which is used to forward users from a variant page title to the target page. | Value cannot be made an alias of another 'Text' value. |
Wildcards | Value accepts wildcards in queries | Value accepts wildcards in queries |
Number of characters searchable (using wildcards and comparators) | Value is searchable for all 255 bytes | Value is searchable for the first 40 characters (if more than 72 characters were stored as property value) or 72 characters (if a maximum of 72 characters were stored as property value) for users of SMWSQLStore3 not using the full-text search feature. No restriction for SMWElasticStore .
|
Inverse querying | Yes, property allows for inverse querying. In this way, a list of unique property values can be retrieved. | No, property does not allow for inverse querying. To retrieve a set of unique property values, see some alternative approaches listed here, which may or may not offer a solution. |
Annotating values | Value cannot itself be annotated. However, the page associated with a value may hold semantic annotations and so it can be the basis for extended queries such as subqueries. In addition, it can be the target for another property-value pair, making it queryable in different contexts. | Value cannot itself be annotated. However, it can be the target for another property-value pair, making it queryable in different contexts. |
Appearance of values in printout statements | ||
Appearance without special formatting | Value returned by a query normally appears as a page link. | Value returned by a query is rendered as-is in wiki text. This means that markup, such as that for bold and italic (see above), is usually rendered, although there may be exceptions. |
Special formatting | Value can be de-linked by setting the query parameter link= (available in most result formats) to none. Additional formatting is usually achieved by means of templates. | Additional formatting is usually achieved by means of templates. |
Other | ||
Service links | Property supports service links | Property does not support service links |
Examples[edit]
- API example
See also[edit]
- Help page on datatype "Keyword"Holds text of restricted length that is being normalised (similar to datatype Text)
- Help page on datatype "Code"Holds technical, pre-formatted texts (similar to datatype Text)
- ↑ Searching within property values was not possible in earlier versions of Semantic MediaWiki (≤ 1.7.1). Since Semantic MediaWiki 1.8.0Released on 2 December 2012 and compatible with MW 1.17.0 - 1.22.x
(except 1.22.1). the first 40 characters (if more than 72 characters were stored as property value) or all 72 characters (if a maximum of 72 characters were stored as property value) are searchable. - ↑ Semantic MediaWiki 3.0.0Released on 11 October 2018 and compatible with MW 1.27.0 - 1.31.x. introduces configuration parameter
$smwgFieldTypeFeatures
Sets relational database specific field type features with its optionSMW_FIELDT_CHAR_LONG
1 making it possible to extend the searchable length as described here to 300 characters without relying on the full-text search feature. - ↑ Full-text search was introduced in Semantic MediaWiki 2.5.0Released on 14 March 2017 and compatible with MW 1.23.0 - 1.29.x..
References
- ^ Semantic MediaWiki: GitHub pull request gh:smw:2348
- ^ Semantic MediaWiki: User mailing list thread " Unable to query over the last words of a long text value "
- ^ | Semantic MediaWiki: GitHub pull request gh:smw:1481
- ^ Semantic MediaWiki: GitHub pull request gh:smw:2536
- ^ Stack Overflow: Question 3489041: Mysql::Error: Specified key was too long; max key length is 1000 bytes