Release status: beta
|Description||Allows users to edit and display semantic coordinate data using multiple mapping services.|
|Author(s)||Jeroen De Dauw, Yaron Koren and others|
|Last Version||0.6.6 (2010-08-26)|
|MediaWiki||1.15.* or greater|
- 1 Description
- 2 Functionality overview
- 3 Download and installation
- 4 Version
- 5 Languages supported
- 6 Settings
- 7 Contributing to the project
- 8 Work for hire
- 9 Getting support
- 10 Sites that use Semantic Maps
- 11 External links
- 12 See also
Semantic Maps is an extension that adds semantic capabilities to the Maps extension. This includes the ability to add, edit, aggregate and visualize coordinate data stored through the Semantic MediaWiki extension.
Since Semantic Maps uses the Maps API, you can use multiple mapping services. These include Google Maps (with Google Earth support), Yahoo! Maps, OpenLayers and OpenStreetMap.
Both Semantic Maps and Maps are based on Semantic Google Maps and Semantic Layers, and are meant to replace these extensions. Having Semantic MediaWiki and Maps installed is a prerequisite for the Semantic Maps extension; the code will not work without it.
Semantic Maps and Maps provide a map interface to the Semantic MediaWiki Geographic coordinate property type, through the following features:
- Display of coordinates. See the usage of Maps for more info.
- Semantic handling of coordinates. Semantic Maps adds a Geographical Coordinate data type to Semantic MediaWiki.
- Aggregation of coordinates. Each mapping service has it's own special output format, that can be used in Semantic MediaWiki queries, allowing a set of coordinate data stored on multiple pages to be displayed together on a single map.
- Insertion of coordinates. Semantic Maps provides custom Semantic Forms input types. These input types display a map with a geocoder in a form to make the insertion (and editing) of coordinates easy for users.
Download and installation
Notice: Semantic Maps and Maps are always released together. This means you should always use the same version of Maps as the one of Semantic Maps you have. For example Maps 0.3.4 and Semantic Maps 0.3.4, but not Maps 0.2 and Semantic Maps 0.3.
Attention: To use Maps and SemanticMaps 0.5.4, you also need to upgrade to Validator 0.2.2.
You can also download the code directly via SVN from the MediaWiki source code repository, at http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/SemanticMaps/REL_0_5_5. From a command line, you can call the following:
svn checkout http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/SemanticMaps/REL_0_5_5
|Name||Required||Recommended Version||Supported Versions|
|MediaWiki||Yes||1.15 or above||1.15 or above, possibly older ones|
|Semantic MediaWiki||Yes||1.5 (no newer ones!)||1.4.2 to 1.5, possibly older ones|
|Semantic Forms||No||1.9 or above||1.9 or above, possibly older ones|
Make sure you have Semantic MediaWiki, Maps and Validator successfully installed before proceeding with the installation. Once you have downloaded the code, place the 'SemanticMaps' directory within your MediaWiki 'extensions' directory. Then add the following code to your LocalSettings.php file after the lines that install Maps:
require_once( "$IP/extensions/SemanticMaps/SemanticMaps.php" );
The placement of the inclusion of Maps and Semantic Maps needs to be at a certain position. Hold the following rules into account:
- Maps needs to be included before Semantic Maps.
- Semantic MediaWiki needs to be included before Maps.
- Semantic Forms (if used) needs to be included before Maps (after SMW).
An example of a typical inclusion order: ..., SMW, ..., SF, ..., Maps, SM, ...
Once you have successfully installed Semantic Maps, please add your wiki to the sites that use Semantic Maps section.
Upgrading from Semantic Google Maps
If you have Semantic Google Maps installed, and want to upgrade to Semantic Maps, these are the steps you need to follow:
- Remove the SemanticGoogleMaps directory from your extension directory.
- Remove (when you use it) Google Geocoder in a similar fashion.
- Upload both Maps and Semantic Maps to your extension directory.
- Make sure your API keys are in the right place (the variable $wgGoogleMapsKey will need to be renamed, or copied, to $egGoogleMapsKey).
- Change all #semantic_google_map parser functions with #display_point.
- Add parameter names to the value of the #display_point calls.
After doing all these steps, you should be done. Maps and Semantic Maps are designed to be backward compatible with SGM, so all SGM code should work on Semantic Maps. If you encounter some problem though, please let the extension developers know.
Semantic Maps is currently at version 0.6.6 (2010-08-26). It is still considered beta, since some small issues might be present. However, it has been tested quite thoroughly, and should not cause any big problems.
- Version 0.5 (2009-12-17)
- Version 0.3 (2009-08-14)
- Version 0.2 (2009-07-29)
- Version 0.2.1 (2009-07-30)
- Version 0.2.2 (2009-08-01)
- Version 0.1 (2009-07-21)
Semantic Maps has support for English, Afrikaans, Arabic, Egyptian Spoken Arabic, Belarusian, Breton, Bosnian, Catalan, German, Lower Sorbian, Greek, Esperanto, Spanish, Basque, Finnish, French, Galician, Swiss German, Hebrew, Upper Sorbian, Hungarian, Interlingua, Indonesian, Italian, Japanese, Khmer, Ripoarisch, Luxembourgish, Macedonian, Dutch, Norwegian Nynorsk, Norwegian, Occitan, Polish, Piedmontese, Portuguese, Brazilian Portuguese, Romanian, Tarandíne, Russian, Slovak, Serbian Cyrillic ekavian, Serbian Latin ekavian, Swedish, Telugu, Tagalog, Veps, Vietnamese, Volapük, Simplified Chinese, Traditional Chinese and others.
Semantic Maps allows you to configure a variety of settings, and so affect how the extension works. All settings are located in SM_Settings.php, in the root of the extension. You can modify a setting by copying it's code and placing it with the adapted value in LocalSettings.php, after the inclusion of Semantic Maps. Here you have a list of the common settings (the ones that affect all mapping services). For the specific settings, see the map services. Note that the settings file is documented, and should provide you with sufficient information to understand the working of all settings.
Since Semantic Maps extends Maps, most settings are actually part of Maps. If you want to change such settings, which include things like default map height and zoom level, review Maps settings.
Available mapping services
Semantic Maps adds data to this setting, but it belongs to Maps. See Maps available mapping services for more info.
include_once $smgIP . '/GoogleMaps/SM_GoogleMaps.php'; // Google Maps include_once $smgIP . '/OpenLayers/SM_OpenLayers.php'; // OpenLayers include_once $smgIP . '/YahooMaps/SM_YahooMaps.php'; // Yahoo! Maps include_once $smgIP . '/OpenStreetMap/SM_OSM.php'; // OpenLayers optimized for OSM
When not using a service, you might consider removing it's inclusion. Doing this will cause Maps to completely ignore it for Semantic Maps features, and so improve performance.
Default mapping service
Semantic Maps adds data to this setting, but it belongs to Maps. See Maps default mapping service for more info.
$egMapsDefaultServices['qp'] = 'googlemaps'; $egMapsDefaultServices['fi'] = 'googlemaps';
This list contains all available features, and their feature identifier, which Semantic Maps should add to the $egMapsDefaultServices array.
- qp - Query Printer - This default will be used for all semantic queries. Query printers handle semantic result formats.
- fi - Form Input - This default will be used for all form input maps. Form inputs define Semantic Forms input types.
Available mapping features
Semantic Maps adds data to this setting, but it belongs to Maps. See Maps available mapping features for more info.
$egMapsAvailableFeatures['qp'] = array( 'name' => 'Query Printer', 'class' => 'SMQueryPrinters', 'file' => 'SemanticMaps/QueryPrinters/SM_QueryPrinters.php', 'local' => false ); $egMapsAvailableFeatures['fi'] = array( 'name' => 'Form input', 'class' => 'SMFormInputs', 'file' => 'SemanticMaps/FormInputs/SM_FormInputs.php', 'local' => false );
Contributing to the project
Supporting further development
Are you using Semantic Maps, and want to show a sign of gratitude? You can make a donation to support further development.
Extending Semantic Maps
Semantic Maps is a hook to Maps, which has been designed to be very extendible. It has several hooks that enable you to add support for new mapping services, geocoding services or entirely new features (such as parser functions) to it without having to change anything to the code of Maps. This enables you to add things to Maps in your own extension, or simply create a new extension to Maps. Semantic Maps is an example of an extension to Maps.
There are multiple important reasons why you should consider creating an extension to Maps, versus creating your own mapping extension. You can find these reasons, and how to extend Maps (or Semantic Maps) here.
Bugs and patches
If you found some bug and fixed it, please create a patch by going to the "SemanticMaps" directory, and typing:
svn diff >descriptivename.patch
Then add the patch to the bugs section of the future work page. Bug reports should also be added here. You can also send them to Jeroen De Dauw, jeroendedauw -at- gmail.com, and Yaron Koren, at yaron57 -at- gmail.com.
Translation of Semantic Maps is done through translatewiki.net. The translation for this extension can be found here. To add language values or change existing ones, you should create an account on translatewiki.net, then request permission from the administrators to translate a certain language or languages on this page (this is a very simple process). Once you have permission for a given language, you can log in and add or edit whatever messages you want to in that language.
Work for hire
The following people can be hired to set up a wiki that uses Maps and Semantic Maps, along with other MediaWiki components.
- Jeroen De Dauw - You can also hire me to develop new features for Maps or it's extensions, or do optimizations for your specific needs. Just send me an email.
If you have any Semantic Maps related questions, you can add them to the Talk page. You can alternatively also place any questions on the Semantic MediaWiki mailing list, semediawiki-user. If possible, add "[SM]" at the beginning of the subject line, to clarify the subject matter. Please contact the extensions authors only directly for urgent matters. Placing your questions on the talk page will create useful references for other people with similar problems.
Sites that use Semantic Maps
Are you using Semantic Maps? Then be sure to add your wiki to the top of this list, and feel free to link your favourite Semantic Maps-using articles!
- Moxy Knowledge Management, Analysis of Coal to Liquids projects in Australia
- WiTTIE Wiki
- Hackerspace Gent
- BN2VS.com, BN's demo wiki
- Bougna.info, Bougna Citizen Information
- Childrenarewelcome.co.uk, Children are Welcome
- CivicStudio.org, "On the River Project"
- Referata.com, Food Finds
- Hackerspace.lu, syn2cat Hackerspace
- Hackerspace.be, Hackerspace Brussels
- MOW-Wiki.tk, Men of War - Wiki
- Openei.org, OpenEnergyInfo
- Referata.com, Semantic MediaWiki community wiki
- Referata.com, ShelterCrisis
- TransitUnlimited.org, Transit Unlimited
- Web Community Wiki
- Semantic Maps demo's
- bn2vs.com, Blog of the author about Semantic Maps
- Powerpoint presentation about MediaWiki, SMW, Maps and Semantic Maps 0.5.3 used at a presentation in Gent, February 2010.
- Powerpoint presentation, about Maps and Semantic Maps 0.4 used at Semantic MediaWiki Camp 2009.