The present invention is in the general field of managing objects and sharing information among communities, such as sharing bookmarks of frequently used locations (URLs) among web surfers.
[KWRCM] Keller R. M., Wolfe S. R., Chen J. R., Rabinowitz J. L. and Mathe N., “A Bookmark Service for Organizing and Sharing URLs”, sixthinternational World Wide Web Conference, Santa Clara, Calif., USA, Apr. 7-11, 1997.
[KM] Klark, P. and Manber, U. “Developing a Personal Internet Assistant”, Proc. Conference on Educational Multimedia and Hypermedia (ED-MEDIA '95)Graz, 372-377, 1995.
[WDHS] Wittenberg, K. Das, D. Hill, W. and Stead, L., “Group Asynchronous Browsing on the World Wide Web” Fourth Additional World Wide Web Conference, Boston, Dec. 11-14, 1996.
[GNOT] Goldberg, D., Nichols, D, Oki, B. M. and Terry, D., “Using Collaborative Filtering to Weave an Information Tapestry” Communications of the ACM 35 (12), 61-70, 1992.
[SiteSeer] http://www.imana.com/Webobjects/Siteseer
[KRW] Kamiya, K., Rvscheisen, M. and Winograd, T., “Grassroots; A System Providing Uniform Framework for Communicating, Structuring, Sharing Information and Organizing People”, Fifth International World Wide Web Conference Paris, France, 6-10, 1996.
[KMMHGR] Konstan, J. Miller, B., Maltz, D., Herlocker, J., Gordon, L. and Riedl, J., “GroupLens: Applying Collaborative Filtering to Usenet News”. Communications of the ACM 40,3. (1997), 77-87.
[GJSO] David K. Gifford, Pierre Jouvelot, Mark A. Sheldon, James W. O'Toole, Jr., “Semantic File Systems” Programming Systems Research Group—MIT Laboratory for Computer Science.
[GM] Burra Gopal, Udi Manber, “Integrating Content-Based Access Mechanisms with Hierarchical File Systems”, Third Symposium on Operating Systems Design and Implementation, (OSbI '99) Usenix Association.
The Web is huge. Users often find locations (sites, home pages, URLs) which they feel are of potential future use. Finding their way to the same location again could be tricky, difficult and time consuming. Accordingly, surfers usually want to mark the web page of interest, making it easier to find when necessary. These marks are usually referred to as bookmarks (also as favorites, thumbnails, hotlists).
The traditional way to organized bookmarks is using a tree structure. Popular browsers (Netscape Communicator™, Netscape Navigator™ and Microsoft™ Internet Explorer) include a bookmark management tool, each using its own proprietary format for storing the bookmarks. Several stand-alone bookmark management tools have also been developed These tools allow users to design their own tree organization of bookmarks, and to enter bookmarks and manage them, as well as open them in the browser (when clicked). The tree organization is a simple and well understood way, allowing each user to organize bookmarks for easy access based on personal preferences.
These existing bookmark management tools with few exceptions noted later, are focused on helping an individual user rather than facilitating the sharing of bookmarks among users. In order to share bookmarks, users typically send the URL's or bookmark files to each other (e.g. using e-mail). This is clearly not a very efficient mechanism. Sharing of complete bookmark files is especially problematic as different tools (browsers) use different proprietary, incompatible formats. This is actually a problem even for (many) users who use multiple browsers and/or machines—e.g. users that have two operating systems or computers, and two different browsers will have four bookmark files. There are some utilities that purport to translate bookmark files among these different formats, but this procedure is burdensome and sometimes error prone
Another common approach used to share URLs is to provide them as links on specially designed web pages, referred to as web indexes (or “lists of links”). Such indexes are now commonly provided in most web sites and even in many personal homepages. Indexes may focus on the interests of a particular individual or community, on a particular subject, or be general. There are several large, mega-indexes which categorize “all the web” as a series of HTML pages. A well known example is YAHOO!™. Each index has its own tree structure, and typically offers two ways of locating URLs (i.e. bookmark); using a search utility (simple search in a database), or using the categorized folders. In the mega-indexes, users may also mark web pages to be indexed and suggest the appropriate folder.
There are several problems in sharing bookmarks using such indexes:
Several different systems enable users to share personal bookmark collections:
Keller et al. [KWCRM] introduced the WebTagger. WebTagger was designed as a personal and community bookmarking, service, running in a web server (as CGI program). The system is a proxy based system that modifies each web page being browsed, by adding buttons for categorizing the page, querying the database, etc. To look up folders, the user needs to form a query, as there is no common or customized folder organization. Inter alia, There is no support for privacy or replication.
Klark and Manber designed the Warmlist [KM]. The application is based on sharing a common bookmark file using a shared file system (UniX™). Users can insert their own bookmarks, organize them hierarchically (using the same tree), index them, and search the file for bookmarks.
Active Notebook (Torrance) allows users to label information with conceptual classifications and organized them into a taxonomy for later browsing and retrieval. The focus of Torrance's work is on clustering documents and identifying morphological concepts (keywords). Torrance does not deal with aspects of sharing such as replication, privacy and user interface.
Wittenberg et al. created the Group Asynchronous Browsing Server [WDHS] that collects and merges user's bookmarks and then displays these merged bookmarks in a standard web browser. Their approach is that when they find the same URL in two bookmark files, they give the user a link from the folder in one bookmark file to the folder of the other bookmark file.
Collaborative filtering methods provide a means of selective information sharing by utilizing preference indicated by other users. These preferences might be inferred implicitly from the actions of others, or might be based on explicit user evaluation. See [GNOT], [SiteSeer], [KRW],[KMMHGR].
Gifford et al. [see GJSO] provides for a semantic file system which is an information storage system that provides flexible associative access to the system's contents by automatically extracting attributes from files with file type specific transducers. Associative access is provided by a conservative extension to existing tree-structured file system protocols, and by protocols that are designed specifically for content based access. Compatibility with existing, file system protocols is provided by introducing the concept of a virtual directory. Virtual directory names are interpreted as queries, and thus provide flexible associative access to files and directories in a manner compatible with existing software. Rapid attribute-based access to file system contents is implemented by automatic extraction and indexing of key properties of file system objects. The Semantic File System in accordance with the Gifford et al. publication supports various types of objects, such as documents, mails and other objects.
Gopal et al. [see GM] provides for a new file system that combines name-based and content-based access to files at the same time. The design allows both methods to be used at any time, thus preserving the benefits of both. Users can create their own name spaces based on queries, on explicit path names, or on any combination interleaved arbitrarily. All regular file operations—such as adding, deleting, or moving files—are supported in the same way, and in addition, query consistency is maintained and adapted to what the user is manually doing. One can add, remove or move results of queries, and in general handle them as if they were regular files.
The specified Gifford et al. and Gopal et al. publications offer an object management system which does not aim at handling object sharing, however offer a management scheme, which supports handling of, say, data files, by assigning attributes to the specified data files, and enabling to query the data files by the attributes. For example, extracting all data files sent To “Smith”. In a similar manner, the proposed approach may support also bookmark management.
The proposed systems of the kind disclosed in Gifford et al. and Gopal et al. publications, have some inherent limitations. For one, the attributes that are assigned to the various objects are of static nature. (e.g. for letters the fields: From:, To: etc.). In many real life applications the static nature of attributes is insufficient. Consider, for example, the specified bookmark sharing application where a given bookmark is assigned with the attribute, say IBM. A given user may now decide that the specified bookmark should also be assigned with the attribute, say security. Not only that a static attribute system would fall short in supporting such change (by this particular embodiment adding new attribute and assigning the so added attribute to an object), but obviously fails to propose a scheme for propagating this update among other members in the community. Thus, it would be expected that the specified bookmark would be reflected at other user views (associated with the same or different users) who already exploit the attribute security.
There is, accordingly, a need in the art to provide a technique, which enables to manage and possibly share objects among users, and which substantially overcomes the limitation of hitherto known techniques. There is a further a need in the art to provide a system that enables to manage objects also in a single user environment
The invention provides for a method for managing objects for at least one user, comprising:
The invention further provides for a method for sharing objects among community of users; each user is associated with a respective set of attributes such that at least one attribute is common to at least two of said users; the method comprising executing the following steps for each user in the community:
Still further the invention provides for a system for managing objects for at least one user, comprising a processor and associated memory and display configured to perform the operations that include:
The invention provides for a system for sharing objects among community of users; the system includes at least one server communicating through a network with users, each being associated with a processor and associated memory and display that includes a respective set of attributes such that at least one attribute is common to at least two of said users; the respective processor and associated memory and display are configured to executing the following steps that include:
The invention further provides for a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for managing objects for at least one user, comprising:
The invention further provides for a computer program product comprising a computer useable medium having computer readable program code embodied therein for managing objects for at least one user, the computer program product comprising:
A typical (but not exclusive) bookmark sharing application includes the following characteristics:
It should be noted that the term user should not be construed in a narrow manner. Thus, for example, a given user may have two distinct user applications running on the same or different machines.
In order to understand the invention and to see how it may be carried out in practice, a preferred embodiment will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which:
a-b illustrate sample user interface view represented as a tree of folders, in accordance with one embodiment of bookmark sharing application;
a-d illustrate a user view before and after the insertion of an object;
a-c illustrate an update sequence of operation in accordance with one embodiment of the invention;
Whilst, for simplicity, the discussion below pertains to a bookmark management and sharing application, the invention is by no means bound to bookmarks. Thus, bookmarks is only one out of many possible objects and accordingly other objects in addition or in lieu of the specified bookmarks, such as emails, files of various types, etc, or combination thereof.
Likewise, the description is mainly focused on tree of folders user interface, such as a Microsoft™ File Explorer like structure. Folders are only a non-limiting example of a self of containers and a tree is only a non-limiting example of arranging the set of containers.
A very popular interface for viewing bookmarks (as well as files, mail messages, etc.), is using a tree of folders, e.g. in accordance with the Microsoft file explorer user interface. In many applications, browsing the tree is a better way to look for the right bookmark, rather than doing a textual search in the database. However, organizing shared bookmarks into folders is difficult. The same URL may be relevant to more than one folder; furthermore, the different users may prefer a different arrangement of folders (e.g., one user prefers top level folder, “music” and sub-folder “shopping”, whereas another user prefers the other way around, i.e. top level folder “shopping” and sub-folder “music”), or simply a different name for folders (e.g., “find” and “search”).
A simple approach that purports to overcome this problem, is to decide on a fixed tree of folders used by all members of the community when entering bookmarks, possibly with some additional conventions. However, as explained above, such approach lacks flexibility, and it is hard to agree on commonly accepted and useful organization.
In accordance with one aspect of the invention, there is provided a community of users that agree on a set of attributes. Each user can build his/her set of containers and associate attributes to each container. It should be noted that whilst, preferably, the set of attributes is common to the users in the community, this is not necessarily always the case. Thus, users in the community may have a set of attributes, some of which are not necessarily shared by some or all of the other members in the community.
In accordance with one embodiment of the invention there is provided a user interface for dynamically adding, deleting or updating attributes in the set.
As will be explained in greater detail below, the attributes are used to display bookmarks in the appropriate folders of each user.
By one embodiment, the user defines a set of attributes. In the case of community of users, each user in a community defines a set of attributes that is relevant to the community's interests. The set of attributes is finite and yet dynamic. The procedure of addition of new attributes is explained in great detail below. In the case of community of users this set of attributes may be regarded as the “language” of the community.
The set of attributes is used to display bookmarks in, say tree of folders. A bookmark is displayed in a folder (or folders) if a condition is met. The condition is applied to at least the following: at least one of the attributes of the folder and at least one of the attribute of the bookmark. By a specific embodiment a bookmark is displayed in a folder if the bookmark and the folder share a common attribute.
To this end, objects (bookmarks) are dynamically assigned with attributes through user interface. By a specific embodiment the attributes are dynamically assigned to bookmarks using “drag and drop” operation. By this embodiment an object is mapped to a given container (folder) and inherits the attributes that are assigned to the specified container (folder).
For a better understanding, attention is now directed to FIGS. 1A-B, illustrating a sample user interface represented as a tree of folders, in accordance with one embodiment of the invention.
Thus, the user interface 11 in
The list of URLs (or bookmarks) that corresponds to a given folder, are stored in the specified folder (not shown in
The table below lists some examples of where bookmarks with specific attributes will be placed:
By a specific embodiment of bookmark sharing, when a URL is inserted into a community database, the system creates a record that has three fields:
By a specific embodiment, there are three types of attributes:
After having assigned attributes to both the bookmarks and the folders the bookmarks can be displayed. Bookmarks are displayed through user interface, as illustrated e.g. in
A bookmark will appear in a folder if and only if:
As specified above, a bookmark is displayed in a folder if a condition is met. By this specific example the condition includes a sub-condition that stipulates that an attribute (at least one) assigned to the bookmark is contained in the attributes of the folder in which the bookmark is displayed. The condition further includes a sub-condition stipulated that the bookmark does not appear in any folder contained in this folder.
The specified condition(s) and the sub-conditions thereof are, of course, not obligatory. Condition(s) and sub-condition(s) which stipulate what bookmarks will be displayed in what folders may be determined in accordance with the particular application, all as required and appropriate.
As specified above, in accordance with the invention there is provided a user interface for enabling dynamic assignment of attributes to objects. In accordance with a preferred embodiment, using the same interface of
Notice that the result of such a single drag and drop of a URL into a folder, may reside in mapping the URL into multiple folders having a subset of these attributes. The URL may be dragged to additional folders, thereby being assigned with more attributes as necessary. For example, dragging a bookmark to the folder books (12) in the user interface illustrated in
The consequence of a single drag and drop operation is further exemplified with reference to
All users define their own individual tree of folders user interface. As mentioned above, the tree defines the folders used by the user to organize and subsequently display bookmarks. Users may edit their tree at any time. These operations are done on the user's machine and no one (i.e. other users or the server) can see the user tree view. In accordance with a preferred embodiment, the system of the invention includes a server that maintains the database of attributes and bookmarks; each member of the community runs a user application. The users are allowed to work off-line (i.e. a client can work even if the server is not running). In order to do so, the client must have a local replica of the data collected by the server. This is done using a data replication scheme between the client and the server. The replication protocol includes, by one embodiment, the following steps:
In accordance with a preferred embodiment, the update protocol concerns preferably only incremental updates, and therefore keeps communication overhead at a minimum. Because the user starts with the same database as the server and all client updates are done in the order specified by the server, both the user and server database contain the same information after the update process. This is the reason why incremental updates are sufficient. Note that if two users update the same bookmark, the updated information is determined by the last user to perform an update.
a-c illustrate an update sequence of operation in accordance with one embodiment of the invention. Thus,
Privacy:
When a community shares information, it is important to maintain user privacy. Most users in a community, although they would like to share information, need to keep certain data private.
There follows a non-limiting embodiment where privacy is implemented. By this embodiment, the server stores all of the community data, therefore, certain information must be kept private from the server as well. Users can decide whether or not information will be shared or kept private.
Upon utilization, clients choose a password to protect their private data. The application then selects a random key (client's key), and encrypts it, using, say the DES encryption algorithm with the password as the secret key. The client then saves the encrypted key and uses it for login purposes.
The system uses the client's key for encryption, and for setting up a shared key with the server, used for authentication.
When a user specifies a bookmark as private, the application, encrypts the data using, e.g. DES with the client's key. In this way, the server receives encrypted data; even the server cannot open this data nor can these data be shared with other members of the community. Note that when a client receives an encrypted bookmark, it uses its key to decrypt the data.
Since a single user may install the client on several machines, there must be a way for users to retrieve all their bookmark data (including private items). Hence, a user may export his password to a special encrypted password file. Whenever the user wants to install another client, he will be prompted to import the password file containing the encrypted key. The new client can retrieve the key provided that the same client password is used.
System Architecture
Turning now to
As shown, the system (20) has three components;
Communication between the client and the server is done over TCP/IP; communication inside the client's machine, between the (possibly multiple) browsers and the client, is done using DDE protocol (see below). The invention is, by no means, bound by this specific implementation.
BY this embodiment, the system uses the DDE protocol to connect the client (e.g. 22) with the web browser (221 and 222). Most web browsers implement the DDE (Dynamic Data Exchange) protocol for Windows (the DDE service name for Netscape is NETSCAPE, and for Microsoft™ is EXPLORE). The client uses certain known per se DDE methods to exchange data with the browser. The client records the URLs visited in each browser windows, even if there are several browser windows open. The client will open a URL, specified by the user, in the browser window that was last opened (the active window).
This implementation provides the system with an easy way to manipulate bookmarks. There is no need to “cut” and “paste” a URL in order to insert a new bookmark.
The Server
The server (21) and client use TCP/IP to communicate with each other. The server performs the administrative tasks required to manage the bookmarks, global attributes, and server preferences. The server's user interface is quite simple.
The server, as mentioned above, manages the system's collection of attributes. The attribute dialog box (user interface) shown in
The field titles “name” (56) stands for the attribute name, own (57) stands for the attribute owner. The symbols (G) e.g. (58), (L) e.g. (59) and (S) e.g. (59′) stand for Global, Local and Submit, respectively.
“Global” attributes, which, as specified above, are shared among all the community users owned by the server (root), whereas “Local” and “Submit” attributes are owned by the corresponding client (user).
The user interface described with reference to
Turning now to the client, the user interface (shown in
By this specific embodiment, the client user interface has the following items:
By this particular example, there are provided the following pre-defined folders:
By the specific example of
The user may create folders having the following attributes, for example:
By this specific embodiment, bookmarks are one of two types:
To set the attributes of a bookmark, users can do, by one embodiment, one of the following;
Whilst the example above focused in shared application where information (i.e. bookmarks) is shared among users in a community, the “sharing” characteristic is not necessarily obligatory. Thus, for example the invention may likewise be applied to a stand-alone mode where objects are displayed in containers, through user interface, if for example the object and the container share at least one common attribute.
In a similar manner objects are dynamically assigned with attributed using a user interface, and by specific embodiment using the drag and drop operation in the manner specified.
Whilst the description above referred to add attribute, those versed in the art will readily appreciate that updating attributes is not bound to only addition of attributes and accordingly other attribute updates are supported, such as deleting of attributes. The invention is likewise not bound to the particular updates described above (e.g. attributes, objects, assigning of attributes to objects), and accordingly other updates may be utilized,. all as required and appropriate.
In the method claims that follow, alphabetic characters and roman symbols used to designate claim steps are provided for convenience only and do not imply any particular order of performing the steps.
The invention has been described with a certain degree of particularity, but various alterations and modifications may be carried out, without departing from the scope of the following claims:
Number | Date | Country | |
---|---|---|---|
Parent | 09522416 | Mar 2000 | US |
Child | 10833303 | Apr 2004 | US |