{"id":5751,"date":"2019-01-25T15:19:59","date_gmt":"2019-01-25T15:19:59","guid":{"rendered":"https:\/\/irsg.bcs.org\/informer\/?p=5751"},"modified":"2019-01-25T15:19:59","modified_gmt":"2019-01-25T15:19:59","slug":"whats-wrong-with-boolean-strings","status":"publish","type":"post","link":"https:\/\/archive-irsg.bcs.org\/informer\/?p=5751","title":{"rendered":"What&#039;s wrong with Boolean strings?"},"content":{"rendered":"<div id=\"block-5dbfffb025a222825a3c\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div class=\"sqs-block-content\">\n<p>In our\u00a0<a href=\"https:\/\/www.2dsearch.com\/news\/\">previous posts<\/a>\u00a0we explored some of the challenges involved in formulating complex\u00a0<a href=\"https:\/\/www.2dsearch.com\/news\/2018\/6\/28\/visualizing-boolean-expressions-part-2\">Boolean strings and expressions<\/a>, and reviewed six of the more innovative alternative solutions. Each of these offers its own unique perspective on how to solve such problems, and their pioneering efforts provide us with a rich set of\u00a0<a href=\"https:\/\/www.2dsearch.com\/news\/2018\/6\/28\/visualizing-boolean-expressions-part-2\">design insights and principles<\/a>. In this brief post, we reflect on the shortcomings of the\u00a0<a href=\"https:\/\/insights.dice.com\/report\/build-better-boolean-searches-strings\/\">Boolean string<\/a>\u00a0itself, and ask ourselves how we might do better.<\/p>\n<\/div>\n<\/div>\n<div id=\"block-yui_3_17_2_1_1530619999436_13752\" class=\"sqs-block image-block sqs-block-image sqs-text-ready\" data-block-type=\"5\">\n<div id=\"yui_3_17_2_1_1548515875767_277\" class=\"sqs-block-content\">\n<div id=\"yui_3_17_2_1_1548515875767_276\" class=\"image-block-outer-wrapper layout-caption-below design-layout-inline \">\n<div id=\"yui_3_17_2_1_1548515875767_275\" class=\"intrinsic\">\n<div id=\"yui_3_17_2_1_1548515875767_274\" class=\"image-block-wrapper has-aspect-ratio\" data-description=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"thumb-image loaded aligncenter\" src=\"https:\/\/static1.squarespace.com\/static\/5a8c30620abd04527cc381ec\/t\/5b3b68e9758d46337dea0bbf\/1530620155872\/venn.PNG?format=500w\" alt=\"venn.PNG\" width=\"228\" height=\"211\" data-src=\"https:\/\/static1.squarespace.com\/static\/5a8c30620abd04527cc381ec\/t\/5b3b68e9758d46337dea0bbf\/1530620155872\/venn.PNG\" data-image=\"https:\/\/static1.squarespace.com\/static\/5a8c30620abd04527cc381ec\/t\/5b3b68e9758d46337dea0bbf\/1530620155872\/venn.PNG\" data-image-dimensions=\"465x431\" data-image-focal-point=\"0.5,0.5\" data-load=\"false\" data-image-id=\"5b3b68e9758d46337dea0bbf\" data-type=\"image\" data-position-mode=\"standard\" data-image-resolution=\"500w\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><!--more--><\/p>\n<div id=\"block-yui_3_17_2_1_1530620158817_2911\" class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\">\n<div id=\"yui_3_17_2_1_1548515875767_584\" class=\"sqs-block-content\">\n<h2>A legacy format<\/h2>\n<p>There are many professions whose work involves\u00a0<a href=\"https:\/\/isquared.wordpress.com\/2015\/12\/17\/user-requirements-for-complex-search-strategies-slideshow\/\">finding answers to complex search challenges<\/a>. In many cases, the default solution is to use Boolean strings (i.e. Boolean expressions represented as a string of characters). For example, recruiters commonly use Boolean strings to source candidates, crafting expressions such as the following:<\/p>\n<blockquote><p>(\u201cbusiness analyst\u201d or \u201csystems analyst\u201d or \u201csystem analyst\u201d or \u201cdata analyst\u201d or \u201crequirements analyst\u201d or \u201cfunctional analyst\u201d) and crystal and report* and analy* and data near analy* and not inventory and not retail and not (ecommerce or\u00a0 \u201ce-commerce\u201d or b2b or b2c)<\/p><\/blockquote>\n<p>Advocates in the profession (quite rightly) pride themselves on an ability to \u2019speak Boolean\u2019. Indeed, some even refer to themselves as \u2018<a href=\"http:\/\/booleanblackbelt.com\/2011\/10\/what-is-a-boolean-black-belt-anyway\/\">Boolean black belts<\/a>\u2019.<\/p>\n<p>But the format itself leaves a lot to be desired.<\/p>\n<p>First, it is poor at\u00a0<strong>communicating structure<\/strong>. The use of parentheses as delimiters may be commonplace in programming languages and data structures, but when intended for human interpretation, they are invariably coupled with some sort of physical cue such as indentation. In the absence of such visual signals, parentheses can become lost in a sea of alphanumeric characters, and trying to understand the meaning and structure of such expressions induces unnecessary\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Cognitive_load\">cognitive load<\/a>.<\/p>\n<p>Second, it doesn\u2019t\u00a0<strong>scale well<\/strong>. As you add terms to a Boolean string, it grows monotonically in length. This may be acceptable for a handful of terms, but as soon as that grows to double figures and beyond, transparency becomes progressively degraded. A common solution to an analogous problem in software engineering is to offer some form of\u00a0<a href=\"https:\/\/whatis.techtarget.com\/definition\/abstraction\"><em>abstraction<\/em><\/a>, so that lower-level details can be progressively hidden and the overall structure revealed. But Boolean strings (in their native form) offer no such facility.<\/p>\n<p>Third, they are very\u00a0<strong>error-prone<\/strong>. How many times have you revised a problematic Boolean string only to find that a missing bracket was the culprit? Or worse still, you find you had the right number of brackets, but\u00a0<a href=\"https:\/\/www.stackoverflowbusiness.com\/blog\/3-common-mistakes-recruiters-make-using-boolean-search\">in the wrong place<\/a>, completely changing the semantics of your search?<\/p>\n<p>Each of the above reasons should provide sufficient motivation to pursue an alternative. Taken together, they provide compelling evidence that a change may be due. Moreover, I\u2019d conjecture that most Boolean strings of any complexity are\u00a0<em>read many more times than they are written<\/em>. And in that context, we can and should do more to ensure that the effort invested in them is better realized, and that their content can be better understood, optimised and re-used.<\/p>\n<h2>In summary<\/h2>\n<p id=\"yui_3_17_2_1_1548515875767_583\">In this brief post we\u2019ve reviewed some of the shortcomings of using Boolean strings to solve complex search problems. In our next post, we\u2019ll review how we have attempted to apply some of the lessons learned in our own work. In advance of that, if you\u2018d like to try for yourself, head on over to\u00a0<a href=\"https:\/\/app.2dsearch.com\/\">2dSearch<\/a>, and let us know what you think.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In our\u00a0previous posts\u00a0we explored some of the challenges involved in formulating complex\u00a0Boolean strings and expressions, and reviewed six of the more innovative alternative solutions. Each of these offers its own unique perspective on how to solve such problems, and their pioneering efforts provide us with a rich set of\u00a0design insights and principles. In this brief&hellip; <a class=\"more-link\" href=\"https:\/\/archive-irsg.bcs.org\/informer\/?p=5751\">Continue reading <span class=\"screen-reader-text\">What&#039;s wrong with Boolean strings?<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[201,237],"tags":[251,265,327],"class_list":["post-5751","post","type-post","status-publish","format-standard","hentry","category-feature-article","category-winter-2019","tag-boolean","tag-data-visualization","tag-search-strategies","entry"],"_links":{"self":[{"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=\/wp\/v2\/posts\/5751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5751"}],"version-history":[{"count":0,"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=\/wp\/v2\/posts\/5751\/revisions"}],"wp:attachment":[{"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive-irsg.bcs.org\/informer\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}