Abstract:
This invention is related to an object sharing and search system (OS3) that allows users to create and share computational content of any sort in a multi-user computing environment. It considers user, domain and document as three basic and interacting classes of objects, and allows users to create domain hierarchies, to create objects within a domain, to specify the accessibility of an object in a domain, etc., and it controls the access of an object by another object in a domain. It also allows users to search objects in a domain and recommend the ranking for a search.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    This invention is related to an Object Sharing and Search System (OSSS, or OS3) that allows users to create and share computational content of any sort in a multi-user computing environment (e.g., Internet, intranet, cell phone network, client-server). It also allows users to affect the ranking of a search for objects. 
         [0003]    2. Description of the Related Art 
         [0004]    While existing web publishing systems (e.g., traditional web publishing, blogs and social networking) have focused on users and read-only content (notes/web pages), this invention provides an object sharing and search system that unifies them into an object-oriented architecture to include computational content of all sorts. It further elaborates the architecture with access control and a third type of objects, namely “domain”, in addition to “document” and “user”. The three types of objects interact with each other. A domain is different from a simple folder or directory as it is an object that may contain other objects (documents, domains and users). 
         [0005]    Specifically it allows users to create domain hierarchies, to create an object in a domain, to specify the accessibility of an object by another object in a domain, to search objects in a domain, and to control the access of an object by another object in a domain. 
         [0006]    In this invention the term “user” refers to a registered user unless otherwise specified. 
         [0007]    The invention also allows a user to explicitly annotate an object. It also allows a user to recommend an object (document, domain or user) for a search so that the recommended object may be ranked higher when the same, or a similar, query is posted by the same user or other registered and un-registered users. This is different from traditional search systems where users cannot affect the rankings explicitly. 
       SUMMARY OF THE INVENTION 
       [0008]    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. 
       DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0009]    The following subsections describe an object sharing and search 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 OS3 
       [0010]    The Object Sharing and Search System (OS3) considers user, domain and document as three basic and interacting classes of objects in a multi-user environment. It allows a user to create an object within a domain, specify its accessibility to other objects in a domain, and to recommend an object for search in a domain. 
         [0011]    The architecture of the OS3 system is shown in  FIG. 1 : 
         [0000]    1. Query User Interface  110 , an interface through which a registered or un-registered user can post a query in natural language, a structured natural language or a set of keywords.
 
2. Object Management Module  120 , through which a user can create an object in a domain and specify its accessibility to other objects in the domain.
 
3. Access Control Module  130 , through which OS3 decides if an object can be accessed by another object in a domain.
 
4. Query Processor  140 , that processes a user query and generates results.
 
5. Object Database  150 , that stores all objects.
 
6. Result Delivery and Feedback User Interface  160 , an interface through which a registered or un-registered user can access the results.
 
         [0012]    In OS3 an object may be executable if it contains or is connected to a program or service that when the object is accessed the program or service is executed. In addition, a domain can include documents, other domains and users. The domains can be structured as a domain hierarchy, which means a domain can be created within a domain. The root(s) of the domain hierarchy is determined by the system administrator. Each domain is identified by a sequence of domains in the domain hierarchy that connects a/the root to the domain called an (absolute) path name of the domain. The sequence of domains may be separated by slashes (i.e., domain-name/domain-name/domain-name/ . . . ) or some other symbols depending on the implementation. 
         [0013]    A document or user created in a domain is accessed by the (absolute or relative) pathname followed by the name of the document or user. Each user account in OS3 can be a domain. 
         [0014]    Each domain is further characterized by its accessibility to and its relationships with other objects. A user, once logged into an account, can navigate to any domain in the domain hierarchy, and use a relative path name (i.e., a sequence of domains in the domain hierarchy that connects the current domain and the target domain) to access a domain. 
         [0015]    In one embodiment of OS3 each user account is a root domain and each existing website (e.g., www.sample.com) is a root domain. For example, if user abc created a domain g1 within his/her account and created a domain g13 within g1, the absolute path name for g1 is abc/g1, and the absolute path name for g13 is abc/g1/g13. After the user abc logs in, the user can use the relative domain name 1/g13 to reference the domain g13. 
         [0016]    In another embodiment of OS3 each user account is a domain of a root domain called “users.” If user abc created a domain g1 within his/her account and created a domain g13 within g1, the absolute path name for g1 is users/abc/g1, and the absolute path name for g13 is users/abc/g1/g13. 
         [0017]    The Object Management Module can be accessed by a user to create an object within a domain. One embodiment of the Object Management User Interface is shown in  FIG. 2 . At a block  210  it prompts the user to specify the name of the domain under which the object (i.e., a domain, document or user) is created. At a block  220  it checks if the user is allowed to create the object within the domain and, if so, at a block  230  it prompts the user to specify the name of the object. At a block  240  the user specifies the accessibility of the object. 
         [0018]    One embodiment of domain accessibility is defined by a combination of one or more access rights: (rp) read by other users, (wp) write by other users, (rwp) both read and write by other users, (ru) read by the user only, (wu) write by the user only, (rwu) both read and write by the user only, (rf) read by the members of the domain only, (wf) write by the members of the domain only, (rwf) both read and written by the members of the domain only, etc. 
         [0019]    One embodiment of document accessibility is defined as a combination of one or more access rights: (drp) read by other users, (dwp) write by other users, (drwp) both read and write by other users, (dru) read by the user only, (dwu) write by the user only, (drwu) both read and write by the user only, (drf) read by the members of the domain only, (dwf) write by the members of the domain only, (drwf) both read and write by the members of the domain only, etc. 
         [0020]    The Access Control Module determines the accessibility of an object (the first object) by another object (the second object) within a domain. The accessibility is determined by a function that considers the accessibility of the two objects and the relationships among the three objects (including the domain). 
         [0021]    Assuming the first object is a document and the second object is a user, one embodiment of the function is: 
         [0022]    1. If the domain belongs to the user and the domain is defined to be shared, the document can be accessed by all members of the domain. 
         [0023]    2. If the domain belongs to the user and the domain is defined to be public, the document can be accessed by all users. 
         [0024]    3. If the domain belongs to the user and the domain is defined to be private, the document can be seen by the user only. 
         [0025]    4. If the domain belongs to another user, is defined to be shared and the user is a member of that domain, the document can be seen by all members of that domain. 
         [0026]    5. If the domain belongs to another user, is defined to be shared and the user is not a member of that domain, the document can be seen by the user only. 
         [0027]    6. If the domain belongs to another user, is defined to be public and the user is a member of that domain, the document can be seen by all users. 
         [0028]    7. If the domain belongs to another user, is defined to be public and the user is not a member of that domain, the document can be seen by the user only. 
         [0029]    8. If the domain belongs to another user and is defined to be private, the document can be seen by the user only. 
         [0030]    9. If the domain is a public domain, the document can be seen by all users. 
         [0031]    In OS3, each document or collection of documents referenced by an existing URL (Universal Resource Locator) or pathname is considered a domain and each document therein is considered a document. 
         [0032]    A registered or unregistered user of OS3 can submit a query. The result of a query may contain an executable object that contains or connects to a program or service so when the object is accessed by an authorized object the corresponding program or service is executed. 
         [0033]    A query can be submitted within a target domain or without a target domain, which implies the search should be performed in all domains. One embodiment of the search process of OS3 is shown in  FIG. 3 . Given a query from a user on a targeted domain, if the user is a registered user the Query Processor first checks if the query can match any existing query stored in the user&#39;s PrRDB for the domain at a block  310 . If so the associated object(s) (i.e., domains, users and documents) will be assigned the highest rank and included in the result at a block  320 . Subsequently, the Query Processor checks if the query can match any existing query stored in the associated Domain Recommendation Database (DRDB) at a block  330 . If so the associated object(s) will be assigned the next highest rank and included in the result at a block  340 . At a block  350 , the Query Processor searches all the objects in the target domain that the user is authorized to search that may match the given query and assign a rank to the associated object(s) and include it in the result set of objects at a block  360 . 
         [0034]    At a block  370  the system delivers and displays the objects in the result set based on the ranks. The user can access any result at a block  380 . If the user is a registered user, at a block  390  the system prompts the user to recommend to the PrRDB and the associated DRDB(s) more objects from the results that have not yet been recommended. Finally at a block  391  the system stores all query-object pairs together with any additional information to the PrRDB and the corresponding DRDB(s). 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
       [0035]      FIG. 1  illustrates one embodiment of the OS3 system. 
         [0036]      FIG. 2  illustrates one embodiment of an object creation process for a user of OS3. 
         [0037]      FIG. 3  illustrates one embodiment of the query evaluation process for a user of OS3.