<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>The Findability blog</title>
	<atom:link href="http://findwise.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://findwise.com/blog</link>
	<description>the enterprise search and findability blog by Findwise</description>
	<lastBuildDate>Tue, 27 Oct 2020 15:14:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.6</generator>
	<item>
		<title>Semantic Annotation (how to make stuff findable, and more)</title>
		<link>https://findwise.com/blog/semantic-annotation-findable/</link>
					<comments>https://findwise.com/blog/semantic-annotation-findable/#respond</comments>
		
		<dc:creator><![CDATA[Peter Voisey]]></dc:creator>
		<pubDate>Thu, 22 Oct 2020 11:39:12 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6187</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/semantic-annotation-findable/">Semantic Annotation (how to make stuff findable, and more)</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/petervoisey/">Peter Voisey</a></p>
<p>With semantic annotation, your customers and employees can get the right information in order to make better decisions Why automatic Semantic Annotation?   Empower customers &#38; employees with the right information  Moving data and services to the Cloud have many advantages, including the flexibility of work practices. &#8230; <a href="https://findwise.com/blog/semantic-annotation-findable/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/semantic-annotation-findable/">Semantic Annotation (how to make stuff findable, and more)</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/petervoisey/">Peter Voisey</a></p>
<h3><span class="EOP SCXW233163492 BCX9" data-ccp-props="{}">With semantic annotation, your customers and employees can get the right information in order to make better decisions</span></h3>
<h1></h1>
<h1><span style="color: #ff6600;"><b>Why automatic Semantic Annotation? </b> </span></h1>
<h2><b><span data-contrast="auto">Empower customers &amp; employees with the right information</span></b><span data-ccp-props="{}"> </span></h2>
<p><span data-contrast="auto">Moving data</span><span data-contrast="auto"> and services</span><span data-contrast="auto"> to the Cloud </span><span data-contrast="auto">ha</span><span data-contrast="auto">ve</span><span data-contrast="auto"> many advantages, including </span><span data-contrast="auto">the </span><span data-contrast="auto">flexibility of work practices</span><span data-contrast="auto">. COVID-19 has boosted t</span><span data-contrast="auto">h</span><span data-contrast="auto">e </span><span data-contrast="auto">trend </span><span data-contrast="auto">and </span><span data-contrast="auto">many </span><span data-contrast="auto">organisations </span><span data-contrast="auto">are benefiting </span><span data-contrast="auto">from </span><span data-contrast="auto">employees also being able to work from home. If employees are to become customers themselves, they should be expecting a quality Search service. Semantic Annotation can help with this.</span></p>
<p><span data-contrast="auto">For m</span><span data-contrast="auto">any employees</span><span data-contrast="auto">, finding information is still a problem. Having poor </span><span data-contrast="auto">S</span><span data-contrast="auto">earch does little to encourage use</span><span data-contrast="auto">rs either to use it</span><span data-contrast="auto">,</span><span data-contrast="auto"> or to improve </span><span data-contrast="auto">their </span><span data-contrast="auto">decision-making, knowledge sharing or curiosity &amp; innovation</span><span data-contrast="auto">.</span><span data-contrast="auto"> </span><span data-contrast="auto">Let’s not forget</span><span data-contrast="auto">,</span><span data-contrast="auto"> better search means </span><span data-contrast="auto">less </span><span data-contrast="auto">duplication too.</span><span data-ccp-props="{}"> </span></p>
<p><span class="TextRun SCXW199059260 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW199059260 BCX9">Making data and content “smarter” makes it more </span></span><span class="TextRun SCXW199059260 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW199059260 BCX9">findable.</span></span><span class="EOP SCXW199059260 BCX9" data-ccp-props="{}"> </span></p>
<p><iframe title="Organisational knowledge can be stored and used for consistent and automatic semantic annotation" src="https://www.slideshare.net/slideshow/embed_code/key/wxURTKoGMNOiBO" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> </p>
<div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/infopg/organisational-knowledge-can-be-stored-and-used-for-consistent-and-automatic-semantic-annotation" title="Organisational knowledge can be stored and used for consistent and automatic semantic annotation" target="_blank">Organisational knowledge can be stored and used for consistent and automatic semantic annotation</a> </strong> from <strong><a href="https://www.slideshare.net/infopg" target="_blank">Peter Voisey</a></strong> </div>
<p>&nbsp;</p>
<p><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">Data and content are rarely structured with good metadata or tagg</span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">ing</span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9"> (annota</span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">tion</span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">) unless either they are being used to sell something, or </span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">they are deemed as business critical. </span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">Generally, when we create </span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">(</span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">data,</span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9"> content),</span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9"> we just </span></span><span class="TextRun SCXW112796971 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW112796971 BCX9">save it to storage(s).</span></span><span class="EOP SCXW112796971 BCX9" data-ccp-props="{&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">We could tag</span><span data-contrast="auto"> manually</span><span data-contrast="auto">, but research shows that we’re not good at this. Even if we bother to tag, we only do it from our own perspective, and even then, we do it inconsistently over time. </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Alternatively, </span><span data-contrast="auto">we </span><span data-contrast="auto">could let AI do the work. Give data/content structure, meaning and context (all automatically</span><span data-contrast="auto"> and consistently</span><span data-contrast="auto">), so that it can be found.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">The main need for automatic Semantic Annotation? </span><span data-contrast="auto">About 70-80% of the average organisation’s data is unstructured (/textual). </span><span data-contrast="auto">Add to this:</span><span data-contrast="auto"> even </span><span data-contrast="auto">database</span><span data-contrast="auto">s have textual</span><span data-contrast="auto"> labels</span><span data-contrast="auto"> and headings.</span><span data-ccp-props="{}"> </span></p>
<h1><span style="color: #ff6600;"><span class="TextRun MacChromeBold SCXW252490021 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW252490021 BCX9">How to </span></span><span class="TextRun MacChromeBold SCXW252490021 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW252490021 BCX9">create </span></span><span class="TextRun MacChromeBold SCXW252490021 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW252490021 BCX9">automatic Semantic Annotation? </span></span><span class="EOP SCXW252490021 BCX9" data-ccp-props="{}"> </span></span></h1>
<h2><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">Use stored knowledge</span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9"> (</span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">from an </span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">E</span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">nterprise </span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">K</span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">nowledge </span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">G</span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">raph</span></span><span class="TextRun MacChromeBold SCXW164093913 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW164093913 BCX9">)</span></span><span class="EOP SCXW164093913 BCX9" data-ccp-props="{}"> </span></h2>
<p><span data-contrast="auto">When thinking about the long-term </span><span data-contrast="auto">data </span><span data-contrast="auto">health of an organisation, the most effective and sustainable way to set up semantic annotation, is to create your own Enterprise Knowledge Graph (which can then be used for multiple use</span><span data-contrast="auto">&#8211;</span><span data-contrast="auto">case scenarios, not just annotation).</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">In an Enterprise Knowledge Graph (EKG), an organisation can store its key knowledge (taxonomies, thesauri</span><span data-contrast="auto">,</span><span data-contrast="auto"> ontologies</span><span data-contrast="auto">, business rules</span><span data-contrast="auto">). Tooling now exists so that business owners and domain experts can collaboratively add their knowledge, </span><span data-contrast="auto">not having to know </span><span data-contrast="auto">about </span><span data-contrast="auto">the </span><span data-contrast="auto">underlying semantic web-based technologies</span><span data-contrast="auto">, the ones that</span><span data-contrast="auto"> </span><span data-contrast="auto">allow your machines and applications to read this knowledge </span><span data-contrast="auto">as well</span><span data-contrast="auto"> (before making their decisions).</span><span data-ccp-props="{}"> </span></p>
<p><span data-ccp-props="{}"> </span><span data-contrast="auto">Your EKG </span><span data-contrast="auto">is</span><span data-contrast="auto"> </span><span data-contrast="auto">best </span><span data-contrast="auto">created using both </span><span data-contrast="auto">human </span><span data-contrast="auto">input </span><i><span data-contrast="auto">and</span></i><span data-contrast="auto"> AI (NLP &amp; ML = Natural Language Processing &amp; Machine Learning). The AI part </span><span data-contrast="auto">exploits </span><span data-contrast="auto">your existing data </span><span data-contrast="auto">plus </span><span data-contrast="auto">any existing industry</span><span data-contrast="auto">-standard</span><span data-contrast="auto"> </span><span data-contrast="auto">terminologies or ontologies </span><span data-contrast="auto">that fit your business needs </span><span data-contrast="auto">(</span><span data-contrast="auto">you may want to just be able to link to them)</span><span data-contrast="auto">.</span><span data-contrast="auto"> </span><span data-contrast="auto">While the automation of EKG creation is set to improve, </span><span data-contrast="auto">EKG </span><span data-contrast="auto">robustness</span><span data-contrast="auto"> can be </span><span data-contrast="auto">test</span><span data-contrast="auto">ed</span><span data-contrast="auto"> </span><span data-contrast="auto">by </span><span data-contrast="auto">using</span><span data-contrast="auto"> corpus analysis with</span><span data-contrast="auto"> </span><span data-contrast="auto">your data</span><span data-contrast="auto"> to find any key business concepts that are missing.</span></p>
<h1><span class="TextRun MacChromeBold SCXW165858797 BCX9" lang="EN-GB" style="color: #ff6600;" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW165858797 BCX9">How does automatic Semantic Annotation work? </span></span><span class="EOP SCXW165858797 BCX9" data-ccp-props="{}"> </span></h1>
<h2><span class="TextRun MacChromeBold SCXW96984788 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW96984788 BCX9">Smart </span></span><span class="TextRun MacChromeBold SCXW96984788 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW96984788 BCX9">processing</span></span><span class="EOP SCXW96984788 BCX9" data-ccp-props="{}"> </span></h2>
<p><span data-contrast="auto">Despite improvements in search features and functionality, </span><span data-contrast="auto">S</span><span data-contrast="auto">earch in the digital workplace </span><span data-contrast="auto">may still have that </span><i><span data-contrast="auto">long-tail of search</span></i><span data-contrast="auto"> &#8211;</span><span data-contrast="auto"> where </span><span data-contrast="auto">the </span><span data-contrast="auto">less</span><span data-contrast="auto">&#8211;</span><span data-contrast="auto">frequent </span><span data-contrast="auto">queries </span><span data-contrast="auto">ar</span><span data-contrast="auto">e harder to cater for. With </span><span data-contrast="auto">an </span><span data-contrast="auto">EK</span><span data-contrast="auto">G</span><span data-contrast="auto"> annotation process, the quality </span><span data-contrast="auto">of search results can significantly</span><span data-contrast="auto"> improve</span><span data-contrast="auto">. Processing takes extracted concepts (Named Entity Recognition) </span><span data-contrast="auto">from </span><span data-contrast="auto">the</span><span data-contrast="auto"> resource </span><span data-contrast="auto">asset t</span><span data-contrast="auto">hat needs to be</span><span data-contrast="auto"> annotate</span><span data-contrast="auto">d</span><span data-contrast="auto">. It t</span><span data-contrast="auto">hen finds a</span><span data-contrast="auto">ll </span><span data-contrast="auto">the </span><span data-contrast="auto">relationships </span><span data-contrast="auto">that link th</span><span data-contrast="auto">ese concepts</span><span data-contrast="auto"> </span><span data-contrast="auto">to other concepts</span><span data-contrast="auto"> within the graph</span><span data-contrast="auto">. </span><span data-contrast="auto">In doing so</span><span data-contrast="auto">,</span><span data-contrast="auto"> the <em><strong>aboutness</strong></em> of </span><span data-contrast="auto">the asset</span><span data-contrast="auto"> </span><span data-contrast="auto">is calculated </span><span data-contrast="auto">using an algorithm before </span><span data-contrast="auto">appropriate</span><span data-contrast="auto"> annotation takes place</span><span data-contrast="auto">.</span><span data-contrast="auto"> </span><span data-contrast="auto">The annotations </span><span data-contrast="auto">g</span><span data-contrast="auto">o</span><span data-contrast="auto"> to making</span><span data-contrast="auto"> </span><span data-contrast="auto">a</span><span data-contrast="auto">n</span><span data-contrast="auto"> </span><span data-contrast="auto">improved index. </span><span data-contrast="auto">The process </span><span data-contrast="auto">essentially </span><span data-contrast="auto">mak</span><span data-contrast="auto">es your</span><span data-contrast="auto"> </span><span data-contrast="auto">data assets</span><span data-contrast="auto"> “smarter,” and therefore</span><span data-contrast="auto">,</span><span data-contrast="auto"> more </span><strong><i>findable</i></strong><span data-contrast="auto">.</span><span data-contrast="auto"> </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">P</span><span data-contrast="auto">rocessing</span><span data-contrast="auto"> </span><span data-contrast="auto">also includes </span><i><span data-contrast="auto">shadow concept</span></i><span data-contrast="auto"> </span><span data-contrast="auto">annotations </span><span data-contrast="auto">&#8211; </span><span data-contrast="auto">the adding</span><span data-contrast="auto"> </span><span data-contrast="auto">of </span><span data-contrast="auto">a </span><span data-contrast="auto">concept</span><span data-contrast="auto"> </span><span data-contrast="auto">tag </span><span data-contrast="auto">where the concept itself </span><span data-contrast="auto">does not appear within the</span><span data-contrast="auto"> </span><span data-contrast="auto">re</span><span data-contrast="auto">source </span><span data-contrast="auto">asset</span><span data-contrast="auto">, but </span><span data-contrast="auto">which perfectly describes the resource</span><span data-contrast="auto"> (</span><span data-contrast="auto">thanks to</span><span data-contrast="auto"> </span><span data-contrast="auto">known concept relationships in the graph)</span><span data-contrast="auto">.</span><span data-contrast="auto"> </span><span data-contrast="auto">Similarly,</span><span data-contrast="auto"> the quality of retrieved search results </span><span data-contrast="auto">can be </span><span data-contrast="auto">increased </span><span data-contrast="auto">as</span><span data-contrast="auto"> the annotation process reduces the ambiguity about the meaning of certain concepts </span><span data-contrast="auto">e.g. it </span><span data-contrast="auto">differ</span><span data-contrast="auto">entiates</span><span data-contrast="auto"> between Apple (the brand) and apple (the fruit) by virtue of their </span><span data-contrast="auto">connections</span><span data-contrast="auto"> to other concepts</span><span data-contrast="auto"> </span><span data-contrast="auto">i.e. </span><span data-contrast="auto">it can answer: a</span><span data-contrast="auto">re </span><span data-contrast="auto">we </span><span data-contrast="auto">talking </span><i><span data-contrast="auto">tech</span></i><span data-contrast="auto"> or </span><i><span data-contrast="auto">snacks</span></i><span data-contrast="auto">?</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Your p</span><span data-contrast="auto">referred tooling </span><span data-contrast="auto">may be that which s</span><span data-contrast="auto">upports the</span><span data-contrast="auto"> part</span><span data-contrast="auto">&#8211;</span><span data-contrast="auto">human</span><span data-contrast="auto">&#8211;</span><span data-contrast="auto">expert </span><span data-contrast="auto">maintenance of key business language (taxonomies</span><span data-contrast="auto"> &#8211;</span><span data-contrast="auto"> including phrases, alternative labels</span><span data-contrast="auto">, acronyms, synonyms</span><span data-contrast="auto"> etc</span><span data-contrast="auto">). Th</span><span data-contrast="auto">us, the</span><span data-contrast="auto"> EKG </span><span data-contrast="auto">is</span><span data-contrast="auto"> used</span><span data-contrast="auto"> </span><span data-contrast="auto">for </span><span data-contrast="auto">differing language </span><span data-contrast="auto">and culture </span><span data-contrast="auto">perspectives of </span><span data-contrast="auto">both customer</span><span data-contrast="auto">s</span><span data-contrast="auto"> and employee</span><span data-contrast="auto">s</span><span data-contrast="auto"> </span><span data-contrast="auto">(think Diversity &amp; Inclusion).</span><span data-contrast="auto"> And of course, search just gets better when linked to </span><span data-contrast="auto">any </span><span data-contrast="auto">user profile</span><span data-contrast="auto"> </span><span data-contrast="auto">concepts </span><span data-contrast="auto">for personalisation.</span><span data-ccp-props="{}"> </span></p>
<p>Analysis of search queries to find “new” language, means that business language can be kept “alive,” and reflect both your data and query trends (typed and spoken). Resultant APIs can offer many different UX options e.g. for “misfired” queries: clickable, search-generating related concepts, or broader/narrower concepts for decreased/increased search granularity.</p>
<h1><span style="color: #ff6600;"><span class="TextRun MacChromeBold SCXW159678562 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW159678562 BCX9">What are the alternatives?</span></span><span class="EOP SCXW159678562 BCX9" data-ccp-props="{}"> </span></span></h1>
<h2><span class="TextRun MacChromeBold SCXW166494251 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW166494251 BCX9">EKGs, AI </span></span><span class="TextRun MacChromeBold SCXW166494251 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW166494251 BCX9">enhancements </span></span><span class="TextRun MacChromeBold SCXW166494251 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW166494251 BCX9">and </span></span><span class="TextRun MacChromeBold SCXW166494251 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW166494251 BCX9">COTS</span></span><span class="EOP SCXW166494251 BCX9" data-ccp-props="{}"> </span></h2>
<p><span data-contrast="auto">There are several providers of commercial knowledge engineering and graph software in the market, many of whom </span><span data-contrast="auto">Findwise</span><span data-contrast="auto"> partner with. As EKGs are </span><a href="https://www.w3.org/RDF/"><span data-contrast="none">RDF</span></a><span data-contrast="auto">-based, once made</span><span data-contrast="auto">,</span><span data-contrast="auto"> they are transferrable between </span><span data-contrast="auto">software </span><span data-contrast="auto">products</span><span data-contrast="auto">, should the need arise</span><span data-contrast="auto">.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Incremental AI-based algorithmic additions </span><span data-contrast="auto">can be added to improve existing search (e.g. classifiers, vector embeddings etc), having </span><span data-contrast="auto">more of </span><span data-contrast="auto">a single-focus, single-system perspective.</span><span data-contrast="auto"> </span><span data-contrast="auto">Very often the</span><span data-contrast="auto">se</span><span data-contrast="auto"> same enhancement</span><span data-contrast="auto"> techniques</span><span data-contrast="auto"> can</span><span data-contrast="auto"> also provide input</span><span data-contrast="auto"> for </span><span data-contrast="auto">improving and automating EKG</span><span data-contrast="auto">s</span><span data-contrast="auto"> &#8211;</span><span data-contrast="auto"> just as </span><span data-contrast="auto">the </span><span data-contrast="auto">EKG can offer</span><span data-contrast="auto"> </span><span data-contrast="auto">logical </span><span data-contrast="auto">base and </span><span data-contrast="auto">rules </span><span data-contrast="auto">for a robust AI engineering strategy.</span><span data-ccp-props="{&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559740&quot;:259}"> </span></p>
<p><span data-contrast="auto">EKGs offer a hybrid architecture with open source search engines. There</span><span data-contrast="auto"> are</span><span data-contrast="auto"> of course commercial off-the-shelf solutions (COTS) that offer improved search over data assets (often </span><span data-contrast="auto">also </span><span data-contrast="auto">with a graph behind them). But before you go for any vendor lock in, check what it is you need and if they cover all or any of the possible EKG-related scenarios:</span><span data-ccp-props="{}"> </span></p>
<p>&#8211; <span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">Are they inclusive of all your data? Do they help formalise </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">a </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">data governance and accountability</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608"> framework</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">? Is the AI transparent enough to understand? </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">Can</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608"> your information and business</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608"> </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">model(s) </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">be </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">built in and </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">be </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">reflected in </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">data structure</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">s</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">? How easy would it be to alter your business model(s) and see </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">such </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">changes</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608"> reflected</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608"> </span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">in</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608"> data structure</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">s</span></span><span class="TextRun BCX9 SCXW193060608" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun BCX9 SCXW193060608">? </span></span></p>
<p>&#8211; <span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">Does the </span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">software </span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">solution co</span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">pe with other</span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9"> use cases? </span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">e</span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">.g. Data findability? </span></span><a class="Hyperlink SCXW185187051 BCX9" href="https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW185187051 BCX9" data-ccp-charstyle="Hyperlink">FAIR</span></span></a><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9"> data? Do they have multilingual functionality? Can they help make </span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">your </span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">data interoperable or </span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">connected </span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">with your ecosystem or</span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9"> Web</span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9"> data</span></span><span class="TextRun SCXW185187051 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW185187051 BCX9">? Do they support potential data-centric solutions or just application-centric ones?</span></span></p>
<p><iframe title="Options with an ekg " src="https://www.slideshare.net/slideshow/embed_code/key/SvUKdvOiDG3es" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> </p>
<div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/infopg/options-with-an-ekg" title="Options with an ekg " target="_blank">Options with an ekg </a> </strong> from <strong><a href="https://www.slideshare.net/infopg" target="_blank">Peter Voisey</a></strong> </div>
<p>&nbsp;</p>
<h2><span class="TextRun MacChromeBold SCXW55924769 BCX9" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW55924769 BCX9">Semantic Annotation: How to make it happen?</span></span><span class="EOP SCXW55924769 BCX9" data-ccp-props="{}"> </span></h2>
<p><span data-contrast="auto">Your ultimate choice may be the degree to which you want or need to control your data</span><span data-contrast="auto"> and data</span><span data-contrast="auto"> assets</span><span data-contrast="auto">,</span><span data-contrast="auto"> </span><span data-contrast="auto">plus </span><span data-contrast="auto">how important it </span><span data-contrast="auto">is for your organisation to monitor the</span><span data-contrast="auto">ir</span><span data-contrast="auto"> us</span><span data-contrast="auto">age</span><span data-contrast="auto"> by customers and employees.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">EKGs are </span><span data-contrast="auto">mostly </span><span data-contrast="auto">introduced into an organisation via a singular use case rather th</span><span data-contrast="auto">e result of </span><span data-contrast="auto">a future-looking, holistic</span><span data-contrast="auto">,</span><span data-contrast="auto"> data-centric </span><span data-contrast="auto">strategy</span><span data-contrast="auto"> &#8211;</span><span data-contrast="auto"> though </span><span data-contrast="auto">this is </span><span data-contrast="auto">not unheard of</span><span data-contrast="auto">. </span><span data-contrast="auto">That said, </span><span data-contrast="auto">introducing </span><span data-contrast="auto">automatic S</span><span data-contrast="auto">emantic </span><span data-contrast="auto">A</span><span data-contrast="auto">nnotation with an EKG</span><span data-contrast="auto"> could prove a great follow up to your organisation’s Cloud project</span><span data-contrast="auto">,</span><span data-contrast="auto"> as </span><span data-contrast="auto">together they can </span><span data-contrast="auto">dramatically increase the value of your data assets</span><span data-contrast="auto">&#8230;</span><span data-contrast="auto"> </span><span data-contrast="auto">within </span><span data-contrast="auto">the first </span><span data-contrast="auto">processing.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">For an example of an implemented semantic annotation use case, </span><span data-contrast="auto">click here:</span><span data-contrast="auto"> </span><strong><a href="https://findwise.com/en/cases/nhs-health-education-england">NHS Learning Hub</a></strong><span data-contrast="auto">, a collaborative Health Education England and </span><span data-contrast="auto">Findwise</span><span data-contrast="auto"> project.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Alternatively check out</span><strong><span style="color: #ff6600;"> <a style="color: #ff6600;" href="https://findwise.com/en/findability-by-findwise">Findability by Findwise</a></span></strong><span data-contrast="auto"> and reach out to get the very </span><span data-contrast="auto">best digit</span><span data-contrast="auto">al transformation </span><span data-contrast="auto">roadmap</span><span data-contrast="auto"> for you</span><span data-contrast="auto">r organisation</span><span data-contrast="auto">.</span></p>
<p>Peter Voisey     <a href="https://www.linkedin.com/in/petervoisey/">Linkedin</a>   <a href="https://twitter.com/Peter_G_Voisey">Twitter</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/semantic-annotation-findable/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Building a chatbot &#8211; that actually works</title>
		<link>https://findwise.com/blog/building-chatbot-actually-works/</link>
					<comments>https://findwise.com/blog/building-chatbot-actually-works/#respond</comments>
		
		<dc:creator><![CDATA[Tomasz Sobczak]]></dc:creator>
		<pubDate>Mon, 25 May 2020 06:18:28 +0000</pubDate>
				<category><![CDATA[Findability]]></category>
		<category><![CDATA[Future development]]></category>
		<category><![CDATA[Information Retrieval]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Market trends]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6165</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/building-chatbot-actually-works/">Building a chatbot &#8211; that actually works</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/tomaszsobczak/">Tomasz Sobczak</a></p>
<p>In the era of artificial intelligence and machine learning, chatbots have gained a lot of attention. Chatbots can for example help a user to book restaurants or schedule flights. But why should organizations use chatbots instead of simple user interaction &#8230; <a href="https://findwise.com/blog/building-chatbot-actually-works/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/building-chatbot-actually-works/">Building a chatbot &#8211; that actually works</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/tomaszsobczak/">Tomasz Sobczak</a></p>
<p>In the era of artificial intelligence and machine learning, chatbots have gained a lot of attention. Chatbots can for example help a user to book restaurants or schedule flights. But why should organizations use chatbots instead of simple user interaction (UI) systems? Considering that chatbots are both easier and more natural to interact with -compared to that of a UI system – endorses the implementation of chatbots in certain use cases. Additionally, a chatbot can engage a user for a longer time which can result in a company increasing its business. A chatbot needs to understand the natural language as there can be multiple ways to express one’s intention with language ambiguity. Natural Language Processing (NLP) helps us to achieve this to some extent.</p>
<h1><strong>Natural language processing &#8211; the foundation for a chatbot</strong></h1>
<p>Compared to rule-based solutions, chatbots using machine learning and language understanding are much more efficient. After years and new waves of statistical models, such as deep learning RNN, LSTM, transformers etc., these algorithms have now become market standards.</p>
<p>NLP is a part of linguistics and artificial intelligence, where algorithms are used to understand, analyze, manipulate and potentially generate human readable text. Usually, it contains two components: Natural Language Understanding (NLU) and Natural Language Generation (NLG).</p>
<p>To start with, the natural language input is mapped into useful representation for machine reading comprehension. This is achieved through using basics like: tokenization, stemming / lemmatization or tagging part of speech. There are also more advanced elements such as recognizing named entities or chunking. The latter is a processing method which organizes the individual terms found previously into a more prominent structure. For example: ’South Africa&#8217; – is more useful as a chunk than the individual words &#8216;South&#8217; and &#8216;Africa&#8217;.</p>
<div id="attachment_6174" style="width: 310px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/pic1.png"><img aria-describedby="caption-attachment-6174" loading="lazy" class="wp-image-6174 size-medium" src="https://findwise.com/blog/wp-content/uploads/2020/05/pic1-300x29.png" alt="FIGURE 1: A PROCESS OF BREAKING A USER’S MESSAGE INTO TOKENS" width="300" height="29" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/pic1-300x29.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/pic1-1024x99.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/pic1-768x74.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/pic1-1536x148.png 1536w, https://findwise.com/blog/wp-content/uploads/2020/05/pic1-500x48.png 500w, https://findwise.com/blog/wp-content/uploads/2020/05/pic1.png 1538w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6174" class="wp-caption-text">FIGURE 1: A PROCESS OF BREAKING A USER’S MESSAGE INTO TOKENS</p></div>
<p>From the other side, NLG is the process of producing meaningful phrases and sentences in natural language from an internal structural representation using e.g. content determination, discourse planning, sentence aggregation, lexicalization, referring expression generation or linguistic realization.</p>
<h1><strong>Open-domain and Goal-Driven Chatbot</strong></h1>
<p>Chatbots can be classified into two categories: Goal-driven and Open-domain. Goal-driven chatbots are built to solve specific problems such as a flight bookings or restaurant reservations. On the other hand, the Open-domain dialogue system attempts to establish a long-term connection with the user, such as psychological support and language learning.</p>
<p>Goal-driven chatbots are based on slot filling and handcrafted rules, which are reliable but restrictive in conversation. A user has to go through a predefined dialogue flow to accomplish a task.</p>
<div id="attachment_6173" style="width: 310px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/pic2.png"><img aria-describedby="caption-attachment-6173" loading="lazy" class="wp-image-6173 size-medium" src="https://findwise.com/blog/wp-content/uploads/2020/05/pic2-300x101.png" alt="FIGURE 2: ARCHITECTURE FOR GOAL-DRIVEN CHATBOT" width="300" height="101" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/pic2-300x101.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/pic2-1024x346.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/pic2-768x260.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/pic2-500x169.png 500w, https://findwise.com/blog/wp-content/uploads/2020/05/pic2.png 1342w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6173" class="wp-caption-text">FIGURE 2: ARCHITECTURE FOR GOAL-DRIVEN CHATBOT</p></div>
<p>Open domain chatbots are intended to converse coherently and engagingly with humans and maintain a long dialog flow with a user. However, we need to have big amounts of data to train these chatbots.</p>
<div id="attachment_6172" style="width: 310px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/pic3.png"><img aria-describedby="caption-attachment-6172" loading="lazy" class="size-medium wp-image-6172" src="https://findwise.com/blog/wp-content/uploads/2020/05/pic3-300x69.png" alt="FIGURE 3: ARCHITECTURE FOR OPEN-DOMAIN CHATBOT" width="300" height="69" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/pic3-300x69.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/pic3-1024x237.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/pic3-768x178.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/pic3-500x116.png 500w, https://findwise.com/blog/wp-content/uploads/2020/05/pic3.png 1218w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6172" class="wp-caption-text">FIGURE 3: ARCHITECTURE FOR OPEN-DOMAIN CHATBOT</p></div>
<h1><strong>Knowledge graphs bring connections and data structures to information</strong></h1>
<p>Knowledge graphs provides a semantic layer on the top of your database which provides you with all possible entities and the relationships between them. There are a number of representation and modeling instruments available for building a knowledge graph, ontologies being one of them.</p>
<p>Ontology comprises of classes, relationships and attributes as shown in Figure 9. This offers a robust way to store information and concepts &#8211; similar to how humans store information.</p>
<div id="attachment_6171" style="width: 310px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/pic4.png"><img aria-describedby="caption-attachment-6171" loading="lazy" class="wp-image-6171 size-medium" src="https://findwise.com/blog/wp-content/uploads/2020/05/pic4-300x209.png" alt="FIGURE 4: OVERVIEW OF A KNOWLEDGE GRAPH WITH AN RDF SCHEMA" width="300" height="209" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/pic4-300x209.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/pic4-430x300.png 430w, https://findwise.com/blog/wp-content/uploads/2020/05/pic4.png 706w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6171" class="wp-caption-text">FIGURE 4: OVERVIEW OF A KNOWLEDGE GRAPH WITH AN RDF SCHEMA</p></div>
<p>A chatbot based on ontology can help to clarify the user&#8217;s context and intent &#8211; and it can dynamically suggest related topics. Knowledge graphs represent the knowledge of an organization,  as depicted in the following Figure 10. Consider a knowledge graph based on an organization (as shown on the right image in Figure 10) and a chatbot (as shown on the left image in Figure 10) which is based on the ontology of this knowledge graph. In the chatbot example in Figure 10, the user asks a question about a specific employee. The NLP detects the employee as an entity and also detects the intent behind asking a question about this entity. The chatbot matches the employee entity in the ontology and navigates to the node in the graph. From that node we now know all possible relationships of that entity and the chatbot will ask back for possible options, such as co-workers and projects, to navigate further.</p>
<div id="attachment_6177" style="width: 310px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/pic8.png"><img aria-describedby="caption-attachment-6177" loading="lazy" class="size-medium wp-image-6177" src="https://findwise.com/blog/wp-content/uploads/2020/05/pic8-300x135.png" alt="FIGURE 5: A SCENARIO - HOW A CHATBOT CAN INTERACT WITH A USER WITH A KNOWLEDGE GRAPH." width="300" height="135" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/pic8-300x135.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/pic8-500x224.png 500w, https://findwise.com/blog/wp-content/uploads/2020/05/pic8.png 693w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6177" class="wp-caption-text">FIGURE 5: A SCENARIO &#8211; HOW A CHATBOT CAN INTERACT WITH A USER WITH A KNOWLEDGE GRAPH.</p></div>
<p>Moreover, the knowledge graph also improves the NLU in a chatbot. For example, if a user asks the following;</p>
<ul>
<li>‘Which assignments was employee A <strong>part of</strong>?’. To navigate further in the knowledge graph, a rank system can be created for possible connections from the employee node. This rank system might be based on word vector space and a similarity score.</li>
<li>In this scenario, ‘<strong>worked in, projects</strong>’ will have the highest rank when calculating the score with ‘<strong>part of, assignments</strong>’. So, the chatbot would know it needs to return the list of corresponding projects.</li>
</ul>
<h1><strong>Virtual assistants with Lucidworks Fusion</strong></h1>
<p>Lucidworks Fusion is an example of a platform that supports building conversation interfaces. Fusion includes NLP features to understand the meaning of content and user intent. In the end, it’s all about retrieving the right answer at the right time. Virtual assistants, with a more human level of understanding, goes beyond static rules and profiles. It uses machine learning to predict user intention and provides insights. Customers and employees can locate critical insights to help them move to their next best action.</p>
<div id="attachment_6168" style="width: 310px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/pic7.png"><img aria-describedby="caption-attachment-6168" loading="lazy" class="size-medium wp-image-6168" src="https://findwise.com/blog/wp-content/uploads/2020/05/pic7-300x138.png" alt="FIGURE 6: LUCIDWORKS FUSION DATA FLOW" width="300" height="138" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/pic7-300x138.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/pic7-768x354.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/pic7-500x230.png 500w, https://findwise.com/blog/wp-content/uploads/2020/05/pic7.png 1024w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6168" class="wp-caption-text">FIGURE 6: LUCIDWORKS FUSION DATA FLOW</p></div>
<p>Lucidworks recently announced Smart Answers &#8211; new Fusion’s feature. Smart Answers enhances the intelligence of chatbots and virtual assistants by using deep learning to understand natural language questions. It uses deep learning models and mathematical logic to match the similarity of a question (which can be asked in many different ways) to the most relevant answer. As users interact with the system, Smart Answers continues to rank all answers and improve relevancy.</p>
<p>Fusion is focused on understanding a user’s intent. Smart Answers includes model training and serving methods for different scenarios:</p>
<ul>
<li>When FAQs or question-answer pairs exist, they can be easily integrated into Smart Answers’ model training framework,</li>
<li>When there are no FAQ or question-answer pairs, knowledge base documents can be used to train deep learning models and match existing knowledge for the best answers to incoming queries. Once users click on documents returned for specific queries, they become question-answers pairs signals and can enrich the FAQ model training framework,</li>
<li>When there are no documents internally, Smart Answers uses cold-start models trained on large online sources, available in multiple languages. Once it goes live, the models begin training on actual user signals.</li>
</ul>
<p>Smart Answers’ API enables easy integration with any platform, knowledge base, adding value to existing applications. One of the strengths of Fusion Smart Answers is integration with Rasa, an open-source conversation engine. It’s a framework that helps with understanding user intention and maintaining dialogue flow. It also has prebuilt NLP components such as word vectors, tokenizers, intent classifiers and entity extractor. Rasa allows to configure the pipeline that processes a user’s message and analyze human language. Another part of this engine enables modeling dialogues, so chatbot knows what the next action or response should be.</p>
<pre><em>intent:greet</em> 
- Hi 
- Hey 
- Hi bot 
- Hey bot 
 
<em>## intent:request_restaurant</em> 
- im looking for a restaurant 
- can i get [swedish](<em>cuisine</em>) food in any area. 
- a restaurant that serves [caribbean](<em>cuisine</em>) food. 
- id like a restaurant 
- im looking for a restaurant that serves [mediterranean](<em>cuisine</em>) food 
- can i find a restaurant that serves [chinese](<em>cuisine)</em></pre>
<p>Building chatbots requires a lot of training examples for every intent and entity to make them understand the user intention, domain knowledge and to improve NLU of the chatbot. When building a simple chatbot, using prebuilt trained models can be useful and requires less training data. For example: If we build a chatbot where we only need to detect the common location entity, few examples and spaCy models can be enough. However, there might be cases when you need to build a chatbot for an organization where you need different contextual entities &#8211; which might not be available in the pretrained models. Knowledge graphs can then be helpful to have a domain knowledge for a chatbot and can balance the amount of work related to training data.</p>
<h1><strong>Conclusion</strong></h1>
<p>Two main chatbot usages are: 1/solving employee frustration in accessing e.g. corporate information and 2/providing customers with answers to support questions. Both examples above are looking for a solution to reduce time spent on finding information. Especially for online commerce, key performance indicators are clear and can relate to e.g. decreasing call center traffic or call deflection from web and email – examples of situations where ontology based chatbots can be very helpful. From a short-term perspective creating a knowledge graph can initially require a lot of effort &#8211; but from a long-term perspective it can also create a lot of value. Companies rely on digital portals to provide information to users; employees search for HR or organization policies documents. Online retailers try to increase customers’ self-service in solving their problems or simply want to improve discovery of their products and services. With solutions like e.g. Fusion Smart Answers, we are able to cut down time-to-resolution, increase customer retention and take knowledge sharing to the next level. It helps employees and customers resolve issues more quickly and empowers users to find the right answer immediately without seeking out additional, digital channels.</p>
<p>Authors: Pragya Singh, Pedro Custodio, Tomasz Sobczak</p>
<h1><strong>To read more:</strong></h1>
<ol>
<li>Ehud Reiter and Robert Dale. 1997. Building applied natural language generation systems. Nat. Lang. Eng. 3, 1 (March 1997), 57–87. DOI:https://doi.org/10.1017/S1351324997001502.</li>
<li>Challenges in Building Intelligent Open-domain Dialog Systems by Huang, M.; Zhu, X.; Gao, J.</li>
<li>A Novel Approach for Ontology-Driven Information Retrieving Chatbot for Fashion Brands by Aisha Nazir, Muhammad Yaseen Khan, Tafseer Ahmed, Syed Imran Jami, Shaukat Wasi</li>
<li>https://medium.com/@BhashkarKunal/conversational-ai-chatbot-using-rasa-nlu-rasa-core-how-dialogue-handling-with-rasa-core-can-use-331e7024f733</li>
<li>https://lucidworks.com/products/smart-answers/</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/building-chatbot-actually-works/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Design Elements of Search &#8211; Zero Results Page</title>
		<link>https://findwise.com/blog/design-elements-search-zero-results-page/</link>
					<comments>https://findwise.com/blog/design-elements-search-zero-results-page/#respond</comments>
		
		<dc:creator><![CDATA[Emil Mauritzson]]></dc:creator>
		<pubDate>Fri, 08 May 2020 11:18:31 +0000</pubDate>
				<category><![CDATA[Design Elements of Search]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Interaction Design]]></category>
		<category><![CDATA[User Experience]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6063</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-zero-results-page/">Design Elements of Search &#8211; Zero Results Page</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>The sixth and last part in this series, Design Elements of Search is dedicated to the zero results page. This lonely place is where your users end up when the search solution doesn’t find anything. Do your best to be friendly &#8230; <a href="https://findwise.com/blog/design-elements-search-zero-results-page/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-zero-results-page/">Design Elements of Search &#8211; Zero Results Page</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>The sixth and last part in this series, Design Elements of Search is dedicated to the zero results page. This lonely place is where your users end up when the search solution doesn’t find anything. Do your best to be friendly and helpful to your users here, will you?</p>
<p><strong>A blog series – Six posts about Design Elements of Search</strong></p>
<ul>
<li><a href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">The Search Bar</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Autocomplete Suggestions</a></li>
<li><a href="https://findwise.com/blog/design-elements-of-search-filters/">Filters</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-results/">Results</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-landing-page/">Landing page</a></li>
<li>Zero-results page <em><strong>&lt;– You are here</strong></em></li>
</ul>
<hr />
<p><strong>A word on Technology and Relevance – <em>a disclaimer </em></strong></p>
<p>Equally important as having a good user interface is having the right technology and the right relevance model set-up. I will not cover technology and relevance in this blog series. If you wish to read more, these topics is well covered by Findwise since before: <a href="https://findwise.com/en/improve-search-relevancy" class="broken_link">Improve search relevancy</a>  and <a href="https://findwise.com/en/technology">Findwise.com/technology</a>.</p>
<hr />
<h1><strong>Designing Zero Results Page</strong></h1>
<p>The design, function and layout of your zero results page gossip about the quality of your search solution. This page is often forgotten and discussed last (like in this series). Whenever I review existing search solutions, this is where I start, because a lot of problems with existing search solutions show up here. You need to understand that from the user’s perspective, ending up on a zero results page can be a frustrating experience. You need to help the user recover from this state. Below is a good example from one of our clients. The intranet of the Swedish courts. The page clearly explains what has happened, No documents were found.</p>
<div id="attachment_6160" style="width: 1618px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/zero-1.png"><img aria-describedby="caption-attachment-6160" loading="lazy" class="wp-image-6160 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/zero-1.png" alt="zero results page clearly explains what has happened" width="1608" height="1662" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/zero-1.png 1608w, https://findwise.com/blog/wp-content/uploads/2020/05/zero-1-290x300.png 290w, https://findwise.com/blog/wp-content/uploads/2020/05/zero-1-991x1024.png 991w, https://findwise.com/blog/wp-content/uploads/2020/05/zero-1-768x794.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/zero-1-1486x1536.png 1486w" sizes="(max-width: 1608px) 100vw, 1608px" /></a><p id="caption-attachment-6160" class="wp-caption-text">A good zero results page that clearly explains &#8220;No documents were found&#8221;.</p></div>
<h2><strong>Providing further Help</strong></h2>
<p>Sometimes there is nothing the system can do to deliver results. The last resort is when it’s time to ask your user to alter their query. Sometimes the query is misspelled or otherwise not optimal. You can copy and use this text on your own zero results page if you like.</p>
<ul>
<li>Check that all words are spelled correctly</li>
<li>Try a different search</li>
<li>Try a more general search</li>
<li>Use fewer search terms</li>
</ul>
<h2><strong>Avoid digging a deeper hole</strong></h2>
<p>Microsoft’s OneDrive provides a beautiful zero results page below, but they make a big mistake by showing filtering options in this state. This makes no sense, if there already are no results, there will definitely not be more by narrowing down the search scope further. Avoid this mistake!</p>
<div id="attachment_6065" style="width: 2148px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/DONT.png"><img aria-describedby="caption-attachment-6065" loading="lazy" class="wp-image-6065 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/DONT.png" alt="avoid providing more filtering options on you zero results page" width="2138" height="1326" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/DONT.png 2138w, https://findwise.com/blog/wp-content/uploads/2020/05/DONT-300x186.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/DONT-1024x635.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/DONT-768x476.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/DONT-1536x953.png 1536w, https://findwise.com/blog/wp-content/uploads/2020/05/DONT-2048x1270.png 2048w, https://findwise.com/blog/wp-content/uploads/2020/05/DONT-484x300.png 484w" sizes="(max-width: 2138px) 100vw, 2138px" /></a><p id="caption-attachment-6065" class="wp-caption-text">Pretty looking, but bad zero results page because of the filters on the right hand side.</p></div>
<p>That was it! The whole Design Elements of Search series is done. This is not everything however, designing a search solution is deeper than this. Me and my friends at Findwise will gladly help you realize all of your dreams. Ok maybe not all of them, but your search related dreams maybe? Ok, that was awkward.</p>
<p>See you in the future, best regards //Emil Mauritzson</p>
<h2><strong>Get in touch</strong></h2>
<p><a href="https://findwise.com/en">Contact Findwise</a></p>
<p><a href="https://www.linkedin.com/in/emilmauritzson/">Contact Emil Mauritzson</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/design-elements-search-zero-results-page/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Design Elements of Search &#8211; Landing Page</title>
		<link>https://findwise.com/blog/design-elements-search-landing-page/</link>
					<comments>https://findwise.com/blog/design-elements-search-landing-page/#respond</comments>
		
		<dc:creator><![CDATA[Emil Mauritzson]]></dc:creator>
		<pubDate>Fri, 08 May 2020 11:17:35 +0000</pubDate>
				<category><![CDATA[Design Elements of Search]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Interaction Design]]></category>
		<category><![CDATA[User Experience]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6057</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-landing-page/">Design Elements of Search &#8211; Landing Page</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>We have just covered the area of results in the previous post, I hope that was fun, you are still here. That means you are ready for more, awesome! Let’s get into it. Here is the fifth part in the &#8230; <a href="https://findwise.com/blog/design-elements-search-landing-page/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-landing-page/">Design Elements of Search &#8211; Landing Page</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>We have just covered the area of results in the previous post, I hope that was fun, you are still here. That means you are ready for more, awesome! Let’s get into it. Here is the fifth part in the series Design Elements of Search, landing pages, whatever can it be?</p>
<p><strong>A blog series – Six posts about Design Elements of Search</strong></p>
<ul>
<li><a href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">The Search Bar</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Autocomplete Suggestions</a></li>
<li><a href="https://findwise.com/blog/design-elements-of-search-filters/">Filters</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-results/">Results</a></li>
<li>Landing page <em><strong>&lt;– You are here</strong></em></li>
<li><a href="https://findwise.com/blog/design-elements-search-zero-results-page/">Zero-results page</a></li>
</ul>
<hr />
<p><strong>A word on Technology and Relevance – <em>a disclaimer </em></strong></p>
<p>Equally important as having a good user interface is having the right technology and the right relevance model set-up. I will not cover technology and relevance in this blog series. If you wish to read more, these topics is well covered by Findwise since before: <a href="https://findwise.com/en/improve-search-relevancy" class="broken_link">Improve search relevancy</a>  and <a href="https://findwise.com/en/technology">Findwise.com/technology</a>.</p>
<hr />
<h1><strong>Designing Landing Pages</strong></h1>
<p>What normally happens when you click a search result? The answer seems obvious, you are sent to that document or that webpage or that product. Easy peasy.</p>
<div id="attachment_6058" style="width: 835px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/Traditional.png"><img aria-describedby="caption-attachment-6058" loading="lazy" class="wp-image-6058 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/Traditional.png" alt="diagram for how traditional search sends users to another webpage when clicking results" width="825" height="486" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/Traditional.png 825w, https://findwise.com/blog/wp-content/uploads/2020/05/Traditional-300x177.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/Traditional-768x452.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/Traditional-500x295.png 500w" sizes="(max-width: 825px) 100vw, 825px" /></a><p id="caption-attachment-6058" class="wp-caption-text">Traditionally you leave the search solution when clicking results.</p></div>
<p>However, during my years of consulting, I have come across multiple cases where we don’t know where to send users, because there is no obvious destination. Consider a result for an employee, a product, a process or a project. Sometimes there is no existing holistic view for these information objects. In these cases, we suggest building that holistic view in something we at Findwise call landing pages. When we use landing pages for certain results, users remain inside the search application when they click a result like this. Unlike a traditional search interfaces that sends users away to another application, or document.</p>
<div id="attachment_6059" style="width: 835px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/Landing-page.png"><img aria-describedby="caption-attachment-6059" loading="lazy" class="wp-image-6059 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/Landing-page.png" alt="design landing page ux diagram for how modern search can send users to a landing page" width="825" height="563" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/Landing-page.png 825w, https://findwise.com/blog/wp-content/uploads/2020/05/Landing-page-300x205.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/Landing-page-768x524.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/Landing-page-440x300.png 440w" sizes="(max-width: 825px) 100vw, 825px" /></a><p id="caption-attachment-6059" class="wp-caption-text">Get to the landing pages from the ordinary results page.</p></div>
<h2><strong>Paving the path</strong></h2>
<p>On landing pages, we show relationships between a variety of information objects we have in the search index. Let me describe it this way.</p>
<p>Sarah works as an architect. In her daily work she needs to be up to date regarding certain types of projects within her area of expertise. Therefore, Sarah is now doing research on how a certain material was used in a certain type of construction. She searches for “concrete bridges” and sees that there are 12 project results. Sarah looks over the results and clicks the third project and sees the landing page for that project. Here, she can see high level information about the project, and also see who the project members have been. Sarah sees Arianna Fowler and also more people. Sarah is curious about the person Peter Fisher because that name sounds familiar. She now sees the landing page for Peter. Here she can see all the projects Peter has been working on. She sees Peters most recent documents. She sees his close collogues. Sarah sees that Peter has been working in multiple projects that has used concrete as the main material. However, when she calls Peter, she learns he is not available right now. Therefore, Sarah decides to call Peters closest colleague. The system has identified close colleagues by knowing how many projects people have been working on together. Sarah calls Donna Spencer instead, because Donna and Peter has collaborated in 12 projects in the last five years. Sarah gets to know everything she needed and is left in a good mood.</p>
<h2><strong>Interesting paths</strong></h2>
<p>Your specific use case determines what information makes sense to show in these landing pages. Whatever you choose, you will set your users up for interesting paths of information finding and browsing, by connecting at least two information objects with landing pages. See illustration below.</p>
<div id="attachment_6060" style="width: 639px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/infinite.png"><img aria-describedby="caption-attachment-6060" loading="lazy" class="wp-image-6060 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/infinite.png" alt="diagram for how modern search can set users up for content discovery" width="629" height="1006" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/infinite.png 629w, https://findwise.com/blog/wp-content/uploads/2020/05/infinite-188x300.png 188w" sizes="(max-width: 629px) 100vw, 629px" /></a><p id="caption-attachment-6060" class="wp-caption-text">Infinite discovery made possible by linking landing pages together.</p></div>
<p>When you look past the old way of linking users directly to documents and systems and instead making it possible to find unexpected connections between things. You have widened the definition of what enterprise search can be. This is a new way of delivering value to your organization using search.</p>
<p>This marks the end of the fifth part, next up you’ll read about what happens when a search yields <a href="https://findwise.com/blog/design-elements-search-zero-results-page/">zero results</a>, and what you should do about that.</p>
<h2><strong>Get in touch</strong></h2>
<p><a href="https://findwise.com/en">Contact Findwise</a></p>
<p><a href="https://www.linkedin.com/in/emilmauritzson">Contact Emil Mauritzson</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/design-elements-search-landing-page/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Design Elements of Search &#8211; Results</title>
		<link>https://findwise.com/blog/design-elements-search-results/</link>
					<comments>https://findwise.com/blog/design-elements-search-results/#respond</comments>
		
		<dc:creator><![CDATA[Emil Mauritzson]]></dc:creator>
		<pubDate>Fri, 08 May 2020 11:16:12 +0000</pubDate>
				<category><![CDATA[Design Elements of Search]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Interaction Design]]></category>
		<category><![CDATA[User Experience]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6046</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-results/">Design Elements of Search &#8211; Results</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>You are currently reading the fourth part in the series Design Elements of Search. This part is about the search results. The actual results certainly is the most central part of an entire search solution, so it’s important to get &#8230; <a href="https://findwise.com/blog/design-elements-search-results/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-results/">Design Elements of Search &#8211; Results</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>You are currently reading the fourth part in the series Design Elements of Search. This part is about the search results. The actual results certainly is the most central part of an entire search solution, so it’s important to get this part right. Don&#8217;t worry, I&#8217;ll show you how.</p>
<p><strong>A blog series – Six posts about Design Elements of Search</strong></p>
<ul>
<li><a href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">The Search Bar</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Autocomplete Suggestions</a></li>
<li><a href="https://findwise.com/blog/design-elements-of-search-filters/">Filters</a></li>
<li>Results <em><strong>&lt;– You are here</strong></em></li>
<li><a href="https://findwise.com/blog/design-elements-search-landing-page/">Landing page</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-zero-results-page/">Zero-results page</a></li>
</ul>
<hr />
<p><strong>A word on Technology and Relevance – <em>a disclaimer </em></strong></p>
<p>Equally important as having a good user interface is having the right technology and the right relevance model set-up. I will not cover technology and relevance in this blog series. If you wish to read more, these topics is well covered by Findwise since before: <a href="https://findwise.com/en/improve-search-relevancy" class="broken_link">Improve search relevancy</a>  and <a href="https://findwise.com/en/technology">Findwise.com/technology</a>.</p>
<hr />
<h1><strong>Designing Results</strong></h1>
<p>Let’s say you are satisfied with the relevance model for now, how on earth do you design good looking and good performing results? If your indexed information mostly is text documents, your results will likely have a title and a snippet, that’s good – But it’s all the other things you include in the result that make it great. For each content source you have, you’ll need to think about what your target audience want to see. You’ll want your users to be able to understand if this seem like the right result or not.</p>
<h2><strong>Snippet</strong></h2>
<p>A snippet is the chunk of text presented on search results, usually below the title. If you have a 1000 words long PDF, and the user search for a word in a document. The search engine will show some words before the search term, and some words after. These snippets usually start with three dots … to indicate that the text is cut off. Snippets helps your user understand what this document is about. If it seems interesting, the user can decide to click on the result.</p>
<div id="attachment_6047" style="width: 657px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/startpage-snippet.png"><img aria-describedby="caption-attachment-6047" loading="lazy" class="wp-image-6047 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/startpage-snippet.png" alt="A regular search result" width="647" height="161" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/startpage-snippet.png 647w, https://findwise.com/blog/wp-content/uploads/2020/05/startpage-snippet-300x75.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/startpage-snippet-500x124.png 500w" sizes="(max-width: 647px) 100vw, 647px" /></a><p id="caption-attachment-6047" class="wp-caption-text">A regular search result from www.startpage.com.</p></div>
<h2><strong>Context</strong></h2>
<p>If you have indexed documents from a file share, provide the folder structure as <a href="https://uxplanet.org/breadcrumbs-for-web-sites-what-when-and-how-9273dacf1960" class="broken_link">breadcrumbs</a>. Bonus points for making the individual folders clickable. If you have indexed webpages, show the URL as breadcrumbs. Make the individual pages clickable. Not all subpages make sense to navigate to, depending on your structure. Bonus points to you if you exclude these from being links. Below you see a webpage being located in “University -&gt; Home -&gt; Departments -&gt; Mathematical Sciences -&gt; Research”. This context is valuable information that helps your user understand what to expect of this search result.</p>
<div id="attachment_6048" style="width: 741px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/university.png"><img aria-describedby="caption-attachment-6048" loading="lazy" class="wp-image-6048 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/university.png" alt="providing the url for context is good on a search result" width="731" height="164" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/university.png 731w, https://findwise.com/blog/wp-content/uploads/2020/05/university-300x67.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/university-500x112.png 500w" sizes="(max-width: 731px) 100vw, 731px" /></a><p id="caption-attachment-6048" class="wp-caption-text">The url is used to communicate context, answering the question &#8220;where is this page located on the site&#8221;.</p></div>
<h2><strong>What Type is this Result?</strong></h2>
<p>When you index data sets from different sources and make them findable in a common search interface, you need to be as clear as possible about helping your user understand &#8211; “What is this result?”. Show clearly with a label if the result is a guide, a blogpost, a steering document, a product, a person, a case study, and so on. You want to have descriptive labels, not general ones like document, webpage or file. These general labels seldom make sense to users. Again, your labels and how you enable slicing and dicing of the data is the result of the IA work done, and not directly covered in this series.</p>
<h2><strong>Filetype</strong></h2>
<p>I just said above that the label “Document” doesn’t make much sense. That’s not the same thing as showing what filetype the current document has. It is sometimes helpful to know if this File is a PDF-file or a Word-file. Like Google and other search engines, show the filetype to the left of the title, in a little box. If your company uses the Microsoft Office, you can have labels like Word, Excel, PowerPoint. If you design for a general audience it makes more sense to use labels like DOC, XLS, PPT.</p>
<p>This is a good place to use colors, most word processors icons are blue, like Microsoft Word and Google Docs. Excel and Google Sheets is green. Adobe Reader is red. Regarding variations of filetypes, help your users by not bothering them with the difference of XLS and XLSX, or DOC and DOCX and so on. Just call them XLS and DOC. Since filetype also often is a filter. Excluding the different variants of the same file format will reduce the number of options in the list. Below we use colors, icons and labels to communicate filetype.</p>
<div id="attachment_6049" style="width: 949px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/filtetype-white.png"><img aria-describedby="caption-attachment-6049" loading="lazy" class="wp-image-6049 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/filtetype-white.png" alt="Showing the file extension and icon and a color is good for filetypes of a result" width="939" height="488" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/filtetype-white.png 939w, https://findwise.com/blog/wp-content/uploads/2020/05/filtetype-white-300x156.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/filtetype-white-768x399.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/filtetype-white-500x260.png 500w" sizes="(max-width: 939px) 100vw, 939px" /></a><p id="caption-attachment-6049" class="wp-caption-text">The filetype is clearly visible and communicated through text, icon and color.</p></div>
<h2><strong>Highlighting</strong></h2>
<p>Showing your users how results are matching the query is a key component of a well-liked and well understood search solution. In practice, highlighting means that if the user search for “summer vacation”, you provide a different styling on the words “summer” and “vacation” on the result. Most of the time, snippets come standard with highlighting, either in <strong>bold </strong>or in <em>italics</em>. In order to provide meaningful results, show highligting everywhere on the result. This means that if the matching terms are in the title, highlight that. If it’s in the breadcrumb, highlight that. Also, you can get creative and highlight in other ways than <strong>bold </strong>or <em>italics</em>, just see below.</p>
<div id="attachment_6050" style="width: 950px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/summer-vacation.png"><img aria-describedby="caption-attachment-6050" loading="lazy" class="wp-image-6050 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/summer-vacation.png" alt="showing where the search term matched os good" width="940" height="225" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/summer-vacation.png 940w, https://findwise.com/blog/wp-content/uploads/2020/05/summer-vacation-300x72.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/summer-vacation-768x184.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/summer-vacation-500x120.png 500w" sizes="(max-width: 940px) 100vw, 940px" /></a><p id="caption-attachment-6050" class="wp-caption-text">Search result with &#8220;summer&#8221; highlighted.</p></div>
<p>Here we try to mimic the look and feel of an actual highlighting pen, pretty neat.</p>
<div id="attachment_6051" style="width: 250px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/zoomed.png"><img aria-describedby="caption-attachment-6051" loading="lazy" class="wp-image-6051 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/zoomed.png" alt="highlighting looks like an actual pen" width="240" height="102" /></a><p id="caption-attachment-6051" class="wp-caption-text">Highlighting up-close.</p></div>
<h2><strong>Time</strong></h2>
<p>When you are searching a webpage, an intranet or something else for that matter. Always show date of publication, or date of revision if you have that. Otherwise how would you know if the document “Release tables March 29” is recent, or very old? Many people get this basic thing wrong, don’t be one of them!</p>
<h2><strong>Be bold, but be Right</strong></h2>
<p>In order for your users to understand what data you are showing on the result, the data need a label describing it, like “Author: Emil Mauritzson”. All good so far. The most important thing is the data (Emil Mauritzson), not the label (Author). I see many getting this wrong and highlight the label. Highlight the data instead.</p>
<div id="attachment_6052" style="width: 1214px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/labels-do_dont_robert.jpg"><img aria-describedby="caption-attachment-6052" loading="lazy" class="wp-image-6052 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/labels-do_dont_robert.jpg" alt="Visual focus on the data not the label is a best practice for search results" width="1204" height="406" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/labels-do_dont_robert.jpg 1204w, https://findwise.com/blog/wp-content/uploads/2020/05/labels-do_dont_robert-300x101.jpg 300w, https://findwise.com/blog/wp-content/uploads/2020/05/labels-do_dont_robert-1024x345.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/labels-do_dont_robert-768x259.jpg 768w, https://findwise.com/blog/wp-content/uploads/2020/05/labels-do_dont_robert-500x169.jpg 500w" sizes="(max-width: 1204px) 100vw, 1204px" /></a><p id="caption-attachment-6052" class="wp-caption-text">Make the most important thing most visible.</p></div>
<p>So, there’s that. The part about results is complete. If you are ready for more, get on to the next part, the one about what we call <a href="https://findwise.com/blog/design-elements-search-landing-page/">landing pages</a>, whatever that can be…Exciting!</p>
<h2><strong>Get in touch</strong></h2>
<p><a href="https://findwise.com/en">Contact Findwise</a></p>
<p><a href="https://www.linkedin.com/in/emilmauritzson">Contact Emil Mauritzson</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/design-elements-search-results/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Design Elements of Search &#8211; Filters</title>
		<link>https://findwise.com/blog/design-elements-of-search-filters/</link>
					<comments>https://findwise.com/blog/design-elements-of-search-filters/#respond</comments>
		
		<dc:creator><![CDATA[Emil Mauritzson]]></dc:creator>
		<pubDate>Fri, 08 May 2020 11:15:44 +0000</pubDate>
				<category><![CDATA[Design Elements of Search]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Interaction Design]]></category>
		<category><![CDATA[User Experience]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6039</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-of-search-filters/">Design Elements of Search &#8211; Filters</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>Hey, I’m happy you have found your way here, you are currently reading the third part in the series Design Elements of Search. This part is dedicated to filters, tabs and something we like to call filter tags. A blog &#8230; <a href="https://findwise.com/blog/design-elements-of-search-filters/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-of-search-filters/">Design Elements of Search &#8211; Filters</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>Hey, I’m happy you have found your way here, you are currently reading the third part in the series Design Elements of Search. This part is dedicated to filters, tabs and something we like to call filter tags.</p>
<p><strong>A blog series – Six posts about Design Elements of Search</strong></p>
<ul>
<li><a href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">The Search Bar</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Autocomplete Suggestions</a></li>
<li>Filters <em><strong>&lt;– You are here</strong></em></li>
<li><a href="https://findwise.com/blog/design-elements-search-results/">Results</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-landing-page/">Landing page</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-zero-results-page/">Zero-results page</a></li>
</ul>
<hr />
<p><strong>A word on Technology and Relevance – <em>a disclaimer </em></strong></p>
<p>Equally important as having a good user interface is having the right technology and the right relevance model set-up. I will not cover technology and relevance in this blog series. If you wish to read more, these topics is well covered by Findwise since before: <a href="https://findwise.com/en/improve-search-relevancy" class="broken_link">Improve search relevancy</a>  and <a href="https://findwise.com/en/technology">Findwise.com/technology</a>.</p>
<hr />
<h1><strong>Designing Filters</strong></h1>
<p>When setting up new search solutions, we tend to spend a lot of time with the data structure. How should our users slice and dice the search-results? What makes sense? What does not? This is the part of the job sometimes classified as <a href="https://en.wikipedia.org/wiki/Information_architecture">Information Architecture</a> (IA). This text focuses more on the visual elements, the results of the IA work you can say.</p>
<h2><strong>Don’t make it difficult</strong></h2>
<p>The biggest pitfall when designing search is to overwhelm the user with too many options.</p>
<p><em>You got a million hits! &#8211; There are 345566 pages &#8211; Here are some results, Do you only want to see People results? &#8211; Sort by Price, Ascending or Descending?! &#8211; Click me &#8211; Did you mean: Coffee buns? &#8211; Click me &#8211; CLICK MEEEE! </em>Yep, try to tone this down if you can.</p>
<p>Below you’ll see a disastrous layout. There is so many things screaming for users’ attention. If you look really hard, you can see a search result all the way down in the bottom of the picture.</p>
<div id="attachment_6040" style="width: 2662px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/library-dont.png"><img aria-describedby="caption-attachment-6040" loading="lazy" class="wp-image-6040 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/library-dont.png" alt="image of a busy search interface" width="2652" height="1748" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/library-dont.png 2652w, https://findwise.com/blog/wp-content/uploads/2020/05/library-dont-300x198.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/library-dont-1024x675.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/library-dont-768x506.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/library-dont-1536x1012.png 1536w, https://findwise.com/blog/wp-content/uploads/2020/05/library-dont-2048x1350.png 2048w, https://findwise.com/blog/wp-content/uploads/2020/05/library-dont-455x300.png 455w" sizes="(max-width: 2652px) 100vw, 2652px" /></a><p id="caption-attachment-6040" class="wp-caption-text">The original interface, very little room for results.</p></div>
<p>I said above that we spend a lot of time on the structure (IA). And we generally spend a lot of time on filters as well. This time is well spent. However, we need to realize that what is most important for our users. Do they find what they are looking for, or not? The order of the search results, i.e. the <a href="https://findwise.com/en/improve-search-relevancy" class="broken_link">relevance</a> is most important. Therefore, the actual search results should be totally in focus, visually in your interface.</p>
<h2><strong>Make it Easy</strong></h2>
<p>Instead of giving your users too many options up-front, consider hiding filters under a button or link. The button can say “Filter search results”, or “Refine results” or “Filter and Sort”. I’ll show you what I mean below. I have removed and renamed things from the above example, creating a design mockup. It’s not a perfect redesign, but you get my point, hopefully. All of a sudden there is room for three results on screen, success!</p>
<div id="attachment_6041" style="width: 2662px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/library-do.png"><img aria-describedby="caption-attachment-6041" loading="lazy" class="wp-image-6041 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/library-do.png" alt="image of a not so busy search interface" width="2652" height="1748" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/library-do.png 2652w, https://findwise.com/blog/wp-content/uploads/2020/05/library-do-300x198.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/library-do-1024x675.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/library-do-768x506.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/library-do-1536x1012.png 1536w, https://findwise.com/blog/wp-content/uploads/2020/05/library-do-2048x1350.png 2048w, https://findwise.com/blog/wp-content/uploads/2020/05/library-do-455x300.png 455w" sizes="(max-width: 2652px) 100vw, 2652px" /></a><p id="caption-attachment-6041" class="wp-caption-text">A cleaned up interface, more room for results.</p></div>
<p>The second example is a sneak peek of <a href="https://whitearkitekter.com/">White Arkitekter</a> internal search solution. Here we can follow the user searching from the start page and applying a filter. The search results are in focus, and at the same time it’s easy to apply filters when needed. A good example.</p>
<div id="attachment_6042" style="width: 1036px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/white.gif"><img aria-describedby="caption-attachment-6042" loading="lazy" class="wp-image-6042 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/white.gif" alt="animated gif showing a search interface and filters" width="1026" height="876" /></a><p id="caption-attachment-6042" class="wp-caption-text">Showing how easy a filter is applied.</p></div>
<h2><strong>Search inside Filters</strong></h2>
<p>In the best case, a specific filter will contain a handful of values that are easily scanned just by looking at the list. In reality however, often these lists of filter values are long. How should you sort the list? Often, we sort them by “most first”, sometimes alphabetically. When the list is not easily scannable, provide a way to “search” inside the filter. Like this:</p>
<div id="attachment_6043" style="width: 340px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/white-search-inside.gif"><img aria-describedby="caption-attachment-6043" loading="lazy" class="wp-image-6043 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/white-search-inside.gif" alt="animated gif showing a how to search inside filters" width="330" height="898" /></a><p id="caption-attachment-6043" class="wp-caption-text">Typing inside this filter is helping the user more quickly find &#8220;Sweden&#8221;.</p></div>
<h2><strong>Filters values with Zero Results</strong></h2>
<p>Hey, if a filter value will yield zero results, like Calendar, Local files and Archived files below. Show the filter value but don’t make it clickable! Why on earth would you want that? You don’t want to send your users to a dead end. Sometimes they will end up there anyway, and then you have to help. Skip ahead to the part about the <a href="https://findwise.com/blog/design-elements-search-zero-results-page/">Zero Results Page</a> to learn about how to help users recover.</p>
<div id="attachment_6044" style="width: 312px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/Filters-values-with-zero-results.png"><img aria-describedby="caption-attachment-6044" loading="lazy" class="wp-image-6044 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/Filters-values-with-zero-results.png" alt="You should not be able to click a filter with zero results" width="302" height="291" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/Filters-values-with-zero-results.png 302w, https://findwise.com/blog/wp-content/uploads/2020/05/Filters-values-with-zero-results-300x289.png 300w" sizes="(max-width: 302px) 100vw, 302px" /></a><p id="caption-attachment-6044" class="wp-caption-text">A filter with some values returning zero results. Good to show them, but important to make them not clickable.</p></div>
<h2><strong>Filter tags</strong></h2>
<p>I said above that the results should be the graphical element that stands out the most. And also, that making the first refinement should be easy to make. Well, this will mean that the filters will be hidden behind something. This does not mean, by the way, that the filter <strong>selection</strong> made by the user, should be hidden. On the contrary. You definitely want to be clear about what things affect the search results. This is normally the query, the filter selections and the sorting. A filter tag is simply a graphical element that is clearly visible above the search results when activated. It is also easy to remove it, simply by clicking on it. Below, I show you an example when the user has filtered on “News”.</p>
<div id="attachment_6045" style="width: 1026px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/white-filter-tag.png"><img aria-describedby="caption-attachment-6045" loading="lazy" class="wp-image-6045 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/white-filter-tag.png" alt="filter is apllied and renders a filter tag" width="1016" height="522" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/white-filter-tag.png 1016w, https://findwise.com/blog/wp-content/uploads/2020/05/white-filter-tag-300x154.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/white-filter-tag-768x395.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/white-filter-tag-500x257.png 500w" sizes="(max-width: 1016px) 100vw, 1016px" /></a><p id="caption-attachment-6045" class="wp-caption-text">&#8220;News&#8221; is the active filter. A green filter tag is visible and is easy to see and easy to remove.</p></div>
<p>If you are up to a third example of filters check this case study out about <a href="https://findwise.com/en/cases/enterprise-search-at-a-global-technology-company">Personalized search results in Netflix-style user interface</a>.</p>
<p>This was all I had for you regarding filters. I hope some of it made sense, if not let’s get in touch, you can ask me about more details. Or perhaps tell me something I have missed. Always be learning! Next post will discuss <a href="https://findwise.com/blog/design-elements-search-results/">results</a>, see you over there.</p>
<h2><strong>Further reading</strong></h2>
<p><a href="https://www.usability.gov/what-and-why/information-architecture.html">Information Architecture Basics</a></p>
<p><a href="https://www.nngroup.com/articles/filters-vs-facets/">Filters vs. Facets: Definitions</a></p>
<p><a href="https://www.nngroup.com/articles/mobile-faceted-search/">Mobile Faceted Search with a Tray: New and Improved Design Pattern</a></p>
<h2><strong>Get in touch</strong></h2>
<p><a href="https://findwise.com/en">Contact Findwise</a></p>
<p><a href="https://www.linkedin.com/in/emilmauritzson">Contact Emil Mauritzson</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/design-elements-of-search-filters/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Design Elements of Search &#8211; Autocomplete Suggestions</title>
		<link>https://findwise.com/blog/design-elements-search-autocomplete-suggestions/</link>
					<comments>https://findwise.com/blog/design-elements-search-autocomplete-suggestions/#respond</comments>
		
		<dc:creator><![CDATA[Emil Mauritzson]]></dc:creator>
		<pubDate>Fri, 08 May 2020 11:10:07 +0000</pubDate>
				<category><![CDATA[Design Elements of Search]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Interaction Design]]></category>
		<category><![CDATA[User Experience]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6033</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Design Elements of Search &#8211; Autocomplete Suggestions</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>You are currently reading the second part in the series Design Elements of Search, the one about autocomplete suggestions. When you&#8217;re typing text into the search bar, something is happening just below. A list of words relevant to the text &#8230; <a href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Design Elements of Search &#8211; Autocomplete Suggestions</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>You are currently reading the second part in the series Design Elements of Search, the one about autocomplete suggestions. When you&#8217;re typing text into the search bar, something is happening just below. A list of words relevant to the text appears. You probably know this from Google and around the web. I will share my findings and some best practices for autocomplete suggestions now. Call me a search-nerd, because I really enjoy implementing awesome autocomplete features!</p>
<p><strong>A blog series – Six posts about Design Elements of Search</strong></p>
<ul>
<li><a href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">The Search Bar</a></li>
<li>Autocomplete Suggestions <em><strong>&lt;– You are here</strong></em></li>
<li><a href="https://findwise.com/blog/design-elements-of-search-filters/">Filters</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-results/">Results</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-landing-page/">Landing page</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-zero-results-page/">Zero-results page</a></li>
</ul>
<hr />
<p><strong>A word on Technology and Relevance – <em>a disclaimer </em></strong></p>
<p>Equally important as having a good user interface is having the right technology and the right relevance model set-up. I will not cover technology and relevance in this blog series. If you wish to read more, these topics is well covered by Findwise since before: <a href="https://findwise.com/en/improve-search-relevancy" class="broken_link">Improve search relevancy</a>  and <a href="https://findwise.com/en/technology">Findwise.com/technology</a>.</p>
<hr />
<h1><strong>Designing Autocomplete Suggestions</strong></h1>
<p>I bet you recognize this? It just works right. But how do you get here? Read on and I will tell you.</p>
<div id="attachment_6034" style="width: 1230px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/google-findwise.gif"><img aria-describedby="caption-attachment-6034" loading="lazy" class="wp-image-6034 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/google-findwise.gif" alt="animated god showing google autocompleter" width="1220" height="888" /></a><p id="caption-attachment-6034" class="wp-caption-text">How autocomplete works at google, a solid experience.</p></div>
<h2><strong>Instant Search</strong></h2>
<p>Autocomplete suggestions is a nice feature to offer when you expect your users to execute the query by clicking the search-icon or pressing the enter key. However sometimes your search solution is set up in such a way that for each character the user enters, a new search is performed automatically, this is called instant search. When this is the case you do not want autocomplete suggestions. Google experimented with instant search a few years ago. Google decided to <a href="https://searchengineland.com/google-dropped-google-instant-search-279674">revert back</a> due to a few reasons. However, providing instant search in your use case might still be a good idea. In my experience instant search works well for structured data sets, like a product catalogue, or similar. When your information is diversified, the results could be either documents, web pages, images, people, videos and so on, you are probably better of providing traditional search in combination with autocomplete suggestions.</p>
<h2><strong>Suggestions based on User Queries</strong></h2>
<p>In my experience, using queries as the foundation for suggestions is the way to go. You can’t just take all queries and potentially suggest it to your entire user base though. What happens if you have a bad actor who want to troll and mess up your suggestions? Let’s say a popular query among your users is “money transfer” and your bad actor searches for something as nasty as “monkeyballs” 100 times. How do you make sure to provide the right suggestion when your user types “mon” in the search bar? You definitely don’t want your search team to actively monitor your potential autocomplete suggestions and manually weed out the bad ones.</p>
<p>One effective method we use is to check if the query matches any document in the index. Hopefully (!?) you do not have any document containing the word “monkeyballs” in your index, and therefore these terms will not be suggested to your users in the autocomplete suggestions. Using this method will make sure your suggestions is always domain specific to your particular case.</p>
<p>Another safeguard to ensure high quality suggestions is to have a threshold. A threshold means a query need to be performed X amount of times before it ends up as a potential suggested term. You can experiment with this threshold in your specific case for the best effect. This threshold will weed out “strange” queries like seemingly random numbers and other queries entered by mistake, that happens to yield some results.</p>
<p>Here is a high-level architecture of a successfully implemented autocomplete suggester at a large client.</p>
<div id="attachment_6035" style="width: 892px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/qc.png"><img aria-describedby="caption-attachment-6035" loading="lazy" class="wp-image-6035 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/qc.png" alt="architectural image showing autocomplete behind the scenes" width="882" height="846" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/qc.png 882w, https://findwise.com/blog/wp-content/uploads/2020/05/qc-300x288.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/qc-768x737.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/qc-313x300.png 313w" sizes="(max-width: 882px) 100vw, 882px" /></a><p id="caption-attachment-6035" class="wp-caption-text">Architectural overview of a good performing autocomplete suggester implemented at a client.</p></div>
<h2><strong>Right information, in the right time</strong></h2>
<p>So far, I have explained how to weed out the poor and nasty terms. More importantly however, how do you suggest terms in a good order? Basically, to achieve this, we consider the more people searching for something, the higher up the term will be in the list of suggestions. How do you solve the following case? Let’s say summer is coming up, and people are interested in “Vacation planning 2020”, how do you provide this suggestion above “Vacation planning 2019” in the spring of 2020? The term “Vacation Planning 2019” have been searched for 10.000 times and “Vacation planning 2020” only have been searched for 200 times?</p>
<p>Basically, you need to consider when these searches have been performed, and value recency together with number of searches. I don’t have an exact formula to share, but as you can see in the high-level architecture, we divide the queries on “last year, last month, last week”. Getting a good balance here will help boost recent queries that will be of interest to your users.</p>
<h2><strong>Add Static lists </strong></h2>
<p>Sometimes, you possess high quality lists of words that you want to appear in the autocomplete suggestions without the users first searching for them. Then you can populate the suggestions manually once. You may have a list of all the conference room names in your building, you may have a list of subjects that content creators use to tag documents. Please go ahead and use lists like this in your autocomplete suggestions.</p>
<h2><strong>Highlight the right thing</strong></h2>
<p>When presenting search results on the results page, you want to highlight where the query matched the document. Read about <a href="https://findwise.com/blog/design-elements-of-search-filters/">Results</a> in the fourth part in this series. In the autocomplete suggestions however, you want to do the opposite. In this state, users know what characters they just entered, they are looking for what you are suggesting, this is what you highlight.</p>
<div id="attachment_6036" style="width: 1214px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/autocomplete-do_dont_robert.jpg"><img aria-describedby="caption-attachment-6036" loading="lazy" class="wp-image-6036 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/autocomplete-do_dont_robert.jpg" alt="example of do and dont - highlight" width="1204" height="702" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/autocomplete-do_dont_robert.jpg 1204w, https://findwise.com/blog/wp-content/uploads/2020/05/autocomplete-do_dont_robert-300x175.jpg 300w, https://findwise.com/blog/wp-content/uploads/2020/05/autocomplete-do_dont_robert-1024x597.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/autocomplete-do_dont_robert-768x448.jpg 768w, https://findwise.com/blog/wp-content/uploads/2020/05/autocomplete-do_dont_robert-500x292.jpg 500w" sizes="(max-width: 1204px) 100vw, 1204px" /></a><p id="caption-attachment-6036" class="wp-caption-text">Highlighting what comes after, not what the user has already entered.</p></div>
<p>Here we are, right at the end of autocomplete suggestions. Coming up in the next part, I will give you details about <a href="https://findwise.com/blog/design-elements-of-search-filters/">filters</a><span style="color: #ff0000">.</span> Filters is surprisingly difficult to get right. But with some effort, it&#8217;s possible to make them shine. See you on the other side.</p>
<h2><strong>Further reading</strong></h2>
<p><a href="https://baymard.com/blog/autocomplete-design">13 Design Patterns for Autocomplete Suggestions</a></p>
<h2><strong>Get in touch</strong></h2>
<p><a href="https://findwise.com/en">Contact Findwise</a></p>
<p><a href="https://www.linkedin.com/in/emilmauritzson">Contact Emil Mauritzson</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/design-elements-search-autocomplete-suggestions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Design Elements of Search &#8211; The Search Bar</title>
		<link>https://findwise.com/blog/design-elements-of-search-the-search-bar/</link>
					<comments>https://findwise.com/blog/design-elements-of-search-the-search-bar/#respond</comments>
		
		<dc:creator><![CDATA[Emil Mauritzson]]></dc:creator>
		<pubDate>Fri, 08 May 2020 11:09:35 +0000</pubDate>
				<category><![CDATA[Design Elements of Search]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Interaction Design]]></category>
		<category><![CDATA[User Experience]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=6009</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">Design Elements of Search &#8211; The Search Bar</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>Time for the first part in the series Design Elements of Search. How do you design a search solution so that it provides value to your organization? How do you make sure users enjoy, use and actually find what they &#8230; <a href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/design-elements-of-search-the-search-bar/">Design Elements of Search &#8211; The Search Bar</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/emil/">Emil Mauritzson</a></p>
<p>Time for the first part in the series Design Elements of Search. How do you design a search solution so that it provides value to your organization? How do you make sure users enjoy, use and actually find what they expect? There are already so many great implementations of successful search applications, what can we learn from them? If these questions are in your domain, then you have reached the right place. Buckle up, you are in for a ride! Let’s dive into it right away by discussing the search bar.</p>
<p><strong>A blog series – Six posts about Design Elements of Search</strong></p>
<ul>
<li>The Search Bar <em><strong>&lt;– You are here</strong></em></li>
<li><a href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">Autocomplete Suggestions</a></li>
<li><a href="https://findwise.com/blog/design-elements-of-search-filters/">Filters</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-results/">Results</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-landing-page/">Landing page</a></li>
<li><a href="https://findwise.com/blog/design-elements-search-zero-results-page/">Zero-results page</a></li>
</ul>
<hr />
<p><strong>A word on Technology and Relevance – <em>a disclaimer </em></strong></p>
<p>Equally important as having a good user interface is having the right technology and the right relevance model set-up. I will not cover technology and relevance in this blog series. If you wish to read more, these topics is well covered by Findwise since before: <a href="https://findwise.com/en/improve-search-relevancy" class="broken_link">Improve search relevancy</a>  and <a href="https://findwise.com/en/technology">Findwise.com/technology</a>.</p>
<hr />
<h1><strong>Designing the Search Bar</strong></h1>
<p>To set the scene and get cozy, here are some search bars.</p>
<div id="attachment_6010" style="width: 587px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/searchbars.gif"><img aria-describedby="caption-attachment-6010" loading="lazy" class="wp-image-6010 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/searchbars.gif" alt="Animated gif showing a variety of different search bars" width="577" height="63" /></a><p id="caption-attachment-6010" class="wp-caption-text">A selection of search bars, for your pleasure.</p></div>
<h2><strong>Placing the search bar in the “right” place</strong></h2>
<p>Before discussing the individual graphical elements of the search bar, let’s consider where a search bar can be placed. On the search page itself, it normally resides in the top of the page (think Google). However, consider the vast landscape of your digital workplace and you might understand where I am going. A search bar can be placed on your intranet, usually in the header. It can be placed in the taskbar of your workforces’ computers. It can be placed in multiple other business applications in your control. From our perspective this is called entry points. It is well worth following up where your users come from. This is only one data point, you definitely want to follow up more usage statistics. You want to be data informed. In our client projects we usually use <a href="https://findwise.com/blog/improving-user-intelligence-with-the-elk-stack-at-sca/">Kibana</a> for statistics, showing graphs in custom dashboards. Before redesigning something, we first analyze existing usage statistics, and then follow up with users to draw conclusions that will inform design decisions. I’ll stop talking about usage statistics now, let’s go ahead and break down the search bar.</p>
<h2><strong>Placeholder Text</strong></h2>
<p>A placeholder text invites users to the search bar. The placeholder text explains what your users can expect to find in this search solution. While respecting the tone of voice of your application, it doesn’t hurt to be friendly and helpful here. Examples of good placeholder texts is: “What are you looking for today?” “How can we help?”  “Find people, projects and more”. <a href="https://www.hm.com/">H&amp;M</a>, the clothing store have implemented a dynamic placeholder text that animates in a neat way.</p>
<div id="attachment_6011" style="width: 550px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/ikea-placeholder.gif"><img aria-describedby="caption-attachment-6011" loading="lazy" class="wp-image-6011 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/ikea-placeholder.gif" alt="Placeholder text from IKEA that animates" width="540" height="51" /></a><p id="caption-attachment-6011" class="wp-caption-text">Animated placeholder text that sparks interest in the different kind of things you can search for at IKEA.com</p></div>
<p><a href="https://photos.google.com/">Google Photos</a> is switching it around and suggests what you can search for based on the meta data of your uploaded photos, here are a few examples.</p>
<div id="attachment_6012" style="width: 928px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/google.png"><img aria-describedby="caption-attachment-6012" loading="lazy" class="wp-image-6012 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/google.png" alt="placeholder text from google showing a variety of different texts" width="918" height="247" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/google.png 918w, https://findwise.com/blog/wp-content/uploads/2020/05/google-300x81.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/google-768x207.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/google-500x135.png 500w" sizes="(max-width: 918px) 100vw, 918px" /></a><p id="caption-attachment-6012" class="wp-caption-text">A variety of placeholder texts helping the user discover what can be searched for. The text is also personalized.</p></div>
<p>The placeholder text should be gray, so that the text is not mistaken to be actual data entered into the search bar. The placeholder text should immediately disappear when your user starts typing.</p>
<h2><strong>Contrast</strong></h2>
<p>Make sure the color of the search bar and the background color of the page provides enough contrast so that the search bar is clearly visible. It’s is also fine to have the same color if you provide a border around the search bar with enough contrast. Here a few good examples, and some bad.</p>
<h3><strong>High Contrast</strong></h3>
<div id="attachment_6013" style="width: 1032px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/good-2.png"><img aria-describedby="caption-attachment-6013" loading="lazy" class="wp-image-6013 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/good-2.png" alt="screenshot of bing start page" width="1022" height="358" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/good-2.png 1022w, https://findwise.com/blog/wp-content/uploads/2020/05/good-2-300x105.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/good-2-768x269.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/good-2-500x175.png 500w" sizes="(max-width: 1022px) 100vw, 1022px" /></a><p id="caption-attachment-6013" class="wp-caption-text">Clearly enough contrast on Bing.com</p></div>
<div id="attachment_6014" style="width: 1166px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/good.png"><img aria-describedby="caption-attachment-6014" loading="lazy" class="wp-image-6014 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/good.png" alt="screenshot of Dustin.com providing good contrast" width="1156" height="157" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/good.png 1156w, https://findwise.com/blog/wp-content/uploads/2020/05/good-300x41.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/good-1024x139.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/good-768x104.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/good-500x68.png 500w" sizes="(max-width: 1156px) 100vw, 1156px" /></a><p id="caption-attachment-6014" class="wp-caption-text">Easy to find the search bar on Dustin</p></div>
<h3><strong>Low Contrast</strong></h3>
<p>Google actually have low contrast on the border surrounding the search bar. The search bar also has the same color as the page. Normally this is something to avoid. There is few items on the page, and users expect to search at Google.com, so they get away with low contrast I guess. Still, Bing is better in this regard.</p>
<div id="attachment_6015" style="width: 686px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/bad-2.png"><img aria-describedby="caption-attachment-6015" loading="lazy" class="wp-image-6015 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/bad-2.png" alt="screenshot of Google.com providing poor contrast" width="676" height="400" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/bad-2.png 676w, https://findwise.com/blog/wp-content/uploads/2020/05/bad-2-300x178.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/bad-2-500x296.png 500w" sizes="(max-width: 676px) 100vw, 676px" /></a><p id="caption-attachment-6015" class="wp-caption-text">Too little contrast on Google.</p></div>
<div id="attachment_6016" style="width: 688px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/bad.png"><img aria-describedby="caption-attachment-6016" loading="lazy" class="wp-image-6016 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/bad.png" alt="Screenshot of search bar with too little contrast" width="678" height="95" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/bad.png 678w, https://findwise.com/blog/wp-content/uploads/2020/05/bad-300x42.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/bad-500x70.png 500w" sizes="(max-width: 678px) 100vw, 678px" /></a><p id="caption-attachment-6016" class="wp-caption-text">Where is the search bar? Look hard.</p></div>
<p>If you are unsure, check if your current colors provide enough contrast using an online <a href="https://userway.org/contrast/000000/ffffff">Contrast Checker</a>.Chances are your contrasts are too low and need improvement.</p>
<h2><strong>The Search Button</strong></h2>
<p>This is the button that performs the search. Many people use the Enter key on their keyboard instead of clicking this button. However, you still want to keep the search button for clarity and ease of use. Generally, <a href="https://www.nngroup.com/articles/icon-usability/">all icons should have labels</a>. The search button is one of the few icons for which it´s safe to skip the label. I can argue that the search icon is generally recognized, especially in the context of search. On the other hand, if you have the room. Why not use a label? I mean it cannot be clearer than this:</p>
<div id="attachment_6017" style="width: 641px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/FSK.png"><img aria-describedby="caption-attachment-6017" loading="lazy" class="wp-image-6017 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/FSK.png" alt="Screenshot of Försäkringskassan having good labels" width="631" height="75" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/FSK.png 631w, https://findwise.com/blog/wp-content/uploads/2020/05/FSK-300x36.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/FSK-500x59.png 500w" sizes="(max-width: 631px) 100vw, 631px" /></a><p id="caption-attachment-6017" class="wp-caption-text">Clearly labeled buttons, easy to comprehend.</p></div>
<h2><strong>Clear the search bar easily with an “X”</strong></h2>
<p>As frequently implemented on mobile applications, you should provide an easy way of clearing the text-field on your desktop application. This is accomplished by an “X”-icon. As discussed above, not many icons are recognized by majority of users. Therefore, it is common practice to provide labels for icons. For the “X”-icon in this specific context, is also fine to skip the label.</p>
<div id="attachment_6018" style="width: 522px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/architects.gif"><img aria-describedby="caption-attachment-6018" loading="lazy" class="wp-image-6018 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/architects.gif" alt="a search bar that makes it easy to remove the typed text" width="512" height="79" /></a><p id="caption-attachment-6018" class="wp-caption-text">Make the text easy to remove.</p></div>
<h2><strong>Number of Results</strong></h2>
<p>After the query has been executed and results are showing, it is helpful to communicate how many results that were returned. This provides value in itself, and in combination with filters it is even more powerful. Telling the users how many results were returned is helping them understand how your search application is working, especially in combinations with applied filters. Skip ahead to <a href="https://findwise.com/blog/design-elements-of-search-filters/">Filters</a> and read all about it. Avoid sounding like a robot, don’t say “Showing 10 of 28482 results on Pages 1-2849. Plainly say “Showing 123 results” or “123 results found”.</p>
<div id="attachment_6020" style="width: 1840px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830.png"><img aria-describedby="caption-attachment-6020" loading="lazy" class="wp-image-6020 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830.png" alt="example of do and dont - number of results" width="1830" height="960" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830.png 1830w, https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830-300x157.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830-1024x537.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830-768x403.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830-1536x806.png 1536w, https://findwise.com/blog/wp-content/uploads/2020/05/do-dont-number-of-res_1830-500x262.png 500w" sizes="(max-width: 1830px) 100vw, 1830px" /></a><p id="caption-attachment-6020" class="wp-caption-text">Make your search solution friendly and approachable, not robotic and stiff.</p></div>
<h2><strong>Did you mean</strong></h2>
<p>Use the power of search technologies and query analysis to give your users the option to adjust the initial query for the better. Sometimes you will suggest a correctly spelled query when your user misspelled, or you can suggest alternative phrases or other related terms.</p>
<div id="attachment_6021" style="width: 1064px" class="wp-caption aligncenter"><a href="https://findwise.com/blog/wp-content/uploads/2020/05/DV.png"><img aria-describedby="caption-attachment-6021" loading="lazy" class="wp-image-6021 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/05/DV.png" alt="did you mean example" width="1054" height="355" srcset="https://findwise.com/blog/wp-content/uploads/2020/05/DV.png 1054w, https://findwise.com/blog/wp-content/uploads/2020/05/DV-300x101.png 300w, https://findwise.com/blog/wp-content/uploads/2020/05/DV-1024x345.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/05/DV-768x259.png 768w, https://findwise.com/blog/wp-content/uploads/2020/05/DV-500x168.png 500w" sizes="(max-width: 1054px) 100vw, 1054px" /></a><p id="caption-attachment-6021" class="wp-caption-text">The search solution can help you spell words correctly.</p></div>
<p>Here we are, right at the end of the first part. I hope it was compelling, there is more where this came from, so keep on reading. To sum up this first part, when designing the search bar, just the obvious things need to be right. In the second part, you&#8217;ll get to know something called <a href="https://findwise.com/blog/design-elements-search-autocomplete-suggestions/">autocomplete suggestions</a>. This feature helps your users formulate better queries, and that really is a good start.</p>
<h2><strong>Further reading</strong></h2>
<p><a href="https://uxdesign.cc/how-to-design-search-bars-6d4ca9944ad3">How to design: accessible search bars</a></p>
<p><a href="https://uxplanet.org/design-a-perfect-search-box-b6baaf9599c">Design a Perfect Search Box</a></p>
<h2><strong>Get in touch</strong></h2>
<p><a href="https://findwise.com/en">Contact Findwise</a></p>
<p><a href="https://www.linkedin.com/in/emilmauritzson">Contact Emil Mauritzson</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/design-elements-of-search-the-search-bar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>3 challenges for the internal service desk – and how to solve them</title>
		<link>https://findwise.com/blog/3-challenges-internal-service-desk-solve/</link>
					<comments>https://findwise.com/blog/3-challenges-internal-service-desk-solve/#respond</comments>
		
		<dc:creator><![CDATA[Mikael Wendelius]]></dc:creator>
		<pubDate>Mon, 30 Mar 2020 20:08:51 +0000</pubDate>
				<category><![CDATA[Findability]]></category>
		<category><![CDATA[Text Analytics]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5980</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/3-challenges-internal-service-desk-solve/">3 challenges for the internal service desk – and how to solve them</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/mickew/">Mikael Wendelius</a></p>
<p>The digital transformation and the internal service desks Most organizations today are focusing on creating a digital service desk experience. This transformation has of course been going on for many years and different organizations have different versions of ticket systems &#8230; <a href="https://findwise.com/blog/3-challenges-internal-service-desk-solve/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/3-challenges-internal-service-desk-solve/">3 challenges for the internal service desk – and how to solve them</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/mickew/">Mikael Wendelius</a></p>
<h2>The digital transformation and the internal service desks</h2>
<p>Most organizations today are focusing on creating a digital service desk experience. This transformation has of course been going on for many years and different organizations have different versions of ticket systems for reporting and solving internal (mostly IT) issues. A common trend, though, is efforts on creating a <strong>digital self-service</strong>.  Gartner has targeted self-service support as one of the top priority areas for 2020:</p>
<p><em>“Improve the customer service experience by reducing live contact volume by <strong>shifting from a live to a self-service functionality”</strong></em></p>
<p>The self-service trend is mainly focusing on answering the “simple and reoccurring” questions. These are the types of questions, asked often and by different users, that typically have simple answers. Our experience at Findwise is that surprisingly many of all the questions handled by an internal service desk can be categorized as simple and reoccurring. We have targeted 3 challenges for the internal service desk – and suggestions on how to solve them.</p>
<h2>The challenge of self-service in an internal service desk</h2>
<p>In almost all organizations there is a need to handle internal support questions. It might be IT-related such as “how do I install a VPN to be able to work from home”, HR-related such as “how do I order terminal glasses”, Finance related such as “where do I report the financial result for last quarter “ etc.</p>
<p>This is generally handled by the “internal service desk” or “internal support”. It might be handled “case-by-case” using email by the responsible person or in a more structured form in a “ticket system”. Often IT has a structured and formalized way of working but other areas (HR, Finance etc.) might not be equally structured.</p>
<p>The business impact on an organization when the internal service desk does not deliver fast and accurate answers might be huge! People might not get their work done and instead need to “idle” in wait for a response or answer.</p>
<h2>3 challenges to solve</h2>
<p>Findwise has during the years created several digital, self-service, internal service desk portals with the ability to be proactive and give the users the fast and accurate answers they are looking for.</p>
<p>In this work we have learned that there are 3 main challenges you need to solve:</p>
<ol>
<li>
<h3><strong>Take control of your data</strong></h3>
</li>
</ol>
<p>If you are going to provide proactive and self-service answers to simple and recurring questions you need to know where the answers are. You need to have control of your data!</p>
<p>In order to do that you need to have a plan and work continuously with the data challenges viewed in the picture below:</p>
<p><a href="https://findwise.com/blog/pic-3/"><img loading="lazy" class="aligncenter wp-image-5998 size-large" src="https://findwise.com/blog/wp-content/uploads/2020/03/pic-3-1024x500.png" alt="" width="584" height="285" srcset="https://findwise.com/blog/wp-content/uploads/2020/03/pic-3-1024x500.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-3-300x147.png 300w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-3-768x375.png 768w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-3-500x244.png 500w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-3.png 1290w" sizes="(max-width: 584px) 100vw, 584px" /></a></p>
<p>At Findwise we have <a href="https://findwise.com/sv/enterprise-search">measured Search and Findability in various organisations since 2012</a>. As clearly shown in the result of the 2019 Search &amp; Findability Survey, finding relevant information is still a major challenge to most organizations. When it comes to internal information, as many as 55% find it difficult or very difficult to find what they are looking for. Bad information quality is one of main reasons for poor findability.</p>
<p>Not only does insufficient information quality lead to poor findability, it also has a negative effect on digital transformation in general. To be able to extract value from data and create, in this case, a digital self-service, the first step always needs to be to “sort out the (information) mess”. <a href="https://findwise.com/blog/well-known-findability-challenges-in-the-ai-hype/">Read more about, what we at Findwise call, “The pyramid of digital transformation” and why sorting the mess is fundamental</a>.</p>
<ol start="2">
<li>
<h3><strong>Create the appropriate platform </strong></h3>
</li>
</ol>
<p>Creating a ticket in a ticket system is good for complex questions that are not occurring daily. They need to be handled by a person working in the internal support organization.</p>
<p>Finding an answer to the simple and reoccurring questions requires another kind of system. This is more of a search-platform than a ticket system. The user wants to find the answer – not create a ticket and then wait.</p>
<p>At Findwise we have created various search and information platforms, with service desk applications built on top, during the years. The solution depends on the user’s specific need, type of data and optimal way of consuming information.</p>
<p><a href="https://findwise.com/blog/?attachment_id=5990" rel="attachment wp-att-5990"><img loading="lazy" class="aligncenter wp-image-5990 size-large" src="https://findwise.com/blog/wp-content/uploads/2020/03/pic-1024x422.png" alt="service desk platform" width="584" height="241" srcset="https://findwise.com/blog/wp-content/uploads/2020/03/pic-1024x422.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-300x124.png 300w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-768x317.png 768w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-500x206.png 500w, https://findwise.com/blog/wp-content/uploads/2020/03/pic.png 1302w" sizes="(max-width: 584px) 100vw, 584px" /></a></p>
<p><a href="https://findwise.com/blog/pic-2/"><img loading="lazy" class="aligncenter wp-image-5994 size-large" src="https://findwise.com/blog/wp-content/uploads/2020/03/pic-2-1024x735.png" alt="" width="584" height="419" srcset="https://findwise.com/blog/wp-content/uploads/2020/03/pic-2-1024x735.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-2-300x215.png 300w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-2-768x551.png 768w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-2-418x300.png 418w, https://findwise.com/blog/wp-content/uploads/2020/03/pic-2.png 1216w" sizes="(max-width: 584px) 100vw, 584px" /></a></p>
<p>An internal support service combining the ticket system for complex questions and the self-service portal for simple and recurring questions can handle any kind of internal issue in an efficient way!</p>
<ol start="3">
<li>
<h3><strong>Make it easy to find the correct answer</strong></h3>
</li>
</ol>
<p>Understanding user intent is hard. Luckily, we can use AI-technology to bridge the gap  in communication between a human and a system.</p>
<p>Users (supported by technological development) have moved from keyword search to searching in our Natural Language. Natural Language Processing is a substantial part of AI used for understanding the human language and being able to answer in the same way. Home assistants are a great example of NLP in our everyday life.</p>
<p>Digging deeper in the area of NLP you&#8217;ll find <a href="https://en.wikipedia.org/wiki/Named-entity_recognition">Name Entity Recognition (NER)</a>. This is how we at Findwise know that &#8220;surprisingly many of all the questions handled by an internal service desk can be categorized as simple and reoccurring&#8221;. Let&#8217;s look at some examples of questions that appear unique, but can actually be clustered.</p>
<p><a href="https://findwise.com/blog/skarmklipp/"><img loading="lazy" class="aligncenter wp-image-5996 size-large" src="https://findwise.com/blog/wp-content/uploads/2020/03/Skärmklipp-1024x376.png" alt="" width="584" height="214" srcset="https://findwise.com/blog/wp-content/uploads/2020/03/Skärmklipp-1024x376.png 1024w, https://findwise.com/blog/wp-content/uploads/2020/03/Skärmklipp-300x110.png 300w, https://findwise.com/blog/wp-content/uploads/2020/03/Skärmklipp-768x282.png 768w, https://findwise.com/blog/wp-content/uploads/2020/03/Skärmklipp-500x184.png 500w, https://findwise.com/blog/wp-content/uploads/2020/03/Skärmklipp.png 1067w" sizes="(max-width: 584px) 100vw, 584px" /></a></p>
<p>In the case of the phone numbers the queries seem to be unique but since they all refer to the same &#8220;entity&#8221; they can be clustered and handled as &#8220;simple and recurring&#8221;.</p>
<p>There are obviously a lot of different ways of asking the same question! Natural Language Understanding, using dense vectors or embeddings, is likely the hottest area withing the deep learning NLP community today. <a href="https://en.wikipedia.org/wiki/BERT_(language_model)">Google’s BERT</a> that was released late 2018 has even been able to outperform humans in question answering tasks.</p>
<p>But AI doesn&#8217;t need to be the silver bullet every time. Another example of how to make it easy to find the current answer is to work proactively. During a year different thing are important for different users. Approaching summer questions about vacation rules, vacation application etc. might be very common. Coming back after the summer vacation IT-departments might be bored with the simple and recurring question of “I have forgotten my password – how do I change it?”</p>
<p><a href="https://findwise.com/blog/wordcloud/"><img loading="lazy" class="aligncenter wp-image-5993 size-full" src="https://findwise.com/blog/wp-content/uploads/2020/03/wordcloud.png" alt="" width="961" height="622" srcset="https://findwise.com/blog/wp-content/uploads/2020/03/wordcloud.png 961w, https://findwise.com/blog/wp-content/uploads/2020/03/wordcloud-300x194.png 300w, https://findwise.com/blog/wp-content/uploads/2020/03/wordcloud-768x497.png 768w, https://findwise.com/blog/wp-content/uploads/2020/03/wordcloud-464x300.png 464w" sizes="(max-width: 961px) 100vw, 961px" /></a></p>
<p>Using search technology boosted with AI and a lot of common sense the support organization should be able to present answers to questions that they think many users will ask – at the right time of the year.</p>
<h3></h3>
<h2>Summary</h2>
<p>The trend towards a digital and self-service oriented internal service desk is rapidly gaining phase, in the short perspective driven by the fact that more people than ever are working from home.</p>
<p>The negative business impact of a poor service desk not giving fast and accurate answers can be significant.</p>
<p>Findwise experience within this filed can be summarized in three challenges that need to be solved:</p>
<ul>
<li>Take control of your data</li>
<li>Create the appropriate platform</li>
<li>Make it easy to find the correct answer</li>
</ul>
<p>If you want to know more about how Findwise solves these challenges and the solutions we provide, do not hesitate to contact us.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/3-challenges-internal-service-desk-solve/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Toward data-centric solutions with Knowledge graphs</title>
		<link>https://findwise.com/blog/toward-data-centric-solutions-with-knowledge-graphs/</link>
					<comments>https://findwise.com/blog/toward-data-centric-solutions-with-knowledge-graphs/#respond</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Tue, 17 Dec 2019 10:57:53 +0000</pubDate>
				<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Semantic]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[knowledge graph]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5934</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/toward-data-centric-solutions-with-knowledge-graphs/">Toward data-centric solutions with Knowledge graphs</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>In the last blog posts [1, 2] in this series by Fredric Landqvist and Peter Voisey we have outlined for you, at a high level, about the benefits of making data smarter and F.A.I.R., ideally made findable through a shareable, &#8230; <a href="https://findwise.com/blog/toward-data-centric-solutions-with-knowledge-graphs/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/toward-data-centric-solutions-with-knowledge-graphs/">Toward data-centric solutions with Knowledge graphs</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>

<figure class="wp-block-image"><img loading="lazy" width="1024" height="576" src="https://findwise.com/blog/wp-content/uploads/2019/12/KGS-image-2-1024x576.png" alt="" class="wp-image-5946" srcset="https://findwise.com/blog/wp-content/uploads/2019/12/KGS-image-2-1024x576.png 1024w, https://findwise.com/blog/wp-content/uploads/2019/12/KGS-image-2-300x169.png 300w, https://findwise.com/blog/wp-content/uploads/2019/12/KGS-image-2-768x432.png 768w, https://findwise.com/blog/wp-content/uploads/2019/12/KGS-image-2-500x281.png 500w, https://findwise.com/blog/wp-content/uploads/2019/12/KGS-image-2.png 1999w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>In the last blog posts [<a href="https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/">1</a>, <a href="https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/">2</a>] in this series by Fredric Landqvist and Peter Voisey we have outlined for you, at a high level, about the benefits of <a href="https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/">making data smarter and F.A.I.R</a>.<em>, </em>ideally made findable through a shareable, but controlled, type of <a href="https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/">Information Commons</a>. In this post, we introduce you to <a href="https://en.wikipedia.org/wiki/Ontology_(information_science)">Knowledge Graphs</a> (based on Semantic Web Technologies), the <em>source</em> for the magic of smart and FAIR data automation. Data that is findable, accessible, interoperable and reusable. They can help tackle a range of problems, from the data tsunami to the scarcity of (quality) data for that next AI project.</p>



<h2>What is a Knowledge Graph?</h2>



<p>There are several different types of graph and certainly many have been many attempted definitions of a Knowledge Graph. Here’s ours:</p>



<blockquote class="wp-block-quote"><p><em>A Knowledge Graph is the structural representation of explicit knowledge for a domain, encoded in such a way that both humans and machines can read (process) it.</em></p></blockquote>



<p>Ultimately, we are wanting to exploit data and their connections or relationships within the graph format in order to surface important and relevant data and information. Without these relationships, the understandings, the stories and the searches around our data tend to dry up fairly quickly. Our world is increasingly connected. So we hope, from an organisational perspective, you are asking: <em>Why isn’t our data connected?!</em></p>



<h3><strong>Where does the term “Knowledge Graph” come from?</strong></h3>



<p>The term Knowledge Graph was coined by Google on the release of its own Knowledge Graph in 2012. More recently, organisations have been cottoning on to the collective benefits of employing a Knowledge Graph, so much so, that many refer to the <em>Enterprise Knowledge Graph</em> today.</p>



<h3><strong>What are the technologies behind the Enterprise Knowledge Graph?</strong></h3>



<p>The Enterprise Knowledge Graph is based on a stack of <a href="http://www.w3c.org">W3C</a>-ratified <a href="https://www.w3.org/standards/semanticweb/">Semantic Web Technologies</a>. As their name alludes to, they form the basis of the Semantic Web. Their formulation began in 2001 with Sir Tim Berners-Lee. Sir Tim, not content with giving us the World Wide Web for free, pictured a web of connected data and concepts, besides the web of linked documents, so that machines would be able to understand our requests by virtue of known connections and relationships.</p>



<h3><strong>Why Enterprise Knowledge Graphs now?</strong></h3>



<p>These technologies are complex to the layperson and some of them are nearly 20 years old. What’s changed to make Enterprises take note of them now? Well worsening internal data management problems, the need for some knowledge input for most sustainable AI projects and the fact that Knowledge Graph building tools have improved to become collaborative and more user-friendly for the knowledge engineer, domain expert and business executive. The underlying technologies in new tools are more hidden from the end user&#8217;s perspective, allowing them to concentrate on encoding their knowledge so that it can be used across enterprise systems and applications. In essence, linking enterprise data.</p>



<p>Thanks to Google’s success in using their Knowledge Graph with their search, Enterprise Knowledge Graphs are becoming recognised as the difference between “googling” and using the sometimes-less-than-satisfying enterprise consumer-facing or intranet search.</p>



<p>The key takeaway here though is that real power of any knowledge graph is in its relationships/connections between concepts. We’ll look into this in more detail next.</p>



<h3><strong>RDF, at the heart of the Enterprise Knowledge Graphs (EKGs)</strong></h3>



<p>EKGs use the simple RDF graph data model at their base. <a href="https://www.w3.org/RDF/">RDF</a> stands for <a href="https://en.wikipedia.org/wiki/Resource_Description_Framework">Resource Description Framework</a> – a framework for the way resources or things are described so that we can recognise more easily plus understand more about them.</p>



<p><em>An aside:</em> We’re talking RDF (namespace) Knowledge Graphs here, rather than their sister graph type, <a href="https://en.wikipedia.org/wiki/Graph_database">Property </a><a href="https://en.wikipedia.org/wiki/Graph_database">Graphs</a>, which we will cover in a future post. It is important to note that there are advantages with both types of graph and indeed new technologies are being developed, so processes can straddle both types.</p>



<p>The RDF graph data model describes a thing or a resource in terms of “triples”: <strong>Subject – predicate – Object.</strong> The diagram below illustrates this more clearly with an example.</p>



<figure class="wp-block-image"><img src="https://lh6.googleusercontent.com/cq8VYoegjtNthS_8KeaOmZ66HnHuqG71fDmYyz3f_BfpqyF9K0v-spya180rig7GpiW3PTEUzVjGz1qilwZ46b-Rt_1yEDn4RlDY1Xg6IYL2o9nO7jW6qjgeOSpPfuOaXOVDpaPL" alt="" /><figcaption><br><em>Figure 1. What does a Knowledge Graph look like? The RDF elements of a Knowledge Graph</em><br></figcaption></figure>



<p>The graph consists of nodes (vertices) that represent entities (a.k.a. concepts both concrete and abstract, terms, phrases, but now think<a href="https://googleblog.blogspot.com/2012/05/introducing-knowledge-graph-things-not.html"> <em>things, not strings</em></a>), and edges (lines or arrows) representing the relationships between nodes. Each concept and each relationship have their own URI (a kind of ID), that helps a search engine or application understand their meaning to spot differences (disambiguation) e.g. homonyms (words spelt or pronounced similarly, but that have different meaning) or similarities e.g. alternative labels, synonyms, acronyms, misspellings, foreign language term equivalents etc.</p>



<p>Google uses its Knowledge Graph when it crawls websites to recognise entities like: <em>People</em>, <em>Places</em>, <em>Products</em>, <em>Organisations</em> and more recently <em>Topics</em>, plus all their known relationships between them. There is often a dire need within most organisations for readily available knowledge about People and their related Roles, Skills/Competencies, Projects, Organisations/Departments and Locations.</p>



<p>There are of course many other well-known Knowledge Graphs now including IBM’s Watson,&nbsp; Microsoft’s <a href="http://ma-graph.org/">Academic Knowledge Graph</a>, Amazon’s Cortex Knowledge Graph, the <a href="https://blogs.bing.com/search-quality-insights/2017-07/bring-rich-knowledge-of-people-places-things-and-local-businesses-to-your-apps">Bing Knowledge Graph</a> etc.</p>



<p>One thing to note about Google is that the space devoted to their organic (non-paid for) search results has reduced dramatically over the last ten years. In place, they have used their Knowledge Graph to better understand the end user’s query and context. Information too is served automatically based on query concept relationships, either within an Information Panel or as commonly known Questions and Answers (Q&amp;As). Your employees (as consumers) of course are at home with this intuitive, easy-click user experience. While Google’s supply of information has become sharper, so has its automatic assessment of all webpage content, relying increasingly on websites to provide it with semantic information e.g. declaring their “aboutness” by using <a href="http://schema.org">schema.org </a>or other microformats in their markup rather than relying on SEO keywords.</p>



<h2><strong>How does Knowledge Graph engineering differ from traditional KM/IM processes?</strong></h2>



<p>In reality, not that much. We still want the same governing principles that can give data good structure, metadata, context and meaning.</p>



<p>Constructing a Knowledge Graph can still be likened to the development of <strong><em>taxonomy or thesaurus</em></strong> with their <em>concepts</em> and an <strong><em>ontology</em></strong> (the <em>relationships</em> between concepts). Here the relationships include firstly: poly-hierarchical relationships (in terms of the taxonomy): a concept may have several broader concepts meaning that the concept itself (with its own URI) can appear in multiple times within a taxonomy. This polyhierarchy can be exploited later for example in both search filtering and website navigation.</p>



<p>Secondly, relationships can also be associative/relational with regards to meaning and context &#8211; your organisation’s own made +/or industry-adopted concepts and the key relationships that define your business, and even its goals, strategy and workflows.</p>



<p>A key difference though is the way in which you can think about your data and its organisation. It is no longer flat or 2-D, but rather think 3-D and 360-degree concept- or consumer-centric views to see how they connect to other concepts.</p>



<h3><strong>A semantic layer for Automatic Annotation, smarter data &amp; semantic search</strong></h3>



<p>We will look at the many different benefits of a Knowledge Graph and further use cases in the next post, but for now, we go with the magic that an EKG can sit virtually on top of any or all your data sources (with different formats and metadata) without the need to move or copy any data. Any data source or data catalogue then consumed via a processing pipeline can be automatically and consistently be annotated (“tagged”) and classified according to declared industry or in-house standards, thus becoming more structured and its meaning more readily “understood,” ready to be found and consumed in accordance with any known or stated conditions.</p>



<p>The classification may also extend to including levels of data security and sensitivity, provenance or trust or location, device and time accessibility.</p>



<figure class="wp-block-image"><img src="https://lh3.googleusercontent.com/IAmnOlcM_A6s6relg6QuWR7GVzFXNpuz0n3QCSiN91PiE0MhzxGscBzMqPTibTYMzZM4bQSPWBiu0FvN1Wy9PfqChPdrgQe1Y2Z1VM_uM5LWihHgvq5sYgsA5IET-VdEwk2dn-LV" alt="" /></figure>



<p><em>Figure 2 The automatic annotation &amp; classification process for making data/content smart by using an Enterprise Knowledge Graph</em></p>



<p>It’s often assumed, incorrectly, that there is only one Enterprise Knowledge Graph. Essentially an enterprise can have one or many, perhaps overlapping graphs for different purposes, subject domains or applications. The importance is that knowledge becomes encoded and readily usable for humans and machines.</p>



<h3><strong>What’s wrong with Relational Databases?</strong></h3>



<p>There’s nothing wrong with relational databases per se and Knowledge Graphs will not necessarily replace them any time soon. It’s good to note though that data in tabular format can be converted to RDF graph data (<em>triples/tuples</em>) relatively easily and stored in a triple store (Graph Database) or some equivalent.&nbsp;</p>



<p>In relational databases, references to other rows and tables are indicated by referring to primary key attributes via foreign key columns. Joins are computed at query time by matching primary and foreign keys of all rows in the connected tables.&nbsp;</p>



<p>Understanding the connections or relations is usually very cumbersome, and those types of costly join operations are often addressed by denormalizing the data to reduce the number of joins necessary, therefore breaking the data integrity of a relational database.</p>



<p>The data models for relational versus graph are different. If you are used to modelling with relational databases, remember the ease and beauty of a well-designed, normalized <a href="https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model">entity-relationship diagram</a> (i.e using <a href="https://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a>) –&nbsp; a graph is exactly that – a clear model of the domain. Each node (entity or attribute) in the graph model directly and physically contains a list of relationship records that represent the relationships to other nodes. These relationship records are organized by type and direction and may hold additional attributes.</p>



<p>Querying relational databases is easy with SQL. The graph has something similar by using <a href="https://en.wikipedia.org/wiki/SPARQL">SPARQL</a>, a query language for RDF. If you have ever tried to write a SQL statement with a large number of joins, you know that you quickly lose sight of what the query actually does. In SPARQL, the syntax remains concise and focused on domain components and the connections among them.</p>



<h3>Toward data-centric solutions with RDF</h3>



<p>With <a href="https://findwise.com/blog/enterprise-linked-data-connected-digital-workplace/">enterprise-linked-data</a>, as with knowledge graphs, one is able to connect many different schemas (data models) and formats in different relational databases and build a connected worldview, domain of discourse. Herein lays the strengths with linking-data, and liberating data from lock-in mechanisms either by schemas (data models) or vendor (software). To do queries and inferencing to find new knowledge and insights that were not possible before due to time or human computation factors. Semantics support this reasoning!</p>



<p>Of course, having interoperable graph data means could well mean fewer code patches on individual systems and more sustainable and agile data-centric solutions in the future.</p>



<h2><strong>In conclusion</strong></h2>



<p>The expression “<em>in the right place, at the right time</em>” is generally associated with luck. We’ve been talking in our enterprises about “<em>the right information, in the right place, at the right time</em>” for ages, unfortunately sometimes with similar fortune attached. The opportunity is here now to embark on a journey to take back control of your data if you haven’t already, and make it an asset again in achieving your enterprise aims and goals.</p>



<p>More reading on graphs and linked enterprise data:</p>



<ul><li><a href="https://towardsdatascience.com/graph-theory-and-deep-learning-know-hows-6556b0e9891b">Everything you need to know about graph technology and deep-learning</a></li><li><a href="https://books.google.se/books/about/Linking_Enterprise_Data.html?id=DsMrnk9-4NsC&amp;source=kp_book_description&amp;redir_esc=y">Linking Enterprise Data</a>, ed. David Wood 2011 (book)</li></ul>


<p>Next up in the series: <em>Knowledge Graphs: The collective Why?</em></p>


<a style="text-decoration: none" href="http://se.linkedin.com/in/fredriclandqvist" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Fredric Landqvist's LinkedIn profile" width="20" height="15" border="0">Fredric Landqvist</span></a>&nbsp;<a href="http://www.emergentmeccano.com">research blog</a><br><a style="text-decoration: none" href="https://www.linkedin.com/in/peter-g-voisey-67752b23/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Peter Voisey's LinkedIn profile" width="20" height="15" border="0">Peter Voisey</span></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/toward-data-centric-solutions-with-knowledge-graphs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Making your data F.A.I.R and smart</title>
		<link>https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/</link>
					<comments>https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/#respond</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Wed, 20 Nov 2019 14:23:50 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Findability]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Information quality]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Semantic]]></category>
		<category><![CDATA[FAIR Data]]></category>
		<category><![CDATA[Interoperability]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5896</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/">Making your data F.A.I.R and smart</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>This is the second post in a new series by Fredric Landqvist &#38; Peter Voisey, explaining how your organisation could best shape its data landscape for the future. How to create a smart data framework for your organisation In our &#8230; <a href="https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/">Making your data F.A.I.R and smart</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>

<p>This is the second post in a new series by Fredric Landqvist &amp; Peter Voisey, explaining how your organisation could best shape its data landscape for the future.</p>



<h3>How to create a smart data framework for your organisation</h3>



<p>In our <a href="https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/">last post</a> for you, we presented the benefits of F.A.I.R data, how to make data smarter for search engines and the potentials of an Information Commons. In this post, we’re giving you the pragmatic steps to make your data FAIR by creating and applying your own smart data framework. Your data-sharing dream, internally and externally, is possible.</p>



<p>A smart data framework, using FAIR data principles, encompasses the tooling, models and standards that govern datasets and the different context-specific information systems (registers, catalogues). The data is then ingested and processed (enriched/refined) into smart data, datasets and data catalogues. It can then be used and reused by different applications and e-services via open APIs. In this ecosystem, all actors and <em>information behaviours</em> (personas) interplay: provision agents, owners, builders, enrichers, end-user searchers and referrers.<br></p>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="326" src="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p4-1024x326.png" alt="" class="wp-image-5903" srcset="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p4-1024x326.png 1024w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p4-300x96.png 300w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p4-768x245.png 768w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p4-500x159.png 500w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p4.png 1931w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>The workings of a smart data framework</figcaption></figure>



<h2>A <em>smart data &amp; metadata catalogue&nbsp;&nbsp;&nbsp;</em></h2>



<p>A smart data &amp; metadata catalogue (illustrated below), provides an organisational capability that aligns data management with the FAIR data principles. View it not so much as one system to rule them all, but rather an <em>ecosystem</em> that is smart and sustainable. In order to simplify your complex and heterogeneous information environment, this set-up can be&nbsp; instantiated, as one overarching mechanism. Although we are describing a data and metadata catalogue here, the exact same framework and set up would of course apply also to your organisation’s content, making it smarter and more findable (i.e. it gets the sustainable stamp).<br></p>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="870" src="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p1-1024x870.png" alt="Smart Data Catalogue" class="wp-image-5904" srcset="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p1-1024x870.png 1024w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p1-300x255.png 300w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p1-768x652.png 768w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p1-353x300.png 353w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>The necessary services and component of a smart data catalogue </figcaption></figure>



<p>The above picture illustrates the services and components that, together, build smart data and metadata catalogue capabilities. We now describe each one of them for you:<br></p>



<h2>Processing (Ingestion &amp; Enrichment) for great Findability &amp; Interoperability</h2>



<ul><li>(<strong>A</strong>) <em>Ingest, harvest and operate</em>. Here you connect the heterogeneous data sources for ingestion. </li></ul>



<p>The configured input mechanisms describe each of the data sources, with their data, datasets and metadata ready for your catalogue search. Hopefully, at the dataset upload stage, you have provided a good system/form that now provides your search engine with great metadata (i.e. we recommend you use the open data catalogue standard <a href="https://www.w3.org/TR/vocab-dcat-2/">DCAT-AP</a>). The concept <em>upload</em> is interchangeable with either machine-to-machine harvester mechanisms, as with open-data, traditional data integration, or manual provision by human upload effort. (<strong>D</strong>) <em>Enterprise Metadata Repository:</em> here is the persistent storage of data in both data catalogue, index and graph. All things get a persistent ID (<a href="https://www.w3.org/2013/dwbp/wiki/URI_Design_and_Management_for_Persistence">how to design persistent URI</a>) and rich metadata.</p>



<ul><li>(<strong>B</strong>) <em>Enrich, refine analyze, and curate</em>. This is the AI part (NLP, Semantics, ML) that enriches the data and datasets, making them smarter.&nbsp;</li></ul>



<p>Concepts (read also entities, terms, phrases, synonyms, acronyms etc.) from the data sources are found using named entity extraction (NER). By referring to a <a href="https://en.wikipedia.org/wiki/Ontology_(information_science)">Knowledge Graph</a> in the Enricher, the appropriate resources are annotated (“tagged”) with the said concept. It does not end here, however. The concept also takes with it from the Knowledge Graph all of the known relationships it has with other concepts.</p>



<p>Essentially a Knowledge Graph is your encoded domain knowledge in a connected graph format. It is by reading these encoded relationships that the <em>machine</em> “understands” the meaning or aboutness of data.</p>



<p>This opens up a very nice Pandora’s box for your search (understanding query intent) and for your Graphical User Interface (GUI) as your data becomes smarter now through your ability to exploit the relationships and connections (semantics and context) between concepts.</p>



<p>You and AI can have a symbiotic relationship in the development of your Knowledge Graph. AI can suggest new concepts and relationships as new data is added. It is, however, you and your colleagues who determine the of concepts/relationships in the Knowledge Graph – concepts/relationships that are important to your department or business. Remember you can utilise more than one knowledge graph, or part of one, for a particular business need(s) or data source(s). The Knowledge Graph is a flexible expression of your business/information models that give structure to all your data and its access.<br></p>



<p><em>Extra optional step</em>: If you can manage not only to index the dataset metadata but the datasets themselves, you can make your Pandora’s box even nicer. Those cryptic/nonsensical field names that your traditional database experts love to create can also be incorporated and mapped (one time only!) into your Knowledge Graph, thus increasing the machine “understanding” of the data. Thus, there is a better chance of the data asset being used more widely.&nbsp;</p>



<p>The configuration of processing with your Knowledge Graph can take care of dataset versioning, lineage and add further specific classifications e.g. data sensitivity, user access and personal information.</p>



<p>Lastly on Processing, your cultural and system interoperability is immensely improved. We’re not talking everyone speaking the <em>same</em> language here, rather everyone talking <em>their</em> language (/culture) and still being able to find the same thing. In this open and FAIR vocabularies further, enrich the meaning to data and your metadata is linked. System interoperability is partially achieved by exploiting the graph of connections that now “sit over” your various data sources.</p>



<h2>Controlled Access (Accessible and Reusable)</h2>



<ul><li>(<strong>C</strong>) A<em>ccess, search and visualize APIs</em>. These tools control and influence the delivery, representation, exploration and consumption/use of datasets and data catalogues via a smarter search (made so by smarter data) and a more intuitive Graphical User interface (GUI).</li></ul>



<p>This means your search can now “understand” user intent from just one or two keyword queries (through known relationship connections in the Knowledge Graph).&nbsp;</p>



<p>Your search now also caters for your searchers who are searching in an unfamiliar subject area or are just having a query off day. Besides offering the standard results page, the GUI can also present related information (again due to the Knowledge Graph), past related user queries, information and question-answer (Q&amp;A) type material. So: search, discovery, learning, serendipity.</p>



<p>Your GUI can also now become more intuitive, changing its information presentation and facets/filters automatically, depending on the query itself (more sustainable front-end coding).&nbsp;</p>



<p>An alternative to complex scenario coding also includes the possibility for you to create rules (set in your Knowledge Graph) that can control what data users can access (when, how and where) based on their profile, their role, their location, the time and on the device they are using. This same Knowledge Graph can help push and recommend data for certain users proactively. Accessibility will be possible by using standard communication protocols, open access (when possible), authentication where necessary, and always with metadata at hand.</p>



<p>Reusable: your new smart data framework can help increase the time your Data Managers (/Scientists, Analysts) spend using data (and not trying to find it, the <a href="https://www.infoworld.com/article/3228245/the-80-20-data-science-dilemma.html">80/20 data science dilemma</a>). It can also help reduce the risk to your AI projects (<a href="https://www.forbes.com/sites/gilpress/2019/07/19/this-week-in-ai-stats-up-to-50-failure-rate-in-25-of-enterprises-deploying-ai/#4c494ae772ce">50% failure rate</a>) by helping searchers find the <em>right</em> data, with its meaning and context, more easily.&nbsp; Reuse will also be possible with the design that metadata multiple attributes, use licence and provenance in line with community standards</p>



<h2>Users and information behaviour (personas)</h2>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="345" src="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p2-1-1024x345.png" alt="Users and personas" class="wp-image-5907" srcset="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p2-1-1024x345.png 1024w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p2-1-300x101.png 300w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p2-1-768x259.png 768w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p2-1-500x168.png 500w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p2-1.png 1937w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>User groups and services</figcaption></figure>



<p>From experience we have defined the following broad conceptual <em>user</em>-groups:</p>



<ul><li><em>Data Managers, </em>a.k.a.<em> Data Op’s or Data Scientists</em><br>Data Managers are i.e. knowledge engineers, taxonomists and analysts.&nbsp;</li><li><em>Data Stewards</em><br>Data Stewards are responsible for Data Governance, such as data lineage.&nbsp;</li><li><em>Business Professionals/Business end-users</em><em><br></em>Business Users may have a diverse background. Hence Business end-users.</li><li><em>Actor System </em>are different information systems and applications and services that integrate information via the rich open APIs from the Smart Data Catalogue</li></ul>



<p>The outlined collaborative actors (E-H user groups) and their interplay as <em>information behaviour</em> (personas) with the data (repository) and services (components), together, build the foundation for a more FAIR data management within your organisation, providing for you at the same time, the option to contribute to an even broader shared open FAIR information commons.</p>



<ul><li>(<strong>E</strong>) <em>Data Op’s workplace and dashboard</em> is a combination of tools supporting Data Op’s data management processes in the information behaviours: data provision agents, enrichers and developers.</li><li>(<strong>F</strong>) <em>Data Governance workplace</em> is the tools to support Data Stewards collaborative data governance work with Data Managers in the information behaviours: data owner.</li><li>(<strong>G</strong>) <em>Access, search, visualize APIs,</em> is the user experience to explore, find and interact with the catalogue and data in the information behaviours: searcher and referrer.</li><li>(<strong>H</strong>) <em>API</em>, is the set of open APIs to support access to catalogue data for consuming information systems in the information behaviours: referrer (a.k.a. data exchange).</li></ul>



<p>Potential tooling for this smart data framework:</p>



<ul><li>Search, integration and analytics: <a href="https://findwise.com/en/technology/findwise-i3">Findwise i3</a>, <a href="https://www.elastic.co/">Elastic</a>, <a href="https://lucidworks.com/">Fusion</a></li><li>Semantic tools: <a href="https://www.poolparty.biz/">PoolParty</a>, <a href="https://www.synaptica.com/">Synaptica</a>, <a href="https://www.smartlogic.com/">Smartlogic</a>, <a href="https://www.topquadrant.com/">TopQuadrant</a></li><li>Catalogue and integration: <a href="https://entryscape.com/en/products/">Entryscape</a>, <a href="https://www.informatica.com/">Informatica</a>, <a href="https://www.stibosystems.com/">Stibo</a>, <a href="https://www.talend.com/">Talend</a>, <a href="https://www.marklogic.com/">Marklogic</a>&nbsp;</li></ul>



<p>We hope you enjoyed this post and understand the potential benefits such a smart data framework incorporating FAIR data principles can have on your data catalogue, or for that matter, your organisational content or even your data swamps.</p>



<p><br>In the next post, <em><a href="https://findwise.com/blog/toward-data-centric-solutions-with-knowledge-graphs/">Toward data-centric solutions with Knowledge Graphs</a></em>, we talk about Knowledge Graphs (KG) and its non-proprietary RDF semantic web tech, how you can create your KG(s) and the benefits they can bring to your future data landscape.</p>



<p></p>



<a style="text-decoration: none" href="http://se.linkedin.com/in/fredriclandqvist" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Fredric Landqvist's LinkedIn profile" width="20" height="15" border="0">Fredric Landqvist</span></a>&nbsp;<a href="http://www.emergentmeccano.com">research blog</a><br><a style="text-decoration: none" href="https://www.linkedin.com/in/peter-g-voisey-67752b23/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Peter Voisey's LinkedIn profile" width="20" height="15" border="0">Peter Voisey</span></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Data that really saves lives (and possibly your organisation)</title>
		<link>https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/</link>
					<comments>https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/#respond</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Tue, 12 Nov 2019 13:32:16 +0000</pubDate>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Findability]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Semantic]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[FAIR Data]]></category>
		<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[Metadata standards]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5877</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/">Data that really saves lives (and possibly your organisation)</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>This is the first post in a new series by Fredric Landqvist and Peter Voisey, explaining how your organisation could best shape its data landscape for the future. A Quest for a FAIR Information Commons You might have heard recently &#8230; <a href="https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/">Data that really saves lives (and possibly your organisation)</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>

<p>This is the first post in a new series by Fredric Landqvist and Peter Voisey, explaining how your organisation could best shape its data landscape for the future.</p>



<h3><strong>A Quest for a FAIR Information Commons </strong></h3>



<p>You might have heard recently of the phrase, “data that saves lives”. It certainly can, but just as you need to be in shape to do your work, so does data, to work its magic. Data too needs to be shaped by governing principles that we can apply along their life journey, in order that we can reap the consequential rewards and benefits that are there to be had. Data in shape, saves lives.</p>



<p>We all need to fix problems, usually quickly hence the presence of the closed model, data silos and data interoperability. It has had to happen this way, will continue to do so and there’s no shame in that. But if we can be part of a reliable data sharing community, whose data can help us to collaborate and solve better, well, we’d be foolish to turn it down.&nbsp;</p>



<p>So imagine a type of <a href="https://en.wikipedia.org/wiki/Information_commons">information commons</a>. This isn’t so far-fetched, we just need to widen our horizons and collaborative ecosystem for it to happen, and perhaps take the same model advice internally for our own organisations.&nbsp;</p>



<p>The challenge of really saving lives with data requires new collaborators.&nbsp; As collaborators we require trust. In essence then to be part of this challenge we need to be willing to share data (we use the term data, content, information interchangeably here). Proof of that trust, is to sign an agreement to be part of an information commons, where data has certain principles (a.k.a. terms &amp; conditions, T&amp;Cs). In essence <a href="https://www.go-fair.org/resources/rules-of-engagement/">rules of engagement</a>!</p>



<ol><li>Declare interest</li><li>Sign a future rules of engagement to share and access data</li><li>Get ready to adhere to them</li></ol>



<p>The T&amp;Cs largely apply to the condition of the data being shared and the information about them. They match precisely how you would hope to find data in this new treasure trove. They may also be known as <a href="https://www.force11.org/group/fairgroup/fairprinciples">F.A.I.R. &#8211; data</a> that is Findable, Accessible, Interoperable and Reusable. FAIR obviously alludes also to the fairness in collaboration and the F.A.I.R data principles originate from a good sharing place.<br>Here’s a great summary in image form, from <a href="https://www.ands.org.au/working-with-data/fairdata/training">Australian National Data Service</a> [ANDS]:</p>



<figure class="wp-block-image"><img loading="lazy" width="721" height="541" src="https://findwise.com/blog/wp-content/uploads/2019/11/FAIR-Data-image-map-graphic-v2-721px.png" alt="" class="wp-image-5881" srcset="https://findwise.com/blog/wp-content/uploads/2019/11/FAIR-Data-image-map-graphic-v2-721px.png 721w, https://findwise.com/blog/wp-content/uploads/2019/11/FAIR-Data-image-map-graphic-v2-721px-300x225.png 300w, https://findwise.com/blog/wp-content/uploads/2019/11/FAIR-Data-image-map-graphic-v2-721px-400x300.png 400w" sizes="(max-width: 721px) 100vw, 721px" /><figcaption>F.A.I.R Data principles</figcaption></figure>



<p>How FAIR is your data today? Simply answer by following a brief<a href="https://zenodo.org/record/1065991#.XckoXUVKg0q"> checklist</a> or later go for a more<a href="https://www.go-fair.org/fair-principles/"> comprehensive</a> description at<a href="https://www.go-fair.org/"> Go FAIR</a>.</p>



<p>Still here? Great! Let’s get started then with Findable!</p>



<h1>Findable</h1>



<p>We can only truly make data findable when we really think about the range of people who might want to find it and how they might want to use or reuse it (their need determines how they will ask for it). The reality of different data sources, formats, protocols and their possible attributes or descriptors, makes describing data for others problematic, plus, do you really have the time for tagging?&nbsp; Regardless of time, we’re not very good at putting ourselves in somebody else’s shoes (unless of course we’re selling something) and certainly not able to cover the variation in how people (with differing perspectives) search for data.</p>



<p>The best answer we have at the moment is to describe data or datasets by using agreed standards, perhaps that may vary a bit from domain to domain. Sharing or uploading data to the “ether” gives a different feeling to uploading data that matters to a known shared source and accessed by users who understand its value. In doing so it may inspire us to describe data according to a collective standard, with that feeling of having done something good for a bigger cause.</p>



<p>But hang on. Why is the onus on the end-user? We have the tech here now to automate much of this process. We just need a good sharing and upload design that can recognise the (hopefully changeable) standards of description (metadata). By processing data on upload, we can get a better understanding of data with reference to our standards and rules. Thus, according to what the machine recognises (pattern matching) or “understands” (by way of concept relationships in a <a href="https://en.wikipedia.org/wiki/Ontology_(information_science)">knowledge graph</a>) it can annotate the data, ready to serve the requests of data searchers and data applications, or at least be able to offer a related alternative.&nbsp;</p>



<p>Such processing is done using AI (<a href="https://en.wikipedia.org/wiki/Natural_language_processing">NLP</a>, <a href="https://en.wikipedia.org/wiki/Machine_learning">ML</a> etc.), but it’s not magic. We still have to teach our machines the agreed standards and rules in the first place. While that may sound cumbersome to some, it’s not like you keep having to teach them repeatedly. Conversely the student (AI) can also suggest new rules and annotations, keeping them current according to the data being processed. The beauty for most, is though, that we can employ more than one descriptive rule set for different data or datasets. Depending on data source, format and context, the machine can activate different metadata rule sets. The smart part for the uploader is the presentation of a semi-automated metadata form for their data, leaving them to confirm or alter it before hitting send. The “uploader” in this context, is a broad concept to address any agent that contributes with data to the shared information space, be they programmatic or human.</p>



<p>Let’s not forget we’re at the stage where we can use “search” not only for indexing and this automatic annotation, but for calculations on parsing to potentially annotate with even higher understanding. Such a solution fits well with the increasing demand for real-time data too.&nbsp;</p>



<p>So Findable, is really both about making data smarter, and findable.</p>



<h1>Accessible</h1>



<p>There’s nothing worse than finding something you want, only to be told you can’t use it.&nbsp;</p>



<p>While the premise of an Information Commons is sharing, it doesn’t necessarily have to mean that everything is accessible by everyone – the reason that why some readers left this page at the third paragraph.&nbsp;</p>



<p>Let’s be clever about this. There are lots of ways to automatically control accessibility and automatically police it. This could be technical, IP address, sign on, authorisation (classification of user) etc. But it could also be done by processing data on upload in determining the sensitivity level of data and/or the <a href="https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/">indicators of GDPR data.</a></p>



<p>Back to the end-user: they don’t want to see stuff they can’t use, but they also want to see from the go, if they need to get any new software to be able to access data that they are interested in.&nbsp;</p>



<h1>Interoperable&nbsp;</h1>



<p>Now for the hard part. The reality is that variety in data sources, protocols and formats ain’t going to go away any time soon. We have to accept that. We’ve just mentioned about the technical interoperability in Accessible. There’s also language interoperability (cultural and language) that can again be solved by using a knowledge graph with search (<a href="https://findwise.com/blog/tinker-knowledge-graphs/">tinkering with knowledge graphs</a>, just like Google does).<br></p>



<p>Lastly there’s data interoperability. Barriers preventing data and system interoperability are slowly being brought down through collaboration. In the meantime, it is possible for us to convert key data into the same data format, so AI and inferencing can be used on different (previously incompatible) datasets. The kind of thing that can lead to computation-derived insights that a human on their own couldn’t make. Converting data to<a href="https://www.w3.org/RDF/"> RDF</a> could be such a point in case, a real lingua franca of data, also connected to the Web.</p>



<h1>Reusable</h1>



<p>The “F.A.I.” part of FAIR, really already covers Reusable. We want to be able to find data that we can reuse. To do this, we need to be able to see related information on finding content, information, datasets and data catalogues as to the how, what, when, who, why, where of its potential usage. More: working on the shoulders of giants, less: reinventing the wheel. The information (rich metadata) associated with Reusable, also refers to its usefulness: value, age and provenance.</p>



<h1>Healthcare Data Commons</h1>



<p>There is an emerging FAIR Data paradigm shift within the health informatics and research professional communities, that has been sparked by those within the bio- and life science domains.</p>



<p>There are obvious regulatory constraints when speaking about patient data, or health data, that any data commons arena will have to nail, upfront.</p>



<p>Health Data: quality register data, EHRs data and the patient’s self-created data, together, would be a real<a href="https://findwise.com/blog/a-health-care-information-commons-vision-from-frozen-assets-to-liquid-gold/"> gold mine</a> in the pursuit of personalised medicine and health care. Patient-centric data and FAIR data governance will be key.&nbsp;</p>



<h3>The outlined scenario for a FAIR Data Commons</h3>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="246" src="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p3-1024x246.png" alt="F.A.I.R Data Commons scenario" class="wp-image-5917" srcset="https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p3-1024x246.png 1024w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p3-300x72.png 300w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p3-768x185.png 768w, https://findwise.com/blog/wp-content/uploads/2019/11/catalog_solutions_2_p3-500x120.png 500w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>F.A.I.R Data Commons scenario</figcaption></figure>



<p>The illustration above shows a FAIR data commons. It will be the foundation framework for all information systems (<em>register</em>) in the data ecology. These information systems need to harmonise and align to become FAIR.&nbsp; There is a set of generic agent <em>information</em> <em>behaviour </em>patterns (user personas):</p>



<ul><li><em>Data provision agent</em>, is an information behaviour with either a human actor that upload (provision data) or machine to machine data integration contributing to the datasets in the register.</li><li><em>Data owner</em>, is an information behaviour relating to governance and ownership, stewardship to the datasets in the register.</li><li><em>Application builder</em>, is an information behaviour relating to building capabilities with the use and reused datasets in the register.</li><li><em>Data enricher</em>, is an information behaviour relating to expanding the models, and enriching the datasets. With i.e. use of linked-data, semantics and more to create richer metadata.</li><li><em>Searcher</em>, is an information behaviour relating to finding and acting upon data.</li><li><em>Referrer</em>, is an information behaviour relating to using data in information flows and data exchange to support different kinds of processes, activities and actions with other actors in the ecology.</li></ul>



<p>The business value realised (<em>effect</em>) using the FAIR Data Commons will be via different means to<em> e-services</em>, used in the scenarios for searcher and referrer, but also in improved efficiency and improved data quality in the other information behaviours.</p>



<p>Next post in the series: <a href="https://findwise.com/blog/making-your-data-f-a-i-r-and-smart/">Making Your data smart and F.A.I.R</a>. Further reading to help inspire you:</p>



<ul><li>The<a href="https://fairsharing.org/"> FAIRsharing.org</a> provides very useful resources as building blocks in the creation of any context-specific data commons.</li><li>The National Institute for Health (NIH) in the USA have a<a href="https://commonfund.nih.gov/commons"> Data Commons programme</a>, with on-going pilots.</li><li>The Nordic NordForsk recent report on <a href="https://www.nordforsk.org/en/publications/publications_container/a-vision-of-a-nordic-secure-digital-infrastructure-for-health-data-the-nordic-commons/view" class="broken_link">Nordic Commons</a> with HealthData</li><li>Similar in the Nordics there are initiatives (<a href="https://aineistokatalogi.fi/catalog">Finnish catalog</a>,<a href="https://www.registerforskning.se/sv/register-i-sverige/metadataverktyget-rut/"> Swedish register</a> [RUT], <a href="https://helsedata.no/">HelseData</a> in Norway and<a href="https://www.danishhealthdata.com/find-health-data"> Danish Healthdata)</a> coordinated via EU funded research programmes. </li><li>The Life Science industry together with Healthcare have some impressive initiatives e.g. Electronic Health Records 4 Clinical Research [<a href="http://www.ehr4cr.eu/" class="broken_link">EHR4CR</a>], with its information platform,<a href="https://www.insiteplatform.com/compliance.php"> InSite</a> (by<a href="https://www.trinetx.com/"> TriNetX</a>), in line with FAIR data.</li></ul>



<p>Thoughts collected from <a href="https://www.eventbrite.com/e/sustainable-knowledge-graphs-and-ai-tickets-56101091876">LDSV 2019</a>,  <a href="https://2019.semantics.cc/">Semantics 2019</a> Karlsruhe, <a href="https://www.cphhealthtech.dk/arrangementer/2019/nordic-health-data-how-do-we-collaborate-on-mapping-metadata" class="broken_link">HealthData Copenhagen</a>, &#8220;<a href="https://sfmi.stretchcloud.se/display/SE/Dagar+om+Lagar+2019" class="broken_link">Dagar om Lagar</a>&#8221; [SFMI] and more&#8230;</p>



<a style="text-decoration: none" href="http://se.linkedin.com/in/fredriclandqvist" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Fredric Landqvist's LinkedIn profile" width="20" height="15" border="0">Fredric Landqvist</span></a>&nbsp;<a href="http://www.emergentmeccano.com">research blog</a><br><a style="text-decoration: none" href="https://www.linkedin.com/in/peter-g-voisey-67752b23/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Peter Voisey's LinkedIn profile" width="20" height="15" border="0">Peter Voisey</span></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/data-that-really-saves-lives-and-possibly-your-organisation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Well-known findability challenges in the AI-hype</title>
		<link>https://findwise.com/blog/well-known-findability-challenges-in-the-ai-hype/</link>
					<comments>https://findwise.com/blog/well-known-findability-challenges-in-the-ai-hype/#respond</comments>
		
		<dc:creator><![CDATA[Webteam]]></dc:creator>
		<pubDate>Tue, 08 Oct 2019 13:14:45 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5857</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/well-known-findability-challenges-in-the-ai-hype/">Well-known findability challenges in the AI-hype</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Organisations are facing new types of information challenges in the AI-hype. At least the use cases, the data and the technology are different. The recommended approach and the currently experienced findability challenges remains however the same. Findability is getting worse &#8230; <a href="https://findwise.com/blog/well-known-findability-challenges-in-the-ai-hype/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/well-known-findability-challenges-in-the-ai-hype/">Well-known findability challenges in the AI-hype</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>

<p><strong>Organisations
are facing new types of information challenges in the AI-hype. At least the use
cases, the data and the technology are different. The recommended approach and
the currently experienced findability challenges remains however the same. </strong></p>



<h2>Findability is getting
worse as the data landscape is changing</h2>



<p>As clearly shown in the result of the 2019 Search &amp; Findability Survey, finding relevant information is still a major challenge to most organisations. In the internal context as many as 55% find it difficult or very difficult to find information which brings us back to same levels that we saw in the survey results from 2012 and 2013.</p>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="938" src="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-2-1024x938.jpg" alt="" class="wp-image-5867" srcset="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-2-1024x938.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-2-300x275.jpg 300w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-2-768x704.jpg 768w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-2-327x300.jpg 327w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Given the main
obstacles that the respondents experience to improve search and findability,
this is not very surprising: </p>



<ul><li>Lack
of resources/staff</li><li>Lack
of ownership/mandate</li><li>Poor
information quality</li></ul>



<p>One reason behind the poor information quality might be the decreasing focus and efforts spent on traditional information management activities such as content life cycle, controlled vocabularies and metadata standards as illustrated in the below diagrams*. In 2015-16 we saw an increase in these activities which made perfect sense since &#8220;lack of tags&#8221; or &#8220;inconsistent tagging&#8221; was considered the largest obstacles for findability in 2013-2015. Unfortunately, the lack of attention to these areas don&#8217;t seem to indicate that the information quality has improved, rather the opposite. </p>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="938" src="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-content-lifecycle-1024x938.jpg" alt="" class="wp-image-5860" srcset="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-content-lifecycle-1024x938.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-content-lifecycle-300x275.jpg 300w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-content-lifecycle-768x704.jpg 768w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-content-lifecycle-327x300.jpg 327w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="938" src="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-taxonomi-1024x938.jpg" alt="" class="wp-image-5861" srcset="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-taxonomi-1024x938.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-taxonomi-300x275.jpg 300w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-taxonomi-768x704.jpg 768w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-taxonomi-327x300.jpg 327w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-gallery columns-1 is-cropped"><li class="blocks-gallery-item"><figure><img loading="lazy" width="1024" height="938" src="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-metadata-1024x938.jpg" alt="" data-id="5862" data-link="https://findwise.com/blog/?attachment_id=5862" class="wp-image-5862" srcset="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-metadata-1024x938.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-metadata-300x275.jpg 300w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-metadata-768x704.jpg 768w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-metadata-327x300.jpg 327w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></li></ul>



<p><em> (*percent working with the noted areas) </em></p>



<p>A likely reason behind the experienced obstacles and the lack of resources to improve search and findability is a shift of focus in data and metadata management efforts following the rapid restructuring of the data landscape. In the era of digital transformation, attention is rather on the challenge to identify, collect and store the massive amounts of data that is being generated from all sorts of systems and sensors, both within and outside the enterprise. As a result, it is no longer only unstructured information and documents that are hard to find but all sorts of data that are being aggregated in data lakes and similar data storage solutions.</p>



<p>Does this
mean that search and findability of unstructured information is no longer relevant?
No, but in combination with finding individual documents, the target groups in
focus (typically Data Scientists) have an interest in finding relevant and
related data(sets) from various parts of the organisation in order to perform their
analysis. </p>



<p>Digital (or data-driven) transformation is often focused on utilising data in combination with new technology to reach level 3 and 4 in the below &#8220;pyramid of data-driven transformation&#8221; (from <a href="https://findwise.com/en/search-for-insight" class="broken_link">In search for insight</a>): </p>



<ul class="wp-block-gallery columns-1 is-cropped"><li class="blocks-gallery-item"><figure><img loading="lazy" width="827" height="535" src="https://findwise.com/blog/wp-content/uploads/2019/10/pyramid.jpg" alt="" data-id="5859" data-link="https://findwise.com/blog/?attachment_id=5859" class="wp-image-5859" srcset="https://findwise.com/blog/wp-content/uploads/2019/10/pyramid.jpg 827w, https://findwise.com/blog/wp-content/uploads/2019/10/pyramid-300x194.jpg 300w, https://findwise.com/blog/wp-content/uploads/2019/10/pyramid-768x497.jpg 768w, https://findwise.com/blog/wp-content/uploads/2019/10/pyramid-464x300.jpg 464w" sizes="(max-width: 827px) 100vw, 827px" /></figure></li></ul>



<p>This fact is also illustrated by the technology trends that we can see from the survey results and that is presented in the article “<a href="https://findwise.com/blog/what-are-organisations-planning-to-focus-on-to-impove-search-and-findability/">What are organisations planning to focus on to improve Search and Findability?</a>”. Two of the most emerging technologies are Natural Language Processing (NLP) and Machine Learning which are both key components in what is often labelled as &#8220;AI&#8221;. To use AI to drive transformation has become the ultimate goal for many organisations.</p>



<p>However, as the pyramid clearly shows, to realise digital transformation, automation and AI, you must start by sorting out the mess. If not, the mess will grow by the minute, quickly turning the data lake into a swamp. One of the biggest challenges for organisations in realising digital transformation initiatives still lies in how to access and use the right data.  </p>



<h2>New data and use cases &#8211;
same approach and challenges</h2>



<p>The survey
results indicate that, irrespective of what type of data that you want to make
useful, you need to take a holistic approach to succeed. In other words, if you
want to get passed the POC-phase and achieve true digital transformation you
must consider all perspectives:</p>



<ul><li><strong>Business</strong> &#8211; Identify the business challenge and form a common vision of the solution </li><li><strong>User</strong> &#8211; Get to know your users and what it takes to form a successful solution </li><li><strong>Information</strong> &#8211; Identify relevant data and make it meaningful and F.A.I.R.* </li><li><strong>Technology</strong> &#8211; Evaluate and select the technology that is best fit for purpose </li><li><strong>Organisation</strong> &#8211; Establish roles and responsibilities to manage and improve the solution over time </li></ul>



<p>You might
recognise the five findability dimensions that was originally introduced back in
2010 and that are more relevant than ever in the new data landscape. The survey
results and the experienced obstacles indicate that the main challenges will remain
and even increase within the dimensions of information and organisation.</p>



<p>Also, it is
important to remember that to create value from information it is not always
necessary to aim for the top of the pyramid. In many cases it is enough to extract
knowledge and thereby provide better insights and decision support by aggregating
relevant data from different sources. Given that the data quality is good
enough that is.</p>



<p>*The
strategy to get a sustainable data management, implies leaning upon the <a href="https://www.force11.org/group/fairgroup/fairprinciples">FAIR Data Principles</a></p>



<ol><li>Make data <strong>Findable</strong>, through persistent ID, rich metadata, indexes and combine id+index.</li><li>Make data <strong>Accessible</strong>, through standard communication protocols, open and free protocols and authentication mechanism where necessary and always keep metadata available.</li><li>Make data <strong>Interoperable</strong>, through the use of vocabularies, terminologies, glossaries, use open      vocabularies/models and link the metadata.</li><li>Finally make data <strong>Reusable</strong>, by using multiple metadata attributes, set constraints based on licenses, and express provenance to build trusted and quality datasets leaning upon community standards.</li></ol>



<p></p>



<p class="has-small-font-size">Author: Mattias Ellison, Findability Business Consultant</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/well-known-findability-challenges-in-the-ai-hype/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What are organisations planning to focus on to impove Search and Findability?</title>
		<link>https://findwise.com/blog/what-are-organisations-planning-to-focus-on-to-impove-search-and-findability/</link>
					<comments>https://findwise.com/blog/what-are-organisations-planning-to-focus-on-to-impove-search-and-findability/#respond</comments>
		
		<dc:creator><![CDATA[Webteam]]></dc:creator>
		<pubDate>Tue, 08 Oct 2019 12:30:43 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[findability]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[survey]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5850</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/what-are-organisations-planning-to-focus-on-to-impove-search-and-findability/">What are organisations planning to focus on to impove Search and Findability?</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>This year’s Search and Findability survey gave us a good indication of upcoming trends on the market. The activities and technologies that organisations are planning to start working with, are all connected to improving effectiveness. By using technology to automatically &#8230; <a href="https://findwise.com/blog/what-are-organisations-planning-to-focus-on-to-impove-search-and-findability/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/what-are-organisations-planning-to-focus-on-to-impove-search-and-findability/">What are organisations planning to focus on to impove Search and Findability?</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>

<p>This year’s Search and Findability
survey gave us a good indication of upcoming trends on the market. The
activities and technologies that organisations are planning to start working
with, are all connected to improving effectiveness. By using technology to
automatically perform tasks, and by understanding the users’ needs and giving
them a tailored search experience, there is a lot of potential to save time and
effort.&nbsp; </p>



<p class="has-medium-font-size">Top 5 activities organisations will
focus in:</p>



<ul><li>Natural language search interface, e.g. Query aid or chatbots (29%)</li><li>Personalisation e.g. tailored search experience (27%)</li><li>Automatic content tagging (24%)</li><li>Natural Language Processing, NLP (22%)</li><li>Machine Learning (20%)</li></ul>



<p>The respondents planning to start working with one of these areas are
more likely to be interested in, or are already working with, the other areas
in the top 5. For example, out of the respondents saying that they are planning
to use a natural language search interface, 44% are planning to start with
personalisation as well. If you were to add the respondents already working
with personalisation to that amount, it would increase by 75%. This might not
be a big surprise since the different areas are much related to one another. A
natural language search interface can support a tailored search experience, in
other words &#8211; lead to personalisation. Automatic content tagging can be enabled
by using techniques such as NLP and Machine Learning. </p>



<p>A<strong> Natural Language Search</strong> interface is a way of trying to find
targeted answers to user questions. Instead of search based on keywords, the
goal is to understand the question and generate answers with a higher relevancy.
Since a large amount of the questions asked in an organisation are similar, you
could save a lot of time by clustering and/or providing answers automatically
using conversational UI. <a href="https://www.linkedin.com/pulse/enterprise-search-chatbot-answers-questions-your-should-gr%C3%B6nroos/">Learn more about Conversational UI.</a></p>



<p>One way to improve the Natural Language Search interface is by using <strong>Natural Language Processing (NLP)</strong>. The aim with NLP is to improve a computer’s speech recognition for example by interpreting synonyms and spelling mistakes. NLP started out as a rule-based technique which was manually coded, but the introduction of <strong>Machine Learning (ML)</strong> improved the technology further. By using statistical techniques, ML makes it possible to learn from data without having to manually program the computer system.&nbsp; <a href="https://www.linkedin.com/pulse/simple-way-improve-enterprise-search-nlp-significant-terms-gr%C3%B6nroos/">Read more about improving search with NLP</a>.</p>



<p><strong>Automatic content tagging</strong> is a trend that we see within the area of Information Management.
Instead of relying on user created tags (of various quality) the tags are
created automatically based on different patterns. <em>The advantage of using automatic content tagging is that the metadata
will be consistent and that the data will be easier to analyse. </em></p>



<p><strong>Personalisation </strong>e.g. tailored search experience is a way to sort out information based
on the user profile. Basically, search results are adapted to the user needs,
for example by not showing things that the user do not have access to and
promoting search results that the user frequently looks for. Our findings in
this year’s survey, show that respondents saying they are currently working
with personalisation consider that users on both the internal and extern site
find information easier. Users that find the information they search for
easily, tend to be more satisfied with the search solution. </p>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="956" src="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-1-1024x956.jpg" alt="" class="wp-image-5852" srcset="https://findwise.com/blog/wp-content/uploads/2019/10/diagram-1-1024x956.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-1-300x280.jpg 300w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-1-768x717.jpg 768w, https://findwise.com/blog/wp-content/uploads/2019/10/diagram-1-321x300.jpg 321w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator"/>



<p>Results from this year’s survey indicates that organisations are working with or planning to working with, AI and Cognitive-related techniques. The percentage doing so has grown compared to previous surveys. </p>



<p>Do you want to <a href="http://findwise.com/sv/kognitivt-sok" class="broken_link">learn more about cognitive search</a>?&nbsp; </p>



<p></p>



<p class="has-small-font-size"></p>



<p></p>



<p class="has-small-font-size">Author: Angelica Lahti, Findability Business Consultant </p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/what-are-organisations-planning-to-focus-on-to-impove-search-and-findability/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Comparison of two different methods for generating tree facets, with Elasticsearch and Solr</title>
		<link>https://findwise.com/blog/comparison-two-different-methods-generating-tree-facets-elasticsearch-solr/</link>
					<comments>https://findwise.com/blog/comparison-two-different-methods-generating-tree-facets-elasticsearch-solr/#respond</comments>
		
		<dc:creator><![CDATA[Webteam]]></dc:creator>
		<pubDate>Fri, 14 Jun 2019 07:00:20 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5838</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/comparison-two-different-methods-generating-tree-facets-elasticsearch-solr/">Comparison of two different methods for generating tree facets, with Elasticsearch and Solr</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Let’s try to explain what a tree facet is, by starting with a common use case of a “normal” facet. It consists of a list of filters, each corresponding to a value of a common search engine field and a &#8230; <a href="https://findwise.com/blog/comparison-two-different-methods-generating-tree-facets-elasticsearch-solr/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/comparison-two-different-methods-generating-tree-facets-elasticsearch-solr/">Comparison of two different methods for generating tree facets, with Elasticsearch and Solr</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Let’s try to explain what a tree facet is, by starting with a common use case of a “normal” facet. It consists of a list of filters, each corresponding to a value of a common search engine field and a count representing the number of documents matching that value. The main characteristic of a tree facet is that its filters each may have a list of child filters, each of which may have a list of child filters, etc. This is where the “tree” part of its name comes from.</p>
<p>Tree facets are therefore well suited to represent data that is inherently hierarchical, e.g. a decision tree, a taxonomy or a file system.</p>
<p>Two commons methods of generating tree facets, using either <a href="https://findwise.com/en/technology/elastic-elasticsearch">Elasticsearch</a> or <a href="https://findwise.com/en/technology/apache-solr">Solr</a>, are the <em>pivot</em> approach and the <em>path</em> approach. Some of the characteristics, benefits and drawbacks of each method are presented below.</p>
<p>While ordinary facets consist of a flat list of buckets, tree facets consist of multiple levels of buckets, where each bucket may have child buckets, etc. If applying a filter query equivalent to some bucket, all documents matching that bucket, or any bucket in that sub-tree of child buckets, are returned.</p>
<h1>Tree facets with Pivot</h1>
<p>The name is taken from Solr (<a href="https://wiki.apache.org/solr/SimpleFacetParameters#Pivot_.28ie_Decision_Tree.29_Faceting" class="broken_link">Pivot faceting</a>) and allows faceting within results of the parent facet. This is a recursive setting, so pivot faceting can be configured for any number of levels. Think of pivot faceting as a <a href="https://en.wikipedia.org/wiki/Cartesian_product">Cartesian product</a> of field values.</p>
<p>A list of fields is provided, where the first element in the list will generate the root level facet, the second element will generate the second level facet, and so on. In Elasticsearch, the same result is achieved by using the more general concept of aggregations. If we take a <em>terms</em> aggregation as an example, this simply means a terms aggregation within a parent terms aggregation, and so on.</p>
<h3>Benefits</h3>
<p>The major benefit of pivot faceting is that it can all be configured in query time and the data does not need to be indexed in any specific way. E.g. the list of fields can be modified to change the structure of the returned facet, without having to re-index any content.</p>
<p>The values of the returned facet/aggregation are already in a structured, hierarchical format. There is no need for any parsing of paths to build the tree.</p>
<h3>Drawbacks</h3>
<p>The number of levels in the tree must be known at query time. Since each field must be specified explicitly, it puts a limit on the maximum depth of the tree. If the tree should be extended to allow for more levels, then content must be indexed to new fields and the query needs to include these new fields.</p>
<p>Pivot faceting assumes a uniformity in the data, in that the values on each level in the tree, regardless of their parent, are of the same types. This is because all values on some specific level comes from the same field.</p>
<h3>When to use</h3>
<p>At least one of the following statements hold:</p>
<ul>
<li>The data is homogenous – different objects share similar sets of properties</li>
<li>The data will, structurally, not change much over time</li>
<li>There is a requirement on a high level of query time flexibility</li>
<li>There is a requirement on a high level of flexibility without re-indexing documents</li>
</ul>
<h1>Tree facets with Path</h1>
<p>Data is indexed into a single field, on a Unix style file path format, e.g. root/middle/leaf (the path separator is configurable). The index analyzer of this field should be using a path hierarchy tokenizer (<a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pathhierarchy-tokenizer.html">Elasticsearch</a>, <a href="https://wiki.apache.org/solr/HierarchicalFaceting#PathHierarchyTokenizerFactory">Solr</a>). It will expand the path so that a filter query for some node in the tree will include the nodes in the sub-tree below the node. The example path above would be expanded to root, root/middle, root/middle/leaf. These represent the filter queries for which the document with this path should be returned. Note that the query analyzer should be keyword/string so that queries are interpreted verbatim.</p>
<p>Once the values have been indexed, a normal facet or terms aggregation is put on the field. This will return all possible paths and sub-paths, which can be a large number, so make sure to request all of them. Once facet/aggregation is returned, its values need to be parsed and built into a tree structure.</p>
<h3>Benefits</h3>
<p>The path approach can handle any number of levels in the tree, without any configuration explicitly stating how many levels there are, both on the indexing side and on the query side. It is also a natural way of handling different depths in different places in the tree, not all branches need to be the same length.</p>
<p>Closely related to the above-mentioned benefit, is the fact that the path approach does not impose any restrictions on the uniformity of the tree. Nodes on a specific level in the tree may represent different concepts, dependent only on their parent. This fits very well with many real-world applications, as different objects and entities have different sets of properties.</p>
<h3>Drawbacks</h3>
<p>Data must be formatted in index time. If any structural changes to the tree are required, affected documents need to be re-indexed.</p>
<p>To construct a full tree representation of the paths returned in the facet/aggregation, all paths need to be requested. If the tree is big, this can become costly, both for the search engines to generate and with respect to the size of the response payload.</p>
<p>Data is not returned in a hierarchical format and must be parsed to build the tree structure.</p>
<h3>When to use</h3>
<p>At least one of the following statements hold:</p>
<ul>
<li>The data is heterogenous – different objects have different sets of properties, varying numbers of levels needed in different places in the tree</li>
<li>The data could change structurally over time</li>
<li>The content and structure of the tree should be controlled by content only, no configuration changes</li>
</ul>
<h1>Tree facets &#8211; Conclusion</h1>
<p>The listed benefits and drawback of each method can be used as a guide to find the best method from case to case.</p>
<p>When there is no clear choice, I personally tend to go for the <em>path</em> approach, just because it is so powerful and dynamic. This comes with the main drawback of added cost of configuration for index time data formatting, but it is usually worth it in my opinion.</p>
<p><a href="https://findwise.com/blog/comparison-two-different-methods-generating-tree-facets-elasticsearch-solr/organization-chart-concept/" rel="attachment wp-att-5839"><img loading="lazy" class="aligncenter wp-image-5839 size-large" src="https://findwise.com/blog/wp-content/uploads/2019/06/AdobeStock_204935649-1024x576.jpeg" alt="tree facets, data " width="584" height="329" srcset="https://findwise.com/blog/wp-content/uploads/2019/06/AdobeStock_204935649-1024x576.jpeg 1024w, https://findwise.com/blog/wp-content/uploads/2019/06/AdobeStock_204935649-300x169.jpeg 300w, https://findwise.com/blog/wp-content/uploads/2019/06/AdobeStock_204935649-768x432.jpeg 768w, https://findwise.com/blog/wp-content/uploads/2019/06/AdobeStock_204935649-500x281.jpeg 500w" sizes="(max-width: 584px) 100vw, 584px" /></a></p>
<h6>Author: Martin Johansson, Senior Search Consultant at Findwise</h6>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/comparison-two-different-methods-generating-tree-facets-elasticsearch-solr/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Open or Opaque Artificial Intelligence</title>
		<link>https://findwise.com/blog/open-opaque-artificial-intelligence/</link>
					<comments>https://findwise.com/blog/open-opaque-artificial-intelligence/#respond</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Tue, 05 Mar 2019 13:20:51 +0000</pubDate>
				<category><![CDATA[Semantic]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Cognitive Computing]]></category>
		<category><![CDATA[knowledge graph]]></category>
		<category><![CDATA[Semantics]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5790</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/open-opaque-artificial-intelligence/">Open or Opaque Artificial Intelligence</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>Data is the black gold in the information era and has similar value creation and ecology to that of petroleum. Data in its raw format needs to be refined (as does crude oil) to make sense and to add meaning and usefulness to any &#8230; <a href="https://findwise.com/blog/open-opaque-artificial-intelligence/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/open-opaque-artificial-intelligence/">Open or Opaque Artificial Intelligence</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>Data is the black gold in the information era and has similar value creation and ecology to that of petroleum. Data in its raw format needs to be refined (as does crude oil) to make sense and to add meaning and usefulness to any domain.</p>
<p>AI and its parts (machine learning, natural language processing, deep-learning etc.) are set to be a societal game changer in all collective human imagination domains.</p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2019/03/opaque.jpg"><img loading="lazy" class="alignnone size-full wp-image-5791" src="https://findwise.com/blog/wp-content/uploads/2019/03/opaque.jpg" alt="opaque" width="1280" height="1020" srcset="https://findwise.com/blog/wp-content/uploads/2019/03/opaque.jpg 1280w, https://findwise.com/blog/wp-content/uploads/2019/03/opaque-300x239.jpg 300w, https://findwise.com/blog/wp-content/uploads/2019/03/opaque-768x612.jpg 768w, https://findwise.com/blog/wp-content/uploads/2019/03/opaque-1024x816.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2019/03/opaque-376x300.jpg 376w" sizes="(max-width: 1280px) 100vw, 1280px" /></a></p>
<p>The ambition should be to design for a sustainable AI future, aiming to incorporate the  <a href="https://www.un.org/sustainabledevelopment/sustainable-development-goals/">UNs 17 development goals </a>with ethics at the core. One omnipresent hurdle still is the <em>black box</em> or <strong>opaque</strong> setting i.e. being able to understand how, why and where different AI operates and influences</p>
<h1>The open paradigm</h1>
<p>Since all known to man utilities with AI, have a simple model, being:</p>
<blockquote><p><em>input</em> &#8211; <em>model</em> &#8211; <em>output</em> and feedback (learning).</p></blockquote>
<p>There is a need to shift the control from the computer back towards the human, and thereby enable the addition of meaning and semantics along with conceptual models.</p>
<p>By using <strong><em>open</em></strong> innovation, -standards, -models (knowledge graphs, ontologies, terminologies, code systems and the like), -software, -platforms (technology stacks, i.e. <a href="https://singularitynet.io/">Singularity net)</a> in the design for future AI utilities and cognitive computing, there exists opportunities for  leverage learning in a meaningful way &#8211; away from the <strong>opaque</strong> regime and towards <em>cognitive-informed artificial intelligence</em>. Efficient communication through <em>interoperability</em> that can accommodate data from different semantic domains that traditionally have been separate. Open domain knowledge and data-sets (as <a href="https://en.wikipedia.org/wiki/Linked_data">linked-data</a>) will provide very good platforms for continuously improved datasets within the AI loop, both in terms of refining and addressing the contextual matter, but also enabling improved precision and outcome.</p>
<p>Informative communication &#8211; the word&#8217;s meaning should allow accurate mental reconstruction of the senders intended meaning, but we are well aware of the human messiness (complexity) within a language as described in<a href="https://en.wikipedia.org/wiki/Information_bottleneck_method"> Information bottleneck</a> (Tishby),<a href="https://en.wikipedia.org/wiki/Rate%E2%80%93distortion_theory"> rate distortion theory </a>(Shannon).</p>
<p>To take on the challenges and opportunities within AI, there are strong undercurrents to build interdisciplinary capacities as with <a href="https://www.chalmers.se/sv/centrum/chair/Sidor/default.aspx">Chalmers AI Research</a> and<a href="https://www.ai.se/en"> AI innovation of Sweden</a> and the like. Where computer science, cognitive science, data science, information science, social sciences and more disciplines meet and swap ideas to improve value creation within different domains, while at the same time beginning to blend industry, public sector, academia and society together.</p>
<p>The societal challenges that lay ahead, open up for innovation, where AI-assisted utilities will <em>augment</em> and <em>automate</em> for the benefit of mankind and the earth, but to do so require a balancing act where the <em>open paradigm</em> is favoured. AI is designed and is an artefact, hence we need to address ethics in its design with ART (Accountability, Responsibility and Transparency) The <a href="https://ec.europa.eu/digital-single-market/en/news/have-your-say-european-expert-group-seeks-feedback-draft-ethics-guidelines-trustworthy" class="broken_link">EU draft on AI ethics</a>.</p>
<h1>Tinkering with AI</h1>
<p>The emerging development of AI shows a different pathway than that of traditional software engineering. All emerging machine learning, NLP and/or Deep-Learning machinery relies on a <em>tinkering</em> approach with trial and error -re-model, refine data-set, test-bed with different outcomes and behaviours -before it can reach a maturity level for the industrial stages in digital infrastructure, as with Google Cloud, or similar services. A great example is image recognition and computer vision with its data optimization algorithms. and processing steps. Here each development has emerged from previous learnings and tinkering. Sometimes the development and use of mathematical models simply do not provide up for real AI matter and utilities.</p>
<p>Here in the value creation, or the <em>why</em> in the first place, we should design and use ML, NLP and Deep-Learning in the process with an expected outcome.  AI is not, and never will be the silver bullet for all problem domains in computing! <a href="https://findwise.com/blog/digital-recycling-knowledge-growth/">Start making sense</a>, in essence, is needed, with contextual use-cases and utilities, long before we reach <a href="https://en.wikipedia.org/wiki/Artificial_general_intelligence">Artificial General Intelligence</a></p>
<p>The <strong>25th of April</strong> an event will cover <a href="https://www.eventbrite.com/e/sustainable-knowledge-graphs-and-ai-tickets-56101091876?utm-medium=discovery&amp;utm-campaign=social&amp;utm-content=attendeeshare&amp;aff=escb&amp;utm-source=cp&amp;utm-term=listing">Sustainable Knowledge Graphs and AI</a> together with linked-data Sweden network.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/open-opaque-artificial-intelligence/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Beyond Office 365 &#8211; knowledge graphs, Microsoft Graph &#038; AI!</title>
		<link>https://findwise.com/blog/beyond-office-365-knowledge-graphs-microsoft-graph-ai/</link>
					<comments>https://findwise.com/blog/beyond-office-365-knowledge-graphs-microsoft-graph-ai/#respond</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Wed, 07 Nov 2018 08:07:21 +0000</pubDate>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Findability]]></category>
		<category><![CDATA[Future development]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Semantic]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5780</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/beyond-office-365-knowledge-graphs-microsoft-graph-ai/">Beyond Office 365 &#8211; knowledge graphs, Microsoft Graph &amp; AI!</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>This is the first joint post in a series where Findwise &#38; SearchExplained, together decompose Microsoft’s realm with the focus on knowledge graphs and AI. The advent of graph technologies and more specific knowledge graphs have become the epicentre of &#8230; <a href="https://findwise.com/blog/beyond-office-365-knowledge-graphs-microsoft-graph-ai/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/beyond-office-365-knowledge-graphs-microsoft-graph-ai/">Beyond Office 365 &#8211; knowledge graphs, Microsoft Graph &amp; AI!</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p><span style="font-weight: 400">This is the first joint post in a series where </span><a href="http://www.findwise.com"><span style="font-weight: 400">Findwise</span></a><span style="font-weight: 400"> &amp; </span><a href="http://www.searchexplained.com"><span style="font-weight: 400">SearchExplained</span></a><span style="font-weight: 400">, together decompose Microsoft’s realm with the focus on <strong>knowledge graphs</strong> and <strong>AI</strong>.</span><span style="font-weight: 400"> The advent of graph technologies and more specific </span><a href="https://en.wikipedia.org/wiki/Ontology_(information_science)"><span style="font-weight: 400">knowledge graphs</span></a><span style="font-weight: 400"> have become the epicentre of the </span><b>AI</b><span style="font-weight: 400"> hyperbole.</span></p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/11/microsoft_graph.png"><img loading="lazy" class="alignnone size-full wp-image-5782" src="https://findwise.com/blog/wp-content/uploads/2018/11/microsoft_graph.png" alt="microsoft_graph" width="800" height="391" srcset="https://findwise.com/blog/wp-content/uploads/2018/11/microsoft_graph.png 800w, https://findwise.com/blog/wp-content/uploads/2018/11/microsoft_graph-300x147.png 300w, https://findwise.com/blog/wp-content/uploads/2018/11/microsoft_graph-768x375.png 768w, https://findwise.com/blog/wp-content/uploads/2018/11/microsoft_graph-500x244.png 500w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p><span style="font-weight: 400">The use of a symbolic representation of the world, as with ontologies (domain models) within AI is by far nothing new. The </span><a href="https://en.wikipedia.org/wiki/Cyc#OpenCyc"><span style="font-weight: 400">CyC</span></a><span style="font-weight: 400"> project, for instance, started back in the 80’s. The most common use for average Joe would be by the use of </span><a href="https://en.wikipedia.org/wiki/Knowledge_Graph"><span style="font-weight: 400">Google Knowlege Graph</span></a><span style="font-weight: 400"> that links things and concepts. In the world of Microsoft, this has become a foundational platform capacity with the </span><a href="https://developer.microsoft.com/en-us/graph"><span style="font-weight: 400">Microsoft Graph</span></a><span style="font-weight: 400">. </span></p>
<p><span style="font-weight: 400">It is key to separate the wheat from the chaff since the Microsoft Graph is by no means a Knowledge Graph. It is a highly platform-centric way to connect things, applications, users and information and data. </span><span style="font-weight: 400">Which is good</span><span style="font-weight: 400">, but still it lacks the obvious capacity to disambiguate complex things of the world, since this is not its core functionality to build a knowledge graph (i.e ontology).</span></p>
<p><span style="font-weight: 400">From a Microsoft centric worldview, one should combine the Microsoft Graph with different applications with </span><a href="https://www.microsoft.com/en-us/ai/ai-in-action"><span style="font-weight: 400">AI</span></a><span style="font-weight: 400"> to automate, and augment the life with Microsoft at Work. The reality is that most enterprises do not use Microsoft only to envelop the enterprise information landscape. The information environment goes far beyond, into a multitude of organising systems within or outside to company walls. </span></p>
<p><span style="font-weight: 400">Question</span><span style="font-weight: 400">: How does one connect the dots in this maze-like workplace? By using knowledge graphs and infuse them into the Microsoft Graph realm?</span></p>
<h1><a href="https://findwise.com/blog/wp-content/uploads/2018/11/Office-365-MDM.png"><img loading="lazy" class="alignnone size-full wp-image-5783" src="https://findwise.com/blog/wp-content/uploads/2018/11/Office-365-MDM.png" alt="Office 365 MDM" width="1279" height="972" srcset="https://findwise.com/blog/wp-content/uploads/2018/11/Office-365-MDM.png 1279w, https://findwise.com/blog/wp-content/uploads/2018/11/Office-365-MDM-300x228.png 300w, https://findwise.com/blog/wp-content/uploads/2018/11/Office-365-MDM-768x584.png 768w, https://findwise.com/blog/wp-content/uploads/2018/11/Office-365-MDM-1024x778.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/11/Office-365-MDM-395x300.png 395w" sizes="(max-width: 1279px) 100vw, 1279px" /></a></h1>
<h1><span style="font-weight: 400">The model, artefacts and pragmatics</span></h1>
<p><span style="font-weight: 400">People at work continuously have to balance between modalities (provision/</span><b>find</b><span style="font-weight: 400">/act) independent of work practice, or discipline when dealing with data and information. People also have to interact with groups, and imaged entities (i.e. organisations, corporations and institutions). These interactions become the mould whereupon shared narratives emerge.</span></p>
<p><a href="https://findwise.com/blog/tinker-knowledge-graphs/"><span style="font-weight: 400">Knowledge Graphs (ontologies) </span></a><span style="font-weight: 400">are the pillar artefacts where users will find a level playing field for communication and codification of knowledge in organising systems. When linking the knowledge graphs, with a smart semantic information engine utility, we get enterprise-linked-data that connect the dots. A sustainable resilient </span><i><span style="font-weight: 400">model</span></i><span style="font-weight: 400"> in the content continuum. </span></p>
<p><span style="font-weight: 400">Microsoft at Work &#8211; the platform, as with Office 365 have some key building blocks, the content model that goes cross applications and services. The Meccano pieces like collections [libraries/sites] and resources [documents, pages, feeds, lists] should be configured with sound resource descriptions (metadata) and organising principles. One of the back-end service to deal with this is Managed Metadata Service and the cumbersome TermStore (it is not a taxonomy management system!). The pragmatic approach will be to infuse/integrate the </span><i><span style="font-weight: 400">smart semantic information engine</span></i><span style="font-weight: 400"> (knowledge graphs) with these foundation blocks. One outstanding question, is why Microsoft has left these services unchanged and with few improvements for many years?</span></p>
<p><span style="font-weight: 400">The unabridged pathway and lifecycle to content provision, as the creation of sites curating documents, will be a guided (automated and augmented [AI &amp; Semantics]) route ( in the best of worlds). The </span><a href="https://developer.microsoft.com/en-us/graph/docs/concepts/overview"><span style="font-weight: 400">Microsoft Graph and the set of API:s </span></a><span style="font-weight: 400">and connectors, push the envelope with people at centre. As mentioned, it is a platform-centric graph service, but it lacks connection to shared narratives (as with knowledge graphs).  Fuzzy logic, where end-user profiles and behaviour patterns connect content and people. But no, or very limited opportunity to fine-tune, or align these patterns to the </span><i><span style="font-weight: 400">models (</span></i><span style="font-weight: 400">concepts and facts).</span></p>
<p><span style="font-weight: 400">Akin to the provision modality pragmatics above is the </span><b>find</b><span style="font-weight: 400"> (search, navigate and link) domain in Office 365. The </span><a href="https://searchexplained.com/microsoft-office-365-search-announced-at-microsoft-ignite-2018/"><span style="font-weight: 400">Search road-map from Microsoft,</span></a><span style="font-weight: 400"> like a yellow brick road, envision a cohesive experience across all applications. The reality, it is a silo search still <img src="https://s.w.org/images/core/emoji/13.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> The Microsoft Graph will go hand in hand to realise personalised search, but since it is still constraint in the means to deliver a targeted search experience (search-driven-application) in the modern search. It is problematic, to say the least. And the back-end processing steps, as well as the user experience do not lean upon the </span><i><span style="font-weight: 400">models</span></i><span style="font-weight: 400"> to deliver i.e semantic-search to connect the dots. Only using the end-user behaviour patterns, end-user tags (/system/keyword) surface as a disjoint experience with low precision and recall.</span></p>
<p><span style="font-weight: 400">The smart semantic information engine will usually be a mix of services or platforms that work in tandem,  an example:</span></p>
<ol>
<li style="font-weight: 400"><span style="font-weight: 400">Semantic Tools (PoolParty, Semaphore)</span></li>
<li style="font-weight: 400"><span style="font-weight: 400">Search and Analytics (i3, Elastic Stack)</span></li>
<li style="font-weight: 400"><span style="font-weight: 400">Data Integration (Marklogic, Biztalk)</span></li>
<li style="font-weight: 400"><span style="font-weight: 400">AI modules (MS Cognitive stack)</span></li>
</ol>
<p><span style="font-weight: 400">In the forthcoming post on the theme </span><i><span style="font-weight: 400">Beyond Office 365 </span></i><span style="font-weight: 400">unpacking the promised land with knowledge graphs and AI, there will be some more technical assertions.</span><br />
<a style="text-decoration: none" href="http://se.linkedin.com/in/fredriclandqvist" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Fredric Landqvist's LinkedIn profile" width="20" height="15" border="0" />Fredric Landqvist</span></a> <a href="http://www.emergentmeccano.com">research blog</a><br />
<a style="text-decoration: none" href="https://www.linkedin.com/in/molnaragnes" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Agnes Molnar's LinkedIn profile" width="20" height="15" border="0" />Agnes Molnar</span></a> <a href="http://www.searchexplained.com">SearchExplained</a></p>
<p>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/beyond-office-365-knowledge-graphs-microsoft-graph-ai/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Activate conference 2018</title>
		<link>https://findwise.com/blog/activate-conference-2018/</link>
					<comments>https://findwise.com/blog/activate-conference-2018/#respond</comments>
		
		<dc:creator><![CDATA[Webteam]]></dc:creator>
		<pubDate>Tue, 23 Oct 2018 09:47:40 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Information quality]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Solr]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5770</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/activate-conference-2018/">Activate conference 2018</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Opensource has won! Now, what about AI? Grant Ingersoll is on stage at the opening of Activate18 explaining the reasoning behind changing the name. The revolution is won, opensource won, search as a concept to reckon with, they all won. &#8230; <a href="https://findwise.com/blog/activate-conference-2018/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/activate-conference-2018/">Activate conference 2018</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<h2>Opensource has won! Now, what about AI?</h2>
<p>Grant Ingersoll is on stage at the opening of Activate18 explaining the reasoning behind changing the name.</p>
<p>The revolution is won, opensource won, search as a concept to reckon with, they all won.</p>
<p>The times I come across a new search project where someone is pushing anything but opensource search is few and far between these days.</p>
<p>Since Search has taken a turn towards AI, a merge with that topic seems reasonable, not to say obvious. But AI in this context should probably be interpreted as AI to support good search results. At least if judging from the talks I attended. Interesting steps forward is expert systems and similar, none which was extensively discussed as of my knowledge. A kind of system we work with at Findwise. For instance, using NLP, machine learning and text analytics to improve a customer service.</p>
<p>Among the more interesting talks I attended was Doug Turnbulls talk on Neural Search Frontier. Some of the matrix-math threw me back to a ANN-course I took 10 years ago. Way before I ever learned any matrix maths. Now, way post remembering any matrix math-course I ever took, it&#8217;s equally confusing, possibly on a bit higher level. But he pointed out interesting aspects and show conceptually how Word2Vec-vectors work and won’t work. Simon Hughes talk &#8220;Vectors in search &#8211; Towards more semantic matching&#8221; is in the same area but more towards actually using it.</p>
<h2>Machine Learning is finally mainstream</h2>
<p>If we have a look at the overall distribution of talks, I think it&#8217;s safe to say that almost all talks touched on machine learning in some way. Most commonly using Learning to Rank and Word2Vec. None of these are new techniques (Our own Mickaël Delaunay wrote a <a href="https://findwise.com/blog/improve-search-relevance-using-machine-learning-statistics-apache-solr-learning-rank/">nice blog-post</a> about how to use LTR for personalization a couple of years ago. They have been covered before to some extent but this time around we see some proper, big scale implementations that utilizes the techniques. Bloomberg gave a really interesting presentation on what their evolution from hand tuned relevance to LTR over millions of queries have been like. Even if many talks were held on a theoretical/demo-level it is now very clear. It&#8217;s fully possible and feasible to build actual, useful and ROI-reasonable Machine Learning into your solutions.</p>
<p>As Trey Grainer pointed out, there are different generations of this conference. A couple of years ago Hadoop were everywhere. Before that everything was Solr cloud. This year not one talk-description referenced the Apache elephant (but migration to cloud was still referenced, albeit not in the topic). Probably not because big data has grown out of fashion, even though that point was kind of made, but rather that we have other ways of handling and manage it these days.</p>
<h2>Don&#8217;t forget: shit in &gt; shit out!</h2>
<p>And of course, there were the mandatory share of how-we-handle-our-massive-data-talks. Most prominently presented by Slack, all developers favourite tool. They did show a MapReduce offline indexing pipeline that not only enabled them to handle their 100 billion documents, but also gave them an environment which was quick on its feet and super suitable for testing new stuff and experimenting. Something an environment that size usually completely blocks due to re-indexing times, fear of bogging down your search-machines and just general sluggishness.</p>
<p>Among all these super interesting technical solutions to our problems, it&#8217;s really easy to forget that loads of time still have to be spent getting all that good data into our systems. Doing the groundwork, building connectors and optimizing data analysis. It doesn’t make for so good talks though. At Findwise we ususally do that using our <a href="https://findwise.com/en/technology/findwise-i3">i3-framework</a> which enables you to ingest, process, index and query your unstructured data in a nice framework.<a href="https://findwise.com/blog/activate-conference-2018/activate18-1/" rel="attachment wp-att-5771"><img loading="lazy" class="aligncenter size-full wp-image-5771" src="https://findwise.com/blog/wp-content/uploads/2018/10/activate18-1.jpg" alt="activate 2018 solr lucid opensource" width="4032" height="3024" srcset="https://findwise.com/blog/wp-content/uploads/2018/10/activate18-1.jpg 4032w, https://findwise.com/blog/wp-content/uploads/2018/10/activate18-1-300x225.jpg 300w, https://findwise.com/blog/wp-content/uploads/2018/10/activate18-1-768x576.jpg 768w, https://findwise.com/blog/wp-content/uploads/2018/10/activate18-1-1024x768.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2018/10/activate18-1-400x300.jpg 400w" sizes="(max-width: 4032px) 100vw, 4032px" /></a></p>
<p>I now look forward to doing the not so ground work using inspiration from loads of interesting solutions here at Activate.</p>
<p>Thanks so much for this year!</p>
<p>The presentations from the conference are available on YouTube in <a href="https://www.youtube.com/playlist?list=PLU6n9Voqu_1HW8-VavVMa9lP8-oF8Oh5t">Lucidworks playlist for Activate18</a>.</p>
<p><em>Author and event participant: Johan Persson Tingström, Findability Expert at Findwise</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/activate-conference-2018/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tinkering with knowledge graphs</title>
		<link>https://findwise.com/blog/tinker-knowledge-graphs/</link>
					<comments>https://findwise.com/blog/tinker-knowledge-graphs/#comments</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Mon, 15 Oct 2018 23:21:46 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Artificial intelligence]]></category>
		<category><![CDATA[knowledge graph]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5754</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/tinker-knowledge-graphs/">Tinkering with knowledge graphs</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>I don’t want to sail with this ship of fools, on the opulent data sea, where people are drowning without any sense-making knowledge shores in sight. You don’t see the edge before you drop! Echoencephalogram (Lars Leksell)  and neural networks &#8230; <a href="https://findwise.com/blog/tinker-knowledge-graphs/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/tinker-knowledge-graphs/">Tinkering with knowledge graphs</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p><span style="font-weight: 400">I don’t want to sail with this ship of fools, on the </span><i><span style="font-weight: 400">opulent data sea</span></i><span style="font-weight: 400">, where people are drowning without any <a href="https://findwise.com/en/start-making-sense" class="broken_link">sense-making </a></span><i><span style="font-weight: 400">knowledge</span></i><span style="font-weight: 400"> shores in sight. You don’t see the edge before you drop!</span></p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/10/Knowledge-Engineering.png"><img loading="lazy" class="alignnone size-full wp-image-5755" src="https://findwise.com/blog/wp-content/uploads/2018/10/Knowledge-Engineering.png" alt="Knowledge Engineering" width="1145" height="437" srcset="https://findwise.com/blog/wp-content/uploads/2018/10/Knowledge-Engineering.png 1145w, https://findwise.com/blog/wp-content/uploads/2018/10/Knowledge-Engineering-300x114.png 300w, https://findwise.com/blog/wp-content/uploads/2018/10/Knowledge-Engineering-768x293.png 768w, https://findwise.com/blog/wp-content/uploads/2018/10/Knowledge-Engineering-1024x391.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/10/Knowledge-Engineering-500x191.png 500w" sizes="(max-width: 1145px) 100vw, 1145px" /></a><span style="font-weight: 400">Echoencephalogram (</span><a href="https://en.wikipedia.org/wiki/Lars_Leksell"><span style="font-weight: 400">Lars Leksell</span></a><span style="font-weight: 400">)  and neural networks</span></p>
<p><span style="font-weight: 400">How do organisations reach a </span><i><span style="font-weight: 400">level playing field</span></i><span style="font-weight: 400">, where it is possible to create a sustainable </span><a href="https://en.wikipedia.org/wiki/Learning_organization"><span style="font-weight: 400">learning organisation</span></a><span style="font-weight: 400"> [</span><a href="https://en.wikipedia.org/wiki/Cybernetics"><span style="font-weight: 400">cybernetics</span></a><span style="font-weight: 400">]?<br />
</span><span style="font-weight: 400">(Enacted Knowledge Management practices and processes)</span></p>
<p><span style="font-weight: 400">Sadly, in many cases, we face the </span><a href="https://en.wikipedia.org/wiki/Social_dilemma#Tragedy_of_the_commons"><span style="font-weight: 400">tragedy of the commons</span></a><span style="font-weight: 400">! </span></p>
<p><span style="font-weight: 400">There is an urgent need to iron out the social dilemmas and focus on motivational solutions that strive for cooperation and collective action. Knowledge deciphered with the notion of intelligence and emerging utilities with AI as an assistant with us humans. </span><a href="https://emergentmeccano.com/2018/10/11/we-the-peoples/"><span style="font-weight: 400">We the peoples</span></a><span style="font-weight: 400">!</span></p>
<p><span style="font-weight: 400">To make a </span><i><span style="font-weight: 400">model</span></i><span style="font-weight: 400"> of the world, to codify our knowledge and enable worldviews to complex data is nothing new per se. A </span><b>Knowlege Graph</b><span style="font-weight: 400"> &#8211; is in its essence a constituted shared narrative within the collective imagination (i.e organisation). Where facts of things and their inherited relationships and constraints define the model to be used to master the matrix.  These concepts and topics are our communication means to bridge between groups of people. Shared nomenclatures and vocabularies.</span></p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/10/Terminology-Management.png"><img loading="lazy" class="alignnone size-full wp-image-5756" src="https://findwise.com/blog/wp-content/uploads/2018/10/Terminology-Management.png" alt="Terminology Management" width="1331" height="1064" srcset="https://findwise.com/blog/wp-content/uploads/2018/10/Terminology-Management.png 1331w, https://findwise.com/blog/wp-content/uploads/2018/10/Terminology-Management-300x240.png 300w, https://findwise.com/blog/wp-content/uploads/2018/10/Terminology-Management-768x614.png 768w, https://findwise.com/blog/wp-content/uploads/2018/10/Terminology-Management-1024x819.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/10/Terminology-Management-375x300.png 375w" sizes="(max-width: 1331px) 100vw, 1331px" /></a></p>
<h2><span style="font-weight: 400">Knowledge Engineering in practice</span></h2>
<p><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">At work &#8211; building a </span><b>knowledge graph</b><span style="font-weight: 400"> &#8211; there are some pillars, that the architecture rests upon.  First and foremost is the </span><i><span style="font-weight: 400">language</span></i><span style="font-weight: 400"> we use every day to undertake our practices within an organisation. The corpus of </span><i><span style="font-weight: 400">concepts</span></i><span style="font-weight: 400">, topics and things that revolve around the overarching theme. No entity act in a vacuum with no shared concepts. Humans coordinate work practices by shared narratives embedded into concepts and their translations from person to person. This communication might be using different means, like </span><a href="https://en.wikipedia.org/wiki/Cuneiform"><span style="font-weight: 400">cuneiform</span></a><span style="font-weight: 400"> (in ancient Babel) or digital tools of today. To curate, cultivate and nurture a good organisational vocabulary, we also need to develop practices and disciplines that to some extent renders similarities to ancient clay-tablet librarians. Organising principles, to the organising system (information system, applications).  This discipline could be defined as taxonomists (taxonomy manager) or </span><i><span style="font-weight: 400">knowledge engineers</span></i><span style="font-weight: 400">. (or information architect)</span></p>
<h2><span style="font-weight: 400">Set the scope &#8211; no need to boil the ocean</span></h2>
<p><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">All organisations, independent of business vertical, have known domain concepts that either are defined by standards, code systems or open vocabularies. A good idea will obviously be to first go foraging in the sea of </span><a href="http://bartoc.org/"><span style="font-weight: 400">terminologies</span></a><span style="font-weight: 400">, to </span><a href="https://lod-cloud.net/"><span style="font-weight: 400">link</span></a><span style="font-weight: 400">, re-hash/re-use and manage the domain. The second task in this scoping effort will be to audit and map the internal terrain of content corpora. Since information is scattered across a multitude of organising systems, but within these, there are <em>pockets of a structure</em>. Here we will find glossaries, controlled vocabularies, data-models and the like.  The taxonomist will then together with <em>subject matter experts</em> arrange governance principles and engage in conversations on how the outer and inner loop of concepts link, and start to build domain-specific taxonomies. Preferable using the simple knowledge organisation system (</span><a href="https://www.w3.org/2004/02/skos/"><span style="font-weight: 400">SKOS</span></a><span style="font-weight: 400">) standard </span></p>
<h2><span style="font-weight: 400">Participatory Design from inception</span></h2>
<p><span style="font-weight: 400"><br />
</span><span style="font-weight: 400">Concepts and their resource description will need to be evaluated and semantically enhanced with several different worldviews from all practices and disciplines within the organisation. Concepts might have a different meaning. Meaning is subjective, demographic, socio-political, and complex. Meaning sometimes gets lost in translation (between different communities of practices). </span></p>
<p><span style="font-weight: 400">The best approach to get a highly participatory design in the development of a sustainable model is by simply publish the concepts as open thesauri. A great example is the </span><a href="http://thesaurus.healthdirect.org.au/aht.html"><span style="font-weight: 400">HealthDirect thesaurus</span></a><span style="font-weight: 400">. This service becomes a canonical reference that people are able to search, navigate and annotate.</span></p>
<p><span style="font-weight: 400">It is smart to let people </span><i><span style="font-weight: 400">edit</span></i><span style="font-weight: 400"> and </span><i><span style="font-weight: 400">refine</span></i><span style="font-weight: 400"> and comment (</span><i><span style="font-weight: 400">annotate</span></i><span style="font-weight: 400">) in the same manner as the Wikipedia evolves, i.e edit wiki data entries. These annotations will then feedback to the governance network of the terminologies. </span></p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/10/Term-Uppdatering.png"><img loading="lazy" class="alignnone size-full wp-image-5757" src="https://findwise.com/blog/wp-content/uploads/2018/10/Term-Uppdatering.png" alt="Term Uppdate" width="1862" height="692" srcset="https://findwise.com/blog/wp-content/uploads/2018/10/Term-Uppdatering.png 1862w, https://findwise.com/blog/wp-content/uploads/2018/10/Term-Uppdatering-300x111.png 300w, https://findwise.com/blog/wp-content/uploads/2018/10/Term-Uppdatering-768x285.png 768w, https://findwise.com/blog/wp-content/uploads/2018/10/Term-Uppdatering-1024x381.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/10/Term-Uppdatering-500x186.png 500w" sizes="(max-width: 1862px) 100vw, 1862px" /></a></p>
<h2><span style="font-weight: 400">Link to organising systems</span></h2>
<p><span style="font-weight: 400">All models (taxonomies, vocabularies, ontologies etc.) should be interlinked to the existing base of organising systems (information systems [</span><b>IS</b><span style="font-weight: 400">]) or platforms. Most IS’s have schemas and in-built models and business rules to serve as applications for a specific use-case.  This implies also the use of concepts to define and describe the data in metadata, as reference data tables or as user experience controls. In all these lego pieces within an IS or platform, there are opportunities to link these concepts to the shared narratives in the terminology service.  <a href="https://findwise.com/blog/enterprise-linked-data-connected-digital-workplace/">Linked-enterprise-data</a> building a web of meaning, and opening up for a more <strong>interoperable</strong> information landscape. </span></p>
<p><span style="font-weight: 400">One omnipresent quest is to set-up a sound content model and design for i.e Office 365, where content types, collections, resource descriptions and metadata have to be concerted in the back-end services as managed-metadata-service. Within these features and capacities, it is wise to integrate with the <a href="https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/">semantic layer</a>. (terminologies, and graphs). Other highly relevant integrations relate to <em>search-as-a-service</em>, where the <em>semantic layer</em> co-acts in the pipeline steps, add semantics, link, auto-classify and disambiguate with entity extraction. In the user experience journey, the semantic layer augments and connect things. Which is for instance how Microsoft Graph has been ingrained all through their platform. <a href="https://searchexplained.com/office-365-search-announcements-spc18/">Search and semantics push the envelope</a> <img src="https://s.w.org/images/core/emoji/13.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span></p>
<h2><span style="font-weight: 400">Data integration and information mechanics</span></h2>
<p><span style="font-weight: 400">A decoupled information systems architecture using an enterprise service bus (messaging techniques) is by far the most used model.  To enable a sustainable data integration, there is a need to have a data architecture and clear integration design. Adjacent to the data integration, are means for cleaning up data and harmonise data-sets into a cohesive matter, extract-load-transfer [etl]. Data Governance is essential! In this ballpark we also find cues to master data management. Data and information have fluid properties, and the flow has to be seamless and smooth.  </span></p>
<p><span style="font-weight: 400">When defining the message structure (asynchronous) in information exchange protocols and packages. It is highly desired to rely on standards, well-defined models (ontologies). As within the healthcare &amp; life science domain using</span><a href="https://www.hl7.org/fhir/"><span style="font-weight: 400"> Hl7/FHIR</span></a><span style="font-weight: 400">.  These standards have domain-models with entities, properties, relations and graphs. The data serialisation for data exchange might use XML or RDF (JSON-LD, Turtle etc.). The value-set (namespaces) for properties will be possible to link to SKOS vocabularies with terms.</span></p>
<h2><span style="font-weight: 400">Query the graph</span></h2>
<p><span style="font-weight: 400">Knowledge engineering is both setting the useful terminologies into action, but also load, refine and develop ontologies (information models, data models). There are many very useful open ontologies that could or should be used and refined by the taxonomists, i.e </span><a href="https://ec.europa.eu/isa2/solutions/core-vocabularies_en"><span style="font-weight: 400">ISA</span><span style="font-weight: 400">2</span><span style="font-weight: 400"> Core Vocabularies</span></a><span style="font-weight: 400">, With data-sets stored in a graph (</span><a href="https://en.wikipedia.org/wiki/Triplestore"><span style="font-weight: 400">triplestore</span></a><span style="font-weight: 400">) there are many ways to query the graph to get results and insights (links). Either by using </span><a href="https://en.wikipedia.org/wiki/SPARQL"><span style="font-weight: 400">SPARQL</span></a><span style="font-weight: 400"> (similar to SQL in schema-based systems), or combine this with </span><a href="https://en.wikipedia.org/wiki/SHACL"><span style="font-weight: 400">SHACL</span></a><span style="font-weight: 400"> (constraints) or via </span><a href="https://en.wikipedia.org/wiki/Representational_state_transfer"><span style="font-weight: 400">Restful APIs</span></a><span style="font-weight: 400">.</span></p>
<p><span style="font-weight: 400">These means to query the </span><b>knowledge graph</b><span style="font-weight: 400"> will be one reasoning to add semantics to data integration as described above.</span></p>
<h2><span style="font-weight: 400">Adding smartness and we are all done&#8230;</span></h2>
<p><a href="https://help.poolparty.biz/doc/files/3113293/13861492/83/1536071543000/Semantic_AI_-_White_Paper.pdf" class="broken_link"><span style="font-weight: 400">Semantic </span><b>AI</b></a><span style="font-weight: 400"> or means to bridge between symbolic representation (semantics) and machine learning (ML), natural language processing (NLP), and deep-learning is where all thing come together.</span></p>
<p><span style="font-weight: 400">In the works (<a href="https://www.linkedin.com/pulse/knowledge-engineering-disambiguation-fredric-landqvist/">knowledge engineering</a>) to build the </span><b>knowledge graph</b><span style="font-weight: 400">, and govern it, it taxes many manual steps as mapping models, standards and large corpora of terminologies.  Here AI capacities enable automation and continuous improvements with learning networks. Understanding human capacities and intelligence, unpacking the neurosciences (as Lars Leksell) combined with neural-networks will be our road ahead with safe and sustainable uses of AI.</span><br />
<a style="text-decoration: none" href="http://se.linkedin.com/in/fredriclandqvist" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Fredric Landqvist's LinkedIn profile" width="20" height="15" border="0" />Fredric Landqvist</span></a> <a href="http://www.emergentmeccano.com">research blog</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/tinker-knowledge-graphs/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Reflection, part 2</title>
		<link>https://findwise.com/blog/reflection-part-2/</link>
					<comments>https://findwise.com/blog/reflection-part-2/#respond</comments>
		
		<dc:creator><![CDATA[Łukasz Wójcik]]></dc:creator>
		<pubDate>Sat, 08 Sep 2018 16:36:57 +0000</pubDate>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[duck typing]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[strong typing]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5734</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/reflection-part-2/">Reflection, part 2</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/lukasz-wojcik/">Łukasz Wójcik</a></p>
<p>Some time ago I was writing about the Reflection mechanism in .NET Framework. This time I will show you a use case, where it&#8217;s better NOT TO USE the Reflection. Introduction In the previous post about the Reflection I mentioned &#8230; <a href="https://findwise.com/blog/reflection-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/reflection-part-2/">Reflection, part 2</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/lukasz-wojcik/">Łukasz Wójcik</a></p>
<p>Some time ago I was writing about the Reflection mechanism in .NET Framework.</p>
<p>This time I will show you a use case, where it&#8217;s better <em>NOT TO USE</em> the Reflection.</p>
<h1>Introduction</h1>
<p>In the <a href="https://findwise.com/blog/reflection-is-like-violence/">previous post about the Reflection</a> I mentioned some doubt thoughts about using this mechanism and one of them has actually its justification.</p>
<h1>So, when it&#8217;s better not to use Reflection and why?</h1>
<p>Consider a method that accepts some objects and we want to access some property on these objects inside this method.</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">void<span style="color: black"> MyUniversalMethod(<span style="color: blue">object<span style="color: black"> obj)
</span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">if<span style="color: black"> (obj.GetType().GetProperty(<span style="color: #a31515">"MyPropertyName "<span style="color: black">) <span style="color: blue">is<span style="color: black"> System.Reflection.<span style="color: #2b91af">PropertyInfo<span style="color: black"> myProperty) <span style="color: green">//Check if our object actually has the property we're interested in.
    </span></span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
        </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">var<span style="color: black"> myPropertyValue = myProperty.GetValue(obj); <span style="color: green">//Get the property value on our object.
        </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">myProperty.SetValue(obj, <span style="color: blue">new<span style="color: black"> <span style="color: blue">object<span style="color: black">()); <span style="color: green">//Set the property value on our object.
    </span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}
</span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>Although, technically, there&#8217;s nothing wrong with this approach, it should be avoided in most cases, because it <strong>totally breaks the concept of strong typing</strong>.</p>
<h1>How do we do it properly?</h1>
<p>If we are in control over the classes we are using, we should always extract the property we want to access in such method to an interface.</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">interface<span style="color: black"> <span style="color: #2b91af">IMyInterface
</span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">object<span style="color: black"> MyProperty { <span style="color: blue">get<span style="color: black">; <span style="color: blue">set<span style="color: black">; }
</span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>So our method will look a lot simpler and, what&#8217;s most important, the compiler upholds the code integrity so we don&#8217;t have to bother if the property doesn&#8217;t exist or is inaccessible on our object, because the interface forces the accessibility for us:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">void<span style="color: black"> MyUniversalMethod(<span style="color: #2b91af">IMyInterface <span style="color: black">obj)
</span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">var<span style="color: black"> myPropertyValue = obj.MyProperty; <span style="color: green">//Get the property value on our object.
    </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">obj.MyProperty = <span style="color: blue">new<span style="color: black"> <span style="color: blue">object<span style="color: black">(); <span style="color: green">//Set the property value on our object.
</span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<h1>But, what if we have no control over the classes?</h1>
<p>There are scenarios where we have to use someone else&#8217;s code and we have to adapt our code to the already existing one. And, what&#8217;s worse, the property we are interested in is not defined in any interface but there are several classes that can contain such property.</p>
<p>But then, it is still recommended that we don&#8217;t use the Reflection in that case.</p>
<p>Instead of that, we should filter the objects that come to our method to specific types that actually contain the property we are interested in.</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">void<span style="color: black"> MyUniversalMethod(<span style="color: blue">object<span style="color: black"> obj)
</span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">if<span style="color: black"> (obj <span style="color: blue">is<span style="color: black"> <span style="color: #2b91af">TheirClass<span style="color: black"> theirClass) <span style="color: green">//Check if our object is of type that has the property we're interested in. If so, assign it to a temporary variable.
</span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">    {
        </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">var<span style="color: black"> theirPropertyValue = theirClass.TheirProperty; <span style="color: green">//Get the property value on our object.
        </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">theirClass.TheirProperty = <span style="color: blue">new<span style="color: black"> <span style="color: blue">object<span style="color: black">(); <span style="color: green">//Set the property value on our object.
    </span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}
</span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>There&#8217;s an inconvenience in the example above that we have to specify all the types that might contain the property we are interested in and handle them separately but this protects us from cases where in different classes a property of <strong>the same name</strong> is of a <strong>different type</strong>. Here we have the full control over what&#8217;s happening with strongly typed property.</p>
<h1>Then, what is the Reflection good for?</h1>
<p>Although I said it is not recommended in <span style="text-decoration: underline">most cases</span>, there are, however, cases where the Reflection approach would be the preferred way.</p>
<p>Consider a list containing names of objects represented by some classes.</p>
<p>We create a method that will retrieve the name for us to display:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">string<span style="color: black"> GetName(<span style="color: blue">object<span style="color: black"> obj)
</span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">var<span style="color: black"> type = obj.GetType();
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> (type.GetProperty(<span style="color: #a31515">"Name"<span style="color: black">) <span style="color: blue">as<span style="color: black"> System.Reflection.<span style="color: #2b91af">PropertyInfo<span style="color: black">)? <span style="color: green">//Try to get the "Name" property.
        </span></span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">.GetValue(obj)? <span style="color: green">//Try to get the "Name" property value from the object.
        </span></span><span style="color: black;font-family: Consolas;font-size: 9pt">.ToString() <span style="color: green">//Get the string representation of the value, if it's string it just returns its value.
        </span></span><span style="color: black;font-family: Consolas;font-size: 9pt">?? type.Name; <span style="color: green">//If the tries above fail, get the type name.
</span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}
</span></pre>
<p>The property &#8220;Name&#8221; is commonly used by many classes, though it&#8217;s very rarely defined in an interface. We can be also almost certain that it will be a <span style="color: blue">string</span>. We can then just look for this property by a Reflection and in case we didn&#8217;t find it use the type name. This approach is commonly used in Windows Forms PropertyGrid&#8217;s collection editors.</p>
<h1>Use of dynamic keyword</h1>
<p>At the point we are certain we don&#8217;t want to rely on <strong>strong typing</strong>, we can access the properties at runtime in an even simpler way, by using the <span style="color: blue">dynamic</span> keyword, which introduces the flexibility of <strong>duck typing</strong>.</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">void<span style="color: black"> MyUniversalMethod(<span style="color: blue">dynamic<span style="color: black"> obj)
</span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">var<span style="color: black"> theirPropertyValue = obj.TheirProperty; <span style="color: green">//Get the property value on our object.
    </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">obj.TheirProperty = <span style="color: blue">new<span style="color: black"> <span style="color: blue">object<span style="color: black">(); <span style="color: green">//Set the property value on our object.
</span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>This is very useful in cases where we don&#8217;t know the type of the object passed to the method at the design time. It is also required by some interop interfaces.</p>
<p><strong>But be careful what you are passing to this method, because in case you try to access a member which doesn&#8217;t exist or is inaccessible you will get a <span style="color: #2b91af;font-family: Consolas;font-size: 9pt">RuntimeBinderException</span>.<br />
</strong></p>
<p>Note that all members you will try to access on a dynamic object are also dynamic and the IntelliSense is disabled for them &#8211; <strong>you&#8217;re on your own</strong>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/reflection-part-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Are the messages on the election posters just empty words?</title>
		<link>https://findwise.com/blog/messages-election-posters-just-empty-words/</link>
					<comments>https://findwise.com/blog/messages-election-posters-just-empty-words/#respond</comments>
		
		<dc:creator><![CDATA[Eric Persson]]></dc:creator>
		<pubDate>Fri, 31 Aug 2018 20:55:41 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5740</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/messages-election-posters-just-empty-words/">Are the messages on the election posters just empty words?</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/eric-persson/">Eric Persson</a></p>
<p>It is impossible not to notice all the political conversations in Sweden now, less then two weeks before election day. During times like these parties focus a lot of energy on getting their point across to the public, but how &#8230; <a href="https://findwise.com/blog/messages-election-posters-just-empty-words/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/messages-election-posters-just-empty-words/">Are the messages on the election posters just empty words?</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/eric-persson/">Eric Persson</a></p>
<p>It is impossible not to notice all the political conversations in Sweden now, less then two weeks before election day. During times like these parties focus a lot of energy on getting their point across to the public, but how much is just slogans that sound good when you print them on a poster and how much is rooted in the everyday work of their organisation.</p>
<p><em>Are the words printed on the posters present in every street corner really the same as the ones being exchanged between the walls of the Swedish parliament building?</em></p>
<p>While ferociously staying away from the subject of who is right or wrong, let&#8217;s see if there is a way to evaluate if what they are talking about in the parliament&#8217;s everyday sessions is the same as what is being printed in the manifestos released during the last two elections (2014 and 2018 respectively).<span id="more-5740"></span></p>
<p>Data science isn&#8217;t much without data and luckily for us, the Swedish government is openly publishing a large amount of it through the <a href="http://data.riksdagen.se/">http://data.riksdagen.se</a> webpage and API. Data is pulled from the API using our in-house solution Findwise i3 and then indexed and visualised using Elasticsearch and Kibana.</p>
<h1><strong>Collecting and making data useful</strong></h1>
<p>As always some assumptions and simplifications are necessary to make things a bit more efficient and the results more accessible. This time the following steps were made:</p>
<ul>
<li>The manifesto data collection was performed on 19-24 July. This means that some the parties manifestos weren&#8217;t published at the time, in those cases, the parties webpages with similar information were scraped instead.</li>
<li>M, C, L, KD all shared one manifesto for the election 2014, this manifesto has been used as input for all those parties for the year 2014.</li>
<li>The output entries from our chosen Name Entity Recognition and Part-of-Speech tagging model have been cleaned to a certain extent from political jargon and common terms that don&#8217;t contain much information about the topic at hand.</li>
</ul>
<h1><strong>Natural Language Processing and other technologies used</strong></h1>
<p>Historically being an enterprise search consultancy two of the tools widely used here at Findwise is the search engine Elasticsearch and its companion &#8211; visualization tool Kibana. These might not be the first tools a Data Scientist reaches for at times like this, but it is always good to use familiar tools in new ways in order to understand them further. To support the data flow from the API to processing to Elastic and Kibana Findwise i3 was used.</p>
<p>Due to the huge number of sessions, manual processing of the data was out of the question. To be able to get some information about what had been mentioned an automated approach was necessary. In this case, we relied on a Named Entity Recognition model <del>from OpenNLP (<a href="http://opennlp.apache.org/">http://opennlp.apache.org</a>)</del><a href="#footnote">*</a> to break out entities such as Persons, Places, Organisations, and a Part-of-Speech tagging model from the same foundation to create Verb-Noun pairs from the among 50000 sessions present in the data between September 2014 and August 2018. The manifestos were also processed using the same pipeline.</p>
<p>One last mention would be the use of Elasticsearch&#8217;s significant terms aggregation. This aggregation is used to evaluate how common a term is in a specific subset of the data compare to the complete set. In our case, the significant terms for one single party will most likely (or perhaps should) correspond to the terms related to that party&#8217;s differentiating core issues.</p>
<h1><strong>Are politicians walking the talk.. or just talking?</strong></h1>
<p><a href="http://159.89.107.39:5602/app/kibana#/dashboard/57b36240-ab99-11e8-94db-9bbc3f3eccbe?embed=true" class="broken_link">The resulting dashboard can be seen here</a> (only in Swedish). By selecting the party of your interest in the dropdown menu you will be able to see what they have talked about and how many speeches per month they have held over the last four years. In the middle of the dashboard, we have listed results from the POS and NER models together with a word cloud showing the most frequent Verb-Noun pairs used. The Verb-Noun pairs listed from both sources are using the significant terms aggregation to show if what is mentioned in the parties manifestos and sessions is the same or not. Last but not least, at the bottom is the raw data presented in backward chronological order for those who would like to dig deeper into the raw data behind it all.</p>
<p><div id="attachment_5744" style="width: 610px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-5744" loading="lazy" class="wp-image-5744 size-full" src="https://findwise.com/blog/wp-content/uploads/2018/08/kibana_dash.png" alt="Kibana dashboard view" width="600" height="668" srcset="https://findwise.com/blog/wp-content/uploads/2018/08/kibana_dash.png 600w, https://findwise.com/blog/wp-content/uploads/2018/08/kibana_dash-269x300.png 269w" sizes="(max-width: 600px) 100vw, 600px" /><p id="caption-attachment-5744" class="wp-caption-text">Example view over the Kibana dashboard created.</p></div></p>
<h1><strong>The power of open data</strong></h1>
<p>Due to the minimal manual processing made there might not be safe to draw any conclusions from the dashboard itself, but I hope that it is enough to stir up some thoughts in time for the upcoming election day. One thing that is for sure is that the Swedish government have a great amount of data available freely and for a curious individual with the right tools there is much to be learned.</p>
<p><em><a id="footnote"></a>* 2018-09-04: The first version of the post mentioned that the model used for Named Entity Recognition was from OpenNLP but as my colleagues specializing in NLP here at Findwise made me aware of that OpenNLP has no model available for the Swedish language. The model used is instead an in-house developed and trained model built on the Mallet (<a href="http://mallet.cs.umass.edu/">http://mallet.cs.umass.edu</a>) Java package.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/messages-election-posters-just-empty-words/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Benevolent &#038; sustainable smart city development</title>
		<link>https://findwise.com/blog/benevolent-sustainable-smart-city-development/</link>
					<comments>https://findwise.com/blog/benevolent-sustainable-smart-city-development/#respond</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Wed, 30 May 2018 21:47:45 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Knowledge management]]></category>
		<category><![CDATA[Semantic]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5714</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/benevolent-sustainable-smart-city-development/">Benevolent &amp; sustainable smart city development</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>The digitisation of society emerge in all sectors, and the key driver to all this is the abundance of data that needs to be brought into context and use. When discussing digitisation, people commonly think in data highways and server &#8230; <a href="https://findwise.com/blog/benevolent-sustainable-smart-city-development/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/benevolent-sustainable-smart-city-development/">Benevolent &amp; sustainable smart city development</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p><span style="font-weight: 400">The digitisation of society emerge in all sectors, and the key driver to all this is the abundance of </span><b>data</b><span style="font-weight: 400"> that needs to be brought into context and use.</span></p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/05/Participation.png"><img loading="lazy" class="alignnone size-full wp-image-5715" src="https://findwise.com/blog/wp-content/uploads/2018/05/Participation.png" alt="Participation" width="1024" height="768" srcset="https://findwise.com/blog/wp-content/uploads/2018/05/Participation.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/05/Participation-300x225.png 300w, https://findwise.com/blog/wp-content/uploads/2018/05/Participation-768x576.png 768w, https://findwise.com/blog/wp-content/uploads/2018/05/Participation-400x300.png 400w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p><span style="font-weight: 400">When discussing digitisation, people commonly think in data highways and server farms as being the infrastructure. Access to comprehensive information resources is increasingly becoming a commodity, enabling and enhancing societal living conditions. To achieve this, sense-making of data has to be in integrative part of the <a href="https://semantic-web.com/2018/06/12/how-semantic-technologies-can-help-smart-cities-succeed/" class="broken_link">digital infrastructure</a>. Reflecting this to traditional patterns, digital roads need junctions, signs and semaphores to function, just as their physical counterparts.</span></p>
<p><span style="font-weight: 400">The ambition with AI and </span><i><span style="font-weight: 400">smart society and cities</span></i><span style="font-weight: 400"> should be for the benefit of its inhabitants, but without a blueprint to get a coherent model that will be working in all these utilities, it will all break. Second to this, <em>benevolence</em>, <em>participation</em> and <em>sustainability</em>, have to be the overarching theme, to contrast dystopian visions with citizen surveillance and fraudulent behaviour.</span></p>
<p><span style="font-weight: 400">Data needs context to make sense and create value, and this frame of reference will be realised through domain models of the world, with shared vocabularies to disambiguate concepts. In short a semantic layer. It is impossible to boil the ocean, which makes us rather lean toward a layered approach. </span></p>
<p><span style="font-weight: 400">All <a href="http://cognitive-edge.com/">complex systems</a> (or <a href="https://en.wikipedia.org/wiki/Complex_adaptive_system">complex adaptive system</a>, <strong>CAS</strong>) revolve around a set of autonomous agents, for example, cells in a human body or citizens in an urban city. The emergent behaviour in CAS is governed by self-organising principles. A City Information Architecture is by nature a CAS, and hence the design has to be resilient and coherent. </span></p>
<p><span style="font-weight: 400">What infrastructural dimensions should a smart city design build upon?</span></p>
<ul>
<li style="font-weight: 400"><b>Urban Environment</b><span style="font-weight: 400">, the physical spaces comprised of geodata means, register of cadastre (real-estate), roads and other </span><i><span style="font-weight: 400">things</span></i><span style="font-weight: 400"> in the landscape.</span></li>
<li style="font-weight: 400"><b>Movable Objects</b><span style="font-weight: 400">, with mobile sensing platforms capturing things like vehicles, traffic and more, in short, the dynamics of a city environment.</span></li>
<li style="font-weight: 400"><b>Human actor networks</b><span style="font-weight: 400">, the social economic mobility, culture and community in the habitat</span></li>
<li style="font-weight: 400"><b>Virtual Urban Systems</b><span style="font-weight: 400"> augmented and immersive platforms to model the present or envision future states of the city environment</span></li>
</ul>
<p><span style="font-weight: 400">Each of these organising systems and categories holds many different types of data, but the data flows also intertwine. Many of the </span><i><span style="font-weight: 400">things</span></i><span style="font-weight: 400"> described in the geospatial and urban environment domain, might be enveloped in a set of </span><a href="https://en.wikipedia.org/wiki/Building_information_modeling"><span style="font-weight: 400">building information models (BIM)</span></a><span style="font-weight: 400"> and </span><a href="https://en.wikipedia.org/wiki/Geographic_information_system"><span style="font-weight: 400">geographical information systems (GIS)</span></a>. The resource descriptions link the objects, moving from one building to a city block or area. Similar behaviour will be found in the movable object&#8217;s domain<i></i><span style="font-weight: 400"> because the agents moving around will by nature do so in the physical spaces. So when building information infrastructures, the design has to be able to cross-boundaries with linked-models for all useful concepts. One way to express this is through a city information model (CIM). </span></p>
<p><span style="font-weight: 400">When you add the </span><i><span style="font-weight: 400">human actor networks</span></i><span style="font-weight: 400"> layer to your data, things will become messy. In an urban system, there are many organisations and some of these act as public agencies to serve the citizens all through the life and business events. This socially knitted interaction model, use the </span><i><span style="font-weight: 400">urban environment</span></i><span style="font-weight: 400"> and in many cases <em>moveble</em></span><i><span style="font-weight: 400"> objects</span></i><span style="font-weight: 400">. The social life of information when people work together, co-act and collaborate, become the shared content continuum.</span><br />
<span style="font-weight: 400">Lastly, data from all the above-mentioned categories also feeds into the </span><i><span style="font-weight: 400">virtual urban system</span></i><span style="font-weight: 400">, that either augment the perceived city real environment, or the city information modelling used to create instrumental scenarios of the future state of the complex system.</span></p>
<h1><span style="font-weight: 400">Everything is deeply intertwingled</span></h1>
<p><span style="font-weight: 400">Connect </span><i><span style="font-weight: 400">people </span></i><span style="font-weight: 400">and </span><i><span style="font-weight: 400">things</span></i><span style="font-weight: 400"> using </span><i><span style="font-weight: 400">semantics</span></i><span style="font-weight: 400"> and </span><i><span style="font-weight: 400">artificial intelligence</span></i><span style="font-weight: 400"> (AI) companions. There will be no useful AI without a sustainable information architecture (IA). </span><a href="https://findwise.com/blog/interoperability-in-healthcare-using-open-standards/"><span style="font-weight: 400">Interoperability</span></a><span style="font-weight: 400"> on all levels is the prerequisite; systemic (technical and semantic),  organisational (process and climate). </span></p>
<p><span style="font-weight: 400">Only when we follow the approach of integration and the use of a semantic layer to glue together all the different types and models &#8211; thereby linking heterogeneous information and data from several sources to solve the data variety problem &#8211; are we able to develop an interoperable and sustainable City Information Model (CIM). </span></p>
<p><span style="font-weight: 400">Such model can not only be used inside one city or municipality &#8211; it should be used also to interlink and exchange data and information between cities as well as between cities and provinces, regions, countries and societal digitalisation transformation.</span></p>
<p><span style="font-weight: 400">A semantic layer completes the four-layered Data &amp; Content Architecture that usual systems have in place:</span></p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/05/semantic-layer.png"><img loading="lazy" class="alignnone size-full wp-image-5717" src="https://findwise.com/blog/wp-content/uploads/2018/05/semantic-layer.png" alt="semantic-layer" width="1142" height="676" srcset="https://findwise.com/blog/wp-content/uploads/2018/05/semantic-layer.png 1142w, https://findwise.com/blog/wp-content/uploads/2018/05/semantic-layer-300x178.png 300w, https://findwise.com/blog/wp-content/uploads/2018/05/semantic-layer-768x455.png 768w, https://findwise.com/blog/wp-content/uploads/2018/05/semantic-layer-1024x606.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/05/semantic-layer-500x296.png 500w" sizes="(max-width: 1142px) 100vw, 1142px" /></a></p>
<p><i><span style="font-weight: 400">Fig.: <a href="https://www.linkedin.com/pulse/four-layered-content-architecture-andreas-blumauer">Four layered content &amp; data architecture</a></span></i></p>
<p><span style="font-weight: 400">Use standards (as </span><a href="https://ec.europa.eu/isa2/home_en"><span style="font-weight: 400">ISA</span><span style="font-weight: 400">2</span></a><span style="font-weight: 400">), and meld them into contextual schemas and </span><a href="https://www.fiware.org/developers/data-models/"><span style="font-weight: 400">models</span></a><span style="font-weight: 400"> (ontologies), disambiguate concepts and link these with verbatim thesauri and taxonomies (i.e </span><a href="https://www.w3.org/2004/02/skos/"><span style="font-weight: 400">SKOS</span></a><span style="font-weight: 400">). Start making </span><a href="http://senseable.mit.edu/"><span style="font-weight: 400">sense</span></a><span style="font-weight: 400"> and let AI co-act as companions (</span><a href="https://www.nvidia.com/en-us/deep-learning-ai/industries/ai-cities/"><span style="font-weight: 400">Deep-learning AI</span></a><span style="font-weight: 400">) in the real and virtual smart city, applying semantic search technologies over various sources to provide new insights. Participation and engagement from all actor-networks will be the default value-chain, the drivers being new and cheaper, more efficient smart services, the building block for the </span><a href="https://www.cisl.cam.ac.uk/publications/sustainable-finance-publications/the-city-innovation-platform-guide-multi-sector-collaboration-resilience" class="broken_link"><span style="font-weight: 400">city innovation platform</span></a><span style="font-weight: 400">.</span></p>
<p>The recorded webinar and also the <a href="https://www.slideshare.net/flandqvist/smart-cities-no-ai-without-ia">slides presented</a></p>
<p><iframe width="584" height="329" src="https://www.youtube.com/embed/VMfYVeyGSRE?feature=oembed&#038;enablejsapi=1&#038;origin=https://findwise.com/blog" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></p>
<p><span style="font-weight: 400"> </span></p>
<p><a style="text-decoration: none" href="http://se.linkedin.com/in/fredriclandqvist" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Fredric Landqvist's LinkedIn profile" width="20" height="15" border="0" />Fredric Landqvist</span></a> <a href="http://www.emergentmeccano.com">research blog</a><br />
<a style="text-decoration: none" href="https://www.linkedin.com/in/peter-g-voisey-67752b23/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Peter Voisey's LinkedIn profile" width="20" height="15" border="0" />Peter Voisey</span></a><br />
<a style="text-decoration: none" href="https://www.linkedin.com/in/martinkaltenboeck/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Martin Kaltenböck's LinkedIn profile" width="20" height="15" border="0" />Martin Kaltenböck</span></a><br />
<a style="text-decoration: none" href="https://www.linkedin.com/in/sebastian-gabler-286ab546/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Sebastian Gabler's LinkedIn profile" width="20" height="15" border="0" />Sebastian Gabler</span></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/benevolent-sustainable-smart-city-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Analytical power at your fingertips with natural language and modern visualisation</title>
		<link>https://findwise.com/blog/analytical-power-at-your-fingertips-with-natural-language-and-modern-visualisation/</link>
					<comments>https://findwise.com/blog/analytical-power-at-your-fingertips-with-natural-language-and-modern-visualisation/#respond</comments>
		
		<dc:creator><![CDATA[Webteam]]></dc:creator>
		<pubDate>Thu, 17 May 2018 13:46:36 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5694</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/analytical-power-at-your-fingertips-with-natural-language-and-modern-visualisation/">Analytical power at your fingertips with natural language and modern visualisation</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Today we are all getting used to interactive dashboards and plots in self-service business intelligence (BI) solutions to drill down and slice our facts and figures. The market for BI tools has seen an increased competition recently with Microsoft Power &#8230; <a href="https://findwise.com/blog/analytical-power-at-your-fingertips-with-natural-language-and-modern-visualisation/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/analytical-power-at-your-fingertips-with-natural-language-and-modern-visualisation/">Analytical power at your fingertips with natural language and modern visualisation</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Today we are all getting used to interactive dashboards and plots in self-service business intelligence (BI) solutions to drill down and slice our facts and figures. The market for BI tools has seen an increased competition recently with Microsoft Power BI challenging proven solutions such as Tableau, Qlik, IBM Cognos, SAP Lumira and others. At the same time, it is hard to benchmark tools against each other as they all come with very similar features. <strong>Has the BI development saturated?</strong></p>
<p>Compared to how we are used to consume graphics and information, the BI approach to interactive analysis is somewhat different. For instance: a dashboard or report is typically presented in a printer-oriented flat layout on white background, weeks of user training is typically needed before “self-service” can be reached, and interactions are heavily click-oriented – you could almost feel it in your mouse elbow when opening the BI frontend.</p>
<p>On the other hand, when surfing top internet sites and utilizing social media, our interactions are centred around the search box and the natural interface of typing or speaking. Furthermore, there is typically no training needed to make use of Google, Facebook, LinkedIn, Pinterest, Twitter, etc. Through an intuitive interface we learn along the way. And looking at graphics and visualization, we can learn a lot from the gaming industry where players are presented with well-designed artwork – including statistics presented in an intuitive way to maximize the graphical impression.</p>
<p><a href="https://www.youtube.com/watch?v=C1qDDIzH5pg">Take a look at this live presentation to see how a visiual analysis using natural language can look like. </a></p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/05/screenshot007040.png" rel="attachment wp-att-5703"><img loading="lazy" class="aligncenter wp-image-5703 size-full" src="https://findwise.com/blog/wp-content/uploads/2018/05/screenshot007040.png" alt="screenshot007040" width="1920" height="1080" srcset="https://findwise.com/blog/wp-content/uploads/2018/05/screenshot007040.png 1920w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot007040-300x169.png 300w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot007040-768x432.png 768w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot007040-1024x576.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot007040-500x281.png 500w" sizes="(max-width: 1920px) 100vw, 1920px" /></a></p>
<h2><span lang="EN-GB">Rethink your business analytics</span></h2>
<p>It appears as if BI tools are sub optimized for a limited scope and use case. To really drive digitalization and make use of our full information potential, we need a new way of thinking for business analytics. Not just continuous development, rather a revolution to the business intelligence approach. Remember: e-mail was not a consequence of the continuous development of post offices and mail handling. We need to rethink business analytics.</p>
<p>At Findwise, we see that the future for business analytics involves:</p>
<ul>
<li>added value by <strong>enriching information</strong> with new unstructured sources,</li>
<li>utilizing the full potential of <strong>visualization</strong> and <strong>graphics</strong> to explore our information,</li>
<li>using <strong>natural language</strong> to <strong>empower</strong> colleagues to draw their own conclusions intuitively and secure</li>
</ul>
<p>&nbsp;</p>
<h4><strong>Enrich data</strong></h4>
<p>There is a lot of talk about data science today; how we can draw conclusions from our data and make predictions about the future. This power largely depends on the value in the data we possess. Enriching data is all about adding new value. The enrichment may include a multitude of sources, internal and external, for instance:</p>
<ul>
<li>detailed customer transaction logs</li>
<li>weather history and forecasts</li>
<li>geospatial data (locations and maps)</li>
<li>user tracking and streams</li>
<li>social media and (fake) news</li>
</ul>
<p>Comparing with existing data, a new data source could be orthogonal to the existing data and add a completely new understanding. Business solutions of today are often limited to highly structured information sources or information providers. There is a large power in unstructured, often untouched, information sources. However, it is not as straight forward as launching a data warehouse integration, since big data techniques are required to handle the volume, velocity and variety.</p>
<p>At Findwise, utilizing the unstructured data has always been the key in developing unique solutions for search and analytics. <strong>The power of our solutions lies in incorporating multiple sources online and continuously enrich with new aspects.</strong> For this we even developed our own framework, i3, with over hundred connectors for unstructured data sources. A modern search engine (or <a href="https://findwise.com/en/search-for-insight" class="broken_link">insight engine</a>) scales horizontally for big data applications and easily consumes billions of texts, logs, geospatial and other unstructured – as well as structured – data. This is where search meets analytics, and where all the enrichment takes place to add unique information value.</p>
<p>&nbsp;</p>
<h4><strong>Visually explore</strong></h4>
<p>As human beings we have very strong visual and cognitive abilities, developed over millions of years to distinguish complex patterns and scenarios. Visualization of data is all about packaging information in such a way that we can utilize our cognitive skills to make sense out of the noise. Great visualization and interaction unleash the human power of perception and derivation. It allows us make sense out of the complex world around us.</p>
<p>When it comes to computer visualization, we have seen strong development in the use of graphical processors (GPUs) for games but recently also for analytics – not the least in deep learning where powerful GPUs solve heavy computations. F<strong>or visualisation however, typical business intelligence tools today only use a minimal fraction of the total power of our modern devices.</strong> As a comparison: a typical computer game renders millions of pixels in 3D several times per second (even via the web browser). In a modern BI tool however, we may struggle to display 20 000 distinct points in a plot.</p>
<p>There are open standards and interfaces to fully utilize the graphical power of a modern display. Computer games often build on <a href="https://www.opengl.org/">OpenGL</a>  to interact with the GPU. In web browsers, a similar performance can be reached with <a href="https://www.khronos.org/webgl/">WebGL</a> and JavaScript libraries. Thus, this is not only about regular computers or installed applications, <a href="http://manpopex.us/">The Manhattan Population Explorer</a> (built with JavaScript on D3.js and Mapbox GL JS) is a notable example of an interactive and visually appealing analysis application that very well runs on a regular smart phone.</p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/05/price-over-time.png" rel="attachment wp-att-5696"><img loading="lazy" class="aligncenter wp-image-5696 size-full" src="https://findwise.com/blog/wp-content/uploads/2018/05/price-over-time.png" alt="price-over-time" width="1920" height="1080" srcset="https://findwise.com/blog/wp-content/uploads/2018/05/price-over-time.png 1920w, https://findwise.com/blog/wp-content/uploads/2018/05/price-over-time-300x169.png 300w, https://findwise.com/blog/wp-content/uploads/2018/05/price-over-time-768x432.png 768w, https://findwise.com/blog/wp-content/uploads/2018/05/price-over-time-1024x576.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/05/price-over-time-500x281.png 500w" sizes="(max-width: 1920px) 100vw, 1920px" /></a></p>
<p><em>Example from one of our prototypes: analysing the housing market – plotting 500 000 points interactively utilizing OpenGL.</em></p>
<p>Current analysis solutions and application built with advanced graphical analysis are typically <strong>custom made</strong> for a specific purpose and topic, as in the example above. This is very similar to how BI solutions were built before self-service BI came in to play – specific solutions hand crafted for a few use cases. In contrast to this, Open graphical libraries, incorporated as the core of visualizations, with inspiration from gaming art work, can spark a revolution to how we visually consume and utilize information.</p>
<p><a href="https://findwise.com/blog/wp-content/uploads/2018/05/screenshot014002.png" rel="attachment wp-att-5697"><img loading="lazy" class="aligncenter wp-image-5697 size-full" src="https://findwise.com/blog/wp-content/uploads/2018/05/screenshot014002.png" alt="screenshot014002" width="1920" height="1080" srcset="https://findwise.com/blog/wp-content/uploads/2018/05/screenshot014002.png 1920w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot014002-300x169.png 300w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot014002-768x432.png 768w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot014002-1024x576.png 1024w, https://findwise.com/blog/wp-content/uploads/2018/05/screenshot014002-500x281.png 500w" sizes="(max-width: 1920px) 100vw, 1920px" /></a></p>
<h4><strong>Natural language empowers</strong></h4>
<p>The process of interpreting and working with speech and text is referred to as Natural Language Processing (NLP). NLP interfaces are moving towards the default interface to interaction. For instance Google’s search engine can give you instant replies on questions such as <a href="https://www.google.com/search?q=weather+london+tomorrow">“weather London tomorrow</a>” and with Google Duplex (under development) NLP is used to <a href="http://www.bbc.com/news/av/technology-44049181/google-assistant-calls-to-make-appointment">automate phone calls making appointments for you</a>.  Other examples include the search box popping up as a central feature on many larger web sites and voice services such as Amazon Alexa, Microsoft Cortana, Apple Siri, etc.</p>
<p>When it comes to analysis tools we have seen some movements in this direction lately. In Power BI Service (web) Cortana can be activated to allow for <a href="https://docs.microsoft.com/en-us/power-bi/service-cortana-intro">simple Q&amp;A on your prepared reports</a>. Tableau has started talking about NLP for data exploration with “<a href="https://www.tableau.com/learn/webinars/nlp-approach-data-exploration">research prototypes you might see in the not too distant future</a>”. The clearest example in this direction is probably <a href="https://www.thoughtspot.com/">ThoughtSpot</a> built with a search-driven analytics interface. Although for most of the business analytics carried out today, clicking is still in focus and clicking is what is being taught on trainings. How can this be, when our other interactions with information move towards natural language interfaces? The key to move forward is to give NLP and advanced visualization a vital role in our solutions, allowing for an entirely natural interface.</p>
<p>Initially it may appear hard to know exactly what to type to get the data right. Isn’t training needed also with an NLP interface? <strong>This is where AI comes in</strong> to help us interpret our requests and provide us with smart feedback. Having a look at Google again, we continuously get recommendations, automatic spelling correction and lookup of synonyms to optimize our search and hits. <strong>With a modern NLP interface</strong>, we learn along the way as we utilize it. Frankly speaking though, a natural language interface is best suited for common queries that aren’t too advanced. For more advanced data munging and customized analysis, a data scientist skillset and environment may well be needed. However, the power of e.g. Scientific Python or the R language could easily be incorporated into an NLP interface, where query suggestions turn into code completion. Scripting is a core part of the data science workflow.</p>
<p>An analytical interface built around natural language helps direct focus and fine-tunes your analysis to arrive at intuitive facts and figures, explaining relevant business questions. This is all about <strong>empowering</strong> all users, friends and colleagues to draw their own conclusions and spread a data-driven mentality. Data science and machine learning techniques fit well into this concept to leverage deeper insights.</p>
<p>&nbsp;</p>
<h4><strong>Conclusion &#8211; Business data at everyone’s fingertips</strong></h4>
<p>We have highlighted the importance of <strong>enriching</strong> data with concern taken to <strong>unstructured data</strong> sources, demonstrated the importance of <strong>visual exploration</strong> to enable our cognitive abilities, and finally <strong>empowering</strong> colleagues to draw conclusions through a natural language interface.</p>
<p>Compared with the current state of the art for analysis and business intelligence tools, <strong>we stand before a paradigm shift</strong>. Standardized self-service tools built on clicking, basic graphics and the focus on structured data will be overrun by a new way of thinking analysis. We all want to create intuitive insights without the need of thorough training on how to use a tool. And we all want our insights and findings to be visually appealing. Seeing is believing. To communicate our findings, conclusions and decisions we need to show the <em>why</em>. Convincing. This is where advanced graphics and art will help us. Natural language is the interface we use for more and more services. It can easily be powered by voice as well. With a natural interface, anyone will learn to utilize the analytical power in the information and draw conclusions. Business data at everyone’s fingertips!</p>
<p>To experience our latest prototype where we demonstrate the concept of data enrichment, advanced visualization and natural language interfaces, take a look at this <a href="https://www.youtube.com/watch?v=C1qDDIzH5pg">live presentation</a>.</p>
<p>&nbsp;</p>
<p><em>Author: Fredrik Moeschlin, senior Data Scientist at Findwise</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/analytical-power-at-your-fingertips-with-natural-language-and-modern-visualisation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Trials &#038; Jubilations: the two sides of the GDPR coin</title>
		<link>https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/</link>
					<comments>https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/#respond</comments>
		
		<dc:creator><![CDATA[Fredric Landqvist]]></dc:creator>
		<pubDate>Mon, 26 Mar 2018 09:47:08 +0000</pubDate>
				<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Information quality]]></category>
		<category><![CDATA[Semantic]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5662</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/">Trials &amp; Jubilations: the two sides of the GDPR coin</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>We have all heard about the totally unhip GDPR and the potential wave of fines and lawsuits. The long arm of the law and it’s stick have been noted. Less talked about but infinitely more exciting is the other side. &#8230; <a href="https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/">Trials &amp; Jubilations: the two sides of the GDPR coin</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/fredriclandqvist/">Fredric Landqvist</a></p>
<p>We have all heard about the totally unhip GDPR and the potential wave of fines and lawsuits. The long arm of the law and it’s <b>stick</b> have been noted. Less talked about but infinitely more exciting is the other side. Turn over the coin and there’s a whole A-Z of organisational and employee <b>carrots</b>. How so?</p>
<p>Sign up to the joint <a href="https://attendee.gotowebinar.com/register/4327763918480021251">webinar</a> the 18th of April 3PM CET with <a href="http://www.smartlogic.com">Smartlogic</a> &amp; <a href="http://www.findwise.com">Findwise</a>, to find out more.</p>
<p><div id="attachment_5665" style="width: 3010px" class="wp-caption alignnone"><a href="https://findwise.com/blog/wp-content/uploads/2018/03/Signal-Boxes.jpg"><img aria-describedby="caption-attachment-5665" loading="lazy" class="size-full wp-image-5665" src="https://findwise.com/blog/wp-content/uploads/2018/03/Signal-Boxes.jpg" alt="https://flic.kr/p/fJD1eA" width="3000" height="1980" srcset="https://findwise.com/blog/wp-content/uploads/2018/03/Signal-Boxes.jpg 3000w, https://findwise.com/blog/wp-content/uploads/2018/03/Signal-Boxes-300x198.jpg 300w, https://findwise.com/blog/wp-content/uploads/2018/03/Signal-Boxes-768x507.jpg 768w, https://findwise.com/blog/wp-content/uploads/2018/03/Signal-Boxes-1024x676.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2018/03/Signal-Boxes-455x300.jpg 455w" sizes="(max-width: 3000px) 100vw, 3000px" /></a><p id="caption-attachment-5665" class="wp-caption-text">Signal Tools</p></div></p>
<p>We all leave digital trails behind us, trails about us. Others that have access to these trails can use our data and information. The new European<a href="https://www.eugdpr.org/"> General Data Protection Regulation (GDPR)</a> intends the usage of such Personal Identifiable Information (PII) to be correct and regulated, with the power to decide given to the individual.</p>
<p>Some organisations are wondering how on earth they can become GDPR compliant when they already have a business to run. But instead of a chore, setting a pathway to allow for some more principled digital organisational housekeeping can bring big organisational gains sooner rather than later.</p>
<p>Many enterprises are now beginning to realise the extra potential gains of having introduced new organisational principles to become compliant. The initial fear of painful change soon subsides when the better quality data comes along to make business life easier. With the further experience of new initiatives from new data analysis, NLP, deep learning, AI, comes the feeling:  why we didn’t we just do this sooner?</p>
<p>Most organisations have a system(s) in place holding PII data, even if getting the right data out in the right format remains problematical. The organisation of data for GDPR compliance can be best achieved so that it becomes transformed to be part of a semantic data layer. With such a layer, knowing all the related data from different sources you have on <i><span style="font-weight: 400">Joe Bloggs</span></i> becomes so much easier when he asks for a copy of the data you have about him. Such a <strong>semantic data layer</strong> will also bring other far-reaching and organisation-wide benefits.</p>
<p><div id="attachment_5671" style="width: 493px" class="wp-caption alignnone"><a href="https://findwise.com/blog/wp-content/uploads/2018/03/Semantic-Layer.png"><img aria-describedby="caption-attachment-5671" loading="lazy" class="size-full wp-image-5671" src="https://findwise.com/blog/wp-content/uploads/2018/03/Semantic-Layer.png" alt="Semantic Data Layer" width="483" height="918" srcset="https://findwise.com/blog/wp-content/uploads/2018/03/Semantic-Layer.png 483w, https://findwise.com/blog/wp-content/uploads/2018/03/Semantic-Layer-158x300.png 158w" sizes="(max-width: 483px) 100vw, 483px" /></a><p id="caption-attachment-5671" class="wp-caption-text">Semantic Data Layer</p></div></p>
<p>For example, heterogeneous data in different formats and from different sources can become unified for all sorts of new smart applications, new insights and new innovation that would have been previously unthinkable. Data can stay where it is… no need to change that relational database yet again because of a new type of data. The same information principles and technologies involved in keeping an eye on PII use, can also be used to improve processes or efficiencies and detect consumer behaviour or market changes.</p>
<p>But it’s not just the business operations that benefit, empowered employees become happier having the right information at hand to do their job. Something that is often difficult to achieve, as in many organisations, no one area “owns” search, making it is usually somebody else’s problem to solve. For the Google-loving employee, not finding stuff at work to help them in their job can be downright frustrating. Well ordered data (better still in a semantic layer) can give them the empowering results page they need. It’s easy to forget that Google only deals with the best structured and linked documentation, why shouldn&#8217;t we do the same in our organisations?</p>
<p>Just as the combination of (previously heterogeneous) datasets can give us new insights for innovation, we also observe that innovation increasingly comes in the form of external collaboration. Such collaboration of course increases the potential GDPR risk through data sharing, Facebook being a very current point in case. This brings in the need for organisational policy covering data access, the use and handling of existing data and any new (extra) data created through its use. Such policy should for example cover newly created personal data from statistical inference analysis.</p>
<p>While having a semantic layer may in fact make human error in data usage potentially more possible through increased access, it also provides a better potential solution to prevent misuse as metadata can be baked into the data to classify both information “sensitivity” and control user accessibility rights.</p>
<h1><span style="font-weight: 400">So how does one start?</span></h1>
<p>The first step is to apply some organising principles to any digital domain, be it in or outside the corporate walls [<a href="http://disciplineoforganizing.org/" class="broken_link"><span style="font-weight: 400">the discipline of organising</span></a>, <a href="http://people.ischool.berkeley.edu/~glushko/" class="broken_link">Robert Gluschko</a>] and to ask the key questions:</p>
<ol>
<li style="font-weight: 400"><span style="font-weight: 400">What is being organised?</span></li>
<li style="font-weight: 400"><span style="font-weight: 400">Why is it being organised?</span></li>
<li style="font-weight: 400"><span style="font-weight: 400">How much of it is being organised?</span></li>
<li style="font-weight: 400"><span style="font-weight: 400">When is it being organised?</span></li>
<li style="font-weight: 400"><span style="font-weight: 400">Where is it being organised?</span></li>
</ol>
<p>Secondly start small, apply organising principles by focusing on the low-hanging fruit: the already structured data within systems. The creation of quality data with added metadata in a semantic layer can have a magnetic effect within an organisation (build that semantic platform and they will come).</p>
<p>Step three: start being creative and agile.</p>
<h1>A case story</h1>
<p>A recent case, within the insurance industry reveals some cues to why these set of tools will improve signals and attention for becoming more compliant with regulations dealing with PII. Our client knew about a set of collections (file shares) where PII might be found. Adding search, and NLP/ML opened up the pandoras box with visual analytic tools. This is the simple starting point, finding i.e names or personal number concepts in the text. Second to this will be to add semantics, where industry standard terminologies and ontologies can further help define the meaning of things.</p>
<p>In all corporate settings, there exist both well-cultivated and governed collections of information resources, but usually also a massive unmapped terrain of content collections, where no one has a clue if there might be PII hidden amongst it. The strategy using a <b>semantic data layer</b> should always be combined with operations to narrowing down the collections to become part of the signalling system &#8211; it is generally not a good idea to boil the <i>whole-data-ocean</i> in the enterprise information environment. Rather through such work practices, workers are aware of the data hot-spots, the well-cultivated collections of information and that unmapped terrain. Having the additional notion of PII to contend with will make it that just bit easier to recognise those places where semantic enhancement is needed.</p>
<blockquote><p>not a good idea to boil the <i>whole-data-ocean</i></p></blockquote>
<p>Running with the same pipeline (with the option of further models to refine and improve certain data) will not only allow for the discovery of multiple occurrences of named entities (individuals) but also the narrative and context in which they appear.<br />
Having a targeted model &amp; terminology for the insurance industry will only go to improve this semantic process further. This process can certainly ease what may be currently manual processes or processes that don&#8217;t exist because of their manual pain: for example, finding sensitive textual information from documents within applications or from online textual chats. Developing such a smart information platform enables the smarter linking of other <b>things</b> from the model, such as service packages, service units / or organisational entities, spatial data as named places or timelines, or medical treatments, things perhaps currently you have less control over.</p>
<p>There’s not much time before the 25th May and the new GDPR, but we’ll still be here afterwards to help you with a compliance burden or a creative pathway, depending on your outlook.</p>
<p>Alternatively sign up to the joint <a href="https://attendee.gotowebinar.com/register/4327763918480021251">webinar</a> the 11th of April 3PM CET with <a href="http://www.smartlogic.com">Smartlogic</a> &amp; <a href="http://www.findwise.com">Findwise</a>, to find out more.</p>
<p><a style="text-decoration: none" href="http://se.linkedin.com/in/fredriclandqvist" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Fredric Landqvist's LinkedIn profile" width="20" height="15" border="0" />Fredric Landqvist</span></a> <a href="http://www.emergentmeccano.com">research blog</a><br />
<a style="text-decoration: none" href="https://www.linkedin.com/in/peter-g-voisey-67752b23/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View Peter Voisey's LinkedIn profile" width="20" height="15" border="0" />Peter Voisey</span></a><br />
<a style="text-decoration: none" href="https://www.linkedin.com/in/jamesraymorris/" class="broken_link"><span style="font: 80% Arial,sans-serif;color: #0783b6"><img loading="lazy" style="vertical-align: middle" src="https://static.licdn.com/scds/common/u/img/webpromo/btn_in_20x15.png" alt="View James Morris's LinkedIn profile" width="20" height="15" border="0" />James Morris</span></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/trials-jubilations-two-sides-gdpr-coin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Major highlights from Elastic{ON} 2018 &#8211; Findwise reporting</title>
		<link>https://findwise.com/blog/news-elasticon-2018/</link>
					<comments>https://findwise.com/blog/news-elasticon-2018/#respond</comments>
		
		<dc:creator><![CDATA[Webteam]]></dc:creator>
		<pubDate>Mon, 05 Mar 2018 11:59:43 +0000</pubDate>
				<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Elastic]]></category>
		<category><![CDATA[Enterprise Search]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5653</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/news-elasticon-2018/">Major highlights from Elastic{ON} 2018 &#8211; Findwise reporting</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Two Elastic fans have just returned from San Francisco and the Elastic{ON} 2018 conference. With almost 3.000 participants this year Elastic{ON} is the biggest Elastic conference in the world. Findwise regularly organises events and meetups, covering among other topics Elastic. &#8230; <a href="https://findwise.com/blog/news-elasticon-2018/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/news-elasticon-2018/">Major highlights from Elastic{ON} 2018 &#8211; Findwise reporting</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Two Elastic fans have just returned from San Francisco and the Elastic{ON} 2018 conference. With almost 3.000 participants this year Elastic{ON} is the biggest Elastic conference in the world.</p>
<p>Findwise regularly organises events and meetups, covering among other topics Elastic. <a href="https://findwise.com/en/findwise-events">Keep an eye for an event close to you.</a></p>
<p>Here are some of the main highlights from Elastic{ON} 2018.</p>
<p>Let’s start with the biggest announcement of them all, <strong>Elastic is opening the source code </strong>of the XPack. This mean that you now not only will be able to access the Elastic stack source code, but also the subscription-based code of XPack that up until now have been inaccessible. This opens the opportunity for you as a developer to contribute back code.</p>
<p><a href="https://findwise.com/blog/news-elasticon-2018/news-elasticon-2018/" rel="attachment wp-att-5655"><img loading="lazy" class="aligncenter size-full wp-image-5655" src="https://findwise.com/blog/wp-content/uploads/2018/03/news-elasticon-2018.jpg" alt="news-elasticon-2018" width="2016" height="1512" srcset="https://findwise.com/blog/wp-content/uploads/2018/03/news-elasticon-2018.jpg 2016w, https://findwise.com/blog/wp-content/uploads/2018/03/news-elasticon-2018-300x225.jpg 300w, https://findwise.com/blog/wp-content/uploads/2018/03/news-elasticon-2018-768x576.jpg 768w, https://findwise.com/blog/wp-content/uploads/2018/03/news-elasticon-2018-1024x768.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2018/03/news-elasticon-2018-400x300.jpg 400w" sizes="(max-width: 2016px) 100vw, 2016px" /></a></p>
<p>&nbsp;</p>
<p><strong>Data rollups</strong> is a great new feature for anyone with the need to look at old data but feel the storage costs are too high. With rollups only predetermined metrics and terms will be stored. Still allowing you to analyze these dimensions of your data but no longer being able to view the individual documents.</p>
<p><strong>Azure monitoring</strong> available in Xpack Basic. Elastic will in an upcoming 6.x release an Azure Monitoring Module, which will consist of a bundle of Kibana dashboards and make it really easy to get started exploring your Azure infrastructure. The monitoring module will be released as part of the XPack basic version – in other words, it will be free to use.</p>
<p><strong>Forecasting</strong> was the big new thing in X-packs Machine learning component. As the name suggest the machine learning module can now not only spot anomalies in your data but also predict how it will change in the future.</p>
<p><strong>Security in Kibana</strong> will get an update to make it work more like the Security module in Elasticsearch. This will also mean that one of the most requested security questions for Kibana will be resolved, giving users access to only some dashboards.</p>
<p>Dashboard are great and a fundamental part of Kibana but sometimes you want to present your data in more dynamic ways with less focus on data density. This is where <a href="https://www.elastic.co/blog/canvas-tech-preview"><strong>Canvas</strong> </a>comes in. Canvas is a new Kibana module to produce infographics rather than dashboards but still using live data from Elasticsearch.</p>
<p><strong>Monitoring of Kubernetes and Docker containers</strong> will be made a lot easier with the Elastic stack. A new infra component will be created just for this growing use case. This component will be powered by data collected by Beats which now also has an auto discovery functionality within Kubernetes. This will give an overview of not only your Kubernetes cluster but also the individual containers within the cluster.</p>
<p><strong>Geo</strong> capabilities within Kibana will be extended to support multiple map layers. This will make it possible to do more kinds of visualizations on maps. Furthermore, work is being done on supporting not only Geo points but also shapes.</p>
<p>One problem some have had with maps is that you need access to the Elastic map service and if you deploy the Elastic stack within a company network this might not be reachable. To solve this work is being done to make it possible to deploy the Elastic maps service locally.</p>
<p><a href="https://www.elastic.co/about/press/elastic-acquires-saas-site-search-leader-swiftype">Elastic acquired SaaS solution <strong>Swiftype</strong></a> last year. Since then Swiftype have been busy developing even more features to its portfolio. At current Swiftype comes in 3 different version:</p>
<ul>
<li>Swiftype site Search – An out of the box (OOTB) solution for website search</li>
<li>Swiftype Enterprise Search – Currently in beta version, but with focus on internal, cloud based datasources (for now) like G Suite, Dropbox, O365, Zendesk etc.</li>
<li>Swiftype App Search – A set of API’s and developer tools that makes it quick to build user faced search applications</li>
</ul>
<p>&nbsp;</p>
<p>Elastic has also started to look at <strong>replacing the Zen protocol </strong>used to keep clusters in sync. Currently a PoC is being made to try to create a consensus algorithm that follow modern academic best practices. With the added benefit to remove the minimum master nodes setting, currently one of the most common pitfalls when running Elasticsearch in production.</p>
<p><strong>ECE </strong>– Elastic Cloud Enterprise is big focus for Elastic and make it possible for customers to setup a fully service-based search solution being maintained by Elastic.</p>
<p>If you are interested in hearing more about Elastic or Findwise visit <a href="https://findwise.com/en/technology/elastic-elasticsearch">https://findwise.com/en/technology/elastic-elasticsearch</a></p>
<p><a href="https://findwise.com/blog/news-elasticon-2018/elasticon-2018/" rel="attachment wp-att-5654"><img loading="lazy" class="aligncenter size-full wp-image-5654" src="https://findwise.com/blog/wp-content/uploads/2018/03/elasticon-2018.jpg" alt="elasticon 2018" width="2016" height="1512" srcset="https://findwise.com/blog/wp-content/uploads/2018/03/elasticon-2018.jpg 2016w, https://findwise.com/blog/wp-content/uploads/2018/03/elasticon-2018-300x225.jpg 300w, https://findwise.com/blog/wp-content/uploads/2018/03/elasticon-2018-768x576.jpg 768w, https://findwise.com/blog/wp-content/uploads/2018/03/elasticon-2018-1024x768.jpg 1024w, https://findwise.com/blog/wp-content/uploads/2018/03/elasticon-2018-400x300.jpg 400w" sizes="(max-width: 2016px) 100vw, 2016px" /></a></p>
<p>&nbsp;</p>
<p><em>Writers: Mads Elbrond, regional manager Findwise Denmark &amp; Torsten Landergren, senior expert consultant</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/news-elasticon-2018/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>XRANK in SharePoint Search REST API</title>
		<link>https://findwise.com/blog/xrank-sharepoint-search-rest-api/</link>
					<comments>https://findwise.com/blog/xrank-sharepoint-search-rest-api/#respond</comments>
		
		<dc:creator><![CDATA[Michal Guzowski]]></dc:creator>
		<pubDate>Mon, 29 Jan 2018 11:05:14 +0000</pubDate>
				<category><![CDATA[FAST]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5644</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/xrank-sharepoint-search-rest-api/">XRANK in SharePoint Search REST API</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/michal-guzowski/">Michal Guzowski</a></p>
<p>I work with SharePoint Search from some time now. Since many clients need assistance on Search optimization KQL is one of my best mates. Especially XRANK is very powerful function that leverage KQL capabilities but also enlarge its complexity. Anyway &#8230; <a href="https://findwise.com/blog/xrank-sharepoint-search-rest-api/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/xrank-sharepoint-search-rest-api/">XRANK in SharePoint Search REST API</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/michal-guzowski/">Michal Guzowski</a></p>
<p>I work with SharePoint Search from some time now. Since many clients need assistance on Search optimization KQL is one of my best mates. Especially XRANK is very powerful function that leverage KQL capabilities but also enlarge its complexity. Anyway I feel quite sure about what we can achieve using KQL and how. However last week a colleague of mine asked me about what is proper syntax of XRANK in REST search query…and I was like &#8220;emmm…&#8221;.</p>
<p>There are many not obvious questions &#8211; which characters need to be encoded? Is the syntax the same as in common KQL query?</p>
<p>I did quick documentation check as well as googling for an answer but there was no satisfying results at all (if there is no answer in Stack Overflow the web contains no answer).</p>
<p>So this post is about clarification for XRANK syntax in REST API calls.</p>
<h1>Use Search Query Tool</h1>
<p>The old sentence says &#8220;Do not break open doors&#8221;. That&#8217;s why I did not investigate topic by myself trying different REST queries to SP Search. Instead I used great great great tool called <a href="https://github.com/SharePoint/PnP-Tools/tree/master/Solutions/SharePoint.Search.QueryTool">Search Query Tool</a>. It really makes your work with search easier and faster. You can build any kind of KQL query in it and it will be translated to REST query because it uses it to communicate with SharePoint.</p>
<p id="gHYBYvK"><img loading="lazy" class="wp-image-339 aligncenter" src="http://itgoat.pl/wp-content/uploads/2018/01/img_5a68bab1dc2b7.png" alt="" width="796" height="567" /></p>
<p>So for instance if you want to execute following KQL query</p>
<p>*  XRANK(cb=1) Position:Manager</p>
<p>Its REST equivalent will be:</p>
<p>&lt;SearchEndpointURL&gt;?querytext=&#8217;*+XRANK(cb%3d1)+Position:Manager&#8217;</p>
<p>As you can see syntax is the same as in common KQL query however &#8216;=&#8217; character has been encoded to URI format in order to be properly understood by browser and endpoint and any spaces has been replaced by &#8220;+&#8221;.</p>
<h1>Complex XRANK queries</h1>
<p>Remember that in order to build you must remember about proper use of parenthesis. For instance if you want to make multiple XRANK boosts you need to arrange them in following way:</p>
<p>(SearchQuery XRANK(cb=1) condition1) XRANK(cb=1) condition2</p>
<p>In other words, if you want to add boosting for position AND for date freshness your KQL will look like below:</p>
<p>(* XRANK(cb=1) Position:Manager) XRANK(cb=0.5) LastModifiedTime&gt;{Today-365}</p>
<p>and your REST query text will be like following:</p>
<p>querytext='(*+XRANK(cb%3d1)+Position:Manager)+XRANK(cb%3d0.5)+LastModifiedTime&gt;{Today-30}&#8217;</p>
<p>which gives you following results:</p>
<ul>
<li>results older than 30 days and for person that position does not contain &#8220;Manager&#8221; in its name will get 0 ranking points</li>
<li>results modified less than 30 days ago and for person that position does contain &#8220;Manager&#8221; in its name will get 0.5 ranking points</li>
<li>results older than 30 days and for person that position does contain &#8220;Manager&#8221; in its name will get 1 ranking points</li>
<li>results modified less than 30 days ago and for person that position does not contain &#8220;Manager&#8221; in its name will get 1.5 ranking points</li>
</ul>
<p>&nbsp;</p>
<p>Hope it helps you in using XRANK and KQL in REST API queries.</p>
<p>&nbsp;</p>
<p>Thanks &amp; have a great day!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/xrank-sharepoint-search-rest-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to execute ANY SharePoint powershell command programmatically using C#</title>
		<link>https://findwise.com/blog/execute-sharepoint-powershell-command-programmatically-using-c/</link>
					<comments>https://findwise.com/blog/execute-sharepoint-powershell-command-programmatically-using-c/#respond</comments>
		
		<dc:creator><![CDATA[Michal Guzowski]]></dc:creator>
		<pubDate>Thu, 25 Jan 2018 09:52:35 +0000</pubDate>
				<category><![CDATA[Sharepoint]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5642</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/execute-sharepoint-powershell-command-programmatically-using-c/">How to execute ANY SharePoint powershell command programmatically using C#</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/michal-guzowski/">Michal Guzowski</a></p>
<p>In one of my projects my team faced following challenges: How to add query rules programmatically using C# How to update thesaurus programmatically using C# I tried to find information in official documentation but it was not very helpful neither &#8230; <a href="https://findwise.com/blog/execute-sharepoint-powershell-command-programmatically-using-c/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/execute-sharepoint-powershell-command-programmatically-using-c/">How to execute ANY SharePoint powershell command programmatically using C#</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/michal-guzowski/">Michal Guzowski</a></p>
<p>In one of my projects my team faced following challenges:</p>
<ul>
<li>How to add query rules programmatically using C#</li>
<li>How to update thesaurus programmatically using C#</li>
</ul>
<p>I tried to find information in official documentation but it was not very helpful neither was googling.</p>
<h1>Powershell cmdlets to c# assembly mapping</h1>
<p>In my team we were thinking what to do in this situation and one of my colleagues came with brilliant idea &#8211; he searched for PowerShell cmdlet in file explorer with searching in files content option turned on.</p>
<p>Result? What he found was exactly what we were looking for.</p>
<p>In location &#8220;C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\CONFIG\PowerShell\Registration&#8221; there is file named OSSSearchCmdlets.xml.</p>
<p>What it contains is xml structure with following structure:</p>
<p>&lt;ps:Cmdlet&gt;</p>
<p>&lt;ps:VerbName&gt;Get-SPEnterpriseSearchCrawlContentSource&lt;/ps:VerbName&gt;</p>
<p>&lt;ps:ClassName&gt;Microsoft.Office.Server.Search.Cmdlet.GetSearchCrawlContentSource&lt;/ps:ClassName&gt;</p>
<p>&lt;ps:HelpFile&gt;Microsoft.Office.Server.Search.dll-help.xml&lt;/ps:HelpFile&gt;</p>
<p>&lt;/ps:Cmdlet&gt;</p>
<p>&nbsp;</p>
<p>My eyes see this just as below:</p>
<p>&lt;PowershellToAssembllyMapping&gt;</p>
<p>&lt;PowerShellCmdName&gt;What-I-Have&lt;/PowerShellCmdName&gt;</p>
<p>&lt;C#NameAndLocation&gt;What-I-Am-Looking-For&lt;/C#NameAndLocation&gt;</p>
<p>&lt;Whatever&gt;Whatever.xml&lt;/Whatever&gt;</p>
<p>&lt;/PowershellToAssembllyMapping&gt;</p>
<h1>Maps for Search, WSS and many more</h1>
<p>OSSSearchCmdlets.xml file contains ps cmdlets to .NET assemblies mapping only for SharePoint Search.</p>
<p>But in the same location there is also another file called WSSCmdlet.xml that contains all kind of cmdlets mapping like</p>
<ul>
<li>Enable-SPFeature</li>
<li>New-SPContentDatabase</li>
<li>Get-SPFarm</li>
<li>Etc.</li>
</ul>
<p>Shortly everything that you can do with SharePoint Application using PowerShell.</p>
<p>&nbsp;</p>
<p>If you just want to quickly check what those files contains I&#8217;ve uploaded them to my github. I put there also more files like for Reporting Services, Workflows etc. You can check it <a href="https://github.com/Aproximation/SharePointFiles/tree/master/CmdletsMapping">here</a>.</p>
<p>Have you found useful this tip? Maybe you know alternative way? Share it in comments!</p>
<p>Thanks &amp; Have a great day! <img src="https://s.w.org/images/core/emoji/13.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p id="RRpHglZ">
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/execute-sharepoint-powershell-command-programmatically-using-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reflection… is like violence</title>
		<link>https://findwise.com/blog/reflection-is-like-violence/</link>
					<comments>https://findwise.com/blog/reflection-is-like-violence/#comments</comments>
		
		<dc:creator><![CDATA[Łukasz Wójcik]]></dc:creator>
		<pubDate>Fri, 29 Dec 2017 12:57:17 +0000</pubDate>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[reflection]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5632</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/reflection-is-like-violence/">Reflection… is like violence</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/lukasz-wojcik/">Łukasz Wójcik</a></p>
<p>&#8220;If it doesn&#8217;t solve your problems, you are probably not using enough of it&#8221; Introduction What is Reflection? You can think of your class like it is your body. The code contained in it doesn&#8217;t &#8220;know&#8221; anything about its contents &#8230; <a href="https://findwise.com/blog/reflection-is-like-violence/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/reflection-is-like-violence/">Reflection… is like violence</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/lukasz-wojcik/">Łukasz Wójcik</a></p>
<p>&#8220;If it doesn&#8217;t solve your problems, you are probably not using enough of it&#8221;</p>
<h1>Introduction</h1>
<p>What is Reflection?</p>
<p>You can think of your class like it is your body. The code contained in it doesn&#8217;t &#8220;know&#8221; anything about its contents (unless it&#8217;s statically referenced, but I wouldn&#8217;t consider it &#8220;knowing about&#8221;), just like you don&#8217;t know what is inside your body.</p>
<p>The Reflection is then like an encyclopedia of a human body that contains all the information about it. You can use it to discover all the information about all your body parts.</p>
<h1>So, what is that Reflection in computer programming?</h1>
<p>The Reflection is a <strong>mechanism</strong> that allows you to discover the information about what your class is made of.</p>
<p>You can enumerate in the runtime through <strong>Properties</strong>, <strong>Methods</strong>, <strong>Events</strong> and <strong>Fields</strong>, no matter if they are static (Shared in Visual Basic) or instance, public or non-public.</p>
<p>But it does not limit you to discover information about only your classes. You can actually get the information about all the classes currently loaded into your application domain.</p>
<p>This means, Reflection gives you access to the places you can&#8217;t get to in a &#8220;normal&#8221; way.</p>
<h1>The purpose of using reflection</h1>
<p>Some say that there&#8217;s no point in getting access to class members through Reflection because:</p>
<ul>
<li>Public members are accessible in the &#8220;normal&#8221; way, so using Reflection just breaks the strong typing – the compiler will no longer tell you if you are doing something wrong;</li>
<li>Accessing non-public members is just hacking.</li>
</ul>
<p>They may be right, in both cases, but</p>
<ul>
<li>Sometimes it&#8217;s way more convenient to let the program discover members in runtime so we don&#8217;t need to explicitly access them one by one, it&#8217;s more refactoring-proof, sometimes it&#8217;s the only way to implement a well-known design pattern;</li>
<li>And sometimes, hacking is the only reasonable way of achieving a goal.</li>
</ul>
<p>Still in doubt? Let&#8217;s take a look at some examples below that describe when to use Reflection and get a profit and when it&#8217;s more like a bad practice…</p>
<h1><strong><span style="text-decoration: underline">Use-case 1: Enumerate your own members</span></strong></h1>
<p>One of the most popular use cases of Reflection is when you have to serialize your class and send such prepared data over the net e.g. using JSON format. A <strong>serializer</strong> (a class containing one essential method responsible for creating a data ready to send out of your class object and probably second method to restore the data back to your class object) does nothing else than enumerate through all the properties contained by the class and reads all the data from the class object and then formats it to prepare desired format (such as JSON).</p>
<h2>Static typing approach – specify properties explicitly when assembling the output string</h2>
<p>Now imagine you have to serialize a class without using the reflection. Let&#8217;s take a look at the example below:</p>
<p>Suppose we have a model class</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public </span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue"><span style="color: black"><span style="color: blue"><span style="color: black"><span style="color: blue">class<span style="color: black"> SampleClass</span></span></span></span></span></span></span>
{
    <span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public int <span style="color: #000000">Id {</span> get<span style="color: #000000">;</span> set<span style="color: #000000">; }</span></span></span>
    <span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public string <span style="color: #000000">Name {</span> get<span style="color: #000000">;</span> set<span style="color: #000000">; }</span></span></span>
}</pre>
<p>And we want to serialize an instance of this class to a comma separated string.</p>
<p>Sounds simple, so let&#8217;s do it. We create a serializer class:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">static<span style="color: black"> <span style="color: blue">class<span style="color: black"> <span style="color: #2b91af">SampleClassSerializer
</span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue"><span style="color: black"><span style="color: blue">static<span style="color: black"> <span style="color: blue">string<span style="color: black"> Serialize(<span style="color: #2b91af">SampleClass<span style="color: black"> instance)
    </span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
        </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> <span style="color: #a31515">$"<span style="color: black">{obj.Id}<span style="color: #a31515">,<span style="color: black">{obj.Name}<span style="color: #a31515">"<span style="color: black">;
</span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">    }
</span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>Looks simple and straightforward.</p>
<p>But what if we need to add a property to our class? What if we have to serialize another class? All these operations require to change the serializer class which involves additional frustrating work that needs to be done each time something changes in the model class.</p>
<h2>Reflection approach – enumerate properties automatically when assembling the output string</h2>
<p>How to do it properly, then?</p>
<p>We create a seemingly bit more complicated serializer method:</p>
<p>&nbsp;</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: green"><span style="color: black"><span style="color: #2b91af"><span style="color: green">//Make the method generic so object of any class can be passed.
</span></span></span>//Optionally constrain it so only object of a class specified in a constraint,
</span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: green">//a class derived from a class specified in a constraint
</span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: green">//or a class or an interface implementing an interface specified in a constraint can be passed.
</span></span><span style="color: blue">public<span style="color: black"> <span style="color: blue">static<span style="color: black"> <span style="color: blue">string<span style="color: black"> Serialize&lt;<span style="color: #2b91af">T<span style="color: black">&gt;(<span style="color: #2b91af">T<span style="color: black"> obj) <span style="color: blue">where<span style="color: black"> <span style="color: #2b91af">T<span style="color: black"> : <span style="color: #2b91af">SampleClass
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    <span style="color: #2b91af"><span style="color: black"><span style="color: green">//Get System.Type that the passed object is of.</span></span></span>
    <span style="color: green">//An object of System.Type contains all the information provided by the Reflection mechanism we need to serialize an object.</span>
    </span><span style="color: black;font-family: Consolas;font-size: 9pt">System.<span style="color: #2b91af">Type<span style="color: black"> type = obj.GetType();

    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #2b91af"><span style="color: black"><span style="color: green">//Get an IEnumerable of System.Reflection.PropertyInfo containing a collection of information about every discovered property.
    </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #2b91af">IEnumerable<span style="color: black">&lt;System.Reflection.<span style="color: #2b91af">PropertyInfo<span style="color: black">&gt; properties = type.GetProperties()
    </span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue"><span style="color: black"><span style="color: #2b91af"><span style="color: black"><span style="color: blue"><span style="color: black"><span style="color: green">//Filter properties to ones that are not decorated with Browsable(false) attribute
    </span></span></span></span></span></span></span><span style="color: green">//in case we want to prevent them from being discovered be the serializer.</span></span>
        <span style="color: black;font-family: Consolas;font-size: 9pt">.Where(property =&gt; property.GetCustomAttributes(<span style="color: blue">false<span style="color: black">).OfType&lt;<span style="color: #2b91af">BrowsableAttribute<span style="color: black">&gt;().FirstOrDefault()?.Browsable ?? <span style="color: blue">true<span style="color: black">);

    </span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> <span style="color: blue">string<span style="color: black">.Join(<span style="color: #a31515">","<span style="color: black">, <span style="color: green">//Format a comma separated string.
        </span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">properties.Select(property =&gt; <span style="color: green">//Enumerate through discovered properties.
        </span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
            </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue"><span style="color: black"><span style="color: green">//Get the value of the passed object's property.
            </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: green">//At this point we don't know the type of the property but we don't care about it,
            </span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: green">//because all we want to do is to get its value and format it to string.
            </span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">object<span style="color: black"> value = property.GetValue(obj);

            </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue"><span style="color: black"><span style="color: green">//Return value formatted to string. If a custom formatting is required,
            </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue"><span style="color: black"><span style="color: green">//</span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue"><span style="color: black"><span style="color: green">in this simple example the type of the property should override the Object.ToString() method.
            </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> value.ToString();
        </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}));
</span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>The example above shows that adding a few simple instructions to the serializer makes us we can virtually forget about it. Now we can add, delete or change any of the properties, we can create new classes and still Reflection used in the serializer will still discover all the properties we need for us.</p>
<p>With this approach all the changes we make to the class are automatically reflected by the serializer and the way of changing its behavior for certain properties is to decorate them with appropriate attributes.</p>
<p>For example, we add a property to our model class we don&#8217;t want to be serialized. We can use the <span style="color: #2b91af;font-family: Consolas;font-size: 9pt">BrowsableAttribute</span> to achieve that. Now our class will look like this:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">class<span style="color: black"> <span style="color: #2b91af">SampleClass
</span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">int<span style="color: black"> Id { <span style="color: blue">get<span style="color: black">; <span style="color: blue">set<span style="color: black">; }

    </span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">string<span style="color: black"> Name { <span style="color: blue">get<span style="color: black">; <span style="color: blue">set<span style="color: black">; }

    </span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">[<span style="color: #2b91af">Browsable<span style="color: black">(<span style="color: blue">false<span style="color: black">)]
    </span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">object<span style="color: black"> Tag { <span style="color: blue">get<span style="color: black">; <span style="color: blue">set<span style="color: black">; }
</span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>Note that after <span style="color: black;font-family: Consolas;font-size: 9pt">GetProperties</span> method in serializer we are using Where method to filter out properties that have <span style="color: #2b91af;font-family: Consolas;font-size: 9pt">Browsable</span> attribute specified and set to <span style="color: blue;font-family: Consolas;font-size: 9pt">false</span>. This will prevent newly added property <span style="color: black;font-family: Consolas;font-size: 9pt">Tag</span> (with <span style="color: black"><span style="font-family: Consolas;font-size: 9pt">[<span style="color: #2b91af">Browsable<span style="color: black">(<span style="color: blue">false<span style="color: black">)]</span></span></span></span></span>) from being serialized.</span></p>
<h1><strong><span style="text-decoration: underline">Use-case 2: Enumerate class&#8217; methods</span></strong></h1>
<p>This is an academic example. Suppose we are taking a test at a university where our objective is to create a simple calculator that processes two decimal numbers. We&#8217;ve been told that to pass the test, the calculator must perform <strong>addition</strong> and <strong>subtraction</strong> operations.</p>
<p>So we create the following Form:</p>
<p><img src="https://findwise.com/blog/wp-content/uploads/2018/01/011118_1526_Reflectioni1.png" alt="" /></p>
<p>There are two rows, each one uses different approach to the problem. The upper row uses common &#8220;academic&#8221; approach which involves the <span style="color: blue;font-family: Consolas;font-size: 9pt">switch</span> statement. The lower row uses the <strong>Reflection</strong>.</p>
<p>The upper row consist of following controls (from left to right): <span style="color: black;font-family: Consolas;font-size: 9pt">numericUpDown1, comboBox1, numericUpDown2, button1, label1<br />
</span></p>
<p>The lower row consist of following controls (from left to right): <span style="color: black;font-family: Consolas;font-size: 9pt">numericUpDown3, comboBox2, numericUpDown4, button2, label2</span></p>
<p>In a real case we would create only one row.</p>
<h2>Static typing approach – use the switch statement to decide which method to use based on user input</h2>
<p>Next, to make it properly, we create a class containing some static arithmetic methods that will do some math for us:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">class<span style="color: black"> <span style="color: #2b91af">Calc
</span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">static<span style="color: black"> <span style="color: blue">decimal<span style="color: black"> Add(<span style="color: blue">decimal<span style="color: black"> x, <span style="color: blue">decimal<span style="color: black"> y)
    </span></span></span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
        </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> x + y;
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}

    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">static<span style="color: black"> <span style="color: blue">decimal<span style="color: black"> Subtract(<span style="color: blue">decimal<span style="color: black"> x, <span style="color: blue">decimal<span style="color: black"> y)
    </span></span></span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
        </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> x - y;
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}
</span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>And then we are leveraging our newly created class. Since it&#8217;s an academic test, we don&#8217;t want to waste precious time on thinking how to do it properly, so we are choosing the &#8220;switch&#8221; approach:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">void<span style="color: black"> button1_Click(<span style="color: blue">object<span style="color: black"> sender, <span style="color: #2b91af">EventArgs<span style="color: black"> e)
</span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">switch<span style="color: black"> (comboBox1.SelectedItem)
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
        </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">case<span style="color: black"> <span style="color: #a31515">"+"<span style="color: black">:
            </span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">label1.Text = <span style="color: #2b91af">Calc<span style="color: black">.Add(numericUpDown1.Value, numericUpDown2.Value).ToString();
            </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">break<span style="color: black">;

        </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">case<span style="color: black"> <span style="color: #a31515">"-"<span style="color: black">:
            </span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">label1.Text = <span style="color: #2b91af">Calc<span style="color: black">.Subtract(numericUpDown1.Value, numericUpDown2.Value).ToString();
            </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">break<span style="color: black">;

        </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">default<span style="color: black">:
            </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">break<span style="color: black">;
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}
</span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>Plus WinForms Designer generated piece of code that populates the operation combobox:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">this<span style="color: black">.comboBox1.Items.AddRange(<span style="color: blue">new<span style="color: black"> <span style="color: blue">object<span style="color: black">[] 
{
    </span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #a31515">"+"<span style="color: black">,
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #a31515">"-"
<span style="color: black">}); </span></span></span></pre>
<p>The code is pretty simple and self-explanatory.</p>
<p>But then, the lecturer says that if we want an A grade, the calculator must perform multiplication and division operations as well, otherwise, we will get B grade at most.</p>
<p>Additional <strong>hazard</strong> (by hazard I mean a potential threat that may in some circumstances lead to occurrence of unhandled exception or other unexpected behavior) in this approach is that we are using &#8220;magic constants&#8221;, the <span style="color: #a31515"><span style="font-family: Consolas;font-size: 9pt">&#8220;+&#8221;<span style="color: black">,<span style="color: #a31515">&#8220;-&#8221; </span></span></span><span style="color: #000000">strings.</span></span> Note that for each arithmetic operation one instance of the string is generated by the designer and another instance is used in each <span style="color: blue;font-family: Consolas;font-size: 9pt">case</span> <span style="color: #000000">statement.</span></p>
<p>If by any reason we decide to change one instance, the other one will remain unchanged and there&#8217;s even no chance that <strong>IntelliSense</strong> will catch such misspell and for compiler everything is fine.</p>
<p>But, apart from that, let&#8217;s hope that the lecturer will like the <span style="color: #a31515"><span style="font-family: Consolas;font-size: 9pt">&#8220;+&#8221;<span style="color: black">,<span style="color: #a31515">&#8220;-&#8220;</span></span></span><span style="color: #000000"> strings, we need to implement two additional arithmetic operations in order to get our</span> </span>scholarship.</p>
<p>So, we implement two additional methods in our little arithmetic class:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">static<span style="color: black"> <span style="color: blue">decimal<span style="color: black"> Multiply(<span style="color: blue">decimal<span style="color: black"> x, <span style="color: blue">decimal<span style="color: black"> y)
</span></span></span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> x * y;
</span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">}

</span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">public<span style="color: black"> <span style="color: blue">static<span style="color: black"> <span style="color: blue">decimal<span style="color: black"> Divide(<span style="color: blue">decimal<span style="color: black"> x, <span style="color: blue">decimal<span style="color: black"> y)
</span></span></span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">return<span style="color: black"> x / y; <span style="color: green">//Since we are using decimals instead of doubles, this can produce divide by zero exception, but error handling is out of scope of this test.
</span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>But obviously that&#8217;s not enough. We have to add two another cases in our switch statement:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">case<span style="color: black"> <span style="color: #a31515">"×"<span style="color: black">:
    </span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">label1.Text = <span style="color: #2b91af">Calc<span style="color: black">.Multiply(numericUpDown1.Value, numericUpDown2.Value).ToString();
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">break<span style="color: black">;
</span></span></span>
<span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">case<span style="color: black"> <span style="color: #a31515">"÷"<span style="color: black">:
    </span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">label1.Text = <span style="color: #2b91af">Calc<span style="color: black">.Divide(numericUpDown1.Value, numericUpDown2.Value).ToString();
</span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">    break<span style="color: black">; </span></span></span></pre>
<p>and two another symbols in the combobox Items collection, so the WinForms Designer generated piece of code looks like this:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">this<span style="color: black">.comboBox1.Items.AddRange(<span style="color: blue">new<span style="color: black"> <span style="color: blue">object<span style="color: black">[] 
{
    </span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #a31515">"+"<span style="color: black">,
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #a31515">"-"<span style="color: black">,
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #a31515">"×"<span style="color: black">,
    </span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: #a31515">"÷"
<span style="color: black">}); </span></span></span></pre>
<p>We must also bear in mind changing used method names if we copy/paste the existing piece of code, it can be a real hell if we have to add multiple methods or if there are multiple usages.</p>
<h2>Reflection approach &#8211; enumerate class methods and let user choose one of them</h2>
<p>So, how can we do it better?</p>
<p>Instead of using evil <span style="color: blue;font-family: Consolas;font-size: 9pt">switch</span> statement we use Reflection.</p>
<p>First, we discover our arithmetic methods and populate the combobox with them – literally, the combobox items are the System.Reflection.MethodInfo objects which can be directly invoked. This can be done in form constructor or in form Load event handler:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">void<span style="color: black"> Form1_Load(<span style="color: blue">object<span style="color: black"> sender, <span style="color: #2b91af">EventArgs<span style="color: black"> e)
</span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    <span style="color: blue"><span style="color: black"><span style="color: #2b91af"><span style="color: green">//Populate the combobox.</span></span></span></span>
    </span><span style="color: black;font-family: Consolas;font-size: 9pt">comboBox2.DataSource = <span style="color: blue">typeof<span style="color: black">(<span style="color: #2b91af">Calc<span style="color: black">).GetMethods(<span style="color: #2b91af">BindingFlags<span style="color: black">.Static | <span style="color: #2b91af">BindingFlags<span style="color: black">.Public).ToList();

</span></span></span></span></span><span style="color: green">    //Set some friendly display name for combobox items.</span>
    </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">comboBox2.DisplayMember = <span style="color: blue">nameof<span style="color: black">(<span style="color: #2b91af">MethodInfo<span style="color: black">.Name);
</span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>Then in the &#8220;=&#8221; button Click event handler we just have to retrieve the System.Reflection.MethodInfo from selected combobox item and simply call its Invoke method which will directly invoke desired method:</p>
<pre><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">private<span style="color: black"> <span style="color: blue">void<span style="color: black"> button2_Click(<span style="color: blue">object<span style="color: black"> sender, <span style="color: #2b91af">EventArgs<span style="color: black"> e)
</span></span></span></span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt">{
    </span><span style="color: black;font-family: Consolas;font-size: 9pt">label2.Text =                              <span style="color: green">//Set the result directly in the label's Text property.
        </span></span><span style="color: black;font-family: Consolas;font-size: 9pt">((<span style="color: #2b91af">MethodInfo<span style="color: black">)comboBox2.SelectedValue)? <span style="color: green">//Direct cast the selected value to System.Reflection.MethodInfo,
                                               </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: green">//we have the control over what is in the combobox, so we are not expecting any surprises.
        </span></span><span style="color: black;font-family: Consolas;font-size: 9pt">.Invoke(                               <span style="color: green">//Invoke the method.
            </span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">null<span style="color: black">,                              <span style="color: green">//Null for static method invoke.
            </span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: blue">new<span style="color: black"> <span style="color: blue">object<span style="color: black">[] { numericUpDown3.Value, numericUpDown4.Value }) <span style="color: green">//Pass parameters in almost the same way as in normal call,
                                                                         </span></span></span></span></span></span><span style="color: black;font-family: Consolas;font-size: 9pt"><span style="color: green">//except that we must pack them into the object[] array.
        </span></span><span style="color: black;font-family: Consolas;font-size: 9pt">.ToString();
</span><span style="color: black;font-family: Consolas;font-size: 9pt">} </span></pre>
<p>That&#8217;s all. We reduced whole switch, designer populated list with symbols and magic strings to 3 simple lines.</p>
<p>Not only the code is smaller, its refactoring tolerance is greatly improved. Now, when lecturer says that we need to implement two another arithmetic operations, we simply add the static methods to our arithmetic class (as stated before) and we&#8217;re done.</p>
<p>However, this approach has a hazard. The usage in <span style="color: black;font-family: Consolas;font-size: 9pt">button2</span><br />
<span style="color: black;font-family: Consolas;font-size: 9pt">Click</span> event handler assumes that all arithmetic methods in <span style="color: #2b91af;font-family: Consolas;font-size: 9pt">Calc</span> class accept only two parameters of type that is implicitly convertible from<span style="color: blue;font-family: Consolas;font-size: 9pt"> decimal</span>.</p>
<p>In other words, if someone add a method that processes 3 numbers, the operation represented by this method will show up in the combobox, but attempt to execute it will result in target invocation exception.</p>
<p>But if we tried to use it in the previous approach, we would get the error as well. The difference is that it would be a compile time error saying that we are trying to use method that accepts 3 parameters but we have provided only 2 arguments.</p>
<p>That&#8217;s one advantage of static typing, the compiler upholds the code integrity and the IntelliSense will inform us about any misusages long before we even hit the compile button. When we are using dynamic invoke, we must predict any exceptions and handle them ourselves.</p>
<h1><span style="text-decoration: underline"><strong>Conclusion</strong></span></h1>
<p>The examples above describe how the Reflection mechanism can improve code maintainability and robustness. They also show that Using Reflection, though it&#8217;s handy, lays more responsibility on the developer as checking for compatibility is moved from design time to run time and the compiler will no longer lend its hand when invoking dynamically typed members.</p>
<p>In this article we learned how can we use the Reflection to retrieve data from properties and how to invoke methods that are now explicitly specified in design time &#8211; they can change over time but the code that are using them will remain unchanged.</p>
<p>In the next article I&#8217;ll show you more advanced usages of the Reflection such as storing data, accessing private members and instantiating classes on some interesting examples like <em>Building An Object From Database</em> or <em>Implementing Plugin System</em>. You will also eventually find out why <em>Reflection is like violence</em>…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/reflection-is-like-violence/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Pragmatic or spontaneous &#8211; What are the most common personal qualities in IT-job ads?</title>
		<link>https://findwise.com/blog/common-personal-qualities-job-ads/</link>
					<comments>https://findwise.com/blog/common-personal-qualities-job-ads/#respond</comments>
		
		<dc:creator><![CDATA[Webteam]]></dc:creator>
		<pubDate>Mon, 27 Nov 2017 10:10:19 +0000</pubDate>
				<category><![CDATA[Analytics]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[data science]]></category>
		<category><![CDATA[open-data]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5620</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/common-personal-qualities-job-ads/">Pragmatic or spontaneous &#8211; What are the most common personal qualities in IT-job ads?</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<p>Open Data Analytics At Findwise we regularly have companywide hackathons with different themes. The latest theme was insights in open data, which I personally find very interesting. Our group chose to fetch data from the Arbetsförmedlingen (Swedish Employment Agency), where ten &#8230; <a href="https://findwise.com/blog/common-personal-qualities-job-ads/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/common-personal-qualities-job-ads/">Pragmatic or spontaneous &#8211; What are the most common personal qualities in IT-job ads?</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/blog_sysop_fw/">Webteam</a></p>
<h1>Open Data Analytics</h1>
<p>At Findwise we regularly have companywide hackathons with different themes. The latest theme was insights in open data, which I personally find very interesting.</p>
<p>Our group chose to fetch data from the Arbetsförmedlingen (Swedish Employment Agency), where ten years of job ads are available. There are about 4 million job ads in total during this time-period, so there is some material to analyze.</p>
<p>To make it easier to enable ad hoc analysis, we started off by extracting competences and personal traits mentioned in the job ads. This would allow us to spot trends in competences over time, in different regions or correlate competences and trait. Lots of possibilities.</p>
<p>&nbsp;</p>
<h2>Personal qualities and IT competences</h2>
<p>As an IT-ninja I find it more exciting to focus on jobs, competences and traits within the IT industry. A lot is happening, and it is easy for me to relate to this area, of course. A <a href="https://www.itotelekomforetagen.se/MediaBinaryLoader.axd?MediaArchive_FileID=3a739857-c4a7-466e-8add-34ce28b91b02&amp;FileName=Kompetensbrist_i_IT_sektorn_A.pdf" class="broken_link">report from Almega</a> suggests that there is a huge demand of competences within IT for the coming years and it brings up a lot of examples of lacking technical skills. What is rarely addressed is what personality types are connected to these specific competences. We’re able to answer this interesting question from our data:</p>
<p>&nbsp;</p>
<h2><strong>What personal traits are common complementary to the competences that are in demand?</strong></h2>
<p><a href="https://findwise.com/blog/common-personal-qualities-job-ads/arbetsformedlingen-hack/" rel="attachment wp-att-5621"><img loading="lazy" class="aligncenter size-full wp-image-5621" src="https://findwise.com/blog/wp-content/uploads/2017/11/arbetsförmedlingen-hack.png" alt="arbetsförmedlingen hack" width="1524" height="530" srcset="https://findwise.com/blog/wp-content/uploads/2017/11/arbetsförmedlingen-hack.png 1524w, https://findwise.com/blog/wp-content/uploads/2017/11/arbetsförmedlingen-hack-300x104.png 300w, https://findwise.com/blog/wp-content/uploads/2017/11/arbetsförmedlingen-hack-768x267.png 768w, https://findwise.com/blog/wp-content/uploads/2017/11/arbetsförmedlingen-hack-1024x356.png 1024w, https://findwise.com/blog/wp-content/uploads/2017/11/arbetsförmedlingen-hack-500x174.png 500w" sizes="(max-width: 1524px) 100vw, 1524px" /></a></p>
<p><em>Figure 1 &#8211; Relevant worktitles, competences and traits for the search term &#8220;big data&#8221;</em></p>
<p>&nbsp;</p>
<p>The most wanted personal traits are in general “Social, driven, passionate, communicative”. All these results should of course be taken with a grain of salt, since a few staffing/general IT consulting companies are a big part of the number of job ads within IT. But we can also look at a single competence and answer the question:</p>
<p>&nbsp;</p>
<h2><strong>What traits are more common with this competence than in general? (Making the question a bit more specific.)</strong></h2>
<p>Some examples of competences in demand are system architecture, support and JavaScript. The most outstanding traits for system architecture are sharp, quality orientated and experienced. It can always be discussed if experienced is a trait (although our model thoughts so) but it makes sense in any case since system architecture tend to be more common among senior roles. For support we find traits such as service orientated, happy and nice, which is not unexpected, Lastly, for job-ads needing javascript-competence, personal traits such as quality orientated, quality aware and creative are the most predominant.</p>
<p>&nbsp;</p>
<h2><strong>Differences between Stockholm and Gothenburg</strong></h2>
<p>Or let’s have a look at geographical differences between Sweden’s two largest cities when it comes to personal qualities in IT-job ads. In Gothenburg there is a stronger correlation to the traits spontaneous, flexible and curious while Stockholm correlates with traits such as sharp, pragmatic and delivery-focused.</p>
<p>&nbsp;</p>
<h2>What is best suitable for your personality?</h2>
<p>You could also look at it the other way around and start with the personal traits to see which jobs/competences are meant for you. If you are analytical then jobs as controller or accountant could be jobs for you. If you are an optimist, then job coach or guidance counselors seems to be a good fit. We created a small application where you can type in competences or personal traits and get suggested jobs in this way. <a href="https://findwise.com/labs/sample/personality-job-match">Try it out here!</a></p>
<p>&nbsp;</p>
<h2>Lear more about Open Data Analytics</h2>
<p>In addition, we’re hosting a breakfast seminar December 12<sup>th</sup> where we’ll use the open data from Arbetsförmedlingen to show a process of how to make more data driven decisions. <a href="https://www.eventbrite.com/e/7-konkreta-steg-mot-datadrivna-beslut-tickets-39827089898">More information and registration</a> (the seminar will be held in Swedish)</p>
<p>&nbsp;</p>
<p>Author: Henrik Alburg, Data Scientist</p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/common-personal-qualities-job-ads/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SharePoint optimized &#8211; part 2, Search power</title>
		<link>https://findwise.com/blog/sharepoint-optimized-part-2/</link>
					<comments>https://findwise.com/blog/sharepoint-optimized-part-2/#respond</comments>
		
		<dc:creator><![CDATA[Michal Guzowski]]></dc:creator>
		<pubDate>Tue, 14 Nov 2017 11:40:33 +0000</pubDate>
				<category><![CDATA[Sharepoint]]></category>
		<guid isPermaLink="false">https://findwise.com/blog/?p=5616</guid>

					<description><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/sharepoint-optimized-part-2/">SharePoint optimized &#8211; part 2, Search power</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/michal-guzowski/">Michal Guzowski</a></p>
<p>Last week I wrote a post about how I fix CSOM code in order to accelerate whole query execution. Final result was not that bad though still not good enough: 0.8s for fetching ~500 subsites 6.5s for fetching ~900 subsites &#8230; <a href="https://findwise.com/blog/sharepoint-optimized-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
]]></description>
										<content:encoded><![CDATA[<p><a rel="nofollow" href="https://findwise.com/blog/sharepoint-optimized-part-2/">SharePoint optimized &#8211; part 2, Search power</a><br />
<a rel="nofollow" href="https://findwise.com/blog">The Findability blog - the enterprise search and findability blog by Findwise</a><br />
<a rel="nofollow" href="https://findwise.com/blog/author/michal-guzowski/">Michal Guzowski</a></p>
<p>Last week I wrote a post about <a href="https://findwise.com/blog/sharepoint-optimized-part-1/">how I fix CSOM code in order to accelerate whole query execution</a>. Final result was not that bad though still not good enough:</p>
<ul>
<li>0.8s for fetching ~500 subsites</li>
<li>6.5s for fetching ~900 subsites recursively for whole subsites hierarchy</li>
</ul>
<p>My aim is to fetch whole subsites hierarchy within time that is reasonable to wait (1-2s total).</p>
<p>In this post I show you how to achieve it &#8211; we can fetch whole subsites hierarchy in less than 2s!</p>
<p><span id="more-5616"></span></p>
<h1>When CSOM is not enough</h1>
<p>In <a href="https://findwise.com/blog/sharepoint-optimized-part-1/">part 1 of this post</a> we saw that CSOM has its limitations that are hard to resolve &#8211; one of those is getting all subsites of a site collection.</p>
<p>Main reason of a problem is that we need to make separate query calls for every subsite. In other words if we need to get information of 100 subsites we need to make 100 query calls. The asynchrony of CSOM calls and loaded properties limitation (i.e. only Title and URL) are very helpful here but still leave us with total time above our requirements.</p>
<p>There is also a problem related to hierarchy crawling &#8211; Imagine you have following structure:</p>
<ul>
<li>Root site
<ul>
<li>Subsite A
<ul>
<li>Subsite A1</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>If you don&#8217;t have access to subsite A you won&#8217;t have information about subsite A1 &#8211; nevertheless if you have access to A1 or not. This is because you need to have access to subsite A in order to get information about its subsites. Of course there is always a question &#8220;why would someone break permissions and give me access to A1 if I don&#8217;t have an access to A?&#8221; but that&#8217;s another story. Anyway &#8211; recursive hierarchy crawling with CSOM will not give us information about subsites of a parent that we don&#8217;t have access to even if we have access to those subsites.</p>
<p>There are multiple ways of solving it &#8211; let&#8217;s briefly talk what options we have.</p>
<h1>Candidates</h1>
<h2>Local caching</h2>
<p>We could leave current solution (CSOM that is) and try to improve it with some caching &#8211; put all subsites in user local cache available in browser. That would allow us to avoid fetching all sites every time user open home page. But the problem is from time to time, when user visit home page for the first time in session he/she will have to fill that cache&#8230;and this will still took around ~6-7 second.</p>
<h2>Caching on list</h2>
<p>This is very common solution that I saw in many production environments. Creating a list that will contains all subsites as rows and fetch information from there using CSOM. This may work in terms of performance because then CSOM will have to retrieve information only from one list (so only 1 query call). However there is one thing that need to be taken into consideration &#8211; is it ok to maintain such additional content source? Because originally CSOM, even if it was slow, didn&#8217;t need any additional maintenance when there will be a new customer or project. When a new subsite will be created it will be fetched by the code on-the-run. If we swap to &#8220;list caching&#8221; we will need to manually or via code keep it updated with newly created customers or projects. And what about deletion or synchronization? If we can go for some compromises than using such list may be a good idea. But if not&#8230;</p>
<h2>External DB</h2>
<p>This is basically the same concept as in &#8220;Caching on list&#8221; however using another architecture. We can store sites information in Azure DB, fetch it via BCS and using external content type import it as external list in SPO, and then fetch it using CSOM (if code rebuilding is still a case I would go for <a href="https://github.com/SharePoint/PnP-JS-Core">PnP-JS-Core</a>). Syncing sites to DB may be driven by powershell script.</p>
<p>As a developer I would go for it &#8211; connecting different tech stuff and making it talk to each other is great fun.</p>
<p>As a consultant &#8211; it&#8217;s a bit over complicated ;).</p>
<h2>SharePoint Search</h2>
<p>We could use SharePoint to collect data we needed and than just use its results. From that point the only things that left are fetching results and render them. Hm, sounds good? Because it is! It&#8217;s quick, does not need any additional handling when new subsite created and there is also one extra hidden advantage that I&#8217;ll describe in a bit.</p>
<h1>Do it with Search!</h1>
<p>Search driven architecture has big advantage (besides those I described in <a href="https://findwise.com/blog/sharepoint-framework-sharepoint-search-driven-architecture/">this post</a>) &#8211; using SharePoint built-in capabilities to not reinvent a wheel. In my case <strong>SharePoint Search is perfect candidate for a data source</strong> since it already have contained all the data, it&#8217;s very fast and results may be easily and precisely prepared. I used <a href="https://technet.microsoft.com/en-us/library/dn186229.aspx">SharePoint Search Result Source</a> for that because it <strong>allows to limit search results to proper data set and it contains easy but powerful query builder with test capability</strong>. Great stuff out-of-the-box. I used below query in result source:</p>
<pre class="EnlighterJSRAW">{searchTerms} contentclass:STS_Web Path:{Site.URL}/customers*</pre>
<p>Fetching data from result source may be easily done by REST API that allows to make call to search endpoint with a query and result source id. Thanks to that we can query result source for all items (query=&#8221;*&#8221;) and we can be sure that only results from result source will be returned. Like below:</p>
<pre class="EnlighterJSRAW">/_api/search/query?querytext='*'&amp;sourceid='&lt;Your Result Source GUID&gt;'</pre>
<p>In our case that will be customers and projects sites. And now is the greatest part (that extra hidden advantage I&#8217;ve mentioned) &#8211; <strong>in order to narrow/extend/sort data set you don&#8217;t need a developer </strong>because you can easily change that in SharePoint platform by <span style="text-decoration: underline">editing Result Source</span> that you&#8217;ve created.</p>
<h3>Retrieving more than 500 items from search</h3>
<p>There is one thing that need to be taken into consideration when working with SP Search REST API. Maximum number of items in results is limited to 500. So in order to retrieve 1000 items we need to make 2 calls 500 items each. Even though it&#8217;s easy not a big deal to implement I&#8217;m going to put my helper class on github so anyone could save an hour or two. I&#8217;ll write post about it <img src="https://s.w.org/images/core/emoji/13.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h2>Data parsing and rendering</h2>
<p>SP Search returns results in a flat structure. So we if we want to group results or display it in tree hierarchy we need to assemble data and, depends on used tool for visualizing, prepare in specific format. I used <a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview">SharePoint Framework with React and Typescript</a> which is great framework for <strong>quick development, testing and deployment independently of used OS</strong>. Moreover the way how React manage code rendition is very efficient and elegant I would say. To display results in tree view I used <a href="https://github.com/alexcurtis/react-treebeard">React TreeBeard</a> tool which does not support Typescript in current version however it was not very challenging to use it. Final result presents as below:</p>
<p id="xKfVTGv"><img class="size-full wp-image-245 aligncenter" src="http://itgoat.pl/wp-content/uploads/2017/11/img_5a01943027c3d.png" alt="" /></p>
<p>As you can see it allows for searching not only in customers but also in projects. In above example you can see that if searching phrase is found in customer then component shows all customer projects. If searching phrase is found in project then it shows only that project under customer projects. I&#8217;ve implemented also simple toggle button (using cool <a href="https://developer.microsoft.com/en-us/fabric#/components/toggle">React Fabric UI toggle button</a> &#8211; <strong>SP design OOTB</strong>) that allows user to choose if he wanted to search in customers and projects or only customers.</p>
<h1>Performance</h1>
<p>I prepared simple statistics information as shown below:</p>
<p id="sPaeoPF"><img class="size-full wp-image-249 aligncenter" src="http://itgoat.pl/wp-content/uploads/2017/11/img_5a0197b29d854.png" alt="" /></p>
<ul>
<li><strong>Data fetching time &#8211; 1023ms (averaged &#8211; 1367.5ms)</strong>! That is making 2 search rest api calls. How awesome drop it is! From 10s to 1.4s! And remember that we fetched all items (not only customers). Moreover &#8211; according to my observations each search rest api request took the same amount of time. To small data set for conclusions but give a hope that time consume for calls towards result source is linear.</li>
<li>Extracting &#8211; 3.75ms. That is getting proper properties from search results (even though we passed selected properties in a call there are still extra properties that search results will contain). Anyway &#8211; negligible.</li>
<li>Extracting customers from dataset &#8211; 2.2ms. Negligible.<br />
Attaching projects to customers &#8211; 98ms. As I said &#8211; search results are in flat structure. So we need to group it based on URL depth. I.e. https:///Contoso will be a customer and https:///Contoso/ProjectA will be a project. I&#8217;ve created special array of customers where all customer projects were kept as a children array in customer.</li>
<li>Mapping to tree model &#8211; 102ms. I tried to use different tree viewers so after I group up my results in previous step I need to change some properties names (i.e. name instead of title) and make it not typescripted (I used tool that use simple object array). Definitely there is a room for improvement (phew! fun fun fun!) by merging attaching projects to customers and mapping to tree model.</li>
</ul>
<p>And that&#8217;s it! As you can see all component operations close in almost 1.5s total!</p>
<h1>Conclusion</h1>
<p>As you can see Search Driven Architecture can &#8220;do performance&#8221; too. However please remember one thing &#8211; and I&#8217;ll use kitchen analogy for that, one of my favorite:</p>
<blockquote><p>There are different types of knives: Chief&#8217;s knife, Utility knife, Paring knife, Butcher knife, Bread knife, Carving knife, Spatula, Meat cleaver etc.<br />
And you can use any of these to cut a cheese.</p></blockquote>
<p>There are different ways of achieving same results. Every solution has its pros and cons, may require different tools and skills. Choosing the best is always achieved in a way of compromises.</p>
<p>So what are the pros and cons of using search as your data source?</p>
<p>Search Pros:</p>
<ul>
<li>it&#8217;s fast</li>
<li>it can fetch information from different subsites or sites collections</li>
<li>great for aggregation &#8211; with one query you can get different information types (i.e. sites, items, files)</li>
<li>it can fetch information about items that you have access to even if you have not access to its parent (although it can be a con in some scenario)</li>
</ul>
<p>Search Cons:</p>
<ul>
<li>results freshness depends on crawling</li>
<li>if you want to get additional information from columns (it does not apply to sites of course) you must map it to managed properties in search and make sure they are retrievable</li>
<li>search can returns you a maximum of 500 items per query</li>
<li>fetching 500+ items from 1 list may is not as efficient as using other ways</li>
</ul>
<h2>Final thought</h2>
<p>To summarize when to use Search Driven Architecture I would say:</p>
<p><strong>the more your data are spreaded out between containers </strong>and/or <strong>the more different data types you want to get in one query </strong></p>
<p><strong>the more likely you would like to use search instead of anything else</strong>.</p>
<p>&nbsp;</p>
<p>I hope this post will help you in consideration  of using search as your data source.</p>
<p>If you&#8217;re interested into code that I used in described solution feel free to contact me. It will need a small clean up but is absolutely doable <img src="https://s.w.org/images/core/emoji/13.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://findwise.com/blog/sharepoint-optimized-part-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
