Semantic Bundle

Semantic Bundle is a pre-packaged bundle of extensions meant to be used on wikis based around the Semantic MediaWiki extension. It can be obtained either through SVN or by downloading a single .tgz or .zip file.

Contents
Semantic Bundle contains a large number of MediaWiki extensions; chief among them is, of course, Semantic MediaWiki an extension that enables semantic storage and querying of data. Other SMW-based extensions included in this bundle are:
 * Semantic Result Formats - defines many additional formats for SMW queries
 * Semantic Forms - allows wiki administrators to create easy-to-use, domain-specific editing interfaces for their wiki
 * Semantic Compound Queries - allows for displaying multiple queries at the same time
 * Semantic Drilldown - defines an easy browsing tool for the data set
 * Semantic Google Maps - allows for using Google Maps to display semantic coordinate data and enter coordinates within forms
 * Semantic Tasks - allows for sending reminder and notification emails to users for tasks

There are other extensions included in Semantic Bundle that, though they do not use Semantic MediaWiki directly, are often used in conjunction with SMW. These are:
 * Admin Links - defines a special page that serves as a "control panel" for administrative tasks
 * ArrayExtension - defines useful parser functions for manipulating arrays
 * Data Transfer - allows importing data into and out of the wiki via XML and CSV formats
 * External Data - allows for displaying data from outside APIs in the wiki
 * Header Tabs - allows to convert top-level sections of the page into tabs; often used with Semantic Forms to make long forms more user-friendly
 * Google Geocoder - does geocoding of addresses using Google's geocoder service
 * Page Object Model (POM) - a code library that helps extension and bot developers manipulate parts of structured wiki text easily using a model similar to W3C DOM. It is also MediaWiki API extension to perform such modifications remotely.
 * ParserFunctions - adds useful parser functions for programming logic and string manipulation
 * Replace Text - provides a form for administrators to do a text search-and-replace across the wiki
 * Widgets - allows adding widgets to wiki by simply creating pages in the Widget namespace

Semantic Bundle is not at all meant to be a comprehensive set of useful extensions, and there are many other extensions that are also quite useful, either in conjunction with SMW or in general, that were not included in the bundle, for technical or other reasons; we would encourage administrators setting up an SMW-based wiki to look at the wide variety of other extensions available. Some useful extensions include CategoryTree, Configure, ConfirmEdit, FCKeditor, Halo, OpenID, reCAPTCHA, Semantic Signup and SemanticQueryFormTool.

Download
Semantic Bundle is available either as a downloadable .zip or .tgz field, or via SVN. You can download the file at the project homepage at http://code.google.com/p/semantic-mediawiki-bundle/. The current versions of these files are:
 * SemanticBundle-20090616.zip
 * SemanticBundle-20090616.tgz

Once you have the .zip or .tgz file, you should move it to the /extensions directory and extract it there.

Downloading using SVN (experimental)
'''WARNING! This is experimental! You must know what you're doing!'''

This process modifies the externals definitions for  folder of the MediaWiki - make sure you do not check these externals into MediaWiki repository (although, you must have commit rights to MediaWiki repository to do this).

To install bundle from SVN repository and maintain current version, change to  folder and type:

svn checkout http://semantic-mediawiki-bundle.googlecode.com/svn/trunk/ semantic-bundle

bundle building code will be checked out into. Change into it and run the following command:

make ext

this will create SVN externals in your  folder for all the extensions in the bundle and will automatically run svn update to fetch all the components of the bundle.

To check out development releases (trunks) of all the extensions in the bundle instead, run

make ext-dev

this will modify the externals and run update again switching over to trunk releases.

Installation
After either getting the bundle from SVN, or downloading and extracting the file, you should have a directory under  for each of the extensions contained in Semantic Bundle. In addition, there will also be a directory called " ". This directory will contain several files, but only two are relevant here:, and. contains calls to include all the extensions that Semantic Bundle contains. Many of these calls are commented out, since most installations will not need every extension that Semantic Bundle provides; the calls that are not commented out are those that it is recommended that every SMW-based wiki should use.

It is recommended that you do one of two things with : either copy it to another name, like, say, " ", and add a call to include that file within  ; or copy its contents directly into. It is not recommended that you refer directly to this file within, since, if you upgrade your version of Semantic Bundle, any changes you made to sample file   will be lost.

To include this new file within LocalSettings.php, you can add the following:

It is also recommended that you include the file SemanticBundle.php, by adding the following to LocalSettings.php:

This file only holds version information for Semantic Bundle, so it is not directly needed; however, it can help with debugging, and, when used in public sites, it is good marketing for the Semantic Bundle project, so we ask you to please consider including it.

Benefits
Semantic Bundle provides a number of important benefits over downloading and installing individual extensions; among them:
 * it provides a "best practices" set of extensions around Semantic MediaWiki, based on user experiences
 * it simplifies download, especially for those systems that don't have SVN, and especially for those extensions (like ParserFunctions) that don't have a downloadable version already
 * it tries to guarantee working code by using tagged, stable versions of extensions whenever possible
 * it simplifies installation by providing a pre-generated list of includes

Authors
Semantic Bundle was created, and is maintained, by Sergey Chernyshev and Yaron Koren.