Extension:Semantic Glossary

Semantic Glossary is a MediaWiki extension that lets you define terms and abbreviations together with a definition. Whenever a term or abbreviation is hovered over in an article its definition is displayed.

The extension is an alternative back-end for the Lingo extension: Where the Lingo extension uses a dedicated page to store the glossary, SemanticGlossary retrieves the data from a Semantic MediaWiki store. The advantages of this approach are: the glossary can be queried like any other semantic data, storing of the data is not limited to one pre-defined page and editing the data can be made more user-frienly using Semantic Forms.

Properties
The following properties are used to hold the data of the glossary entries:
 * Glossary-Term: The term or abbreviation that is to be annotated on pages
 * Glossary-Definition: Its definition
 * Glossary-Link: The name of a page to which a link will be displayed alongside the definition (e.g. to link to a longer explanation of the term)

There must only ever be one definition per wiki page. The easiest way to ensure this and to keep the definition in one place is probably to use Semantic Internal Objects (or SMW's brand-new subobjects).

The link may be any internal or interwiki link.

You can easily build a user interface to edit the glossary, e.g. using Semantic Forms.

Internationalization
The extension is pretty well internationalized by now, thanks to the efforts of the volunteers on translatewiki.net. (If your language is not supported yet, get an account there and help yourself. It's easy!) To find out, what the names of the properties are for your language, go have a look at the SemanticGlossary.i18n.php file and find the messages semanticglossary-prop-glt (Glossary-Term), semanticglossary-prop-gld (Glossary-Definition) and semanticglossary-prop-gll (Glossary-Link). Or just use the default English property names, they should always work.

Features inherited from the Lingo extension
You can exclude an article from markup by including the magic word  anywhere in that article's text.

In some cases it may be necessary to exclude only portions of a page, e.g. because Lingo interferes with some JavaScript. This can be achieved by wrapping that part in an HTML element (e.g. a span or a div) and specifying.

For inherited configuration parameters see Configuration parameters below.

Download instructions
You can download the last released version as a zip or tar.gz package here.

Alternatively you can download the current development version via the MediaWiki Extension Distributor.

Finally you can download the development version directly using Subversion:

Installation
Semantic Glossary depends on the following extensions:
 * Semantic MediaWiki 1.6 or higher
 * Lingo 0.2 or higher

Create a directory named  in the   directory of your MediaWiki installation and copy the extension's files into it. Then add the following line to your LocalSettings.php below the inclusion of the Semantic MediaWiki and the Lingo extension:

The extension is tested with MediaWiki 1.16.5 and Semantic MediaWiki 1.6 on PHP 5.3.5. Other versions of MediaWiki and PHP will probably work, but are not yet tested.

Configuration parameters
SemanticGlossary has inherited the settings available for the Lingo extension:
 * to specify that each term should be annotated only once per page; Example:
 * to specify what namespaces should or should not be annotated; Example:  disables annotation of talk pages

Not yet implemented
The extension should be able to
 * store a context (page, category, namespace, concept) for every term and only markup the term on wiki pages belonging to the context;
 * invalidate affected pages when a term is changed;

Version history

 * See here for the version history

Screen shots
Please find information for a detailed example here.

Contact
Comments, questions and suggestions should be sent or posted to:
 * the Semantic Mediawiki User mailing list (preferred)
 * the Semantic Glossary discussion page
 * the author