Sherlock (software)

Sherlock (software)

Infobox Software
name = Sherlock



caption = Sherlock 3.6, Movies channel
developer = Apple Inc.
latest_release_version = 3.6.2 (179)
latest_release_date =
operating_system = Mac OS X, Mac OS 8, 9
genre = search engine
license =
website =

Sherlock, named after Sherlock Holmes, is the file and web searching tool made by Apple Inc. for the Mac OS, introduced with Mac OS 8.5 as an extension of the Mac OS Finder's file searching capabilities. Like its predecessor, it can search for local files and file contents, which it does using the same basic indexing code and search logic found in AppleSearch. Sherlock extended the system by allowing the user to search for items through the world wide web through a set of plugins that harness existing web search engines. These plugins are written as plain text files, so it is fairly simple for a user to write a Sherlock plugin.

Sherlock was replaced by Spotlight and Dashboard in Mac OS X 10.4 Tiger, although Apple continued to include it with the default installation. Since most of the standard plug-ins for Sherlock provided by Apple itself no longer function, it has been officially retired and removed in the release of Mac OS X v10.5 Leopard in 2007.

Sherlock plugin file format

The Sherlock 2 search plugin is an SGML document, and is typically given the ".src" file extension. The Sherlock plug-in is composed of three parts, identified by their element names: , , and tags. These elements allow Sherlock to (respectively) identify a search's engine's web page and the parts that are relevant to searching, as well as returning the results of the search. There is also a facility for defining how a Sherlock plug-in can update itself.

Sherlock search plugins can also be used (with minor modifications) in Mozilla's browser suites. These plugins are, appropriately enough, known as "Mycroft project plugins" (named after Mycroft Holmes, Sherlock Holmes' older brother). Among some of the changes made in the Sherlock file format is the separation of the automatic update element (which formed part of the element) and the icon (provided in a separate file in Mozilla and part of the resource fork in Sherlock).

Sherlock 3 channels

The Sherlock 3 search plugin is a web application. It is downloaded on the fly from a server to ensure the latest version. Things change on the internet so quickly that this was one way for Apple to guarantee the newest version. A channel consists of a web directory with an index. This usually points to a sub-directory (usually called "Channel") which contains the code XML, any Script XML, and localized lproj directories (nib file and Localized Text Resources as a plist).

The ten channels included by default are:
*Internet
*Pictures
*Stocks
*Movies
*eBay
*Flights
*Dictionary
*Translation
*AppleCare

A code XML file has an initialization code block, scripts, and triggers. The language for code is either JavaScript or XQuery. The code flow model is unlike that of a procedural language (C++, Java, or any of the .NET languages). Sherlock uses triggers. There is a trigger queue that executes the bottom most trigger. This queue is first in first out. What makes this difficult is its non-linearity. Users can disrupt the flow by clicking elements of the interface.

The trigger mechanism is also used to set auxiliary variables. If an interface control is to response to an event, that trigger may start executing before some of the data is set in the control.

Two triggers may execute simultaneously. In rare instances, when a second trigger starts to run asynchronously, the code flow may stop in its tracks. This occurrence is rare and only appears with the use of async triggers. Triggers may be tasks as well. This means that if a trigger is being executed and the trigger is again pushing onto the queue, the executing trigger instance will stop. This allows information to be stopped if the user preempts the function with new data (when they click on the same control with, for instance, the third category instead of the first). Lastly, there is a timed trigger which can execute every x number of seconds. There is no finer time resolution.

Triggers may also have mutual exclusion (mutex).

Script XML files are functions of Javascript and XQuery that may be called from the triggers.

the lproj directories come in the form of (two letter language code).lproj. eg. en.lproj, ja.lproj, and de.lproj. These contain the nib files used for the interface of the Channel. Each interface element has a Sherlock title which is used in the code to reference it. The nib file may contain multiple windows. Just make sure to tell sherlock which window is the primary one. The String Resources is for text that will be used in the interface but can't be placed until the channel is run.

The DataStore object is the primary object which is used for communication, triggers, variable storage, and interface element parameters. Each element in the DataStore has a path separated by the period ".". Each trigger has a path in this DataStore. Notifying (or setting a ".action" on any other element, eg. "MyChannelView.sometriggerORvariable.action") will cause the relevant trigger to execute. eg. DataStore.Notify("MyChannel.someTrigger"); or DataStore.Set("MyChannel.someVariable"); This second example would trigger "MyChannel.someVariable.action" when the variable is Change. There is persistent storage in the DataStore.

Sherlock can call triggers through URLs. The channel identifier can be specified ("sherlock://com.mycompany.mychannel?param=value") but only when the channel is already running and needs to reference itself. The use of this is in javascript in a Web view in the channel for sending data/events back into the channel. This works by sending a parameter in the url without the equals nor the value. This would be the trigger that is thus executed. eg. "sherlock://com.mycompany.mychannel?runThisTrigger&dataForTrigger=someValue" would cause the trigger "URL.runThisTrigger" to execute. The second way to ensure that a url trigger is correctly interpreted is by using the trigger called "URL.complete". This trigger will run every time a URL is send to the channel through its channel url or its identifier. Lastly, within the "URL.complete" trigger, if you process the data from the variable "URL.query" then you can link your Channel with Applescript.

Related software

Advocates of Watson made by Karelia Software, LLC claim that Apple copied their product without permission, compensation, and attribution.

Some disagree with this claim, stating that Sherlock 3 was the natural evolution of Sherlock 2, and that Watson was obviously meant to have some relation to Sherlock by its very name.

Versions

*Sherlock - introduced in Mac OS 8.5.
*Sherlock 2 - shipped with Mac OS 9, new interface, more plugins.
*Sherlock 3 - shipped with Mac OS X v10.2, runs only in Mac OS X.
*Sherlock was replaced by Spotlight in Mac OS X v10.4 for hard drive searches, and replaced by Dashboard for other functionality but remains as a stand-alone program with its channels. It was completely removed in Mac OS X v10.5. [cite web|author=Think Secret|title=Mac OS X 10.5 Leopard|url=http://www.thinksecret.com/news/0608leopardshots.html|accessdate=2007-10-22]

ee also

* Mycroft project
* OpenSearch

References

External links

* [http://developer.apple.com/macosx/sherlock/ Apple: Sherlock 3 Channel Development]
* [http://www.karelia.com/watson/watsonFAQ.html Karelia: Watson FAQ] - See "What is the relationship between Watson and the new Sherlock 3?".
* [http://www.karelia.com/developer/watson/ Karelia: Developing Tools for Watson] - See "How does Watson's plug-in architecture compare to Sherlock 3?".


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Sherlock — may refer to:*Sherlock Holmes, a fictional detective of the late 19th and early 20th centuries; see also Sherlock Holmes (disambiguation) *Sherlock Hemlock, a muppet from the Sesame Street TV show *Sherlock (software), search software for Apple… …   Wikipedia

  • Sherlock — bezeichnet: Sherlock (Vorname), einen männlichen Vornamen den Vornamen von Sir Arthur Conan Doyles Meisterdetektiv Sherlock Holmes Sherlock (Fernsehserie), eine britische Fernsehserie aus dem Jahr 2010, die auf Doyles Geschichten beruht Sherlock… …   Deutsch Wikipedia

  • Sherlock — Sherlock: Sherlock  поисковая программа для Mac OS (Sherlock). Sherlock  британский телесериал …   Википедия

  • Sherlock — Estatua de Sherlock Holmes en Picardy Place en Edinburgo, lugar de nacimiento de Arthur Conan Doyle. Sherlock es un nombre inglés masculino y raro, que significa literalmente rubio , del anglosajón scir ( brillante ) y locc ( mechón de pelo ).… …   Wikipedia Español

  • Sherlock Holmes (série de jeux vidéo) — Sherlock Holmes, célèbre détective inventé par l écrivain Sir Arthur Conan Doyle, et son célèbre acolyte le Docteur Watson, ont beaucoup inspiré les développeurs de jeux vidéo d aventure, et ce depuis la généralisation des jeux vidéo, au début… …   Wikipédia en Français

  • Sherlock Holmes (série de jeux vidéos) — Sherlock Holmes (série de jeux vidéo) Sherlock Holmes, célèbre détective inventé par l écrivain Sir Arthur Conan Doyle, et son célèbre acolyte le Docteur Watson, ont beaucoup inspiré les développeurs de jeux vidéo d aventure, et ce depuis la… …   Wikipédia en Français

  • Sherlock (jeu vidéo) — Sherlock Éditeur Melbourne House Développeur Beam Software Musique …   Wikipédia en Français

  • Sherlock Holmes: The Vatican Cameos — Sherlock Holmes The Vatican Cameos Développeur Ellicott Creek Software Date de sortie 1986 …   Wikipédia en Français

  • Jeux vidéo Sherlock Holmes — Sherlock Holmes (série de jeux vidéo) Sherlock Holmes, célèbre détective inventé par l écrivain Sir Arthur Conan Doyle, et son célèbre acolyte le Docteur Watson, ont beaucoup inspiré les développeurs de jeux vidéo d aventure, et ce depuis la… …   Wikipédia en Français

  • Non-canonical Sherlock Holmes works — Sherlock Holmes has long been a popular character for authors and creators other than Arthur Conan Doyle. Their works can be grouped into four broad categories: new Sherlock Holmes stories; stories in which Holmes appears in a cameo role; stories …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”