{"id":1383,"date":"2014-08-02T22:29:45","date_gmt":"2014-08-02T21:29:45","guid":{"rendered":"https:\/\/www.entropywins.wtf\/blog\/?p=1383"},"modified":"2014-08-02T22:36:19","modified_gmt":"2014-08-02T21:36:19","slug":"optional-table-alias-in-the-doctrine-querybuilder","status":"publish","type":"post","link":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/","title":{"rendered":"Doctrine QueryBuilder table alias"},"content":{"rendered":"<p>The <a href=\"http:\/\/www.doctrine-project.org\/\">Doctrine project<\/a>, best known for its <a href=\"http:\/\/www.doctrine-project.org\/projects\/orm.html\">Object Relational Mapper<\/a>, also includes a <a href=\"http:\/\/www.doctrine-project.org\/projects\/dbal.html\">database abstraction layer<\/a>, used by the ORM. This abstraction layer is called DBAL, for DataBase Abstraction Layer.<\/p>\n<p>Quickly after I started using DBAL in some <a href=\"https:\/\/www.mediawiki.org\/wiki\/Wikibase\/Components\">Wikibase components<\/a>, I got annoyed at how single table single table selects needed to be created. The <a href=\"http:\/\/docs.doctrine-project.org\/projects\/doctrine-dbal\/en\/latest\/reference\/query-builder.html\">QueryBuilder<\/a> has a &#8220;from&#8221; method, in which one needs to specify the table name. The annoying bit is that you also had to specify a table alias, and then use this alias in the select and where calls as well.<\/p>\n<p><a href=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1385\" data-permalink=\"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/dbal-old\/\" data-orig-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg\" data-orig-size=\"316,100\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"dbal-old\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg\" class=\"alignnone size-full wp-image-1385\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg\" alt=\"dbal-old\" width=\"316\" height=\"100\" srcset=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg 316w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old-300x94.jpg 300w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old-100x31.jpg 100w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old-150x47.jpg 150w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old-200x63.jpg 200w\" sizes=\"auto, (max-width: 316px) 100vw, 316px\" \/><\/a><\/p>\n<p>In an hour of free time and <a href=\"https:\/\/github.com\/doctrine\/dbal\/pull\/646\">several commits<\/a> I made the parameter optional, enabling one to do the same without having to specify the alias:<\/p>\n<p><a href=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1384\" data-permalink=\"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/dbal-new\/\" data-orig-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new.jpg\" data-orig-size=\"313,100\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"dbal-new\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new.jpg\" class=\"alignnone size-full wp-image-1384\" src=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new.jpg\" alt=\"dbal-new\" width=\"313\" height=\"100\" srcset=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new.jpg 313w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new-300x95.jpg 300w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new-100x31.jpg 100w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new-150x47.jpg 150w, https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-new-200x63.jpg 200w\" sizes=\"auto, (max-width: 313px) 100vw, 313px\" \/><\/a><\/p>\n<p>This change will be part of the upcoming Doctrine DBAL 2.5.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Doctrine project, best known for its Object Relational Mapper, also includes a database abstraction layer, used by the ORM.&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":[7,8],"tags":[71,347,346,181,197],"class_list":["post-1383","post","type-post","status-publish","format-standard","hentry","category-programming","category-software","tag-database","tag-dbal","tag-doctrine","tag-open-source","tag-planet-wikimedia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Doctrine QueryBuilder table alias - 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\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Doctrine QueryBuilder table alias - Blog of Jeroen De Dauw\" \/>\n<meta property=\"og:description\" content=\"The Doctrine project, best known for its Object Relational Mapper, also includes a database abstraction layer, used by the ORM.&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of Jeroen De Dauw\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-02T21:29:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-08-02T21:36:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg\" \/>\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\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/\"},\"author\":{\"name\":\"Jeroen\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"headline\":\"Doctrine QueryBuilder table alias\",\"datePublished\":\"2014-08-02T21:29:45+00:00\",\"dateModified\":\"2014-08-02T21:36:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/\"},\"wordCount\":135,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#\\\/schema\\\/person\\\/4e2ef14f2ca7dc3a0ac137d1692b66b7\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/dbal-old.jpg\",\"keywords\":[\"Database\",\"DBAL\",\"Doctrine\",\"Open Source\",\"Planet Wikimedia\"],\"articleSection\":[\"Programming\",\"Software\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/\",\"name\":\"Doctrine QueryBuilder table alias - Blog of Jeroen De Dauw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/dbal-old.jpg\",\"datePublished\":\"2014-08-02T21:29:45+00:00\",\"dateModified\":\"2014-08-02T21:36:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/dbal-old.jpg\",\"contentUrl\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/08\\\/dbal-old.jpg\",\"width\":316,\"height\":100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/2014\\\/08\\\/02\\\/optional-table-alias-in-the-doctrine-querybuilder\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.entropywins.wtf\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Doctrine QueryBuilder table alias\"}]},{\"@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":"Doctrine QueryBuilder table alias - 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\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/","og_locale":"en_US","og_type":"article","og_title":"Doctrine QueryBuilder table alias - Blog of Jeroen De Dauw","og_description":"The Doctrine project, best known for its Object Relational Mapper, also includes a database abstraction layer, used by the ORM.&hellip;","og_url":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/","og_site_name":"Blog of Jeroen De Dauw","article_published_time":"2014-08-02T21:29:45+00:00","article_modified_time":"2014-08-02T21:36:19+00:00","og_image":[{"url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg","type":"","width":"","height":""}],"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\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#article","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/"},"author":{"name":"Jeroen","@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"headline":"Doctrine QueryBuilder table alias","datePublished":"2014-08-02T21:29:45+00:00","dateModified":"2014-08-02T21:36:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/"},"wordCount":135,"commentCount":2,"publisher":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#\/schema\/person\/4e2ef14f2ca7dc3a0ac137d1692b66b7"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg","keywords":["Database","DBAL","Doctrine","Open Source","Planet Wikimedia"],"articleSection":["Programming","Software"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/","url":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/","name":"Doctrine QueryBuilder table alias - Blog of Jeroen De Dauw","isPartOf":{"@id":"https:\/\/www.entropywins.wtf\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#primaryimage"},"image":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#primaryimage"},"thumbnailUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg","datePublished":"2014-08-02T21:29:45+00:00","dateModified":"2014-08-02T21:36:19+00:00","breadcrumb":{"@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#primaryimage","url":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg","contentUrl":"https:\/\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/08\/dbal-old.jpg","width":316,"height":100},{"@type":"BreadcrumbList","@id":"https:\/\/www.entropywins.wtf\/blog\/2014\/08\/02\/optional-table-alias-in-the-doctrine-querybuilder\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.entropywins.wtf\/blog\/"},{"@type":"ListItem","position":2,"name":"Doctrine QueryBuilder table alias"}]},{"@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-mj","jetpack-related-posts":[{"id":1340,"url":"https:\/\/www.entropywins.wtf\/blog\/2014\/05\/06\/wikibase-and-doctrine-dbal\/","url_meta":{"origin":1383,"position":0},"title":"Wikibase and Doctrine DBAL","author":"Jeroen","date":"2014-05-06","format":false,"excerpt":"When I started writing this blog post, I realized some introduction to the query components was first due. You can find it in my last blog post: The Wikidata phase3 software components. In this post I described how the SQLStore uses a database abstraction layer to not bind itself to\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/05\/dbal.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/05\/dbal.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/05\/dbal.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/05\/dbal.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2014\/05\/dbal.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":1337,"url":"https:\/\/www.entropywins.wtf\/blog\/2014\/05\/06\/the-wikidata-phase3-software-components\/","url_meta":{"origin":1383,"position":1},"title":"The Wikidata phase3 software components","author":"Jeroen","date":"2014-05-06","format":false,"excerpt":"Work on the long awaited query functionality for the Wikidata project has already happened during a period of several months. Since queries are a completely disjoint feature set from the existing functionality, we decided to put it into a new component part of the Wikibase software. This component is called\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":1141,"url":"https:\/\/www.entropywins.wtf\/blog\/2013\/11\/01\/new-database-abstraction-layer-for-mediawiki\/","url_meta":{"origin":1383,"position":2},"title":"New database abstraction layer for MediaWiki","author":"Jeroen","date":"2013-11-01","format":false,"excerpt":"Disclaimer: the views and opinions expressed in this blog post are my own, and do not reflect those of Wikmedia Germany or my colleagues. At Wikimedia Germany, we\u2019ve created a library that acts as database abstraction layer and which is largely build on top of the MediaWiki database abstraction layer.\u2026","rel":"","context":"With 1 comment","block_context":{"text":"With 1 comment","link":"https:\/\/www.entropywins.wtf\/blog\/2013\/11\/01\/new-database-abstraction-layer-for-mediawiki\/#comments"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1488,"url":"https:\/\/www.entropywins.wtf\/blog\/2015\/11\/14\/entitystore-and-termstore-for-wikibasewikidata\/","url_meta":{"origin":1383,"position":3},"title":"EntityStore and TermStore for Wikibase\/Wikidata","author":"Jeroen","date":"2015-11-14","format":false,"excerpt":"I'm happy to announce the public release of two new PHP libraries that provide services around Wikibase, the software behind Wikidata. They are called QueryR EntityStore and QueryR TermStore. Both these libraries provide persistence and lookup services for specific Wikibase data. These services are build on top of Doctrine DBAL,\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":896,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/07\/15\/mediawiki-deployment\/","url_meta":{"origin":1383,"position":4},"title":"MediaWiki deployment","author":"Jeroen","date":"2010-07-15","format":false,"excerpt":"A lot has happened in my Google Summer of Code project since my last blog post about it, so here is another update. I did give a short presentation about it at Wikimania 2010, but that did not go very well unfortunately. You can get the slides though. I changed\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"MediaWiki deployment","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/800px-Mwdeployment.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/800px-Mwdeployment.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/800px-Mwdeployment.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/07\/800px-Mwdeployment.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":962,"url":"https:\/\/www.entropywins.wtf\/blog\/2010\/08\/20\/end-of-google-summer-of-code-2010\/","url_meta":{"origin":1383,"position":5},"title":"End of Google Summer of Code 2010","author":"Jeroen","date":"2010-08-20","format":false,"excerpt":"As Google Summer of Code (GSoC) 2010 has ended, I'm writing this blog post to outline what I've done during the coding period and what the results are. Thanks go to the Wikimedia Foundation and Google for providing the opportunity to do this project, Brion Vibber, who mentored me, and\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.entropywins.wtf\/blog\/category\/programming\/"},"img":{"alt_text":"Google Summer of Code 2010","src":"https:\/\/i0.wp.com\/www.entropywins.wtf\/blog\/wp-content\/uploads\/2010\/08\/2010_NoURL_300x267px.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1383","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=1383"}],"version-history":[{"count":3,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1383\/revisions"}],"predecessor-version":[{"id":1388,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/posts\/1383\/revisions\/1388"}],"wp:attachment":[{"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/media?parent=1383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/categories?post=1383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.entropywins.wtf\/blog\/wp-json\/wp\/v2\/tags?post=1383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}