Status: | effective |
Progress: | 90% |
Version: | 3.0.0+ |
Table of Contents | |
---|---|
Search feature "SMWSearch" integrates Semantic MediaWiki with special page "Search".1 It adds support for using inline queries (#ask
) in the Special:Search context and provides an extended search profile where user defined forms can empower users to find and match entities using property and value input fields. In cases where the systems detects forms maintained using the SEARCH_FORM_SCHEMA, an extended profile will be visible on the Special:Search page allowing users to match and search subjects with help of Semantic MediaWiki.
SEARCH_FORM_SCHEMA[edit]
The SEARCH_FORM_SCHEMA schema type defines forms used in the extended Special:Search profile. The following sections explain how to build such a search form schema.
Properties[edit]
- type: SEARCH_FORM_SCHEMA
- tags: simple tags to categorize a schema
- forms: defines the forms and fields to be displayed
- Example
{
"type": "SEARCH_FORM_SCHEMA",
"forms": {
"Foo": [],
}
"tags": [
"search form"
]
}
Form definition[edit]
- type requires SEARCH_FORM_SCHEMA
- forms defines a collection of forms
- Books and journals as title of a form
- Has title is a simple input field without any constraints
- Publication type is a input field with additional attributes
- Books and journals as title of a form
{
"type": "SEARCH_FORM_SCHEMA",
"forms": {
"Books and journals": [
"Has title",
"Has author",
"Has year",
{
"Publication type": {
"autocomplete": true,
"tooltip": "Some context to be shown ...",
"required": true
}
},
{
"Publisher": {
"autocomplete": true,
"tooltip": "message-can-be-a-msg-key"
}
}
],
"Media and files": [ ]
}
}
Fields can define attributes such as:
- autocomplete (true, false) whether the field should add an autocomplete function or not
- tooltip (text or msg key) shows a tooltip with either a text or retrieves information from a message key
- placeholder (text) shown instead of the property name
- required (true, false) whether the field input is required before submitting or not
- type (HTML5) preselect a specific type field
Default form[edit]
default_form to define a default form that is displayed when no other form was preselected.
{
"type": "SEARCH_FORM_SCHEMA",
"default_form": "Books and journals",
...
}
Term parser[edit]
The term_parser prefix can be used to shorten the input cycle and summarize frequent properties so that a user can write:
(in:foobar || phrase:foo bar) lang:fr
instead of
<q>[[in:foobar]] || [[phrase:foo bar]]</q><q>[[Language code::fr]] OR [[Document language::fr]] OR [[File attachment.Content language::fr]] OR [[Has interlanguage link.Page content language::fr]]
{
"type": "SEARCH_FORM_SCHEMA",
"term_parser": {
"prefix": {
"lang": [
"Language code",
"Document language",
"File attachment.Content language",
"Has interlanguage link.Page content language"
]
}
}
}
Prefixes are only applicable (and usable as means the shorten the search term) from within the extended search form.
Namespaces[edit]
namespaces section defines namespaces to be preselected or hidden.
- default_hide hides the namespace box by default on the extended profile form
- hidden identifies namespaces that should be hidden from appearing in any SMW related form
- preselect assign a pre-selection of namespaces to a specific form
{
"type": "SEARCH_FORM_SCHEMA",
"namespaces": {
"default_hide": true,
"hidden": [
"NS_PROJECT",
"NS_PROJECT_TALK"
],
"preselect": {
"Books and journals": [
"NS_CUSTOM_BOOKS",
"NS_FILE"
],
"Media and files": [
"NS_FILE"
]
}
}
}
Descriptions[edit]
Describes a form and is shown at the top of the form fields to inform users about the intent of the form.
{
"type": "SEARCH_FORM_SCHEMA",
"descriptions": {
"Books and journals": "Short description to be shown on top of a selected form"
}
}
Validation[edit]
Validation is made through /data/schema/search-form-schema.v1.json
See also[edit]
References
- ^ Semantic MediaWiki: GitHub pull request gh:smw:3019