<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="https://www.stress-free.co.nz"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>stressfree - search</title>
 <link>https://www.stress-free.co.nz/tech/search</link>
 <description></description>
 <language>en</language>
<item>
 <title>Integrating Google Site Search into SilverStripe</title>
 <link>https://www.stress-free.co.nz/integrating_google_site_search_into_silverstripe</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/silverstripe-logo.png&quot; alt=&quot;&quot; width=&quot;100&quot; height=&quot;97&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://silverstripe.org/&quot;&gt;SilverStripe&lt;/a&gt; is an excellent, user-friendly content management system but its internal search functionality is, to put it kindly, useless. Fortunately with &lt;a href=&quot;http://www.google.com/sitesearch/&quot;&gt;Google Site Search&lt;/a&gt; you can embed a Google-powered custom search engine into your SilverStripe site. Doing so requires a paid Site Search account, pricing for which starts at  $100/year.&lt;/p&gt;
&lt;p&gt;This tutorial explains how to integrate this Google Site Search XML feed into your SilverStripe site. Doing so has a number of benefits over the &lt;a href=&quot;http://www.google.com/sitesearch/#custom&quot;&gt;standard means of integrating&lt;/a&gt; Site Search, namely:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;No Javascript is required to display results within the SilverStripe site.&lt;/li&gt;
&lt;li&gt;The user is not taken to a separate, Google operated website to view results.&lt;/li&gt;
&lt;li&gt;The look and feel is consistent with the rest of the SilverStripe site.&lt;/li&gt;
&lt;li&gt;Multiple Site Search engines can be integrated into a single SilverStripe site.&lt;/li&gt;
&lt;li&gt;Site Search results pages are integrated into SilverStripe&#039;s management console.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; To integrate Site Search into SilverStripe using the described method a Site Search plan must be purchased as this provides results in XML. The free, advertising supported, Site Search engine does not provide search results in XML and cannot be used.&lt;/p&gt;
&lt;!--break--&gt;
&lt;h2&gt;Loading XML data from an external source&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;Before the search page can be added to SilverStripe we need a reliable means of loading XML content. This is complicated by the fact many Web hosts disable PHP&#039;s built in &lt;a href=&quot;http://www.php.net/function.fopen&quot;&gt;URL fetcher (fopen)&lt;/a&gt; with the following &lt;strong&gt;php.ini&lt;/strong&gt; directive:&lt;/p&gt;
&lt;p class=&quot;codesnippet&quot;&gt;allow_url_fopen = Off&lt;/p&gt;
&lt;p&gt;Assuming it is installed, the  &lt;a href=&quot;http://curl.haxx.se/&quot;&gt;cURL&lt;/a&gt; can get around this restriction, hence the XmlLoader helper library includes both methods (cURL is used by default in search.php).&lt;/p&gt;
&lt;p&gt;Create a XmlLoader.php file in your SilverStripe&#039;s mysite/code directory with the following contents:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mysite/code/XmlLoader.php&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;codesnippet&quot;&gt;&amp;lt;?php&lt;br /&gt;class XmlLoader {&lt;br /&gt;&lt;br /&gt; public function pullXml($url, $parameters, $useCurl) {&lt;br /&gt; $urlString = $url.&quot;?&quot;.$this-&amp;gt;buildParamString($parameters);&lt;br /&gt;&lt;br /&gt; if ($useCurl) {&lt;br /&gt; return simplexml_load_string($this-&amp;gt;loadCurlData($urlString));&lt;br /&gt; } else {&lt;br /&gt; return simplexml_load_file($urlString);&lt;br /&gt; }            &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function loadCurlData($urlString) {&lt;br /&gt;&lt;br /&gt; if ($urlString == -1) {&lt;br /&gt; echo &quot;No url supplied&amp;lt;br/&amp;gt;&quot;.&quot;/n&quot;;&lt;br /&gt; return(-1);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; $ch = curl_init();&lt;br /&gt; curl_setopt($ch, CURLOPT_URL, $urlString);&lt;br /&gt; curl_setopt($ch, CURLOPT_TIMEOUT, 180);&lt;br /&gt; curl_setopt($ch, CURLOPT_HEADER, 0);&lt;br /&gt; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt; $data = curl_exec($ch);&lt;br /&gt; curl_close($ch);&lt;br /&gt;&lt;br /&gt; return $data;        &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function buildParamString($parameters) {&lt;br /&gt; $urlString = &quot;&quot;;&lt;br /&gt;&lt;br /&gt; foreach ($parameters as $key =&amp;gt; $value) {&lt;br /&gt; $urlString .= urlencode($key).&quot;=&quot;.urlencode($value).&quot;&amp;amp;&quot;;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; if (trim($urlString) != &quot;&quot;) {&lt;br /&gt; $urlString = preg_replace(&quot;/&amp;amp;$/&quot;, &quot;&quot;, $urlString);&lt;br /&gt; return $urlString;    &lt;br /&gt; } else {&lt;br /&gt; return (-1);&lt;br /&gt; }&lt;br /&gt; }    &lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/p&gt;
&lt;p&gt;With the helper library in place to load the XML, it is now time to implement the SilverStripe &quot;search&quot; page type and logic. Create a search.php file in your SilverStripe&#039;s mysite/code directory with the following contents:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mysite/code/search.php&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;codesnippet&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt; require_once &#039;XmlLoader.php&#039;;&lt;br /&gt;&lt;br /&gt; class Search extends Page {&lt;br /&gt; static $db = array(&lt;br /&gt; &#039;GoogleSearchId&#039; =&amp;gt; &#039;Text&#039;,&lt;br /&gt; &#039;NoResults&#039; =&amp;gt; &#039;HTMLText&#039;,&lt;br /&gt; );&lt;br /&gt; static $has_one = array(&lt;br /&gt; );&lt;br /&gt;&lt;br /&gt; function getCMSFields() {&lt;br /&gt; $fields = parent::getCMSFields();&lt;br /&gt;&lt;br /&gt; $fields-&amp;gt;addFieldToTab(&#039;Root.Content.Main&#039;, new TextField(&lt;br /&gt; &#039;GoogleSearchId&#039;, &#039;Google Site Search ID&#039;), &#039;Content&#039;);&lt;br /&gt; $fields-&amp;gt;addFieldToTab(&#039;Root.Content.Main&#039;, new HtmlEditorField(&lt;br /&gt; &#039;NoResults&#039;, &#039;No results message&#039;), &#039;Content&#039;);&lt;br /&gt;&lt;br /&gt; # Remove the content field&lt;br /&gt; $fields-&amp;gt;removeFieldFromTab(&quot;Root.Content.Main&quot;,&quot;Content&quot;);&lt;br /&gt;&lt;br /&gt; return $fields;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; class Search_Controller extends Page_Controller {&lt;br /&gt;&lt;br /&gt; function SearchForm() {&lt;br /&gt; $input = array_merge($_GET, $_POST);&lt;br /&gt; $query = $input[&#039;q&#039;];&lt;br /&gt;&lt;br /&gt; $output = &quot;&amp;lt;form class=\&quot;search\&quot; action=\&quot;/search/results\&quot;&amp;gt;&amp;lt;fieldset&amp;gt;&quot;;&lt;br /&gt; $output .= &quot;&amp;lt;input type=\&quot;text\&quot; size=\&quot;40\&quot; name=\&quot;q\&quot; value=\&quot;$query\&quot;/&amp;gt;&quot;;&lt;br /&gt; $output .= &quot;&amp;lt;input type=\&quot;hidden\&quot; name=\&quot;p\&quot; value=\&quot;1\&quot;/&amp;gt;&quot;;&lt;br /&gt; $output .= &quot;&amp;lt;input type=\&quot;submit\&quot; value=\&quot;Search\&quot;/&amp;gt;&quot;;&lt;br /&gt; $output .= &quot;&amp;lt;/fieldset&amp;gt;&amp;lt;/form&amp;gt;&quot;;&lt;br /&gt;&lt;br /&gt; return $output;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function SearchResults() {&lt;br /&gt;&lt;br /&gt; $output = &quot;&quot;;&lt;br /&gt;&lt;br /&gt; $input = array_merge($_GET, $_POST);&lt;br /&gt; $page = isset($input[&#039;p&#039;]) ? $input[&#039;p&#039;] : &#039;1&#039;;&lt;br /&gt; $query = $input[&#039;q&#039;];&lt;br /&gt;&lt;br /&gt; $perPage = 10;&lt;br /&gt; if ($page &amp;lt; 1) { $page = 1; }&lt;br /&gt;&lt;br /&gt; $xml = $this-&amp;gt;getGoogleSearchResults($this-&amp;gt;GoogleSearchId, $perPage, $page, $query);&lt;br /&gt; $results = $this-&amp;gt;parseGoogleSearchResults($xml);&lt;br /&gt;&lt;br /&gt; $totalResults = $this-&amp;gt;getResultCount($xml);&lt;br /&gt;&lt;br /&gt; $output .= $this-&amp;gt;getFormattedResults($results);&lt;br /&gt;&lt;br /&gt; if (count($results) == 0) {&lt;br /&gt; // Show no results message&lt;br /&gt; $output .= $this-&amp;gt;NoResults;;&lt;br /&gt; } else {&lt;br /&gt; // Append paging&lt;br /&gt; $output .= $this-&amp;gt;getPagingForResults($totalResults, $query, $perPage, $page);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; return $output;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; private function getGoogleSearchResults($googleId, $perPage, $page, $query) {&lt;br /&gt;&lt;br /&gt; $startingRecord = ($page - 1) * $perPage;&lt;br /&gt;&lt;br /&gt; $url = &quot;http://www.google.com/search&quot;;&lt;br /&gt; $parameters = array();&lt;br /&gt; $parameters[&quot;client&quot;] = &quot;google-csbe&quot;;&lt;br /&gt; $parameters[&quot;output&quot;] = &quot;xml_no_dtd&quot;;&lt;br /&gt; $parameters[&quot;num&quot;] = $perPage;&lt;br /&gt; $parameters[&quot;cx&quot;] = $googleId;&lt;br /&gt; $parameters[&quot;start&quot;] = $startingRecord;&lt;br /&gt; $parameters[&quot;q&quot;] = $query;&lt;br /&gt;&lt;br /&gt; $XmlLoader = new XmlLoader();&lt;br /&gt;&lt;br /&gt; return $XmlLoader-&amp;gt;pullXml($url, $parameters, true);&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function parseGoogleSearchResults($xml) {&lt;br /&gt;&lt;br /&gt; $results = array();&lt;br /&gt;&lt;br /&gt; $attr[&quot;title&quot;] = $xml-&amp;gt;xpath(&quot;/GSP/RES/R/T&quot;);&lt;br /&gt; $attr[&quot;url&quot;] = $xml-&amp;gt;xpath(&quot;/GSP/RES/R/U&quot;);&lt;br /&gt; $attr[&quot;desc&quot;] = $xml-&amp;gt;xpath(&quot;/GSP/RES/R/S&quot;);&lt;br /&gt;&lt;br /&gt; foreach($attr as $key =&amp;gt; $attribute) {&lt;br /&gt; $i = 0;&lt;br /&gt; foreach($attribute as $element) {&lt;br /&gt; $results[$i][$key] = (string)$element;&lt;br /&gt; $i++;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; return $results;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function getFormattedResults($results) {&lt;br /&gt;&lt;br /&gt; $output = &quot;&quot;;&lt;br /&gt;&lt;br /&gt; if (count($results) &amp;gt; 0) {&lt;br /&gt; $output .= &quot;&amp;lt;ul class=\&quot;results\&quot;&amp;gt;&quot;;&lt;br /&gt; foreach($results as $i =&amp;gt; $result) {&lt;br /&gt; $title = &quot;&quot;;&lt;br /&gt; $url = &quot;&quot;;&lt;br /&gt; $desc = &quot;&quot;;&lt;br /&gt; foreach($result as $key =&amp;gt; $value) {&lt;br /&gt; if ($key == &quot;title&quot;) {&lt;br /&gt; $title = $value;&lt;br /&gt; }&lt;br /&gt; if ($key == &quot;url&quot;) {&lt;br /&gt; $url = $value;&lt;br /&gt; }&lt;br /&gt; if ($key == &quot;desc&quot;) {&lt;br /&gt; $desc = $value;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; $output .= &quot;&amp;lt;li&amp;gt;&amp;lt;a href=\&quot;$url\&quot;&amp;gt;$title&amp;lt;/a&amp;gt;&amp;lt;p&amp;gt;&quot;;&lt;br /&gt; $output .= str_replace(&quot;&amp;lt;br&amp;gt;&quot;, &quot;&amp;lt;br/&amp;gt;&quot;, $desc);&lt;br /&gt; $output .= &quot;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;\n&quot;;&lt;br /&gt; }&lt;br /&gt; $output .= &quot;&amp;lt;/ul&amp;gt;&quot;;&lt;br /&gt; }&lt;br /&gt; return $output;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function getResultCount($xml) {&lt;br /&gt;&lt;br /&gt; $totalResults = 0;&lt;br /&gt; $count = $xml-&amp;gt;xpath(&quot;/GSP/RES/M&quot;);&lt;br /&gt; foreach($count as $value) {&lt;br /&gt; $totalResults = $value;&lt;br /&gt; }&lt;br /&gt; return $totalResults;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function getPagingForResults($totalResults, $query, $perPage, $page) {&lt;br /&gt;&lt;br /&gt; $maxPage = ceil($totalResults/$perPage);&lt;br /&gt;&lt;br /&gt; if ($totalResults &amp;gt; 1) {&lt;br /&gt; $output = &quot;&amp;lt;div class=\&quot;searchPaging\&quot;&amp;gt;&amp;lt;p&amp;gt;&quot;;&lt;br /&gt;&lt;br /&gt; for($pageNum = 1; $pageNum &amp;lt;= $maxPage; $pageNum++) {&lt;br /&gt; if ($pageNum == $page) {&lt;br /&gt; $output .= &quot; &amp;lt;strong&amp;gt;$pageNum&amp;lt;/strong&amp;gt; &quot;;&lt;br /&gt; } else {&lt;br /&gt; $output .= &quot; &amp;lt;a href=\&quot;&quot;.$this-&amp;gt;AbsoluteLink().&quot;results?q=$query&amp;amp;p=$pageNum\&quot;&amp;gt;$pageNum&amp;lt;/a&amp;gt; &quot;;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; $output .= &quot;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&quot;;&lt;br /&gt; }&lt;br /&gt; return $output;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; ?&amp;gt;&lt;/p&gt;
&lt;p&gt;This file defines a search page type with two fields, a Google Search Id and an HTML field that is displayed if no search results are found. As this page does not have any content of its own the default SilverStripe content field is also disabled to avoid confusion.&lt;/p&gt;
&lt;p&gt;With the backend logic in place it is time to implement the templates. The templates themselves will vary from site to site, but the examples given are good starting points. There are two templates, one which simply displays the search box and a second that displays the results.&lt;/p&gt;
&lt;p&gt;Create a Search.ss file in your SilverStripe&#039;s mysite/templates/Layout directory with the following contents:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mysite/templates/Layout/Search.ss&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;codesnippet&quot;&gt;&amp;lt;% if Menu(2) %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;pageWithMenu&quot;&amp;gt;&lt;br /&gt; &amp;lt;% end_if %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;page&quot;&amp;gt;&lt;br /&gt; &amp;lt;% if Menu(2) %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;content contentStandard&quot;&amp;gt;&lt;br /&gt; &amp;lt;% else %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;content contentFull&quot;&amp;gt;&lt;br /&gt; &amp;lt;% end_if %&amp;gt;&lt;br /&gt; &amp;lt;h1&amp;gt;$Title&amp;lt;/h1&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;contentWrapper&quot;&amp;gt;&lt;br /&gt; $SearchForm&lt;br /&gt; &amp;lt;div class=&quot;clear&quot;&amp;gt;&amp;lt;!-- --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;% if Menu(2) %&amp;gt;&lt;br /&gt; &amp;lt;div id=&quot;sidepanel&quot;&amp;gt;&lt;br /&gt; &amp;lt;% include SideBar %&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;clear&quot;&amp;gt;&amp;lt;!-- --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;% end_if %&amp;gt;&lt;/p&gt;
&lt;p&gt;Now create the results page named Search_results.ss in your SilverStripe&#039;s mysite/templates/Layout directory with the following contents:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mysite/templates/Layout/Search_results.ss&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;codesnippet&quot;&gt;&amp;lt;% if Menu(2) %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;pageWithMenu&quot;&amp;gt;&lt;br /&gt; &amp;lt;% end_if %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;page&quot;&amp;gt;&lt;br /&gt; &amp;lt;% if Menu(2) %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;content contentStandard&quot;&amp;gt;&lt;br /&gt; &amp;lt;% else %&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;content contentFull&quot;&amp;gt;&lt;br /&gt; &amp;lt;% end_if %&amp;gt;&lt;br /&gt; &amp;lt;h1&amp;gt;$Title&amp;lt;/h1&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;contentWrapper&quot;&amp;gt;&lt;br /&gt; $SearchForm&lt;br /&gt; &amp;lt;div id=&quot;searchResults&quot;&amp;gt;&lt;br /&gt; $SearchResults&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;clear&quot;&amp;gt;&amp;lt;!-- --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;% if Menu(2) %&amp;gt;&lt;br /&gt; &amp;lt;div id=&quot;sidepanel&quot;&amp;gt;&lt;br /&gt; &amp;lt;% include SideBar %&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;div class=&quot;clear&quot;&amp;gt;&amp;lt;!-- --&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt; &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;% end_if %&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The content of these two files will vary depending on your site. In the above example a SideBar include file is used to load the secondary menu.&lt;/p&gt;
&lt;p&gt;With the backend logic and template files in place it is time to rebuild the SilverStripe database so that the new page type can be recognised. Enter the following (modified) URL into your browser: http://yourwebsite/dev/build?flush=all&lt;/p&gt;
&lt;p&gt;All going well the rebuild command will execute correctly. If it does browse to the administration section of your site and create a &#039;search&#039; page type.&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/silverstripe-google-create.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;247&quot; /&gt;&lt;br /&gt;The search page type in the create menu&lt;/div&gt;
&lt;p&gt;On the search page enter your relevant Google Search Id and Results Not Found message. For the page URL use /search as this is hard coded into the search.php file. It is possible to change this URL (or use a dynamic one) but for the purposes of this tutorial it is not necessary.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can get your Google Search Id from the Google Search administration console, or it can be found within the embed URL used in the Javascript or external search forms.&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;&lt;a href=&quot;/sites/default/files/u63/silverstripe-google-edit_lg.jpg&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/silverstripe-google-edit_sm.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;356&quot; /&gt;&lt;br /&gt;The search page settings (click to enlarge)&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Once published open the page and try a search. Assuming your code and settings are correct the Google search results should be displayed within your SilverStripe page. Now all there is left for you to do is style the results.&lt;/p&gt;
&lt;p&gt;For an example of this technique at work, checkout the &lt;a href=&quot;http://www.pco.parliament.govt.nz/search&quot;&gt;Parliamentary Counsel Office&#039;s search interface&lt;/a&gt; which is implemented using the method just described.&lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/search&quot;&gt;search&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/google&quot;&gt;google&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/cms&quot;&gt;cms&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/silverstripe&quot;&gt;silverstripe&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/tutorial&quot;&gt;tutorial&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Tue, 15 Sep 2009 08:32:53 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">550 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title> Autodesk Seek gets a new look and more content</title>
 <link>https://www.stress-free.co.nz/autodesk_seek_gets_a_new_look_and_more_content</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/bimworld_seek.jpg&quot; alt=&quot;&quot; width=&quot;140&quot; height=&quot;126&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Autodesk has not yet abandoned their web-based services endeavours in spite of a wilting construction industry and sinking global economy. Just prior to Autodesk University 2008 their &lt;a id=&quot;jn83&quot; title=&quot;Seek service&quot; href=&quot;http://seek.autodesk.com/&quot;&gt;Seek service&lt;/a&gt; received a significant makeover. Now this week it was &lt;a id=&quot;o8n3&quot; title=&quot;been announced&quot; href=&quot;http://coffeewithsuhail.blogspot.com/2008/12/bimworld-now-going-to-be-part-of.html&quot;&gt;announced&lt;/a&gt; &lt;a id=&quot;xxkq&quot; title=&quot;BIMWorld&quot; href=&quot;http://www.bimworld.com/&quot;&gt;BIMWorld&lt;/a&gt; has been acquired by Autodesk so that its &lt;a id=&quot;gsqa&quot; title=&quot;BIMLibrary&quot; href=&quot;http://library.bimworld.com/&quot;&gt;BIMLibrary&lt;/a&gt; catalogue can be folded into Seek&#039;s. These events all sound good on paper, but how do they stack up, and more importantly is this a step forward for the Seek service?&lt;/p&gt;
&lt;h2&gt;The new user interface&lt;/h2&gt;
&lt;p&gt;The old white on black style of Seek has disappeared in favour of pastels on white. Overall this is a welcome change, but more importantly the overall appearance has been tidied up, with more attention paid to the rendering of onscreen elements. The result still feels very database-driven, but compared to the previous interface it does have a better flow and a less haphazard look. The Javascript-based &lt;a id=&quot;ljkp&quot; title=&quot;Yahoo! User Interface&quot; href=&quot;http://developer.yahoo.com/yui/&quot;&gt;Yahoo! User Interface&lt;/a&gt; library has been used to good effect and overall it feels very snappy. Unfortunately under this new coat of paint some things have not changed, for example the URIs for each product are shockingly bad. The option to email a link of the product has improved, but most people are used to simply copying and pasting URLs from the browser. If Autodesk expect others to link to content they need to resolve this problem. Until then it is very difficult for people to collaborate using Seek as a point of reference.&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;&lt;a href=&quot;/sites/default/files/u63/seek_revised1_lg.jpg&quot;&gt; &lt;img src=&quot;/sites/default/files/u63/seek_revised1_sm.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;257&quot; /&gt;&lt;br /&gt;The revised look and feel of Autodesk Seek (click to enalrge) &lt;/a&gt;&lt;/div&gt;
&lt;!--break--&gt;
&lt;p&gt;It is good to see that on some 3D models the option to preview the model before downloading is available. Whether this option appears seems to depended on the supplier, but when it was present the result worked quite well. On the Mac with Safari the preview was limited to &lt;a id=&quot;uca.&quot; title=&quot;Project Freewheel&#039;s&quot; href=&quot;http://freewheel.labs.autodesk.com/index.aspx&quot;&gt;Project Freewheel&#039;s&lt;/a&gt; static 3D rendering of model, but apparently an interactive 3D viewer is available for Windows users. Even with this limitation the preview provided by Freewheel is a welcome addition, and for most tasks provides all the validation a user may require.&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;&lt;a href=&quot;/sites/default/files/u63/seek_revised2_lg.jpg&quot;&gt; &lt;img src=&quot;/sites/default/files/u63/seek_revised2_sm.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;305&quot; /&gt;&lt;br /&gt;Seek&#039;s new 3D model preview option (click to enlarge)&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Beyond these specific improvements the overall interface has not fundamentally changed. This is not bad, you cannot help but feel one or two UI iterations centered around navigation and filtering could lead to something really innovative. This could be helped if 2009 Autodesk exposed Seek&#039;s index as a series of web services. Third parties would then be free to develop more varied interfaces and &quot;mash-up&quot; the data with external services.&lt;/p&gt;
&lt;h2&gt;The BIMWorld purchase&lt;/h2&gt;
&lt;p&gt;Whenever one large company buys a smaller one it is always fun to watch. Autodesk&#039;s acquisition of BIMWorld appears to be centered around two assets; the &lt;a id=&quot;d2sw&quot; title=&quot;content catalogue&quot; href=&quot;http://library.bimworld.com/&quot;&gt;content catalogue&lt;/a&gt; and its supporting community. Whilst the catalogue and its supporting content should be relatively easy to integrate with Seek, preserving the community may prove more of a challenge. The motivation behind &quot;buying&quot; a community is simple, on the Internet page views are the linga franca of advertising dollars. The more users Seek can claim, the more valuable it becomes to advertisers, suppliers and potential users.&lt;/p&gt;
&lt;p&gt;The challenge facing this forthcoming community migration is that BIMWorld has significant functionality Seek currently lacks, for example membership, ratings and the ability to upload new content. Such deficiencies may prove too much for many BIMWorld users to stomach. However it may turn out this &quot;missing&quot; functionality is added to Seek sometime in 2009. The inability to submit or comment on content handicaps the fledgling service, so you would hope planning and implementation of such features was underway prior to the acquisition.&lt;/p&gt;
&lt;h2&gt;Conclusion: It is getting there slowly&lt;/h2&gt;
&lt;p&gt;Seek is demonstrating slow but steady improvement on both the interface and content fronts. The purchase of BIMWorld illustrates that Autodesk are serious about the idea of a universal product catalogue and are willing to spend money to ensure it establishes itself. Hopefully in 2009 we see the implementation of user and community-centric functionality that lifts the service from a simple database interface to a thriving AEC specifications centre. Such an endeavour will prove most successful if the functionality can be tightly integrated with Autodesk&#039;s 2010 range of AEC products. The majority of AEC professionals spend their working lives buried in these tools, so for Seek&#039;s sake lets hope Autodesk does not expend too much effort bringing people to the website, and instead focus on taking the content to the people.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/search&quot;&gt;search&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/autodesk&quot;&gt;autodesk&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/architecture&quot;&gt;architecture&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/seek&quot;&gt;seek&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Wed, 17 Dec 2008 10:21:50 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">534 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Autodesk Seek steps towards ubiquitous AEC search</title>
 <link>https://www.stress-free.co.nz/autodesk_seek_towards_ubiquitous_aec_product_search</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;
&lt;img src=&quot;/sites/default/files/u63/seek_logo.png&quot; width=&quot;210&quot; height=&quot;59&quot; /&gt;&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; Before reading this critque I would recommend checking out &lt;a href=&quot;/autodesk_seek_talk_by_mike_haley&quot;&gt;this Autodesk Seek presentation&lt;/a&gt; as it answers many of the questions raised here.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a id=&quot;qfqi&quot; href=&quot;http://www10.aeccafe.com/nbc/articles/view_article.php?section=CorpNews&amp;amp;articleid=527810&quot; title=&quot;Autodesk Seek press release&quot;&gt;In May&lt;/a&gt; Autodesk released a beta of &lt;a id=&quot;d40g&quot; href=&quot;http://seek.autodesk.com/&quot; title=&quot;Autodesk Seek&quot;&gt;Autodesk Seek&lt;/a&gt;, a web-based Architecture, Engineering and Construction (AEC) specific, 3D model and specifications search tool. Rather than a free for all model index in a similar guise to &lt;a id=&quot;ags5&quot; href=&quot;http://sketchup.google.com/3dwarehouse/&quot; title=&quot;Google&#039;s 3D Warehouse&quot;&gt;Google&#039;s 3D Warehouse&lt;/a&gt; or &lt;a id=&quot;lbfb&quot; href=&quot;http://www.cadoogle.com/&quot; title=&quot;CADoogle&quot;&gt;CADoogle&lt;/a&gt;, the service is focused on exposing the model and specification catalogues of AEC suppliers. This is hardly going to interest the armchair designer, but for architects and engineers the ability to quickly locate, access and reference specifications and 3D data could potentially reduce design development time and costs significantly.
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Gauging by the initial contents of Seek it would appear Autodesk have partnered with some large U.S. suppliers in order to kick-start their index. Whilst the index signals a clear sign of intent its current contents is hardly awe inspiring. That being said raw index size itself does not ensure success, to really make a mark and stand the test of time the Seek team need to execute on three things: 
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Quickly build out this index with up to date and relevant content so that it becomes the first place AEC professionals head to.&lt;/li&gt;
	&lt;li&gt;Create a compelling user experience which overcomes the idea that a specifications catalogue must be dull, unhelpful and always two months out of date.&lt;/li&gt;
	&lt;li&gt;Work to integrate Seek into as many aspects of Autodesk&#039;s existing modeling and drafting tools. By doing so the line between desktop and Web will be blurred and Seek will become a natural extension of their professional digital toolset. &lt;/li&gt;
&lt;/ul&gt;&lt;h2 id=&quot;zh6s0&quot;&gt;What differentiates Seek from the crowd?&lt;/h2&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
The idea of an online product catalogue for AEC specifications is &lt;a id=&quot;k_fk&quot; href=&quot;http://itc.scix.net/cgi-bin/works/Show?_id=w78%2d2000%2d1069&amp;amp;sort=DEFAULT&amp;amp;search=THE%20CONTENT%20OF%20AN%20IDEAL%20WEB%20SITE%20FOR%20BUILDING%20&amp;amp;hits=1275&quot; title=&quot;certainly not new&quot;&gt;certainly not new&lt;/a&gt;. However Seek is unique in that it is the first online product catalogue backed by a large company who&#039;s primary customer-base is not AEC suppliers. In the past online AEC catalogue initiatives have been spearheaded by suppliers or third-parties financially dependent on these suppliers. This close association has hindered growth and because for a Web-based, universal product catalogue to be successful it must stand independently from its data suppliers. This independence establishes trust which is important because users do not want the relevancy of their search influenced by who is paying the bills, nor do they want a &#039;walled garden&#039; where only products from selected (paying) suppliers are on show. Consequently even though many supplier-backed catalogues exist, none can be considered the Google of the AEC world.
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Seek has the potential of filling this &#039;Google&#039; void because Autodesk&#039;s primary income is from people who make material purchasing decisions (architects, engineers and contractors, etc.) and not the suppliers themselves. This difference places Seek in the position of being able to design a catalogue that acts in the best interests of the search consumer. At the same time suppliers are practically forced to take part given Autodesk&#039;s vast global audience. The challenge facing Seek it is that Autodesk are not known for producing search indexes or successful Web products. 
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
So given this background and the potential rewards on offer what works and what doesn&#039;t in this early beta release? Let&#039;s take a look... 
&lt;/p&gt;
&lt;!--break--&gt;
&lt;h2 id=&quot;r9eb0&quot;&gt;Judging a book by its cover&lt;/h2&gt;
The Seek team have yet to reveal anything about its inner workings so in this beta release all that can really be judged is the front-end usability and functionality. Unfortunately look and feel wise Seek is nothing to write home about. The interface is not confusing, it just has that late-20&lt;sup&gt;th&lt;/sup&gt; Century database feel that the cool &#039;Web 2.0&#039; crowd left many years ago.  This may sound immaterial but if the target audience is aesthetically motivated people like designers and architects the user interface has to look really good. Adobe understand this and make every one of their websites a work of art, for example just checkout their latest &lt;a id=&quot;g3_p&quot; href=&quot;http://adobe.com&quot; title=&quot;acrobat.com site&quot;&gt;acrobat.com site&lt;/a&gt;.  This is not to say that Seek should become one big Flash animation, they just need to break down the grid layout, pare back the interface elements and add a dedicated interface/graphic designer to the team.&lt;br /&gt;&lt;h2 id=&quot;ufu10&quot;&gt;Aspects that work&lt;/h2&gt;
&lt;p id=&quot;wc_j2&quot;&gt;
Aesthetics aside a good deal of Seek&#039;s exposed functionally works well; namely the classification, filtering and linked file support. Whilst these may not not seem that exciting they do illustrate the developers have a solid understanding of what AEC professionals are interested in getting out of Seek.
&lt;/p&gt;
&lt;h3 id=&quot;kz6l0&quot;&gt;Classification&lt;/h3&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Seek applies multiple classification systems to the data stored within its index. As a result rather than coming across as a want-to-be Google for AEC search, the experience is more akin to the 90&#039;s-era &lt;a id=&quot;qplf&quot; href=&quot;http://web.archive.org/web/19981212034415/http://www9.yahoo.com/&quot; title=&quot;manual categorisation system of Yahoo&quot;&gt;manual categorisation by Yahoo&lt;/a&gt;. This may not sound sexy as we approach 2010 but it actually works pretty well. Experience has shown that performing &#039;dumb&#039; searches within the rigid world of architecture generally is not very productive. When looking for AEC content we will have specific contexts in mind and classification systems help define their respective boundaries. By limiting search results to a specific subset of the building industry the potential for finding what you are looking for increases dramatically. Unfortunately the option does not seem to be available to perform a sub-search within a specific category. For example there did not seem to be a way to search for the term &#039;stainless steel&#039; within the Transportion section of the CSI MasterFormat category. It is possible to filter the results from a category search but this is not as flexible as being able to define a custom search term within a category.
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
What would be interesting to learn about is how these classification systems are applied to the items in the index. Do the manufacturers have to manually define which categories their models/specifications fall under, or have Autodesk developed some intelligent algorithm that classifies incoming data similar to that described &lt;a id=&quot;g1-x&quot; href=&quot;http://www.cs.auckland.ac.nz/%7Etrebor/papers/AMOR05A.pdf&quot; title=&quot;described by Robert Amor&quot;&gt;in this paper by Robert Amor&lt;/a&gt;? If it is the later then that would be very cool, but how accurate is it? Along this same line of thought is whether Seek can add other classifications systems to its index and if so how would this &#039;foreign&#039; semantic system be mapped to the existing entities in the index? For example in New Zealand many practitioners use the &lt;a id=&quot;p7-q&quot; href=&quot;http://www.masterspec.co.nz/cbi.asp&quot; title=&quot;CBI classification system&quot;&gt;CBI classification system&lt;/a&gt;, so for Seek to be accepted in this locale it would ideally need more than just the three categorisation systems currently supported. Personally I hope Autodesk do have plans for supporting a plethora of categorisation systems through some sort of mapping algorithm (i.e. system A, section 1 = system B, section 3 &amp;amp; 4). Such a mechanism could never be 100% accurate but it would make Seek more appealing to international users and future proof it for new categorisation systems which will surely emerge.&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;kz6l2&quot;&gt;Filtering&lt;/h3&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Seek offers a wide range of attributes to filter on once a category or basic search term has been defined. This mechanism enables quick culling of large sets of results to identify a couple of the most relevant models or specifications. In this regard Seek behaves more like an e-commerce site rather than a search engine because the emphasis is not on providing you 50 relevant suggestions but one or two specific answers. At the moment it is difficult to test the usefulness or performance of the filter functionality given the limited size of the current search index. Still the interface is intuitive, so even when there are only ten search results the ability to quickly filter them still feels useful. This maybe because the filters provide a visual prompt as to how you can drill down to the product you really want, i.e. arctic white, gun grey or stainless steel window frames?
&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;
&lt;a href=&quot;/sites/default/files/u63/seek_results_lg.jpg&quot;&gt;
&lt;img src=&quot;/sites/default/files/u63/seek_results_sm.jpg&quot; width=&quot;400&quot; height=&quot;259&quot; /&gt;&lt;br /&gt;
Seek&#039;s search results with its filtering system on the left (click to enlarge)
&lt;/a&gt;
&lt;/div&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
The question remains as to exactly how Seek facilitates filtering of its index. Are the filterable attributes automatically derived from indexed data or are they manually defined by the manufacturer or Autodesk themselves? The solution to this question is a double edged sword; an automatically derived filtering mechanism enables efficient scale (indexing bots) whilst a manual process provides a high degree of trust. Unfortunately automation generally comes at the expense of accuracy and manual data entry will stunt the index&#039;s growth. To be judged a success Seek needs to balance these demands to build a large yet accurate index. If it fails in this task the end result will be an index which is large and inaccurate, or accurate but too small to care about. Neither alternative will be suffered by users long before they go back to their conventional, paper-based specification libraries.&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;kz6l3&quot;&gt;Linked file support&lt;/h3&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Of all the major AEC software vendors Autodesk is arguably one of the worst for equally supporting competing formats. Fortunately this attitude seems to have changed when it comes to Seek as it prominently supports a range of non-Autodesk formats such as Bentley&#039;s DGN and Adobe&#039;s PDF. The first time you download a linked file you must agree to Autodesk&#039;s &lt;a id=&quot;zbn0&quot; href=&quot;http://seek.autodesk.com/terms.htm&quot; title=&quot;terms of use&quot;&gt;terms of use&lt;/a&gt; which is interesting considering the files themselves are not hosted by Autodesk. Now I am no lawyer and there is probably good reason for this, but it still feels strange to have a search engine imparting terms of use on the content it links to.
&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;
&lt;a href=&quot;/sites/default/files/u63/seek_relatedfiles_lg.jpg&quot;&gt;
&lt;img src=&quot;/sites/default/files/u63/seek_relatedfiles_sm.jpg&quot; width=&quot;400&quot; height=&quot;287&quot; /&gt;&lt;br /&gt;
Most products have numerous file attachments. Unfortunately the preview option is very limited at the best of times (click to enlarge) 
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
In the future it would be great to see a more comprehensive file previewer be made available. There are currently thumbnail images of many referenced files but something that behaved in a similar way to &lt;a id=&quot;y8cg&quot; href=&quot;http://www.apple.com/macosx/features/quicklook.html&quot; title=&quot;Apple&#039;s Quick Look&quot;&gt;Apple&#039;s Quick Look&lt;/a&gt; would be really useful. Whilst this may sound far fetched it is not an impossible considering Autodesk have &lt;a id=&quot;x4_b&quot; href=&quot;http://labs.autodesk.com/technologies/freewheel/&quot; title=&quot;Freewheel&quot;&gt;Freewheel&lt;/a&gt;, a Web-based 3D model viewer. If used alongside a Web-based document viewer similar to &lt;a id=&quot;ld4l&quot; href=&quot;http://www.scribd.com/&quot; title=&quot;Scribd&quot;&gt;Scribd&lt;/a&gt; it would allow users to quickly preview the contents of files without having to commit to a download. The inclusion of such functionality would not only enrich the user experience but open up further revenue opportunities. Attached files could be made available online through Seek for free and offered for download at a reasonable price from Autodesk or the third-party. This revenue model works well for many book publishers and stock photo distributors, so in theory the same could be achieved within the AEC industry if the content holds enough value.&lt;br /&gt;&lt;/p&gt;
&lt;h2 id=&quot;qfan0&quot;&gt;Aspects that could do with development&lt;/h2&gt;
&lt;h3 id=&quot;un_b2&quot;&gt;Growing the index&lt;/h3&gt;
&lt;p id=&quot;i_2m0&quot;&gt;
To help build out the search index the Seek team will need to make public how interested third parties can get their own content into it. Given the intention of the project it is obvious that strangers off the street will not be granted publishing rights and for the integrity of the index it is important that some validation processes be put in place. That being said in the interests of long-term success the route to participation should be a public, devoid of NDAs, exchanges of money or unnecessary bureaucracy. &lt;br /&gt;&lt;/p&gt;
&lt;p id=&quot;i_2m0&quot;&gt;
When it comes to creating an accurate and timely index blog search engines
have demonstrated that the ability to push structured data to the search engine is far more efficient than using a conventional Web crawler approach. With this capability the very nature of the catalogue would shift from that of an online book to a living entity. If suppliers were able to push availability details and news about a particular product into the index it would mean that any consumer of Seek data would also be able to utilise this information. For example consider the following scenario:
&lt;/p&gt;
&lt;p id=&quot;i_2m0&quot;&gt;
An architect assigns a product specification from Seek to a component in their AutoCAD model. On making this assignment they select to be notified of important information on this product until the project is complete. In effect this configures AutoCAD a subscriber to the product-specific RSS feed on Seek. As any new information is announced by the supplier, for example it will be discontinued in December or a national safety test found it did not perform well under certain situations, then anyone opening the model would be alerted of this news. &lt;em&gt;Note:&lt;/em&gt; The RSS product feeds themselves would not necessarily need to be contained within the AutoCAD file itself, they could exist in an externally referenced &lt;a id=&quot;eqsh&quot; href=&quot;http://en.wikipedia.org/wiki/OPML&quot; title=&quot;OPML file&quot;&gt;OPML file&lt;/a&gt;. 
&lt;/p&gt;
&lt;p id=&quot;i_2m0&quot;&gt;
There are two proven means of achieving this push-like model, Seek could consume supplier generated &lt;a id=&quot;zcnk&quot; href=&quot;http://en.wikipedia.org/wiki/Atom&quot; title=&quot;Atom&quot;&gt;Atom&lt;/a&gt; feeds, or &lt;a id=&quot;oifv&quot; href=&quot;http://en.wikipedia.org/wiki/Google_Sitemaps&quot; title=&quot;Google Sitemap&quot;&gt;Google Sitemap-like&lt;/a&gt; structured documents. In both cases the supplier should be able to &#039;&lt;a id=&quot;scuo&quot; href=&quot;http://technorati.com/ping&quot; title=&quot;ping&quot;&gt;ping&lt;/a&gt;&#039; Seek to inform it that new content is available for indexing and be confident that in a timely manner Seek would be accurately displaying the data to users. The key behind such an approach is that the AEC-specific data (classifications, physical properties, etc.) within these feeds would need to be conveyed in a non-proprietary format. Whilst it would be easy for Autodesk to write their own format a wiser approach would be to take an existing Web format, for example &lt;a id=&quot;bi7n&quot; href=&quot;http://code.google.com/apis/gdata/basics.html&quot; title=&quot;GData format&quot;&gt;GData&lt;/a&gt; and build upon that. By starting out with a ubiquitous format it makes the task of gaining third-party support much easier and it ensures effort expended by suppliers to create Seek feeds can be leveraged by other search engines and compatible software. &lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;qh5z0&quot;&gt;
&lt;/h3&gt;
&lt;h3 id=&quot;qh5z0&quot;&gt;Exposing the Data&lt;/h3&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Crucial to the success of Seek is its web service component, i.e. the ability for other applications on the Web or desktop to use the data this service returns. Whilst Autodesk &lt;a id=&quot;id2k&quot; href=&quot;http://pages.citebite.com/s5m0b3n4piaw&quot; title=&quot;as they describe it&quot;&gt;currently describe Seek&lt;/a&gt; as a &#039;web service&#039; this is not the case in the &lt;a id=&quot;m_so&quot; href=&quot;http://en.wikipedia.org/wiki/Web_services&quot; title=&quot;contempoary sense&quot;&gt;contemporary sense&lt;/a&gt;. Seek&#039;s value will increase exponentially once it makes the leap from a visual catalogue to a service which forms the functional backbone of desktop and web-based applications. For example consider the following two scenarios and how a service-centric Seek could have: 
&lt;/p&gt;
&lt;blockquote&gt;
	An architect working on an ArchiCAD model is about to make a design decision regarding a set of shelves. The ArchiCAD Seek plug-in recognises that this is the case because the user has selected the appropriate modeling tool and layer set. The plug-in queries Seek and returns a list of appropriate 3D models based on the properties of the project (a residential dwelling in Auckland). The plug-in filters and orders this data to suit the architect&#039;s personal preferences - in this case supplies that satisfy green building standards. Without a single extra mouse click Seek in partnership with the desktop software is able to present a reasonably intelligent set of shelving options. This task, which would have taken hours of searching through conventional product catalogues and manual 3D modelling is completed in seconds.
&lt;/blockquote&gt;
&lt;blockquote&gt;
	A design team working on a medium sized industrial plant in Sydney is having a discussion within their Project Intranet on appropriate door fixtures to use. None of the available products seem to suit the requirements so the outstanding issue is recorded as something that needs attention later. The Intranet software constructs a Seek search query out of the issue&#039;s defined parameters and begins regularly checking Seek for potential matches. Weeks pass and the problem is forgotten about by the team. Then one afternoon the Intranet service issues an email informing the interested parties that a local supplier has just that morning started producing a new line of industrial strength fixtures which satisfy the design requirements.
&lt;/blockquote&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;p id=&quot;a3kr1&quot;&gt;
In both these scenarios the use of web services transforms Seek from a user-initiated search tool to a context-aware information delivery service. With this relatively simple shift the value proposition of Seek from both the user and supplier&#039;s perspective changes immensely. The catalogue ceases to be a passive object and becomes a tool that can proactively solve decisions and sell products.&lt;br /&gt;&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
When it comes to exposing the Seek index via web services this should be implemented as simply as possible. This means following the example of many Internet-savvy companies and releasing lots of well documented, REST-based web services. These services should return simple XML (preferably Atom) or JSON data streams which any application developer can utilise. To support this API there also needs to be a set of Javascript components to enable non-developers (i.e. the CAD managers and &quot;I.T. guys&quot; of this world) to embed Seek functionality within company Intranets. Once Autodesk make this set of web services available it is a relatively easy task for third party developers to integrate Seek into their own applications to achieve the functionality described and more. Unfortunately the cloud hanging over this rosy picture is that Autodesk are not known for producing open and simple to use web services. Time will tell whether they can execute on such a strategy, but let&#039;s hope the thought has at least crossed their collected minds.&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;e5gb1&quot;&gt;Sharing search results&lt;/h3&gt;
&lt;p&gt;
Search results from Seek can be emailed to others for later
reference but the mechanism for this is very primitive. This option feels like a nod in the direction of useful functionality rather than something that has been given serious attention. When it comes to externally sharing results the feature-set needs to be greatly expanded upon to be of real value. Currently it is not possible
to email a subset of your search results or highlight specific results other than writing &quot;here are the results and I prefer options 2 and 5&quot;. Also in need of development is the functionality surrounding the email format. Rather
than emailing a dull URL there should be the option
to send the selected results as a self contained message complete with thumbnails. Many (if not all) AEC companies use email as a quasi filing system, so a URL that displays different results over time is of little historical value. In effect what the email option needs to become is the equivalent of the Amazon or Dell &#039;wish list&#039;. This way architects can have their clients look through Seek and build a list of &#039;things&#039; they like the look of, i.e the digital equivalent of turning up to the practice with three Home &amp;amp; Garden magazines.
&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;
&lt;a href=&quot;/sites/default/files/u63/seek_reader_lg.jpg&quot;&gt;
&lt;img src=&quot;/sites/default/files/u63/seek_reader_sm.jpg&quot; width=&quot;400&quot; height=&quot;179&quot; /&gt;&lt;br /&gt;
Seek does not use friendly URLs or have unique meta-data for each page. Consequently tools like Google Reader do not work well (click to enlarge) 
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
Another way that specific items can be quickly shared or referenced is by hyperlinking. Unfortunately this is not made easy because Seek URLs are in no way &#039;&lt;a id=&quot;lk1i&quot; href=&quot;http://www.merges.net/theory/20010305.html&quot; title=&quot;friendly&quot;&gt;friendly&lt;/a&gt;&#039;. Take for example this URL that Seek generates for &#039;Window Guards&#039;:&lt;br /&gt;&lt;a id=&quot;b47g&quot; href=&quot;#query=search%5Edetail%5EH4sIAAAAAAAAAEtMT7fKTU4vSizPyMzJsfILDrG0MDEGAOhs_2kWAAAA&quot; title=&quot;http://seek.autodesk.com/#query=search%5Edetail%5EH4sIAAAAAAAAAEtMT7fKTU4vSizPyMzJsfILDrG0MDEGAOhs_2kWAAAA&quot;&gt;http://seek.autodesk.com/#query=search%5Edetail%5EH4sIAAAAAAAAAEtMT7fKTU4vSizPyMzJsfILDrG0MDEGAOhs_2kWAAAA&lt;/a&gt; &lt;br /&gt;
Not only is this meaningless but the meta information within the Seek page does not change to suit the context being viewed. The title of the page is always &#039;Autodesk Seek&#039; and the meta description a constant &#039;Autodesk Seek is the online source for building product information (...)&#039;. As a result if you were to bookmark this page in a browser or online service the default bookmark attributes (the name and description) do not accurately reflect the subject matter of the page. In comparison if you take a look at a page from Amazon.com the URL, page title and description all clearly identify what the subject matter is:&lt;br /&gt;&lt;a id=&quot;ur_3&quot; href=&quot;http://www.amazon.com/Harry-Potter-Deathly-Hallows-Book/dp/0545010225/&quot; title=&quot;http://www.amazon.com/Harry-Potter-Deathly-Hallows-Book/dp/0545010225/&quot;&gt;http://www.amazon.com/Harry-Potter-Deathly-Hallows-Book/dp/0545010225/&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;
This may sound a little pedantic but it is the details like this that make comprehension of hyperlinks possible for both people and computers alike. A failure of comprehension means that third-party services like Google Reader&#039;s ability to &lt;a id=&quot;r356&quot; href=&quot;http://googlereader.blogspot.com/2008/05/share-anything-anytime-anywhere.html&quot; title=&quot;share interesting web pages with peers&quot;&gt;share interesting web pages with peers&lt;/a&gt; do not work so well, if at all when it comes to Seek.
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
&lt;strong&gt;Trusting search results&lt;/strong&gt;
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Whilst traditional web search engines like Google, Yahoo or Microsoft need to worry about &#039;&lt;a id=&quot;ehzb&quot; href=&quot;http://www.conversationmarketing.com/2006/02/search_engine_optimization_fra.htm&quot; title=&quot;search engine fraud&quot;&gt;search engine fraud&lt;/a&gt;&#039; the factual correctness of the information is of little importance as long as it is considered relevant. In comparison for a service like Seek the user&#039;s ability to trust the information returned is exceptionally important. There is no point in using the service if it returns models or specifications that are incorrect or out of date. This issue becomes a real problem as the index grows, things get out of date and malicious suppliers attempt to game the system to boost sales by 0.1%. Even well intentioned suppliers and Seek itself are capable of making mistakes. Given these factors there needs to be a feedback mechanism in place for consumers to alert Autodesk and their fellow users of these problems. This feedback could be enabled passively or through active participation.
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
General purpose search engines establish &#039;correctness&#039; through the concept of &lt;a id=&quot;rjcb&quot; href=&quot;http://en.wikipedia.org/wiki/PageRank&quot; title=&quot;PageRank&quot;&gt;PageRank&lt;/a&gt; (i.e. if it is linked to it is probably right). Unfortunately for the closed and competitive world of architectural design this concept cannot be applied even if it was possible for Autodesk to go crawling the design plans of AEC professionals to identify which models and specifications are referenced the most. However it would be feasible to deploy an opt-in system within Seek where users could identify models and specifications they made use of regularly. For example during the drafting of construction details the CAD program could notify Seek whenever specifications stored in the index were referenced by the designer. In practice this would be similar to &lt;a id=&quot;urol&quot; href=&quot;http://www.google.com/psearch&quot; title=&quot;Google&#039;s Web History&quot;&gt;Google&#039;s Web History&lt;/a&gt; as the aggregate, anonymised data returned would help assist others to identify popular, and therefore by logical extension trusted, models and specifications.
&lt;/p&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Beyond passive observation is the ability for users to directly feed into Seek&#039;s index their own opinions and content. For example the real value of the Amazon web experience is not the search results but the user reviews. Basic online specifications is one thing, but knowing that someone in a very similar situation as yours found the actual product did not measure up to expectations is considerably valuable. However if this kind of conversation were to take place on Seek itself it may place Autodesk in an awkward position with suppliers who do not take kindly to poor feedback. Whether or not such functionality is possible will depend on the business model Seek eventually establishes. If the intention is to add value to Autodesk&#039;s other software offerings then such functionality is a possibility, but if Seek they are looking to generate an income stream through paid listings from suppliers then the chances of seeing such functionality is low. Personally I feel it would be great to see Autodesk take the open road and encourage user feedback on listings through a variety of mechanisms. Unlike dedicated online catalogue companies Autodesk can afford to take such a risk because their customer base is the decision makers in the building process, hence they stand to profit most when they give this group better decision making tools.
&lt;/p&gt;
&lt;h3 id=&quot;fcw80&quot; style=&quot;font-size: 13pt&quot;&gt;Working within an organisation or project team&lt;br /&gt;&lt;/h3&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Currently Seek is a standalone search service that lacks functionality specific to project work-groups. It would be useful to be able to register a practice or project account with Seek in order for selected index items or suppliers to be listed, shared and discussed within this social network. Many architecture practices work with selected suppliers and components that they are familiar with and trust. These trust networks would make the process of browsing, selecting and recalling past decisions easier for users because it establishes an internal hierarchy within the index unique to the individual or group (i.e. another layer of meta-categorisation). For example consider the following scenario and how this trust network would be useful:&lt;br /&gt;&lt;/p&gt;
&lt;blockquote&gt;
	An architecture graduate is trying to pick commercial kitchen fittings for the first project he has been issued at his new job. The graduate has no experience in this field so they elect to filter Seek search results to suppliers trusted by their architecture practice. On selecting a fitting Seek informs the graduate that a similar fitting was used in a project two years ago by a senior partner. This is reassuring in two ways; firstly it indicates that this choice is not completely off track (a senior partner made a similar decision), and secondly it identifies a pathway for future research (&quot;hey John, how did that kitchen work out last year?&quot;).
&lt;/blockquote&gt;
Whether or not all the historical information referenced in this scenario would be stored in the Seek &#039;cloud&#039; would be an operational preference of the organisation or project team. Even excluding the ability to track historical choices made by the collective the ability to create a Seek user account and limit search results to an identified subset of other users would go a long way to achieving this functionality.
&lt;h3 id=&quot;xfui0&quot;&gt;Leveraging the social&lt;/h3&gt;
&lt;p id=&quot;a3kr1&quot;&gt;
Without a doubt the &quot;Web phenomenon&quot; of the past two years has been the move towards social-centric networks (e.g. &lt;a id=&quot;v683&quot; href=&quot;http://www.facebook.com/&quot; title=&quot;Facebook&quot;&gt;Facebook&lt;/a&gt;, &lt;a id=&quot;jn-j&quot; href=&quot;http://www.myspace.com/&quot; title=&quot;MySpace&quot;&gt;MySpace&lt;/a&gt; and &lt;a id=&quot;lm_j&quot; href=&quot;http://twitter.com/&quot; title=&quot;Twitter&quot;&gt;Twitter&lt;/a&gt;). AEC professionals subscribe to magazines and catalogues, visit interesting buildings and attend lectures because they want to know what their peers are up to. Implemented correctly Seek would enable users to track what was &#039;in&#039; and what was &#039;out&#039; in the same way that a fashionista attends catwalk shows. Where this could get really interesting is in the field of paid recommendations like that of &lt;a id=&quot;u9ea&quot; href=&quot;http://affiliate-program.amazon.com/gp/associates/join&quot; title=&quot;Amazon&#039;s Associate programme&quot;&gt;Amazon&#039;s Associate programme&lt;/a&gt;&lt;a id=&quot;hr1r&quot; href=&quot;http://www.facebook.com/business/?beacon&quot; title=&quot;Facebook&#039;s Beacon&quot;&gt;&lt;/a&gt;. The idea being that if my actions or recommendations influence the purchasing decision of another party then shouldn&#039;t I be rewarded by the supplier in some way? The supplier has sold a product, the third-party has solved their problem and Autodesk has promoted their brand - doesn&#039;t the person who initiated this transaction deserve some reward? Greed is a powerful motive for participation and a rewards mechanism would certainly encourage use. Such a system would not neccessary have to involve financial rewards, it could operate with the concept of &#039;Autodesk Points&#039; which acrue in the same way as frequent flier miles and can be redeemed for discounts on Autodesk software. After all a similar concept to this made the &lt;a id=&quot;t77e&quot; href=&quot;https://www.google.com/adsense/login/en_US/?gsessionid=DCNkoDBsXj4&quot; title=&quot;Google AdSense programme&quot;&gt;AdSense programme&lt;/a&gt; Google arguably the largest advertising agency in the world.
&lt;/p&gt;
&lt;h2 id=&quot;yomh0&quot;&gt;In Conclusion&lt;/h2&gt;
&lt;p id=&quot;yomh1&quot;&gt;
Seek is a promising step in a potentially very interesting direction for Autodesk. If they can continue to evolve its functionality and integrate it into their other product offerings it stands a higher than average chance of becoming a valuable resource within the AEC industry. Central to its success is a demonstration that the search index is capable of growing quickly and that the underlying data can be easily exposed to third-party developers. With these improvements and a lot of luck it is not unreasonable to suggest that Autodesk Seek may become the Google/Amazon (Goomazon?) of AEC specific search and specification.
&lt;/p&gt;
  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/thesis&quot;&gt;thesis&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/search&quot;&gt;search&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/autodesk&quot;&gt;autodesk&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/architecture&quot;&gt;architecture&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Fri, 06 Jun 2008 21:59:29 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">510 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Swoogle semantic search</title>
 <link>https://www.stress-free.co.nz/swoogle_semantic_search</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;img src=&quot;/sites/default/files/images/thesis/swoogle.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;  &lt;p&gt;&lt;a href=&quot;http://swoogle.umbc.edu/&quot;&gt;Swoogle&lt;/a&gt; is a semantic search engine project by the Computer Science and Electrical Engineering Department at the University of Maryland. They have taken a useful approach by ripping off Google&#039;s interface so that new users understand how to use the tool from the very beginning. Unfortunately the major limiting factor of the experience seems to be the results page. Rather than creating human readable snippets of information below each of the links the results simply output a snippet of the RDF code from the returned file. RDF is difficult for computers to understand so asking people to make sense of a brief quote is expecting the possible. As a consequence it is difficult to meaningfully interrogate the results in order to find content that is most relevant to you, in fact in practice the value of the returned results seems almost zero.&lt;/p&gt;  &lt;p&gt;I am not sure how semantic search engines (if they ever come into fruition) will look but I do not think they will resemble Google. It seems like the real value of semantic search lies in identifying the user&#039;s search context and linking this to their attention stream (something &lt;a href=&quot;http://blogs.zdnet.com/Gillmor/index.php?p=74&quot;&gt;Steve Gillmor talks about&lt;/a&gt; a lot). It is way too time consuming to describe many of the semantic nuances you wish to include in your search, and in search engines where you must manually enter this data a &#039;dumb&#039; Google search is of more immediate value because of its speed. In the time that you describe all your semantic search parameters you could perform a dozen standard searches and probably find twice as many relevant results. If on the other hand the semantic search engine tied into your working context, say for example it new were working on concrete detailing within your CAD file, and it had access to your attention meta-data so that it could determine relevance then the potential for semantic search could be very strong. However whilst these two essential building blocks do not exist semantic search will always be either too time consuming and difficult to use or so simple that it is not as effective as plain old Google approach of using PhD&#039;s in tanks to get through walls (from &lt;a href=&quot;http://www.itconversations.com/shows/detail571.html&quot;&gt;Adam Bosworth&#039;s MySQL conference speech&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;   &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/thesis&quot;&gt;thesis&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/semantic_web&quot;&gt;semantic web&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/search&quot;&gt;search&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Thu, 24 Aug 2006 22:30:17 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">294 at https://www.stress-free.co.nz</guid>
</item>
</channel>
</rss>
