Abstract:
This invention is related to providing a semantic computing system (SCS) that allows user(s) of a computing system (a desktop computer, a cell phone, a server or a network of computers) to create, search, use and manipulate its resources (including personal and shared data resources such as files and database records, and personal and shared tool resources such as programs and devices) based on commands and annotations expressed in natural language.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    This invention is related to providing a semantic computing system (SCS) that allows user(s) of a computing system (a desktop computer, a cell phone, a server or a network of computers) to create, search, use and manipulate its resources (including personal and shared data resources such as files and database records, and personal and shared tool resources such as programs and devices) based on commands and annotations expressed in natural language. 
         [0003]    2. Description of the Related Art 
         [0004]    Most modern computing systems (e.g., Windows) are icon and menu driven. Such systems are restricted because:
       1. It is difficult to locate a data resource as it may be buried somewhere in a hierarchical folder system or on the Internet.   2. It is difficult to locate a tool resource from a menu when there are too many tools available locally or when it is only available on the Internet.   3. It is sometimes difficult to use a tool due to the rich set of functions available and due to the complex workflow involved.   4. Users cannot access objects stored in a database directly as they access files.       
 
         [0009]    An alternative way to access data and tool resources is to use a command language. Unix, for example, has a set of commands available to the user. However the existing command languages are very restricted. For example, in Unix a command is a verb followed by a set of nouns, where the verb is basically the name of a program and no condition clauses is allowed. In addition, the arguments (i.e., the nouns) of a command are usually restricted to file names; they cannot be logical objects or descriptions of logical objects. 
         [0010]    It is therefore desired that a user can interact with the resources in a computing system via a command language that is based on natural language, where a resource may be an internal resource on a computer such as a file, a program or any logical object, or it may be an Internet resource such as a service or a web document, where the resources needed can be derived and applied from a command sentence. 
       SUMMARY OF THE INVENTION 
       [0011]    For purposes of summarizing the invention, certain aspects, advantages and novel features of the invention have been described herein. It should be understood that not necessarily all such aspects, advantages or features will be embodied in any particular embodiment of the invention. 
         [0012]    This invention provides a semantic computing system for a computing system (a desktop computer, a cell phone, a server or a network of computers) that allows its user(s) to search, use, create and/or manipulate the resources in natural language. This is different from traditional computing systems that are driven by menus, icons or simple commands with command-line arguments. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0013]    The following subsections describe a semantic computing system that embodies various inventive features. The various inventive features can be implemented differently than described herein. Thus, the following description is intended only to illustrate, and not limit, the scope of the present invention. 
       Architecture of SCS 
       [0014]    A Semantic Computing System (SCS) runs on top of an existing computing system to provide the user with a natural language interface to search, use, create and/or manipulate resources in the system, where
       (A) A computer system may be a desktop computer, a server that is shared by multiple users, a cell phone that is capable of performing computational tasks, or a set of computers connected by a network including the Internet.   (B) A resource may be personal resource on a computer such as a file, a program or any logical object, or it may be an Internet resource such as a service or a web document. Another classification of resources is that programs and services are tool resources, and files, data objects and web documents are data resources.       
 
         [0017]    The architecture of an SCS is shown in  FIG. 1 :
       1. Command Sentence User Interface  110 , an interface through which a user can compose an imperative sentence as a command.   2. Annotation User Interface  120 , an interface through which a user can compose an annotation for a resource in natural language. In the case that the computing system is shared by multiple users, each user can have a personal annotation for a resource.   3. Annotation database  130  that sores all annotations of resources.   4. Command Processor  140  that parses a command and executes the command.       
 
         [0022]    In the case the computing system is shared by multiple users, the SCS also creates a mailbox for each resource, each command sentence that has been posted, each user, and any group of the above that can be defined by the administrator. The SCS has a Communication Processor that allows users to communicate by sending/receiving messages to/from a mailbox. In this case, a message, a user or a mailbox is also considered a data resource. 
         [0023]    Following are some example command sentences. 
         [0024]    Example 1: Given a dataset of images, classify blobs of images in a dataset. 
         [0025]    Classify blobs of image from image “skd-1” 
         [0026]    Example 2: Open a file that describes how to make cookies. 
         [0027]    Open file that describes how to make cookies 
         [0028]    Example 3: Open a file with the name “semantic”. 
         [0029]    Open file whose name is “semantic” 
         [0030]    Example 4: Look up dictionary. 
         [0031]    Look up dictionary 
         [0032]    Example 5: Look up dictionary and find definition for the word “semantic”. 
         [0033]    Look up dictionary for definition of the word “semantic” 
         [0034]    Example 6: Change the wall paper (of the monitor) to winter with snow flakes. 
         [0035]    Change wall paper to Winter with snow flakes 
         [0036]    A data resource in an SCS is annotated by a noun phrase. 
         [0037]    Example 7: A file with the name “semantic”. 
         [0038]    a file whose name is “semantic” 
         [0039]    A tool resource in an SCS is annotated using an imperative sentence. 
         [0040]    Example 8: Given a dataset, find distribution of some variables over others. 
         [0041]    Find distribution of a variable over a list of variables in a dataset 
         [0042]    Example 9: Given a set of video clips, find those containing a scene similar to a given scene. 
         [0043]    Find clips of a dataset of video clips that are similar to a video clip 
         [0044]    A data resource in an SCS may be annotated at the time it is created. For example, in Example 2 and Example 3 if the target file resource does not exist, the noun phrase becomes the annotation of the file data resource. A resource may also be annotated after it is created. 
         [0045]      FIG. 2  shows one embodiment of a computer-implemented process of an SCS. At a block  210 , a user composes a command sentence. The command sentence is matched against the annotations of the tool resources in a block  220 . The noun phrases of the command sentence are identified and matched against the annotations of the data resources in a block  230  to identify one or more data resources that may serve as an argument for a tool resource. If the command sentence is determined to be sufficient and appropriate to be mapped to a tool resource and its arguments, the data resources are passed to the tool resource for execution in a block  240 . 
       BRIEF DESCRIPTION OF THE DRAWINGS 
       [0046]      FIG. 1  illustrates one embodiment of a semantic computing system 
         [0047]      FIG. 2  illustrates one embodiment of the control flow of a semantic computing system