{"id":369,"date":"2009-08-28T12:26:14","date_gmt":"2009-08-28T11:26:14","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=369"},"modified":"2009-08-28T12:26:14","modified_gmt":"2009-08-28T11:26:14","slug":"manual-extending-semantic-maps","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/","title":{"rendered":"Manual: Extending Semantic Maps"},"content":{"rendered":"<p>I just finished creating the <a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Maps\/Extending_Maps#Extending_Semantic_Maps\" target=\"_blank\">developers manual to extend Semantic Maps<\/a>. Like the<a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Maps\/Extending_Maps#Extending_Maps\" target=\"_blank\"> manual for Maps<\/a>, it targets developers who want to add support for a mapping service to one of the features Maps and <a href=\"http:\/\/www.mediawiki.org\/wiki\/Extension:Semantic_Maps\" target=\"_blank\">Semantic Maps<\/a> support. It goes over all the key aspects of the PHP code, like how to add your own service, how to create a query printer or form input class, and what the most notable differences with the parser function classes are. Examples and out-takes are also provided. The manual does not cover the JavaScript aspects of adding your own mapping service, since that code really depends on the API it uses, and although the overall structure might be similar, the code itself most likely is not.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I just finished creating the developers manual to extend Semantic Maps. Like the manual for Maps, it targets developers who&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[154,156,181,195,227,285],"class_list":["post-369","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-mapping","tag-mediawiki","tag-open-source","tag-php","tag-semantic-maps","tag-wikimedia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Manual: Extending Semantic Maps - Blog of Jeroen De Dauw<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Manual: Extending Semantic Maps - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"I just finished creating the developers manual to extend Semantic Maps. Like the manual for Maps, it targets developers who&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2009-08-28T11:26:14+00:00\" \/>\n<meta name=\"author\" content=\"Jeroen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/JeroenDeDauw\" \/>\n<meta name=\"twitter:site\" content=\"@JeroenDeDauw\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Manual: Extending Semantic Maps\",\"datePublished\":\"2009-08-28T11:26:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/\"},\"wordCount\":127,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"keywords\":[\"Mapping\",\"MediaWiki\",\"Open Source\",\"PHP\",\"Semantic Maps\",\"Wikimedia\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/\",\"name\":\"Manual: Extending Semantic Maps - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"datePublished\":\"2009-08-28T11:26:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2009\\\/08\\\/28\\\/manual-extending-semantic-maps\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Manual: Extending Semantic Maps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\",\"name\":\"Entropy Wins\",\"description\":\"A blog on Software Architecture, Design and Craftsmanship\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\",\"name\":\"Jeroen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\",\"caption\":\"Jeroen\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jeroendedauw\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/JeroenDeDauw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Manual: Extending Semantic Maps - Blog of Jeroen De Dauw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/","og_locale":"en_US","og_type":"article","og_title":"Manual: Extending Semantic Maps - Blog of Jeroen De Dauw","og_description":"I just finished creating the developers manual to extend Semantic Maps. Like the manual for Maps, it targets developers who&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2009-08-28T11:26:14+00:00","author":"Jeroen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/JeroenDeDauw","twitter_site":"@JeroenDeDauw","twitter_misc":{"Written by":"Jeroen","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Manual: Extending Semantic Maps","datePublished":"2009-08-28T11:26:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/"},"wordCount":127,"commentCount":0,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"keywords":["Mapping","MediaWiki","Open Source","PHP","Semantic Maps","Wikimedia"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/","url":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/","name":"Manual: Extending Semantic Maps - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"datePublished":"2009-08-28T11:26:14+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/28\/manual-extending-semantic-maps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Manual: Extending Semantic Maps"}]},{"@type":"WebSite","@id":"https:\/\/www.entropywins.wtf\/blog\/#website","url":"https:\/\/www.entropywins.wtf\/blog\/","name":"Entropy Wins","description":"A blog on Software Architecture, Design and Craftsmanship","publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.entropywins.wtf\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7","name":"Jeroen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g","caption":"Jeroen"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/d62e6b5b8e332335cf17854fac850d9c70ba367c4692872613c3110ebd4e009b?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/jeroendedauw\/","https:\/\/x.com\/https:\/\/twitter.com\/JeroenDeDauw"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p74TBF-5X","jetpack-related-posts":[{"id":326,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/16\/manual-extending-maps\/","url_meta":{"origin":369,"position":0},"title":"Manual: Extending Maps","author":"Jeroen","date":"2009-08-16","format":false,"excerpt":"Today I finally announced the new releases of my extensions on a few wiki mailing lists. I also gave the Semantic Maps documentation another overhaul, and created a manual on how to extend maps. This manual targets developers who want to add support for a mapping service to one of\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":697,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/02\/01\/maps-and-semantic-maps-0-5-3-released\/","url_meta":{"origin":369,"position":1},"title":"Maps and Semantic Maps 0.5.3 released","author":"Jeroen","date":"2010-02-01","format":false,"excerpt":"Today I released Maps and Semantic Maps 0.5.3. Both releases mainly include bug-fixes, some of which quite important: Fixed JavaScript bug causing all OSM maps to fail. Pretty important yeah :) Fixed issue causing a fatal error when executing a query on Special:Ask with the \"map\" format. Fixed issue causing\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":244,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/07\/21\/semantic-maps-0-1-released\/","url_meta":{"origin":369,"position":2},"title":"Semantic Maps 0.1 released!","author":"Jeroen","date":"2009-07-21","format":false,"excerpt":"Closely following the initial release of Maps, the first version of Semantic Maps is now publicly available! Some useful links: Semantic Maps documentation Semantic Maps demo's Semantic Maps downloads Semantic Maps source code on the Wikimedai SVN Yaron's (slightly more extensive) blog post about the release Tomorrow I'll be announcing\u2026","rel":"","context":"In &quot;News&quot;","block_context":{"text":"News","link":"https:\/\/www.entropywins.wtf\/blog\/category\/news\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":936,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/07\/28\/maps-and-semantic-maps-0-6-5-released\/","url_meta":{"origin":369,"position":3},"title":"Maps and Semantic Maps 0.6.5 released","author":"Jeroen","date":"2010-07-28","format":false,"excerpt":"Maps and Semantic Maps 0.6.5 are now available for download. This release contains mainly internal changes to improve code modularity and fix some security concerns. Several bugs have been fixed as well, and a new hook has been added to Semantic Maps. This hook will get you the map format\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":294,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/08\/05\/structural-changes-for-maps-and-sm-0-3\/","url_meta":{"origin":369,"position":4},"title":"Structural changes for Maps and SM 0.3","author":"Jeroen","date":"2009-08-05","format":false,"excerpt":"Just like version 0.2 of both Maps and Semantic Maps, version 0.3 will feature a variety of large structural changes, aimed at increasing the performance of the extensions, making it possible to add new features, but most of all, make it more modular, to allow people to easily extend them.\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":416,"url":"https:\/\/www.entropywins.wtf\/blog\/2009\/09\/12\/maps-and-semantic-maps-0-3-4-released\/","url_meta":{"origin":369,"position":5},"title":"Maps and Semantic Maps 0.3.4 released","author":"Jeroen","date":"2009-09-12","format":false,"excerpt":"Today a new version of Maps and Semantic Maps where released. This version, 0.3.4, mainly focused on the internal structure of the extensions, performance issues and bug fixes. Some small new features have been added though. Bug fixes Fixed some issues with invalid parameter handling. This comes down to 2\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/comments?post=369"}],"version-history":[{"count":0,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/369\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}