Patent Publication Number: US-2012030564-A1

Title: Domain-Specific Spell Check Overlays

Description:
FIELD OF THE INVENTION 
     The invention relates to the field of computer spell checking and more particularly to a method, system and computer program product for obtaining and using domain-specific spell check overlays. 
     BACKGROUND 
     Many websites use jargon that is specific to a trade or social group. These words may not appear in a standard spell check word list used by a browser or word processing application for spell checking. Currently, a user can add terms to their personal custom word list, but this approach does not adjust for different web pages that a user may visit. Thus, the word list must be universal and unnecessarily long, reducing efficiency of use. Also, the possibility that a misspelling will match a word specific to another context increases with a universal word list. 
     SUMMARY 
     It is advantageous for a spell check word list to adapt to the specific context in which it is being used. 
     According to one embodiment of the present invention, a method is provided for using a domain-specific spell check overlay to modify a spell check list for the context of a specific domain. An overlay application determines a domain and retrieves a domain-specific overlay for the domain. The domain-specific overlay comprises domain-specific modifications for a spell check word list. The overlay application then modifies the spell check word list according to the domain-specific overlay. 
     According to one embodiment the domain is at least one web page. The domain is identified by a client browser querying a web page for information to identify the domain-specific word list overlay. In one embodiment the client browser queries the web page using client side Uniform Resource Locator tracking to identify the domain. 
     According to one embodiment the overlay is removed when the client leaves the web page that identifies the domain for the word list overlay. 
     According to one embodiment the domain is the network address of the user. In this embodiment, the domain is determined by querying the computing device for a network address. 
     According to one embodiment the domain is specified by a user. The user may initiate the input of a domain by entering it through a menu or dialog box. Alternatively, the overlay application may prompt a user for a domain. 
     According to one embodiment the spell check overlay comprises words and domain identifiers associated with each word. The domain identifiers may specify words to be included in the spell check word list for the identified domains, and the domain identifiers may specify words to be excluded from the spell check word list for the identified domains. 
     According to one embodiment, a spell check application checks typed words against a spell check word list modified by a domain-specific overlay. The spell check application identifies typed words that do not match words in the modified spell check word list as misspelled words and presents suggested words from the modified spell check word list. 
     According to one embodiment the overlay is located on a third party memory in a third party computing device. The domain is determined by the overlay application retrieving a link to the domain-specific overlay. 
     According to one embodiment a system is provided for a domain-specific spell check overlay. The system comprises a processor and a client memory operably connected with the processor. An overlay application is encoded on the memory. The overlay application is executable by the processor to: determine a domain; retrieve a domain-specific overlay for the domain, the domain-specific overlay comprising domain-specific modifications for a spell check word list; and modify the spell check word list according to the domain-specific overlay. 
     According to one embodiment of the present invention, the overlay is encoded on the client memory. In this embodiment, the domain may be determined by querying the website or by the user specifying the domain. 
     According to another embodiment of the present invention a network connection operably connects the processor to a network server. The network server has a server memory, and the overlay is encoded on the server memory. 
     According to one embodiment of the present invention a web site is encoded on the server memory, and the overlay is encoded on the web site. 
     According to one embodiment of the present invention, a network connection operably connects the processor to a third party computing device through a network. The third party comuting device has a third party memory, and the overlay is encoded on the third party memory. 
     According to one embodiment of the present invention a program product is provided for using a domain-specific spell check overlay. The program product comprises a computer readable storage medium having encoded thereon a computer executable program of instruction. The program of instructions comprises: program instructions for determining a domain; program instructions for retrieving a domain-specific overlay for the domain, the domain-specific overlay comprising domain-specific modifications for a spell check word list; and program instructions for modifying the spell check word list according to the domain-specific overlay. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The features and advantages of the invention will be more clearly understood from the following detailed description of the preferred embodiments when read in connection with the accompanying drawing. Included in the drawing are the following figures: 
         FIG. 1  is a block diagram of a system for using a domain-specific spell check overlay according to an embodiment of the present invention; 
         FIG. 2  is a flow diagram of a method for using a domain-specific spell check overlay according to an embodiment of the present invention; 
         FIG. 3  is a flow diagram of a method for loading a domain-specific overlay according to an embodiment of the present invention; 
         FIG. 4  is a flow diagram of a method for loading a domain-specific overlay according to an embodiment of the present invention; 
         FIG. 5  is a flow diagram of a method for loading a domain-specific overlay according to an embodiment of the present invention; 
         FIG. 6  is a method for removing a domain-specific overlay when the domain no longer applies according to an embodiment of the present invention; and 
         FIG. 7  is a diagram of a domain-specific spell check overlay used according to an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention provides a method, system and program product for using a domain-specific spell check overlay. According to an embodiment of the present invention, a browser identifies a domain comprising one or more websites on a network. An overlay is retrieved for the identified domain and a spell check word list is modified according to the overlay. 
     Referring to  FIG. 1 , a networked computing device  100 , such as a personal computer, or the like, is connected to a network  99 . The networked computing device  100  comprises a processor (CPU)  110  which executes computer program code to perform desired functions. The CPU may comprise hardware, software, or a combination thereof suitable for executing program code. According to an embodiment of the present invention, the CPU comprises one or more microprocessors. 
     A memory  120  is operably connected with the processor  110  through a system bus  130 . The memory  120  may be one or more one or more memory devices. Also the memory may be a volatile memory device such as random access memory (RAM) or persistent memory device such as a hard drive, a flash memory, a CD-ROM, or the like, or a combination thereof. 
     The processor  110  executes programs of instruction encoded on memory  120 . Data files used by the programs of instruction and created by the programs of instruction are also stored on memory  120 . 
     Computing device  100  also comprises a network connection  140  for connecting the computing device to a network  99 , such as the Internet. The network connection may be an Ethernet card, a wireless connection, or any other means for operably connecting a computing device to a network. 
     The computing device  100  may further comprise input/output devices  150  such as a keyboard, mouse, printer, and the like. The computing device  100  may still further comprise a monitor or display  150  for providing a user interface for the computing device. 
     Encoded on memory  120  are various applications. According to an embodiment of the invention, one of the applications encoded on memory  120  is a browser application  122  for searching the Internet for Websites and for connecting to desired websites. Another application encoded on memory  120  is a spell check application  124 . The spell check application  124  compares words typed into one or more other applications with a spell check word list and identifies words which do not match any word from the spell check word list  125 . Misspelled words (words that do not match any word in the spell check word list) may be identified in a variety of ways. For example, the misspelled word may be highlighted or underlined, or any other means for identification. Moreover, a misspelled word may be identified as it is written or when a spell check program is run. Also, a misspelled word may be replaced with a best match from a spell check word list. The spell check application  124  may be a part of another application or may be a stand-alone application. The spell check word list  125  may be a part of the spell check application  124  or may be a separate file. 
     The computing device  100  may be connected through the network  99  to a server  200  hosting one or more websites  222 . The server  200  comprises a processor  210  operably connected to the network  99  through a system bus  230 . A memory  220  is also operably connected to the processor  210  through the bus  230 . The processor  210  may be any processing unit configured for processing code on the server  200 , and in one embodiment comprises one or more microprocessors. The memory may be one or more of any data storage device integral to or external to the server  200  suitable for storing applications and/or data. Memory  220  may be volatile memory, persistent memory or a combination thereof. The processor  210  executes applications, such as websites  222  stored on the memory  220 . A website may optionally comprise an integral overlay  228 . 
     Third party computing devices  300  may also be operably connected to computing device  100  through network  99 . The third party computing device  300  may optionally comprise an overlay  328  encoded on a memory operably connected to a processor. 
     According to an embodiment of the present invention, an overlay application  126  is also encoded on memory  120 . The overlay application  126  determines a domain and retrieves a domain-specific overlay  128  for the domain. The domain-specific overlay  128  comprises domain-specific modifications for a spell check word list  125 . The overlay application  126  then modifies the spell check word list  125  according to the domain-specific overlay  128 . 
       FIG. 2  is a flow diagram of a method for using a domain-specific spell check overlay according to an embodiment of the present invention. In this embodiment, a user visits a website or web page  222  from a server  200  through the Internet (step  410 ). To visit a website, the user runs a browser application  122  and enters a website or selects a website from a search. 
     The overlay application  126  determines whether or not an overlay is available for use with the website (step  415 ). This determination may be made in a variety of ways. According to one embodiment, a web page is defined as a domain, and the overlay application  126  searches for an overlay for that web site. According to one embodiment, overlays are stored on the memory  120  of the computing device  120  seeking to load the web page  222 . The overlay  128  may be identified by the Uniform Resource Locator (URL) of the web page  222 . When the URL is entered into the browser  122 , the overlay application  126  intercepts the URL and searches for the matching overlay  128 . 
     In another embodiment, the overlay  228  may be incorporated in the web page  222 . In this embodiment, when the web page is loaded onto the client computing device  100 , the overlay  228  is loaded on the client computing device  100  as part of the web page  222 . In this embodiment, the overlay application  126  queries the web page  222  to determine whether or not an overlay  228  is present. 
     In another embodiment, the overlay  328  may be stored on a third party computing device  300 , which may be a separate web page stored on another server, for example. In this embodiment, when the web page  222  is loaded onto the client computing device  100 , the overlay application  126  queries the third party computing device for an overlay matching the URL of the loaded web page  222 . 
     According to another embodiment, the determination of whether or not an overlay is available for the web page  222  requested by a browser application  122  is made by querying the web page for information to identify a domain-specific word list overlay. For example, the client browser  122  queries the web page  222  using client-side URL tracking to identify the domain. In client-side URL tracking a link to a URL comprises a query of one or more parameters, such as the referring site. In the present invention, a query may be used to identify the domain of the web page and/or whether or not an overlay is available for the web page. 
     In another embodiment, the domain is the network address of the user. This information is available to the user as is known in the art. In this embodiment, a user may use different words on his/her home computer and work computer. As in the previous examples, once the domain is determined, the overlay application  126  searches for a matching overlay  128 ,  228 ,  328  and loads the domain-specific overlay corresponding to the domain. 
     According to another embodiment, a user specifies a domain. In this embodiment, an overlay may be built for a key concept that has unique words associated with it, such as an on-line game, for example. The user may enter the domain into the overlay application  126 , such as through a pull-down menu, dialog box, query from the application, or any other suitable means for entering data to an application. As in the previous examples, once the domain is determined, the overlay application  126  searches for a matching overlay  128 ,  228 ,  328  and loads the domain-specific overlay corresponding to the domain. 
     If a domain-specific overlay  128 ,  228 ,  328  is found, then it is loaded by the overlay application  126  (step  420 ). According to an embodiment of the present invention, loading the domain-specific overlay comprises modifying an existing spell check word list  125  with word and context entries from the overlay. According to one embodiment of the present invention, the spell check word list  125  comprises entries each comprising a word. The entries may also comprise one or more context indicators. The context indicators may each define a context (domain or group of domains) in which the word in the entry may be used or may be excluded. The word entries may also indicate the type of speech and whether or not it conjugates normally (e.g., a regular verb) eliminating the need for separate listings for different verb tense and the like. 
     The spell check application  124  then spell checks words entered by a user using the modified spell check word list. As a user types words into an application using spell check (step  430 ), the spell check application  124  compares the typed words to the modified spell check word list (step  435 ). If a typed word matches an entry in the modified spell check word list, then the spell check application continues matching with the next word (step  425 ). 
     If the typed word does not match an entry in the modified spell check word list (i.e., misspelled word), then the spell check application may optionally offer one or more close match words from the modified spell check word list (step  440 ). The spell check application  124  determines whether or not to replace the misspelled word (step  445 ). This may be accomplished by querying the user, or by testing the goodness of the match, for example. If, the spell check application determines that the misspelled word should be replaced, then it is replaced with a designated alternate in the document or application entry in which the word was typed (step  450 ) and the spell check application continues with the next word (step  430 ). If the spell check application  124  determines that the misspelled word should not be replaced, then the misspelled word is left in the document or application entry in which it was typed, and the spell check application  124  continues with the next word (step  430 ). 
     If, at step  415 , no domain-specific overlay is available, then the spell check application proceeds with an unmodified spell check list  125 . 
       FIG. 33  is a flow diagram of a method for loading a domain-specific overlay according to an embodiment of the present invention. In this embodiment, the overlay application  126  determines an appropriate domain (step  610 ). The domain may be a web site or group of web sites; a concept or subject area, such as an on-line game, field of business or the like; or a web address of the user&#39;s computing device. The domain may be input by the user, extracted from a URL, retrieved using URL tracking, or any other means appropriate for the particular domain. 
     The overlay application  126  retrieves a domain-specific overlay  128 ,  228 ,  328  corresponding to the domain in which words are being written (step  620 ). As previously described, the overlay  128 ,  228 ,  328  may be stored in the user&#39;s computing device  100 , the web page server  200 , or a third party computing device  300  in various embodiments. The overlay application may search one or more of these locations for an overlay according to the particular embodiment. 
     The overlay application  126  then modifies an existing spell check word list  125  according to entries in the domain-specific overlay  128 ,  228 ,  328 . As shown in  FIG. 7 , according to one embodiment, the overlay entries comprise words  710 ,  720 ,  730 ,  740  and context identifiers  711 ,  712 ,  713 ,  721 ,  722 ,  731 ,  741 , which may indicate that a word should be added for a specific domain (as shown) or that a word should be removed for a specific domain (not shown). 
       FIG. 4  is a flow diagram of a method for loading a domain-specific overlay according to an embodiment of the present invention. In this embodiment, overlays  228  are stored on the web site server  200 , and more particularly, on the web site  222 . The overlay application  126  queries the web site for an overlay (step  601 ). The web site  222  returns a web site specific overlay  228  if one is available. 
     The overlay application determines whether or not an overlay is returned by the web site (step  602 ). If the web site returns an overlay  228 , the overlay application  126  applies the overlay  228  by modifying an existing spell check word list  125  according to entries in the domain-specific overlay  228  (step  603 ). If an overlay  228  is not returned by the web site  222 , then the spell check application  124  spell checks typed words using the existing spell check word list  125  without modification (step  604 ). 
       FIG. 5  is a flow diagram of a method for loading a domain-specific overlay according to an embodiment of the present invention. In this embodiment the overlay application  126  searches for a matching domain specific overlay  128 ,  228 ,  328  in each possible location: the user&#39;s computing device  100 , the web site  222 , and a third party computing device  300 . It should be understood, however, that embodiments are contemplated in which one location is searched and that each of the three locations may be the one location. 
     The overlay application  126  determines whether or not the web site has returned a matching domain-specific overlay  228  (step  602 ). If the web site returns an overlay  228 , then the overlay is loaded as previously described (step  603 ). If an overlay is not received, then the overlay application  126  determines whether or not a link has been provided by the web site  222  to a domain-specific overlay on a third party computing device  300  (step  605 ). It should be noted that in this embodiment the web site provides a link to a third party overlay  328 . It is also possible however, for an embodiment in which the link to a third party overlay  328  is provided directly to the overlay application  126  by a user. 
     If a link is provided to a third party overlay  328 , then the third party overlay  328  is retrieved and loaded to the overlay application  126  to modify the spell check word list  125  (step  606 ). If a link is not provided, the overlay application determines whether or not a user specified domain  128  has been designated (step  607 ). If a user specified domain  128  has been designated, then the user specified domain is retrieved and loaded by the overlay application  126  (step  608 ). If no user specified domain is provided, then the spell check application  124  checks the spelling of typed words with an unmodified spell check word list  125 . 
       FIG. 6  is a method for removing a domain-specific overlay when the domain no longer applies according to an embodiment of the present invention. The overlay application  126  modifies the word list  125  according to entries in the domain specific overlay  128 ,  228 ,  328  (step  630 ). The overlay application determines whether or not the user has left the web site  222  of the domain specific overlay  128 ,  228 ,  328  (step  635 ). This may be accomplished by monitoring the status of the browser  122 , for example. If the user has left the web site  222  corresponding to the loaded domain-specific overlay  128 ,  228 ,  328 , then the overlay application  126  removes the overlay  128 ,  228 ,  328  (step  640 ). The overlay is removed by backing out the modifications made by the overlay. If the user has not left the web site corresponding to the domain-specific overlay  128 ,  228 ,  328 , then the spell check application  124  continues to check typed words using the modified spell check word list (step  650 ). 
     The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In an exemplary embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc. 
     Furthermore, the invention may take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system or device. For the purposes of this description, a computer-usable or computer readable medium may be any apparatus that can contain or store the program for use by or in connection with the instruction execution system, apparatus, or device. 
     The foregoing method may be realized by a program product comprising a machine-readable medium having a machine-executable program of instructions stored on it, which when executed by a machine, such as a computer, performs the steps of the method. This program product may be stored on any of a variety of known machine-readable storage mediums, including but not limited to compact discs, floppy discs, USB memory devices, and the like. 
     The storage medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device). Examples of a computer-readable storage medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. 
     The preceding description and accompanying drawing are intended to be illustrative and not limiting of the invention. The scope of the invention is intended to encompass equivalent variations and configurations to the full extent of the following claims.