Patent Publication Number: US-10782844-B2

Title: Smart whiteboard interactions

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     This application is a continuation application under 35 U.S.C. § 120 of U.S. patent application Ser. No. 13/711,348 tiled on Dec. 11, 2012. The U.S. Patent Application is herein incorporated by reference in its entirety. 
    
    
     BACKGROUND 
     With the proliferation of collaborative computing and networking technologies, the need to share content and to control and interact with shared is prevalent. Teleconferencing and desktop sharing are example techniques for enabling users in remote locations to share content and to interact with each other without being in the physical presence of each other. Additionally, the ability to continuously share content, interact with and update content has become useful as users collaborate on projects and desire to generate and update content in real-time. Interactive whiteboards are often used to capture written content on a display screen and enable real-time content manipulation, however conventional interactive whiteboards may not have the capabilities enabling multiple users to manipulate and provide content or enabling interaction from remote locations. 
     Conventional electronic whiteboards either capture written content on an actual hoard or are interactive screens with limited content creation capabilities. Capabilities of modern interactive computing devices such as ink recognition, desktop slurring, searches, etc. are not thought of as being features of whiteboards. 
     SUMMARY 
     This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to exclusively identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter. 
     Embodiments are directed to a canvas for a smart whiteboard that may enable panning of canvases and/or selection of objects and regions through single finger touch or detection of gesture, automatic expansion of containers in response to added ink, and use of pen or touch for distinct actions such as create delete vs. manipulation. According to some examples, capture and playback of content creation (e.g. on distinct canvases) on the whiteboard and/or associated devices may also be enabled. Furthermore, content (objects, etc) may be auto-transformed based on user pattern or predicted examples. 
     These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory and do not restrict aspects as claimed. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  illustrates an example collaborative environment where whiteboard sharing may be employed; 
         FIG. 2  illustrates an example environment enabling interaction with a whiteboard through multiple input methods; 
         FIG. 3  illustrates example content creation and manipulation on a whiteboard; 
         FIG. 4  illustrates example whiteboard canvas interaction and manipulation employing touch actions; 
         FIG. 5  illustrates automatic expansion of objects on a whiteboard canvas; 
         FIG. 15  illustrates automatic transformation of content based on predicted input; 
         FIG. 7  illustrates example capture and playback of content creation on a whiteboard canvas; 
         FIG. 8  illustrates example actions associated with objects an a whiteboard canvas, according to embodiments; 
         FIG. 9  is a networked environment, where a system according to embodiments may be implemented; 
         FIG. 10  is a block diagram of an example computing operating environment, where embodiments may be implemented; and 
         FIG. 11  illustrates a logic flow diagram for a process of enabling interactive whiteboard content management, according to embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     As briefly described above, panning of canvases and/or selection of objects and regions through single finger touch or detection of gesture, automatic expansion of containers in response to added ink, use of pen or touch for distinct actions such as create/delete vs. manipulation, capture and playback of content creation (e.g. on distinct canvases) on the whiteboard and/or associated devices, and/or auto-transform of content (objects, etc.) based on user pattern or predicted examples may be enabled in a smart whiteboard application. 
     In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in the limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents. While the embodiments will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules. 
     Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that embodiments may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and comparable hardware. Embodiments may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. 
     Embodiments may be implemented as a computer-implemented process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program that comprises instructions for causing a computer or computing system to perform example process(es). The computer-readable storage medium is a computer-readable memory device. The computer-readable storage medium can for example be implemented via one or more of a volatile computer memory, a non-volatile memory, a hard drive, a flash drive, a floppy disk, or a compact disk, and comparable media. 
       FIG. 1  illustrates an example collaborative environment where whiteboard sharing may be employed. In a collaborative environment two or more users may interact with a whiteboard concurrently. As illustrated in diagram  100 , a whiteboard may be an interactive whiteboard  102 , and may enable interaction between multiple users  114 ,  116 ,  120  and multiple client devices. Some example client devices may include as a desktop computing device  104 , a personal computer  106 , a tablet or slate  108 , a smartphone  110 , and other similar client devices. An interactive whiteboard  102  may also be connected to a projector which may display the desktop of the client device on the user interlace surface of the interactive whiteboard  102 . The interactive whiteboard  102  may be connected with the one or more client devices over a network, which may be a wired or wireless network. Additionally, the interactive whiteboard may also be connected with the one or more client devices over a cloud network  112 . Interactive whiteboards may be configured to recognize handwriting and translate handwriting into text, enable quick annotations on content displayed on the whiteboard, receive input from multiple computing devices, and receive input from multiple users. 
       FIG. 2  illustrates an example environment enabling interaction with a whiteboard through a plurality of input methods. As demonstrated in diagram  200 , an interactive whiteboard  202  may enable a user  220  to interact with the whiteboard  202  employing a variety of input methods to provide input to the whiteboard. Input may be provided on an interface of the whiteboard  202 , which may be a virtual canvas  218 . Example input actions on the whiteboard  202  may include creating new content on the virtual canvas  218 , modifying existing content, and deleting content. Additionally, the user  220  may adjust placement, formatting, and style of the content  208  on the virtual canvas  218 . 
     In some example embodiments, the whiteboard  202  may enable the user  220  to provide input actions to the virtual canvas  218  directly using an input device. Some example conventional input devices may be an interactive stylus  206 , electronic pen, keyboard, and/or mouse. Additionally, the whiteboard  202  may be a gesture-enabled device, such that the whiteboard  202  may recognize gestures and/or eye tracking employing an optical or camera device  216 . The whiteboard  202  may also be a touch-enabled device such that the whiteboard  202  may recognize finger touch  204  actions on the virtual canvas  218  as input methods for interacting with, controlling, and providing content  208  to the virtual canvas  218 , The whiteboard may provide an indicator on the virtual canvas  218  to indicate the location of a touch or gesture input action. 
     Further, the whiteboard  202  may be configured to enable the user  220  to interact with the virtual canvas  218  employing an individual client device, such as a tablet or slate  210 , a smartphone  212 , and a personal computer  214 , as some examples. The individual client devices ( 210 ,  212 ,  214 ) may be configured to enable interaction with the whiteboard  202  via a wired or wireless connection. The previously described client devices are exemplary and are not intended to be limiting. Any client device enabling interaction with the whiteboard  202  may be employed by the user to provide content  208  and interact with the virtual canvas  218 . 
     In an example embodiment, the whiteboard  202  may be configured to recognize and track each input method, including touch, gesture, input device, and client device input. The whiteboard  202  may be configured to assign types of input actions to types of input methods, such that when a certain input method is employed by the user  220 , the whiteboard  202  may be configured to recognize a distinct type of input action. For example, the whiteboard  202  may be assign that an input device such as the interactive stylus  206  or an electronic pen may be employed for creating, modifying, and deleting content and objects on the virtual canvas  218 , while hand gestures and touch actions may be employed to perform manipulation and navigation actions on the virtual canvas  218  such as moving objects, scrolling, panning, zooming, and creating relationships between content and objects displayed on the virtual canvas  218 . 
       FIG. 3  illustrates example content creation and manipulation on a whiteboard, according to some example embodiments. As demonstrated in diagram  300 , a user may employ input actions to add content to a canvas  318  of a whiteboard  302 . Content that may be added to a canvas may include text  314 , audio/visual content  310  such as images and videos, and charts, graphs and tables  312 . Additionally, the canvas  318  may display a shared interface  316  such as a shared desktop of one or more client devices  332  that may be connected with the whiteboard  302  over a wired or wireless network. The example objects described previously are not intended to be limiting, but are exemplary of types of content that may be input and displayed on the canvas  318 . 
     In an example embodiment, the content may be input at any location on the canvas  318 . The whiteboard  302  may be configured to group the input content based on the object type, such as images, video, tables, and remote desktop sharing session. Each group of objects may be displayed on the canvas  318  in distinct regions or panes. Each region may include one type of object, and the region may display multiple objects within the type of object. For example, one region may display a group of images input on the whiteboard canvas, while another region may display one or more tables and charts input on the canvas  318 , and yet another region may display a shared interface  316  of a connected client device. Each region may enable a user to interact with each object within the region, and the whiteboard  302  may recognize different input actions based on the type of objects included within the region. Additionally, a user may create custom regions for grouping objects based on user selection rather than a type of object. The user may also select objects in one region and move, or drag, a selected object to a different region. 
     In an example embodiment, the regions may be automatically positioned on the canvas  318  according to pre-defined positioning settings and preferences. The whiteboard  302  may enable the regions to be resized and re-positioned on the whiteboard canvas  318 . The user may employ touch and gesture input, as well as input with other input devices, to resize, and reposition the regions, and also to rearrange objects within the regions. The regions may be able to overlap as the user rearranges and re-positions the regions on the canvas  318 . 
     In another example embodiment, the size and position of the regions and objects on the canvas  318  may be optimized, both horizontally and vertically, based on predefined settings. For example, the display of content an the canvas  318  may be optimized based on detection of an interacting user&#39;s size and position in relation to the whiteboard  302 . For example, if the whiteboard  302  detects a short user, the content may be displayed on a lower portion of the canvas. Additionally, if the whiteboard  302  detects that the user is far away from the whiteboard  302 , the content may be displayed larger. The canvas  318  may be automatically optimized based on predefined settings, and may additionally be optimized according to user preferences. The whiteboard  302  may also be configured to automatically expand or grow ( 322 ) as content is added, enlarged, or moved outside of the currently displayed canvas  318  in order to enable the whiteboard canvas to display all of the content concurrently, and also to provide more blank space for adding additional content. 
     In another example embodiment, the whiteboard  302  may be configured to share the interface of the whiteboard  302  with one or more client devices connected with the whiteboard  302 , such that each connected client device may continuously reflect the canvas  318  with the input content and grouped regions. When the canvas  318  is shared with one or more client devices having different sizes and dimensions than the whiteboard  302 , the content of the canvas  318  may be reflowed, such that the objects and regions may be rearranged, for optimizing the display of the content on the interface of shared client devices. 
       FIG. 4  illustrates example whiteboard canvas interaction and manipulation employing touch actions, according to some example embodiments. As demonstrated in diagram  400 , a user may use input actions to manipulate a canvas. A user interacting with the displayed canvas  402  may employ touch and gesture input  406 , as well as other input devices, to select, resize, reposition and rearrange content such as objects and regions on the displayed canvas  402 . For example, a user may employ touch, swipe, drag, and pinch actions to enlarge, shrink, and otherwise modify the size and orientation of content such as text, images, graphics, tables, and regions displayed on the canvas. 
     Additionally, a user may employ input actions to navigate and manipulate the canvas itself. For example, a user may employ a touch action such as a touch and hold action or a drag action to pan and scroll the displayed canvas  402 . The touch action may be performed with a finger or hand of the user, as well as with an input device such as an electronic pen or stylus. Another distinct touch action, such as a swipe  410  in a direction  414 , may be employed to move the displayed canvas  402  in any direction in order to open a new canvas  420 . For example, when a current canvas area is full or if the user wants to start with a blank canvas, the user may swipe in a particular direction, such as left/right/up/down, and a new blank canvas  420  may be presented. The new canvas  420  may be blank and maintain substantially the same dimensions and orientation as the previously displayed canvas  402 . When the new canvas  420  is displayed, the content of the previously displayed canvas  402  may be automatically saved so that the content is preserved for later use. The user may also employ an additional touch action such as a swipe action to may bring back previous canvases. The content of the previously displayed canvas may be stored in a local memory, and may also be stored in other local or external storage associated with the whiteboard. The user may also employ an additional touch action such as a swipe action to may bring back previous canvases. 
       FIG. 5  illustrates automatic expansion of objects on a whiteboard canvas, according to some embodiments. As illustrated in diagram  500 , a whiteboard  502  may be configured to enable automatic expansion of object containers on a canvas  518  in response to added content. An object on the canvas  518 , such as a table  504 , text box  508 , pane, graphic, or other container may be created on the canvas  518 , and the size and dimension boundaries of the object may be adjusted automatically based on a size of the content of the object. 
     The user  506  may also add additional content, such as text, to an existing object that extends beyond the object&#39;s boundaries, and in response, the object may automatically expand ( 520 ) to accommodate the additional content. For example, a cell  522  or a column of a table  504  may expand in response to the user  506  inserting text  512  in the cell  522  that goes beyond the right boundary of the cell. The cell  522  may be configured to expand in any direction for optimally accommodating the added content based on predefined settings and user preferences. The automatic adjustment of objects on the canvas may be based on predefined whiteboard settings, and may also be user customizable. For example, the user  506  may select to activate or deactivate automatic adjustment, and the user  506  may define a maximum and minimum size for an expanded object. The user may also select if text wrapping and/or text size adjustment may be applied to the inserted content instead of adjusting the object size. 
       FIG. 6  illustrates automatic transformation of content based on predicted input, according to some embodiments. As demonstrated in diagram  600 , a whiteboard  602  may automatically transform and format tent input on a canvas  618 . For example, when a user adds graphics or handwriting input  610  to the whiteboard canvas employing an electronic pen or stylus, the whiteboard canvas may recognize the handwriting input  610 , and the inserted handwriting may be recognized and stored in the background for enabling processing such as searches, automatic object and container creation, and record creation as some examples. The inserted handwriting input  610  may also be replaced on the canvas with regular text  612  for enhancing legibility on the canvas  618  based on user preferences. 
     In another example embodiment, when a user adds graphics or text input to the canvas, the whiteboard  602  may recognize the input, and the whiteboard may present a suggested object, interface, and/or container for the input based. For example, if the whiteboard recognizes that the user is creating a list, the whiteboard may automatically format the input as a list  608  and provide user interface elements associated with the list  608 , such as bullets or numbers. In another example, if the whiteboard  602  determines that the user is creating a table, the whiteboard may automatically format the input into a table  606  rig user interface elements associated with the table  606  such as cell boundaries. The whiteboard  602  may also provide automatic functions associated with the table, such as automatic calculations and formulas, as some examples. Further, created content on the whiteboard  602  may also be integrated with other applications such as word processing, spreadsheet, and presentation applications for providing automatic formatting suggestions. 
       FIG. 7  illustrates example capture and playback of content creation on a whiteboard canvas, according to some embodiments. As illustrated in diagram  700 , a whiteboard may enable capture and playback of content creation on the whiteboard canvas  718  The playback may be viewed on the whiteboard  702 , and also on a client device  720  associated with the whiteboard  702 . For example, a user may move or close a current canvas  708  to open a new canvas  710 , and the current canvas  708  may become hidden while the new canvas  710  may be displayed on the whiteboard  702 . The current canvas  708  and content eluded on the current canvas may be saved such that it may be available for future use. The current canvas may be saved in a local memory or in a permanent storage, where it may be accessible for re-opening on the whiteboard  702  and also on the client device  720  associated with the whiteboard  70 . 
     Similarly, the creation, deletion, modification, and other manipulation actions of objects on the whiteboard canvas  718  may be preserved. The actions may be saved as a sequence such that a user&#39;s entire interaction or portions thereof with the whiteboard over a period of time may be played back on the whiteboard, and also on the associated client device  720 . In some it embodiments, permission level settings for each user interacting with the whiteboard may be detected and whiteboard records provided to the two or more users concurrently based on a most restrictive detected permission level setting. 
       FIG. 8  illustrates example actions associated with objects on a whiteboard canvas, according to some embodiments. As illustrated in diagram  800 , content on a whiteboard canvas may be actionable, such that a selection of an object  808  on the whiteboard may enable further actions to be performed. For example, an object  808  may be linked to a search engine  810  and a web browser over a network  812  for enabling search actions to be performed associated with a selected object. Additionally, content from the whiteboard may be exported and stored as an independent document on an external system such as an enterprise management system  820  and/or a personal domain  830  (local or networked data storage associated with a user). 
     Users may be able to access the content documents via the enterprise management system  820 , and also on the personal domain  830  associated with the user, either directly from the whiteboard  802  or through the enterprise management system  820 . The user may provide additional content to a document for later use on the whiteboard, and the document may subsequently be accessed for viewing on the whiteboard  802  from where it is stored at the enterprise management system  820  or on a personal domain  830 . 
       FIG. 9  is an example networked environment, where embodiments may be implemented. In addition to locally installed applications, such as whiteboard management application  622  discussed below, may also be employed in conjunction with hosted applications and services that may be implemented via software executed over one or more servers  906  or individual server  908 . A hosted whiteboard service or application may be a web-based service or application, a cloud based service or application, and similar ones, and communicate with client applications on individual computing devices such as a desktop computer  901 , a laptop computer  902 , a smart phone  903 , or a tablet computer  904  (‘client devices’) through network(s)  910  and control a user interface presented to users. One example of a web-based service may be a productivity suite that provides word processing, spreadsheet, communication, scheduling, presentation, and similar applications to clients through a browser interface on client devices. Such a service may enable users to interact with a whiteboard, and may enable the whiteboard to operate in private and public modes, providing access to appropriate whiteboard record by users as discussed herein. 
     Client devices  901 - 904  are used to access the functionality provided by the hosted service or application. One or more of the servers  906  or server  908  may be used to provide a variety of services as discussed above. Relevant data may be stored in one or more data stores (e.g. data store  914 ), which may be managed by any one of the servers  906  or by database server  912 . 
     Network(s)  910  may comprise any topology of servers, clients, Internet service providers, and communication media. A system according to embodiments may have a static or dynamic topology. Network(s)  910  may include a secure network such as an enterprise network, an unsecure network such as a wireless open network, or the Internet. Network(s)  910  may also coordinate communication over other networks such as PSTN or cellular networks. Network(s)  910  provides communication between the nodes described herein. By way of example, and not limitation, network(s)  910  may include wireless media such as acoustic, RF, infrared and other wireless media. 
     Many other configurations of computing devices, applications, data sources, and data distribution systems may be employed to provide smart interaction with a whiteboard. Furthermore, the networked environments discussed in  FIG. 9  are for illustration purposes only. Embodiments are not limited to the example applications, modules, or processes. 
       FIG. 10  and the associated discussion are intended to provide a brief, general description of a suitable computing environment in which embodiments may be implemented. With reference to  FIG. 10 , a block diagram of an example computing operating environment for an application according to embodiments is illustrated, such as computing device  1000 . In a basic configuration, computing device  1000  may be any touch and/or gesture enabled device in stationary, mobile, or other form such as the example devices discussed in conjunction with  FIG. 1-4 , and include at least one processing unit  1002  and system memory  1004 . Computing device  1000  may also include a plurality of processing units that cooperate in executing programs. Depending on the exact configuration and type of computing device, the system memory  1004  may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. System memory  1004  typically includes an operating system  1005  suitable for controlling the operation of the platform, such as the WINDOWS®, WINDOWS MOBILE®, or WINDOWS PHONE® operating systems from MICROSOFT CORPORATION of Redmond, Wash. The system memory  1004  may also include one or more software applications such as program modules  1006 , whiteboard management application  1022 , and interactive sharing module  1024  and detection module  1026 . 
     Interactive sharing module  1024  may operate in conjunction with the operating system  1005  or whiteboard management application  1022  to enable smart interactions with a whiteboard as discussed previously. Detection module  1026  may enable detection of user interactions with the whiteboard through various input mechanisms, remote device input, etc. for content creation, content editing, user identification, and comparable actions. This basic configuration is illustrated in  FIG. 10  by those components within dashed line  1008 . 
     Computing device  1000  may have additional features or functionality. For example, the computing device  1000  may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in  FIG. 10  by removable storage  1009  and non-removable storage  1010 . Computer readable storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory  1004 , removable storage  1009  and non-removable storage  1010  are all examples of computer readable storage media. Computer readable storage media includes, hut is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device  1000 . Any such computer readable storage media may be part of computing device  1000 . Computing device  1000  may also have input device(s)  1012  such as keyboard, mouse, pen, voice input device, touch input device, an optical capture device for detecting gestures, and comparable input devices. Output device(s)  1014  such as a display, speakers, printer, and other types of output devices may also be included. These devices are well known in the art and need not be discussed at length here. 
     Computing device  1000  may also contain communication connections  1016  that allow the device to communicate with other devices  1018 , such as over a wireless network in a distributed computing environment, a satellite link, a cellular link, and comparable mechanisms. Other devices  1018  may include computer device(s) that execute communication applications, other directory or policy servers, and comparable devices. Communication connection(s)  1016  is one example of communication media. Communication media can include therein computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. 
     Example embodiments also include methods. These methods can be implemented in any number of ways, including the structures described in this document. One such way is by machine operations, of devices of the type described in this document. 
     Another optional way is for one or more of the individual operations of the methods to be performed in conjunction with one or more human operators performing some. These human operators need not be collocated with each other, but each can be only with a machine that performs a portion of the program. 
       FIG. 11  illustrates a logic flow diagram for a process of enabling smart interactions with a whiteboard, according to some example embodiments. Process  1100  may be implemented as part of an application or an operating system. 
     Process  1100  begins with operation  1110 , where a user action through a touch, a gesture, a pen, a keyboard, a mouse, an eye-tracking input, a gyroscopic input, etc. may be detected on a whiteboard. At operation  1120 , the canvas may be panned bringing into new a blank canvas or a selection/manipulation of one or more objects on the canvas enabled depending on the type or style of input. For example, a particular tough or gesture action may result in one action, while another may result in the other action. Similarly, the input mechanism may be associated with the different types of actions. 
     At operation  1130 , an insertion of new content may be detected on the canvas. At following, operation  1140 , a size of an existing or newly created (e.g., by inference of user intent) container for the inserted content may be adjusted either to remove unused space around the content or fit content that exceeds boundaries of the container. Similarly, a size of the inserted content may also be adjusted. 
     At operation  1150 , a sequence of content creation, manipulation, and/or deletion may be captured and preserved such that the sequence may be played back on-demand through the whiteboard or through a computing device (e.g., a tablet) that is either directly (wired or wirelessly) or indirectly (e.g., through a network) connected to the whiteboard or a data store where the sequence is stored. 
     The operations included in process  1100  are for illustration purposes. Enabling smart interactions with a whiteboard according to embodiments may be implemented by similar processes with fewer or additional steps, as well as in different order of operations using the principles described herein. 
     The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims and embodiments.