WO2006124268A2 - Personalizable information networks - Google Patents
Personalizable information networks Download PDFInfo
- Publication number
- WO2006124268A2 WO2006124268A2 PCT/US2006/016781 US2006016781W WO2006124268A2 WO 2006124268 A2 WO2006124268 A2 WO 2006124268A2 US 2006016781 W US2006016781 W US 2006016781W WO 2006124268 A2 WO2006124268 A2 WO 2006124268A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- collection
- information
- computer
- readable medium
- search
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Definitions
- Messaging infrastructures include electronic mail ("e-mail"), instant messaging, and so forth. While users generally find the messaging model to be easy to use, this model has various deficiencies, some of which are identified herein. One deficiency is that users generally send a "snapshot" of information to other users. As a result, different users may receive different versions of the information. As an example, if a user sends information via an e-mail attachment to a group of users and another user in the group modifies the information and forwards the modified information to the group, other users of the group can receive two versions of the information.
- a second deficiency with the messaging model is that access cannot generally be controlled.
- an originator of information may select an authorized set of recipients, the originator cannot control what the recipients can do with the information. Thus, a recipient can forward the information to an unauthorized user.
- E-mail also has other deficiencies, such as those listed here: without complex rules or programming, it can be difficult to organize the e-mail inbox; a copy of an e-mail message can generally be filed in only one folder; sharing an e-mail threaded discussion with a person who becomes involved in a project late can be difficult; adding a new user to a threaded discussion having multiple forks generally does not give a comprehensive picture of the thread to the new user; and e-mail messages can have embedded attachments, and providing inline contextual comments relating to attachments is problematic.
- the hosted model includes file servers, web servers, electronic bulletin boards, content management solutions, workspaces, and so forth.
- Another example of the hosted model is a "portal," which business organizations sometimes build to publish information.
- a portal is generally a website built on a common set of application services that enables business organizations to publish information to users. Users generally view information contained in portals by utilizing an Internet browser or other application that is capable of showing information contained in the portal.
- Advantages of the hosted model are that users will see the latest hosted information and the information is usually organized.
- there are several deficiencies in the hosted model some of which are identified herein.
- a deficiency is that the hosted model generally requires some centralized administration to update the information or to organize the information.
- a second deficiency is that users cannot easily control which other users have access to information because administrators generally control access privileges to portal document locations rather than users.
- a specific deficiency of portals is that they are generally complicated and labor-intensive to create and maintain.
- portals also have other deficiencies, such as those listed here: portals generally become “stale” unless the information is reloaded and updated; generally, most information is authored using authoring tools (such as MICROSOFT WORD), approved via an approval process (e.g., e-mail), and then uploaded to the portal; even without approval workflow, the separate acts of authoring and then uploading often makes information on the portal stale; portals often require upfront organization and taxonomy decisions to define a structure and are not easy to alter once the structure has been created; discovery of information across portals is through "federated” or other searches, which simply provide search results that a user has to navigate one by one; and portals require users to identify a location (e.g., intranet or Internet URL).
- authoring tools such as MICROSOFT WORD
- approval process e.g., e-mail
- portals often require upfront organization and taxonomy decisions to define a structure and are not easy to alter once the structure has been created
- discovery of information across portals is
- An attempt to resolve deficiencies and take advantage of benefits of both models is the use of the hosted model in combination with the messaging model, wherein an e-mail is sent to users containing an indication of hosted information, such as a pointer or a link to a location where the information is stored. While this approach enables users to see the latest version of organized information, it also has multiple deficiencies, some of which are identified herein.
- One deficiency is that access control is uncoordinated. While a user can specify which other users will receive an e-mail containing the links, the user cannot easily specify access control attributes such as whether the recipients of the links can view the information or whether the recipients can forward the links to other users.
- a second deficiency is that users cannot easily search for information in their inbox because only links appear in their e-mail.
- Figures 1-3 are display diagrams illustrating display results pages provided by the facility in various embodiments.
- Figure 4 is a flow diagram illustrating a collect_information_items routine that is employed by the facility in various embodiments for collecting information items.
- Figure 5 is a flow diagram illustrating a handle_URL routine that is employed by the facility in various embodiments for handling uniform resource locators identifying pinboard collections.
- Figure 6 is a flow diagram illustrating a create_pinboard_collection routine that is employed by the facility in various embodiments for creating a pinboard collection.
- Figure 7 is a table diagram illustrating a result set table created by the facility when executing a query plan in various embodiments.
- Figure 8 is a block diagram illustrating a suitable environment in which the facility may operate in various embodiments.
- Figure 9 is a block diagram illustrating aspects of a server of Figure 8 in further detail in various embodiments.
- Figure 10 is a display diagram illustrating a display results page provided by the facility in various embodiments.
- Figure 11 is a display diagram illustrating a user interface for indicating permissions employed by the facility in various embodiments.
- Figures 12A-12E are block diagrams illustrating relationships between pinboard collections and information items for determining permissions in various embodiments.
- Figures 13A-13C are flow diagrams illustrating routines that are employed by the facility in various embodiments for modifying access control permissions.
- Figure 14 is a flow diagram illustrating a monitor_changes routine that is employed by the facility in various embodiments for monitoring changes to information items.
- Figure 15 is a flow diagram illustrating a replicate routine that is employed by the facility in various embodiments for replicating changes.
- Figure 16 is a block diagram illustrating components for and aspects of the facility's use of multiple search providers.
- Figure 17 is a block diagram illustrating various components employed by the facility.
- a software facility for personalizable information networks (“the facility”) is described.
- a personalizable information network (“PIN”) comprises one or more collections.
- a collection comprises references (e.g., links to documents) or information items that are aggregated from various networked locations to enable a user to locate and retrieve information items without necessarily knowing where the information items are stored.
- An information item is a source of information, such as a document, web page, e-mail message, row or field in a database, etc., that can be uniquely identified, such as by using a uniform resource locator (URL).
- URL uniform resource locator
- the information items can be stored in digital form in any place that is accessible by the facility, such as at a server, in an e-mail system, in a file folder, in a database, in a repository associated with a client or server computing device, and so forth.
- the URL identifying an information item can identify a portion or location within a document or web page.
- the facility provides latest versions of information items to users in an organized manner. Using the facility, a user (a "creator") can aggregate information from disparate storage media, identify other users (“recipients”) for distribution of the aggregated information, and share the aggregated information with the recipients.
- Storage media can include, e.g., any networked device including server or client computing devices, such as e-mail storages, file systems, Internet, instant messaging, databases, etc.
- the creator can control access to the information and actions the recipients can take on the information.
- the information can be organized or reorganized by the creator, recipient, or another user.
- a creator can share information with multiple recipients, specify a list of recipients to whom the information should be distributed, and set access control attributes (e.g., permissions or privileges) associated with either the shared information or the recipients. If the creator has provided sufficient permissions to recipients, the recipients can view, append, modify or take other actions relating to the aggregated information.
- the facility thus creates a personalizable network of information.
- the facility enables a user to specify search criteria to identify a potential set of information items and construct a collection of information items that the user desires to share.
- the collection can include additional information items that were not identified by the search.
- the facility utilizes search providers to locate information items matching the search criteria from multiple sources of data.
- the facility performs a "meta-search" across multiple "search providers.”
- a meta-search is a search that can be performed across various information repositories and sources, after which found information may be provided together in a common format.
- a search provider is a service that performs a search using one or more information repositories.
- the facility could use GOOGLE SEARCH, MICROSOFT SEARCH, or any provider of search technology or combination thereof.
- a user can configure the facility to use GOOGLE Internet search and MICROSOFT desktop search.
- the facility can use search providers that locate information in various data sources, such as Internet (or other) news feeds, web logs ("blogs"), databases, computer file systems, document management systems, and so forth.
- the information items can be located in computing or storage devices connected to the Internet, an intranet, or any location that the search providers can access, such as e-mail servers, client computing devices, etc.
- the facility can also employ search providers that search various data types.
- the search providers may provide results in a "unified" view such that the facility or other applications do not need to function with multiple results formats.
- the search providers can be located anywhere in association with a computing device, such as in storage as an executable file, in an e-mail message as an attachment, or in the Internet.
- the facility can locate and employ the search providers automatically or under user direction.
- search providers are identified by a URL.
- the facility can employ the search provider identified by the URL to retrieve information based on a query provided with the URL.
- the facility processes the located information items using a processing engine.
- the processing engine creates "extracts" of the located information items.
- An extract is a portion of an information item.
- an extract can include an information item's title, description, and schema-specific properties such as e-mail sender, time of receipt, telephone numbers of contacts, and so forth.
- the extracts are stored using a schema that is appropriate for various types of information items.
- the processing engine may create an extract in a document schema for information contained in a MICROSOFT WORD document, but may create an extract in a database schema for information contained in a database.
- the facility may employ similar schemas for various types of documents.
- the extract may be defined with reference to a standard document definition format, such as Rich Site Summary or Really Simple Syndication (commonly referred to as "RSS") or generally recognized alternatives to RSS, such as ATOM or Outline Processor Markup Language.
- the schema is specified in an extensible markup language ("XML").
- the facility may employ RSS to define document extracts and a different XML schema to define database extracts.
- An extract provides attributes from information items that are identified to be relevant.
- an extract schema for an e-mail information item may indicate that the sender's name, recipient's name, and subject attributes are relevant.
- a contact extract schema may indicate that name, telephone number, and e-mail attributes are relevant.
- extracts enable the facility to generate rich user interfaces based on unique information item types.
- the facility may utilize information from the information item.
- the facility loads an information item, such as by selecting a link, the facility loads the information item either from the original location or a cache storage.
- the facility combines information items to create a pinboard collection.
- a pinboard collection comprises information items and can be accessed via a URL.
- the facility transforms pinboard collections using a view description into a display results page.
- a view description provides instructions on how to transform pinboard collections into display results pages that may be readable by a human.
- the view description can be specified using an extensible style sheet language (“XSL”), active script pages (“ASP”), etc.
- Display results pages provide identifying data about each information item along with some data relevant to the information item.
- display results pages may provide links, titles of documents, the first few lines of the text contained in the document, a date the document was created, and so forth.
- Display results pages may also provide annotations relating to the document that are added by creators or recipients.
- An annotation is information that a user associates with an information item. Examples of annotations include text, formatting, and multimedia, such as textual comments, highlighting, and voice (or video) comments. Annotations can be short (e.g., words or phrases) or long (e.g., sentences, paragraphs, or whole documents or identifiers of other information items).
- the facility may employ or manipulate the underlying pinboard collections, which may be stored in an RSS or other format.
- the creator can then identify a subset of the information items indicated by the search providers in response to the query. As an example, if the facility identifies several information items, the creator can identify a subset of information items that are truly relevant and remove (or otherwise identify) the remaining information items that may be irrelevant. The creator can also reorganize the display results pages and thereby cause the facility to reorganize the underlying pinboard collection, such as to reorder the displayed information so that an important information item appears before a less important information item. The creator can perform multiple searches and continue to add information items to the pinboard collection.
- the creator can then identify recipients with whom the creator desires to share the created display results pages.
- the creator can identify recipients in a manner similar to selecting recipients for e-mail.
- the creator can identify recipients or groups of recipients from an address book, type in a portion of a recipient's name or identifier and request the facility to "resolve" the recipient's name or identifier, e.g., by completing the identification of the recipient, and so forth.
- Creators can also add or modify various attributes of the pinboard collection.
- creators can add annotations, such as messages, relating to individual information items or the pinboard collection as a whole.
- creators can indicate information items of particular interest, such as by highlighting an information item or by rating the information item on some scale, such as by using a "thumbs up" metaphor.
- creators can "lock" a particular version of the information item being shared so that future changes are not shared; creators can indicate various access methods on an item, e.g., cannot share further with other users, can share further freely, can modify the original information item; etc.
- recipients can view the information items identified in the pinboard collection according to the recipients' access privileges.
- An access privilege specifies what actions a recipient can perform in relation to an information item or a pinboard collection, such as view, edit, delete, share, and so forth.
- the facility provides recipients with an appropriate access privilege, as is described in further detail below.
- Recipients can respond to a received pinboard collection and share their responses with the creator or other recipients. Recipients can add or modify various attributes of the received pinboard collection before sharing their responses. As an example, recipients can add annotations. When a creator provides sufficient access privileges, recipients can share the received pinboard collection. Recipients can also perform searches and add found information items to the pinboard collection. The creator can accept or reject additions, deletions, or modifications made by recipients, either automatically or manually.
- a creator or recipient modifies a pinboard collection
- users may see the latest modified version. This is possible because a display results page is generated at the time a viewer (e.g., a recipient) loads the display results page for viewing. References and other information contained in pinboard collections can be modified by creators and recipients (when the recipients have sufficient access privileges).
- the facility provides the most up-to-date version of the display results page. Users thus do not need to know whether they are sharing or viewing the most up-to-date version of a document.
- a user can "lock" a pinboard collection or one or more information items.
- an item e.g., pinboard collection or information item
- users who view the locked item do not see any updates made after the locking.
- the facility uses a stored version of information items.
- a user locks an item the user is able to continue updating the item. Then, when the user unlocks the item, the user's updates are visible to all other users.
- the facility may create an audit trail of locks and updates.
- Creators or recipients can refine the search by iteratively adding search terms.
- the resulting pinboard collection contains information items in one place representing information from multiple data sources or data types.
- a user interface provided by the facility contains a text box and a "search" button.
- a user can provide a query in the text box, such as by typing a string, and select a search button that causes the facility to begin searching for information items (e.g., documents) matching the query.
- the facility can synchronously or asynchronously use multiple search providers simultaneously or concurrently to locate information items.
- the facility can search using GOOGLE Internet search, MICROSOFT desktop search, a portal search facility, a WINDOWS desktop search facility, a network search facility, a database search facility, a federated search facility, any Internet search facility, and so forth.
- the facility has an extensibility mechanism that enables users to add third-party search providers. By enabling the addition of search providers, the facility is capable of searching for information items stored in any form and in any location. Each of the invoked search providers returns results of the search to the facility.
- the creator can specify which of several search providers to use, such as by activating some or all of the search providers.
- the facility may not invoke the inactive search providers.
- a creator can activate a search provider for a pinboard collection and inactivate that search provider for another pinboard collection. Thereafter, the facility may only use the active search providers for each of the pinboard collections.
- the creator can also associate a default list of search providers (e.g., by "pinning" the search providers with a pinboard collection.
- the creator can also discover and enable other search providers from a pinboard collection for any new query on that pinboard collection.
- the set of search providers used can be stored by pinning them to a pinboard collection. Search providers can also be disabled for a particular query.
- the facility initially organizes the results of the search in a display results page according to a default layout.
- a layout indicates presentation attributes, such as fonts, colors, locations, background, etc.
- a user can modify the default layout.
- the default layout is specified in XML.
- FIG. 1 is a display diagram illustrating a display results page provided by the facility in various embodiments.
- the facility provides the display results page 100 that a creator can use to create a pinboard collection.
- the display results page includes an area 102 for an image, such as a logo, and an area 104 for indicating a title of a resulting pinboard collection.
- the display results page includes a text region 106 within which the creator can enter a search query. The creator can then select a search button 108 to begin the search. Alternatively, the creator can select a clear button 110 to clear all the information added by search providers to the display results page.
- the illustrated display diagram illustrates that the creator has entered "Sales pitch" as the query in text region 106.
- the facility locates information items matching the query "Sales pitch” and populates various results regions of the search page with results of the search.
- the illustrated display results page shows a pinboard collections results region 112, a related pinboards results region 113, an e-mail results region 114, an appointments results region 116, and a documents results region 118.
- the pinboard collections results region 112 lists pinboard collections that match the query. In the illustration, no pinboard collections match the query and so no pinboard collections are listed. Pinboard collections may match the query when the query of the display results page provides information items that are pinned to other pinboard collections. Furthermore, the facility may list other pinboard collections to which an information item indicated in one of the results regions may be pinned. This enables a user to quickly determine content and relevance for an information item.
- the related pinboards results region 113 lists pinboard collections that are related to the displayed pinboard collection. Two pinboards may be related because, e.g., one was created in response to another, they both reference the same information items, they are indicated by a user to be related, or one of the pinboard collections is pinned to the other.
- the e-mail results region 114 lists e-mail messages that match the query.
- An e-mail message may match the query when the e-mail message contains text or other attributes matching the query.
- the e-mail results region may display various attributes relating to e-mail messages that match the query, such as sender, subject, and date or time sent.
- the appointments results region 116 lists appointments that match the query.
- the documents results region 118 lists documents that match the query.
- the facility may display other results regions instead of, or in addition to, the illustrated results regions.
- Each information item listed in the results regions is accompanied by a selection indicator, such as a checkbox 120.
- the creator can select a subset of the information items listed in the results regions to add to the pinboard collection, such as by selecting the checkbox associated with each information item the creator desires to retain in the pinboard collection. This action can be referred to as "pinning.”
- the facility enables a user to add a search result to a document using a single action, such as by selecting a checkbox.
- the checkboxes may not appear when the user is not in an authoring mode.
- Each information item listed in the results regions may also be accompanied by a text region, such as a text region 122.
- the creator can add an annotation relating to an information item in the text region. As an example, the creator has added the annotation "Good example" in the text region associated with an e-mail relating to a closed deal in the illustration.
- the facility utilizes the extracts (e.g., data contained in the extracts' schema) to populate the results regions.
- the facility may employ e-mail extracts to populate the e-mail results region.
- the display results page or other user interface elements of an application additionally may provide an option for the creator to add additional information items that were not found with the query.
- the search page may provide an add button 124. By selecting the add button, the creator can specify additional information items in a similar manner to adding attachments to an e-mail message.
- the facility also provides an application program interface (API) for pinning information items identified by an application to a pinboard collection. Using this API, other applications (e.g., MICROSOFT WORD) can implement user interfaces to directly pin their native documents to a pinboard collection.
- API application program interface
- a toolbar in MICROSOFT WORD could have a "Pin” button and a dropdown list which lists pinboard collections for which the user has modify permission that the document can be pinned to. Selecting this button would pin the active MICROSOFT WORD document to the selected pinboard.
- a user can select an information item and pin that information item to another pinboard collection.
- the facility provides an authoring mode for pinboard collections.
- users may be able to add annotations, pin search items, and so forth.
- the facility exits editing mode such as when the creator shares the pinboard collection, the user may no longer be able to annotate or pin information items.
- some editing functions may be available after exiting the authoring mode.
- the facility enables a recipient to search within information items associated with a pinboard collection in addition to using other search providers.
- a recipient receives a pinboard collection with the query "sales pitch.” The recipient can then search for "Jane" within the information items in that pinboard collection to locate information items associated with "Jane.” Information items found as a result of this additional search may be grouped together, whereas other information items appearing in the pinboard collection may be grouped separately.
- FIG. 2 is a display diagram illustrating a display results page provided by the facility in various embodiments.
- This illustrated display results page 200 is similar to the display results page 100 illustrated in Figure 1 except that it additionally has an address lookup button 202, an address text region 204, a share button 206, and a save button 208.
- the address lookup button 202 may be selected by the creator to select a list of recipients for the created pinboard collection.
- the facility may use MICROSOFT ACTIVE DIRECTORY, a global address list corresponding to an e-mail server, a personal contacts list, or any directory of recipients.
- the facility may provide a user interface for selecting recipients that includes an ability to indicate access privileges relating to the recipients. Access privileges are described in further detail below.
- the facility may display a list of selected recipients in the address text region 204.
- the facility may also receive a list of recipients from the user using the address text region.
- Brian Bean is selected as a recipient.
- the creator may select the share button 206 to share the created pinboard collection with the indicated recipients.
- the creator may select the save button 208 to save the pinboard collection rather than share it with recipients.
- the facility may add the user interface elements described above in relation to Figure 2 when the creator has selected some information items, such as by selecting checkboxes 120. In other embodiments, the facility may provide these user interface elements when displaying the search page 100. In yet other embodiments, the facility may provide these user interface elements when requested by the creator, such as in response to an action appearing in a menu.
- FIG. 3 is a display diagram illustrating a display results page provided by the facility in various embodiments.
- This display diagram illustrates a display results page 300 that was shared by its creator and received by recipients selected by the creator (e.g., Brian Bean).
- the illustrated display results page is similar to the display results page 200 illustrated in Figure 2 except that it lacks some of the results appearing in the display results page 200 and additionally indicates a pinboard collection result 302, pin indicators 304, and secondary pinboard collections indicators 306.
- the illustrated display results page is not in authoring mode, as is indicated by the absence of authoring features, such as the checkboxes. In various embodiments, other features may be added or removed.
- the "To . . .” button the "Share . .
- the illustrated display results page does not display information items that were not pinned by the creator by selecting checkboxes. As an example, an e- mail from Jim Jones was not selected by the creator and so does not appear in the display results page. Similarly, the "Lunch with John" appointment and "Objectives" document do not appear in the display results page.
- the illustrated pinboard collections results region 112 contains the pinboard collection result 302.
- additional pinboard collections results are listed when the facility determines that information items listed in a previously stored or received pinboard collection would also be appropriate for the query of the pinboard collection associated with the displayed display results page.
- the display results page could list pinboard collections if they relate to the query, and these pinboard collections would also appear in the pinboard collections results if selected by the creator.
- the facility enables pinboard collections to be combined or "nested.”
- the pin indicators 304 provide an indication to recipients of information items selected by the creator (e.g., "pinned") when creating the pinboard collection. Because the pinboard collection is created dynamically, additional information items may appear in the display results page, but these would not have an associated pin indicator. Thus, a recipient or creator is immediately able to distinguish pinned information items from other information items added dynamically by the facility, thereby enabling users to quickly determine which information items could be more relevant or which information items are "new.” In various embodiments, the facility groups pinned information items together and other information items in another group. Thus, a single pinboard collection can be used to combine a filtered set of information items with additional information items that match the query of the pinboard collection.
- the creator e.g., "pinned
- multiple search providers may provide information relating to an item search. This information can be condensed into a single information item for display in the pinboard collection without any duplicate information. For example, one search provider may provide a title and description for an item, whereas another search provider may supply a specific user's annotation. The displayed information item would indicate the title, description, and annotation.
- the facility provides a feature in which an information item comprises information from multiple sources. The facility can create an "overlay" by querying the information items, preserving unique attributes, and removing duplicated attributes.
- the secondary pinboard collection indicator 306 indicates information items that are associated with pinboard collections listed in the pinboard collections results region.
- the facility toggles the corresponding pinboard collection indicators.
- the facility causes information items associated with the selected pinboard collections result to be displayed in the results region.
- a "Deals" pinboard collections result appears in the pinboard collections results region shown in the illustrated embodiment.
- the symbol to the left of the Deals pinboard collections result indicates that information items associated with the pinboard collections result are indicated with a secondary pinboard collection indicator.
- the e-mail from Jane Adams is associated with a secondary pinboard collection indicator.
- the facility may remove secondary pinboard collection indicators.
- the facility may remove the secondary pinboard collection indicator associated with the e-mail from Jane Adams, in various embodiments, the text region 106 and search button 108 appear within the document's canvas (e.g., in the same window pane as the search result).
- the pinboard collection may additionally display other information items.
- the pinboard collection may display items that were added by the creator or by another recipient.
- the user may be able to temporarily remove such items from display, such as by "collapsing" a region.
- a user can collapse a region by, e.g., selecting a minimize or hide button (not shown).
- search results are displayed "in context," meaning that the user does not need to open another application or window to add search entries to a document, such as a pinboard collection.
- the recipient may receive a notification of the pinboard collection.
- the recipient may receive an indication of the shared pinboard collection via e-mail.
- the e-mail may contain a link or a URL corresponding to the pinboard collection.
- the facility displays the shared display results page corresponding to the pinboard collection, such as in an Internet browser.
- the displayed display results page includes all information items that were pinned by the creator.
- the displayed display results page may also provide an indication of all recipients with whom the creator shared the pinboard collection.
- Display results pages are populated dynamically when they are displayed by using an associated pinboard collection.
- the creator's (or recipient's) updates to the pinboard collection are always available to recipients.
- a creator can add, remove, or modify information items associated with a pinboard collection that has been shared with recipients.
- a recipient may be able to share a received pinboard collection with other recipients. Whether a recipient is capable of sharing the display results page with others is controlled by the creator, as is described in further detail below.
- the facility does not duplicate the display results page or its contents for the other users, unlike conventional e-mail systems. Instead, a display results page is recreated dynamically when a downstream recipient opens the display results page.
- a software application associated with the selected information item is invoked.
- the software application then loads and displays the corresponding information item.
- a spreadsheet application opens the linked spreadsheet.
- Whether a recipient has access to an information item appearing in a pinboard collection depends on a number of factors.
- access to a pinboard collection may be controlled by the pinboard collection's creator.
- the creator of a pinboard collection can specify privileges associated with the pinboard collection.
- the creator can indicate that recipients of the pinboard collection can share the pinboard collection with other recipients.
- the creator can indicate that recipients cannot share the pinboard collection with others.
- recipients who receive the pinboard collection from other recipients (“downstream recipients") may only be able to view information items to which they have been provided access.
- a recipient may only be able to view information items to which the recipient has access via a file system, a database, or other data source associated with the facility.
- a pinboard collection contains links to two information items and the recipient only has access to one of the information items because a network administrator has explicitly not provided access to the other information item, the recipient may be able to view only the information item to which the recipient has access.
- the facility manages access control permissions.
- creators may also specify privileges associated with information items appearing in a pinboard collection.
- a creator may indicate that some information items appearing in a pinboard collection are not to be shared with other recipients. Then, when a recipient attempts to share the pinboard collection with other recipients, the facility would not share information items so indicated.
- Pinboard collections that are listed in a pinboard collection may inherit or propagate these various privileges when the pinboard collection is shared. Thus, the creator has fine-grain control over access.
- the facility provides recipients with an ability to respond to a received pinboard collection by either (1 ) sharing a response with the creator ("private response") or (2) sharing a response with all recipients with whom the creator shared the pinboard collection, including the creator ("public response”).
- the recipient sends a public response
- the response receives its privileges from the pinboard collection that the recipient responds to.
- the creator adds recipients to the original pinboard collection
- the added recipients get access to not only the original pinboard collection, but also all public responses. This inheritance may be limited by the creator's indications that a pinboard collection is not to be shared by recipients.
- a creator or recipient can relate pinboard collections by explicitly relating them or responding to the original pinboard collection.
- the facility enables conversation threading, which is described in further detail below.
- the facility can display a list of related pinboard collections or responses.
- the facility may also process the related pinboard collections or responses, e.g., by overlaying nonduplicate information.
- the creator or recipients with sufficient access control permissions can modify a shared pinboard collection, such as to add a recipient to a thread.
- the added recipient views the thread, the added recipient is able to see all relevant information items and annotations.
- the added recipient can be brought up to date on a thread quickly and easily.
- the added recipient will receive access to all relevant documents without any further intervention by an administrator.
- a new member of a project team can be quickly provided access to all of a project's documents and discussions in a secure and straightforward manner.
- the person sharing the pinboard collections with the newly added recipient would not have to search for the project's documents, request an administrator to change access control permissions, and so forth.
- the sharing user can bring a newly added recipient up to date.
- the facility can function with access control permissions relating to objects stored in a file system, database, or elsewhere.
- access control permissions relating to objects stored in a file system, database, or elsewhere.
- the facility retrieves access control permissions from the database.
- the facility may update the access control permissions in the database.
- the facility provides row-level database access control permissions control in various embodiments.
- Conversation threading is a way of associating an information item with other information items.
- a message In conventional systems, such as in an e-mail environment or electronic bulletin board, a message generally belongs to only one conversation (e.g., thread).
- an entire conversation thread cannot be forwarded to a user because, for example, multiple people may respond to a particular response and these multiple responses would not all appear together in a single message. As a result, users may need to open each response one at a time to view the entire conversation.
- the facility enables each pinboard collection to optionally contain multiple conversation threads.
- Each such conversation thread enables a pinboard collection to merge multiple sources of information in meaningful ways.
- a pinboard collection may contain multiple information items wherein each item is from a different information source.
- Each information item may have annotations relating to that information item.
- a user can provide different annotations for an information item depending on in which pinboard collection the information item appears.
- the recipient receives indications of all information items and annotations based on the recipient's permissions.
- the facility provides indications as notifications (e.g., via a messenger-like product, e-mail, etc.) or as items in a pinboard collection the recipient views. Thus recipients may be able to view all conversation threads associated with the shared pinboard collection.
- the facility uses various features, such as its overlay and calculation and application of access control permissions, to enable complex conversation threading.
- information items and annotations made thereto are selectively shared with recipients.
- user W creates a pinboard collection, annotates some information items, and subsequently shares the created pinboard collection with users X and Y.
- user X adds a further annotation to the pinboard collection and shares the updated pinboard collection with user W in a private response.
- user Y adds a third annotation to the information item and shares this response with users X and W.
- user W shares the pinboard collection with a fourth user the fourth user can see user Ws original pinboard collection and Y's public response but not X's private response. This occurs because the facility enforces the access control permissions indicated by users and, when displaying pinboard collections, merges data and removes duplicated data by using the "overlay" feature described above.
- An information item and its annotations can appear in multiple threads.
- annotations relating to an information item may be thread-specific. As an example, a user who has insufficient access control permissions to view a particular thread would be unable to see annotations of that thread.
- the facility enables information items to be collected in a pinboard collection in various ways.
- a user can manually add information items to pinboard collections.
- the user can pin an information item to a collection, such as after performing a search, while viewing or editing an information item within an application, while viewing a collection of information items, and so forth.
- a user can add a document that the user is viewing or modifying in an office productivity application to a pinboard collection, e.g., by selecting a menu command or a toolbar button and then selecting an existing pinboard collection or indicating a new pinboard collection; a user can add a file or folder to a pinboard collection when navigating a file folder hierarchy, such as when using a MICROSOFT WINDOWS EXPLORER tool; a user can indicate that all media in a "play list," all files in a folder, or all messages in an e-mail or electronic bulletin board conversation are information items to place in a pinboard collection.
- a user can add one or more search result links from search results provided by a search provider that is not a part of the facility, such as GOOGLE SEARCH or MICROSOFT SEARCH.
- search results provided by a search provider that is not a part of the facility, such as GOOGLE SEARCH or MICROSOFT SEARCH.
- the user can add these links by copying and pasting the links by dragging and dropping the links, and so forth.
- the user can also add any other URL, such as a website address in a similar manner. The user can then annotate any of these links added from anywhere outside the facility.
- the facility can automatically add information items to pinboard collections.
- the facility provides an API to programmatically add RSS feeds from an RSS site or a group of RSS sites.
- the facility's API enables an application to specify RSS sites, RSS feeds, or one or more attributes of an RSS site, RSS feed, or RSS item, e.g., to filter which of these are to be added to a pinboard collection.
- the facility provides an API to convert virtually any group of information items (e.g., an e-mail thread meeting various criteria) into a pinboard collection and associated information items.
- Figure 4 is a flow diagram illustrating a collect_information_items routine that is employed by the facility in various embodiments for collecting information items.
- the routine begins at block 402 where it receives an indication of the query as a parameter.
- the routine may receive an indication of text a creator has entered as a query in a query text region.
- the routine identifies search providers the facility is configured to operate with.
- the routine may determine the list of search providers from a registry.
- the facility operates with various search providers, such as Internet search engines, desktop search engines, etc.
- Providers may additionally include, e.g., a primary search page associated with the facility, search providers indicated by the primary search page, and any additional search providers specified in the query, such as additional pinboard collections.
- the routine requests the identified search providers to search using the received query and store results in a database.
- the routine selects a search provider.
- the routine requests the selected search provider to search using the received query.
- Search providers may provide different application program interfaces that software applications can use to request the search providers to perform a search.
- the facility functions with various application program interfaces.
- the facility may provide an extraction layer between an application program interface of the facility and an application program interface of a search provider. When this is done, a software developer can easily write a utility program or software module to facilitate communications between the facility and a search provider.
- Search providers may be classified according to the types of results they generate. As an example, search providers may provide fixed, filtered, or computed results. A search provider that provides fixed results generally always returns the same set of information items associated with a query. A search provider that provides filtered results generally provides a set of information items from a larger set of information items that are filtered according to various criteria. A search provider that provides computed results generally provides results based on a computation, such as based on information items provided by other search providers.
- Search providers may employ various protocols or languages to retrieve information items. As examples, search providers may employ hypertext transfer protocol, structured query language, simple object access protocol, etc. Search providers may employ these or other protocols to provide search results. In many cases, search providers may provide the results in XML.
- the routine removes duplicate information items.
- the routine determines whether an information item is a duplicate by checking its content or identifier, such as a URL.
- the facility may remove or merge duplicate items received from multiple search providers. Search providers may provide a URL to identify information items located by the search providers. When multiple providers provide information relating to a URL 1 the facility determines whether the search providers provided duplicate information. When this is the case, the facility removes the duplicate information.
- the facility combines the different information to provide an "overlay" result comprising the different information.
- the overlay feature provides title, description, and annotation attributes.
- the facility may remove the duplicate information or merge the different information after all search providers provide results. In such a case, the logic of block 410 may be performed outside the loop of blocks 406-418.
- the routine retrieves data from information items returned by the search provider and transforms the retrieved data into an internal form that the facility uses to "normalize" the retrieved data.
- the routine may retrieve sufficient information to form an extract relating to information items.
- the facility uses RSS as the internal form for storing data relating to information items.
- the routine stores the transformed information in a database.
- the database is sorted according to a URL associated with the information items. By sorting database entries by URL, information items from multiple providers can be grouped together or eliminated, as required.
- the routine calculates a priority for the retrieved information items and stores the priorities in the database.
- the routine may calculate a priority based on the number of times terms in the query were found in the information item.
- the facility can use any of the various ways of calculating priorities or relevance that are known in the art.
- the facility dynamically computes priorities. As an example, the facility may compute priorities after it combines information items returned by all search providers.
- the routine selects another provider.
- the routine continues at block 420, where the routine returns. Otherwise, the routine continues at block 406.
- the facility enables a user to select a subset of a set of search providers.
- a creator or recipient can identify which search providers to use to search for information items.
- the facility may also "discover" additional search providers.
- the result of a search may produce a document that contains instructions for registering and using another search provider.
- the facility can dynamically install and activate these search providers.
- the user may indicate which search providers to install and employ.
- a search provider may also indicate other search providers to employ during searching.
- the facility may automatically select some search providers based on the search query.
- the search query includes "movie”
- the facility may automatically select a search provider that is provided by an online movie rental outfit.
- a search provider can be shared with other users, just as information items are.
- the facility can register or activate the search provider for the recipient's use.
- FIG. 5 is a flow diagram illustrating a handle_URL routine that is employed by the facility in various embodiments for handling uniform resource locators identifying pinboard collections.
- the routine begins at block 502 where it receives an indication of a URL as a parameter.
- the routine determines whether the URL relates to a pinboard collection or some other document. If the URL relates to a pinboard collection, the routine continues at block 506. Otherwise, the routine continues at block 512.
- the facility invokes the handle_URL routine after determining that the URL relates to a pinboard collection. In such a case, the routine continues at block 506 after starting at block 502.
- the routine invokes a create_pinboard_collection subroutine and provides the received indication of the URL to the subroutine.
- the create_pinboard_collection subroutine is described below in further detail in relation to Figure 6.
- the routine may provide a portion of the URL when invoking the subroutine.
- the routine may provide the parameter portion of the URL.
- the parameter portion of the URL is the portion of the URL's string following a question mark.
- the routine optionally transforms the created pinboard collection returned by the subroutine invoked at block 506.
- the routine may transform the received pinboard collection into a hypertext markup language ("HTML").
- the create_pinboard_collection subroutine returns pinboard collections in XML.
- it may be beneficial to transform the received XML into HTML to provide the pinboard collection in a human-readable form to a user, such as using an Internet browser.
- XSL or ASP is used to transform the XML into HTML.
- the routine may transform the created pinboard collection into some other form of document.
- the routine returns the pinboard collection.
- the returned pinboard collection may be in XML, HTML, or some other form.
- the routine performs normal handling of the URL.
- the routine may cause a web server to return a document.
- the routine returns.
- Figure 6 is a flow diagram illustrating a create_pinboard_collection routine that is employed by the facility in various embodiments for creating a pinboard collection.
- the routine begins at block 602 where it receives an indication of a URL as a parameter.
- the routine may receive a portion of the URL, such as a parameter portion of the URL.
- the routine creates and executes a query plan based on the received parameters of the URL and the pinboard collection indicated by the URL.
- a query plan is a set of operations that adds results from various information sources to a result set to form a query.
- the query plan is executed by a database server and the results from the information sources are added to a database table.
- each row of the table represents an XML element of a pinboard collection file format, which is further described below.
- the facility creates a query plan by identifying all search providers for the pinboard collection and constructing commands that cause the identified search providers to generate results. An example of a result set stored in a table is described in further detail below in relation to Figure 7.
- a document e.g., a file
- a document describing a pinboard collection contains information about a location for an object, such as executable code, that the facility may employ to obtain search results from a search provider and to convert the provided results into a form utilized by the facility.
- the pinboard collection may contain a location and name of a dynamic link library that provides these functions.
- the facility uses a relational database system, such as MICROSOFT SQL SERVER or an ORACLE database software, to store search results.
- a relational database system such as MICROSOFT SQL SERVER or an ORACLE database software
- pinboard collections contain indications of other pinboard collections or search providers as pinned information items.
- the facility may additionally search for or retrieve information items referenced by these other pinboard collections and pinned information items.
- a pinboard collection references a search provider
- the facility downloads relevant information from an indication of the search provider.
- a search provider may be indicated by a link. The facility utilizes this downloaded information when querying the search provider to convert its results into a form that the facility utilizes internally.
- an information item or pinboard collection may be indicated as "active" within a pinboard collection.
- active when a search locates a potential search provider, a user may be able to activate the found search provider.
- the facility may employ active search providers to perform further searching relating to the pinboard collection.
- the result set is sorted.
- the rows of the database may be sorted according to values in one of the columns of the table.
- the facility uses a database table having a form that is described in greater detail below in relation to Figure 7.
- the facility may sort the database table as follows. The database table is first sorted by a section column. Each section is then sorted according to where in a display results page data contained in the rows are to be displayed. The rows in each section are then sorted by priority so that information items having a higher priority appear before information items having a lower priority. The rows in each section are next sorted by URL so that information items from a particular URL are grouped together. In various embodiments, the rows may be further sorted, such as by row type, value, and intValue columns. These columns are described in further detail below in relation to Figure 7.
- the routine creates an XML document from the rows of the result set.
- the facility inserts default values for missing rows that may be required.
- RSS may utilize various XML elements when defining feeds and entries. However, these elements may not be provided by the search providers. In such a case, the routine may add default values for these elements.
- the facility may eliminate duplicate rows. As an example, multiple search providers may provide similar or identical XML elements for a given information item. When the schema permits, the facility may not remove some duplicate values.
- the facility may add XML nodes or elements. As an example, the facility may add XML nodes to complete a pinboard schema. In various embodiments, the facility performs the collect_information_items routine described above in relation to Figure 4 when executing the logic of block 608.
- the routine returns the XML document.
- the pinboard collection file format is based on RSS.
- the pinboard collection file format may be based on RSS version 2.0, which is described at the Internet site blogs.law.Harvard.edu/tech/RSS.
- RSS defines a feed and an entry.
- a feed identifies a source for information items.
- An entry describes aspects of information items, such as extracts.
- the facility extends RSS.
- the facility may add text and search provider elements to RSS feeds.
- the text element may be used to identify queries.
- a query used to generate a pinboard collection may be stored in the text element.
- the search provider element may be used by the facility to locate search providers relating to a pinboard collection.
- the facility may also add various elements to RSS entries, including type, extract, modified, memo, access, and source elements.
- the type element may be used to indicate a type of information item, such as a web page or spreadsheet.
- the extract element may be used to store an extract relating to an information item.
- the modified element may be used to store a last modification date or time of the pinboard collection.
- the memo element may be used to store annotations or other information relating to a pinboard collection or an information item.
- the access element may be used to store indications of how access control permissions ("ACPs" or simply "permissions") are propagated or inherited in relation to the information item.
- the source element may be used to store which search provider provided an information item.
- Figure 7 is a table diagram illustrating a result set table created by the facility when executing a query plan in various embodiments.
- the result set table 700 has a query ID column 702, a section column 704, a URL column 706, a row type column 708, a value column 710, and an integer value column 712.
- the table contains a "shredded" collection of information items from a pinboard collection.
- the query ID column 702 uniquely identifies each query used to generate the result corresponding to the row of the table. Because the facility may handle multiple simultaneous queries, the facility can use this unique identifier to determine the correspondence between queries and rows in the result set table. Thus, when querying the result table, the facility may filter by query ID.
- the section column 704 identifies the section corresponding to each row. As an example, the section column identifies whether a row relates to a feed for an entry. As previously described, portions of files defining pinboard collections relate to feed entries.
- the URL column 706 identifies the URL from which the information item relating to the row was retrieved.
- the row type column 708 identifies the type of RSS element that is stored in the row.
- the row type for rows may be title, publication date, description, etc.
- the value column 710 stores the actual XML data for the element associated with the row.
- the integer value column 712 stores an integer representation for each row. The facility may use this column to sort rows. As an example, this column may store relevance or rank information. When the facility sorts results, it may use this column to group information items of similar relevance or rank together.
- FIG 8 is a block diagram illustrating a suitable environment in which the facility may operate in various embodiments.
- the environment has one or more server computing devices 802 that can be connected via a network 804 to one or more client computing devices 806.
- the server computing devices may be web servers, e-mail servers, database servers, file servers, sources of information items, etc.
- a server may provide multiple services or applications concurrently.
- the network may be the Internet, an intranet, or any combination of data communications networks, including wireless or wired networks.
- the client computing devices may be employed by users, such as creators or recipients, to create, view, or manipulate pinboard collections.
- the facility may employ several servers, and each user may be associated with one of the servers. However, users do not need to be aware of which server they are associated with.
- the facility ensures that users have access to all information they have been provided access to.
- the facility may replicate information, such as when an information item that is pinned to a pinboard collection is unavailable from the domain of the server with which the user is associated. The replication feature is described in further detail below.
- the associated server may perform the search even if the user provided the search request to another server of the facility. Any pinboard collections and information items that are stored by the facility are generally also stored on a storage device that is associated with the associated server.
- FIG. 9 is a block diagram illustrating aspects of a server of Figure 8 in further detail in various embodiments.
- a server 900 may be connected to a database 902.
- the database may be stored in the server 900.
- the database may be stored in another server that is connected to the server 900.
- the server 900 additionally comprises various software components, such as an Internet server 904, a pinboard collection service 906, and one or more search providers 908.
- the Internet server is a conventional service that responds to requests containing URLs by evaluating the URL, performing some logic, and returning information relating to the URL.
- the Internet server responds by loading the document and sending the document's content to the requestor.
- the Internet server responds by causing the pinboard collection service 906 to create the pinboard collection and returning the created pinboard collection's contents to the requester.
- the pinboard collection service 906 upon receiving an indication to create a pinboard collection, may employ one or more search providers 908 to search for information items.
- the pinboard collection service assembles these information items as a part of a query plan, as described above, into a search result.
- the pinboard collection service may then create the pinboard collection from the search result.
- the pinboard collection service may transform the created search result into a form that the requesting client computing device is capable of displaying to a user.
- the pinboard collection service may transform the created search result into HTML from XML.
- Figure 10 is a display diagram illustrating a display results page provided by the facility in various embodiments.
- the illustrated display diagram is similar to the display diagram of Figure 2 except that it additionally has a permissions button 1002 and multiple information item permissions buttons 1004.
- the permissions button 1002 when selected, causes the facility to display a permissions user interface, which is described in further detail below in relation to Figure 11.
- a permissions user interface which is described in further detail below in relation to Figure 11.
- the user dismisses the permissions user interface such as by selecting an okay or apply button
- a creator or recipient may be able to set or reset permissions relating to a pinboard collection.
- the creator may be able to indicate that recipients do not have the permissions to further share a pinboard collection that the creator sends to the recipients.
- the information item permissions buttons 1004 are associated with each information item displayed in a pinboard collection.
- the facility may also provide additional information item permissions buttons 1004 that are associated with the additional displayed pinboard collections.
- the facility displays a permissions user interface, which is described in further detail below in relation to Figure 11.
- the user interface the facility provides for setting permissions for pinboard collections e.g., user interfaces invoked by the permissions button 1002 may be different from the user interface invoked for setting information item permissions.
- the facility When the user dismisses the permissions user interface, such as by selecting an okay or apply button, the facility applies permissions indicated in that user interface to the information item or additional pinboard collection corresponding to the information item permissions button 1004 that was selected by the user.
- a creator or recipient may be able to set or reset permissions relating to information items or additional pinboard collections indicated in a pinboard collection.
- the creator may be able to indicate that particular recipients do not have the permissions to view some of the information items that were pinned by the creator to a pinboard collection.
- Figure 11 is a display diagram illustrating a user interface for indicating permissions employed by the facility in various embodiments.
- the user interface 1100 may provide a list of recipients, such as in a list box 1102. In the illustrated example, Brian Bean is indicated as a recipient.
- the user interface may also provide a list of permissions, such as permissions 1104, 1106, and 1108.
- a user such as a creator or a recipient, can specify permissions relating to a pinboard collection or information item by selecting one or more recipients from the recipient list and then indicating permissions the facility should provide to the selected recipients.
- the illustrated user interface indicates a view permission 1104, a share permission 1106, and a full permission 1108, though other permissions are possible and contemplated.
- the facility applies the permissions to the item for which the user interface was invoked. As examples, the facility may apply the indicated permissions to information items or pinboard collections depending on whether the user selected the permissions button 1002 or one of the information item permissions buttons 1004.
- the facility When a recipient has the view permission, the facility enables the recipient to view the associated item.
- the facility may not enable a recipient to view an information item or pinboard collection when the recipient does not have the view permission.
- a recipient has the share permission
- the facility enables the recipient to share the associated item with other recipients.
- a recipient that has the share permission can share a received pinboard collection with other recipients.
- downstream recipients may receive only the information items for which the sharing recipient has the share permission.
- the facility When a recipient has full permission to an item, the facility enables the recipient to view the item, share the item, or modify the item. The facility may also enable such a recipient to add additional items.
- Information items and pinboard collections can have various relationships according to which the facility determines access control permissions ("ACPs"). These relationships can be, e.g., "none,” “propagate,” “inherit,” and “both.”
- the facility may also define other relationships.
- ACPs access control permissions
- the facility calculates ACPs for that pinboard collection or information item based on ACPs determined or indicated for pinboard collections to which that pinboard collection or information item is pinned.
- the facility calculates ACPs for pinboard collections to which that pinboard collection or information item is pinned.
- the facility specifies a relationship automatically when an information item or pinboard collection is pinned.
- the facility may select a propagate relationship by default.
- the facility may provide a default relationship but a user may modify the relationship.
- the user interface for modifying the relationship may be associated with the user interface in Figure 11.
- the user interface of Figure 11 may be extended to enable the user to select the relationship, such as by selecting a relationship from a list of relationships.
- the user interface for selecting a relationship may be via a drop-down menu that appears in a display results page or pinboard collection, such as the display results page illustrated in Figure 10.
- Figures 12A-12E are block diagrams illustrating relationships between pinboard collections and information items for determining permissions in various embodiments. These figures illustrate directed graphs having squares representing pinboard collections and circles representing information items. Edges connecting pinboard collections and information items indicate that a pinboard collection or information item is pinned to the pinboard collection with which it shares an edge. Arrows indicate the direction in which ACPs flow. As an example, according to Figure 12A, ACPs propagate from the pinboard collections to the information items. An information item or pinboard collection that appears below a pinboard collection with which it shares an edge is pinned to the pinboard collection above it. The illustrated nodes may also have other relationships that are not illustrated.
- pinboard collection A 1202 there are two pinboard collections: pinboard collection A 1202 and pinboard collection B 1204.
- Pinboard collection A has pinned to it information items 1 1206, 2 1208, and 3 1210.
- Pinboard collection B has pinned to it information item 5 1214.
- Information item 4 1212 is not indicated to be pinned to either pinboard collection.
- the facility may recalculate ACPs for all information items and pinboard collections pinned to the pinboard collection. Routines to calculate or set ACPs are described in further detail below in relation to Figures 13A-C.
- Information item 4 has a "propagate" relationship, as indicated by a directed edge from the pinboard collection to information item 4.
- information item 4's ACPs are calculated to be the union of the ACPs for pinboard collection A and any ACPs explicitly indicated for information item 4.
- users X, Y, and Z who previously had no permissions on information item 4, would have full permissions on information item 4 after this item is pinned to pinboard collection A. This is because these users had full permissions on pinboard collection A, which has a propagate relationship with information item 4.
- Figure 12D illustrates an inherit relationship.
- pinboard collection A inherits ACPs from pinboard collection C 1228, as indicated by edge 1230, which has an arrow indicating the inherit relationship.
- edge 1230 which has an arrow indicating the inherit relationship.
- the facility recalculates pinboard collection A's ACPs based on ACPs of pinboard collection C. Based on the propagate relationship with information items 1-5, these ACPs may also flow to those information items. As an example, if user V has view permissions on pinboard collection C, that user will also receive view permissions on information items 1-5.
- Figure 12E illustrates a relationship between pinboard collections A and C that flows in both directions (e.g., the relationship is both inherit and propagate).
- ACPs flow from pinboard collection C to pinboard collection A and from pinboard collection A to pinboard collection C.
- the facility synchronizes the ACPs of both nodes. The facility may detect and prevent infinite loops when this occurs.
- the facility recalculates ACPs when various events occur. These events include, e.g., when an information item is pinned to a pinboard collection or is no longer pinned to a pinboard collection, when ACPs are modified for an information item (e.g., manually or as a result of being pinned to another pinboard collection), or from time to time (e.g., periodically or randomly).
- the facility can function with relationships between pinboard collections and information items that can be represented as a directed graph. This is in contrast to most access control schemes that are conventionally represented by trees. Because ACP inheritance is represented as a directed graph, complex relationships can be defined for inheritance and propagation of ACPs. Each node of the directed graph represents an information item or pinboard collection and each directed edge indicates a relationship defining how ACPs flow.
- the computed ACPs for any given node are the union of ACPs explicitly set for that node and the ACPs of every other node from which a directed edge is indicated.
- the computed ACPs for information item 5 would be (K union L union M).
- a union operation on multiple source sets produces a result set that is the smallest combination of all elements in the two sets.
- the facility can use a variety of techniques to ensure that recalculation of ACPs is not an endless loop, such as when a graph defining relationships has a cycle. As an example, the facility can stop recalculating links when ACPs already applied to a pinboard collection or information item match ACPs calculated by the facility for the pinboard collection or information item.
- the facility interacts with an operating system to retrieve or set ACPs.
- the facility may query the operating system to determine what ACPs are explicitly set on the information item.
- the facility may request the operating system to set the ACPs for the information item.
- the facility caches the ACPs in a database, such as to improve performance or augment the ACPs.
- ACPs are managed by the facility in addition to, or in spite of, other access control mechanisms employed by other objects employed by the facility (e.g., objects that store information items), such as the file system, database, and so forth.
- the facility propagates ACPs through a query rather than, or in addition to, with an information item.
- the ACP may propagate to any information item (e.g., in a pinboard collection) containing a specified search term.
- pinboard collections can either be stored or computed dynamically.
- Figures 13A-13C are flow diagrams illustrating routines that are employed by the facility in various embodiments for modifying ACPs. These routines may be employed by the facility at various times, such as when the facility detects that a pinboard collection has changed. The facility may perform portions of these routines in a user context and other portions in a system context. When logic of the routine is performed in a user context, only actions that the operating system enables the user to perform can actually be performed. In contrast, when logic of the routine is performed in a system context, all actions that the operating system is capable of performing can actually be performed.
- Figure 13A is a flow diagram illustrating a modify_access_control routine that is employed by the facility in various embodiments for modifying access control (e.g., permissions or privileges).
- the routine begins at block 1302 where it receives an indication of an item as a parameter.
- the indicated item can be, e.g., a pinboard collection or a information item.
- the routine determines a set of related items. Related items are other pinboard collections or information items that propagate ACPs to the indicated item or from which the indicated item inherits ACPs.
- the facility may optionally cache these relationships in a database, as is indicated at block 1306.
- the facility may create one or more database tables having rows indicating each information item or pinboard collection view and the relationship with other information items and pinboard collections that the facility added to the table. Each information item or pinboard collection may be uniquely identified in the table.
- Each row of a table may contain a unique identifier for an item, a location of the item, and ACPs for the item.
- Another table may have rows containing unique identifiers of items, access control relationship (e.g., inherit, propagate, both, or none), and a unique identifier of the item with which the item associated with the row is related.
- the routine may invoke a compute_access_control_permissions subroutine to compute the ACPs for the indicated item. This routine is further described immediately below in relation to Figure 13B.
- the routine determines whether the computed ACPs are different from the ACPs actually indicated for the item, such as by querying an operating system on which the item is located. If the calculated ACPs are different from the actual ACPs, the routine continues at block 1312. Otherwise, the routine continues at block 1314.
- the routine sets the actual ACPs for the item to the computed ACPs.
- the routine may invoke an application program interface of an operating system on which the item is located to set the item's ACPs.
- the routine may change the item's ACPs in a database or other application storing ACPs of items.
- the facility may invoke an application program interface provided by an e-mail server to set an e-mail item's ACPs.
- the routine determines a set of items that may also need their ACPs reset when ACPs for the indicated item changes.
- information items and pinboard collections pinned to a pinboard collection may need their ACPs reset.
- other items that have an inherit relationship with the indicated item may need their ACPs reset.
- the routine resets the ACPs for each item of the determined set of items.
- the routine selects an item from the set.
- the routine sets the ACPs for the item by invoking a set_permissions subroutine, which is described below in relation to Figure 13C.
- the routine may provide an indication of the selected item as a parameter to the set_permissions routine.
- the routine selects another item from the set. If all items of the set have already been processed by the loop, the routine continues at block 1322, where it returns. Otherwise, the routine continues at block 1318.
- Figure 13B is a flow diagram illustrating a compute_access_control_permissions routine that is employed by the facility in various embodiments for computing ACPs.
- the routine begins at block 1340 where it receives an indication of an item as a parameter.
- the item can be, e.g., an information item or a pinboard collection.
- the routine determines a set of ACPs explicitly defined for the indicated item.
- the routine may determine the explicit ACPs by querying an operating system on which the item is located or by looking up the explicit ACPs in a database.
- the routine sets a variable (illustrated as "P") to contain the ACPs.
- the routine determines a set of items that either propagate ACPs to the indicated item or from which the indicated item inherits ACPs. As an example, the routine may determine this information by querying the database described above in relation to block 1306.
- the routine computes the ACPs for the indicated item by performing a union operation on the ACPs of all items in the determined set of items. The routine selects an item from the set at block 1346. [00169] At block 1348, the routine performs a union operation between the ACPs contained in the variable set at block 1342 (e.g., "P") and the ACPs of the selected item. The result of the union is stored in the variable and reused during a subsequent iteration of the loop.
- the routine performs a union operation between the ACPs contained in the variable set at block 1342 (e.g., "P") and the ACPs of the selected item. The result of the union is stored in the variable and reused during a subsequent iteration of the loop.
- the routine selects another item from the list.
- the routine continues at block 1352, where it returns the computed ACPs, which are now stored in the variable. Otherwise, the routine continues at block 1348.
- Figure 13C is a flow diagram illustrating a set_permissions routine that is employed by the facility in various embodiments for setting ACPs.
- the routine begins at block 1360 where it receives an indication of an item as a parameter.
- the item can be, e.g., an information item or a pinboard collection.
- the routine invokes the compute_access_control_permissions subroutine described above in relation to Figure 13B to compute the ACPs for the indicated item.
- the routine determines whether the computed ACPs are different from the ACPs actually indicated for the item, such as by querying an operating system on which the item is located. If the calculated ACPs are different from the actual ACPs, the routine continues at block 1366. Otherwise, the routine continues at block 1378.
- the routine sets the actual ACPs for the item to the computed ACPs.
- the routine may invoke an application program interface of an operating system on which the item is located to set the item's ACPs.
- the routine may change the item's ACPs in a database storing ACPs of items.
- the routine determines whether the item is a pinboard collection. The routine makes this determination because items associated with a pinboard collection may need their ACPs reset. If the item is a pinboard collection, the routine continues at block 1370. Otherwise, the routine continues at block 1378.
- the routine determines a set of items associated with the pinboard collection that may need permissions reset. As an example, the routine may determine this information by querying the database described above in relation to block 1306.
- the routine sets ACPs for items in the determined set.
- the routine selects an item from the set at block 1372.
- the routine recursively calls the set_permissions routine to set ACPs for the selected item, which the routine provides as an indication.
- the routine selects another item. When all items have been processed, the routine continues at block 1378. Otherwise, the routine continues at block 1374.
- the facility enables a user to specify information items from which a pinboard collection is to inherit permissions that are not pinned to the pinboard collection.
- the facility enables a user, such as an administrator, creator, recipient, or other user, to specify a "mask" that is to be applied when modifying permissions.
- a mask When the facility applies a mask, it may not apply all permissions. Examples of masks are normal and custom.
- the facility may calculate the permissions as described above.
- a user can specify a maximum normal mask. As an example, a user can specify a maximum mask of "share.” When this is the case, the facility may apply view and share permissions, but not full permissions because full permissions exceed share permissions.
- the mask is custom, the facility may apply a custom mask that is specified by a user.
- the facility modifies operating system permissions indicated for a file, such as a file containing an information item.
- the facility may modify operating system permissions for a file when a pinboard collection containing an information item corresponding to the file is shared with a recipient who does not have read privileges for the file.
- the facility can change permissions "in band” or the permissions can change "out of band,” such as by another application or manually by a user.
- permissions for a pinboard collection, information item, or file may change when a pinboard collection is shared with recipients.
- an "out of band” change a user can change the permissions for an information item using an operating system component or command. When either occurs, the facility may recompute permissions for pinboard collections or information items.
- the facility may track items for which it has already recalculated ACPs. Then, when a loop or a recursion causes the facility to again visit an item, the facility does not need to again recalculate ACPs for the item visited again.
- FIG 14 is a flow diagram illustrating a monitor_changes routine that is employed by the facility in various embodiments for monitoring changes to information items.
- the facility employs the monitor_changes routine to detect changes to information items, such as content changes or permissions changes.
- the routine begins at block 1402.
- the routine determines whether any information items have changed since the last invocation of the routine.
- the routine may track content changes, permissions changes, or other changes. If such is the case, the routine continues at block 1406. Otherwise, the routine continues at block 1408 where it returns.
- the routine logs changes to information items.
- the routine may log the changes in a database of changes.
- the routine may log an indication that an information item has changed but not the actual change.
- the monitor_changes routine is performed by a source computing device.
- a source computing device is a device that propagates changes to other computing devices. As an example, a source computing device replicates changes to other computing devices.
- additional processes can be undertaken based on changes to the content or permissions of information items.
- a workflow application could be developed to create a task indicating that user X should review the document when permissions on an information item change to enable user X to view the information item.
- the facility describes a generic architecture for building applications based on monitoring changes, such as permission changes.
- attributes of information items may propagate in a manner similar to ACPs.
- a version locking information attribute may propagate (or inherit), so that when a user "locks" a pinboard collection, the lock could apply to all information items contained in the locked pinboard collection and any other pinboard collections it contains.
- the facility may replace URLs (or other links) identifying information items so that selecting the URL would, for example, load a version of the information item corresponding to the version that was available when the pinboard collection was locked. In such a case, the facility may create a "locked version" and provide the URL. This locking may occur recursively to all information items in pinboard collections contained by the locked pinboard collection.
- Figure 15 is a flow diagram illustrating a replicate routine that is used by the facility in various embodiments for replicating changes.
- the facility may perform the routine from time to time to replicate changes from a source computing device to other computing devices, such as servers or clients.
- the routine begins at block 1502.
- the routine replicates information items.
- the routine selects an information item that has changed.
- the routine may select the information item from the log that is created by the monitor_changes routine of Figure 14.
- the routine determines whether it is possible to replicate only updates of the changed information item. As an example, some documents may store revisions or updates made to the documents. When this is the case, it may be efficient to replicate only the updates rather than the entire document. If it is possible to replicate only updates, the routine continues at block 1508. Otherwise, the routine continues at block 1514.
- the routine replicates updates. As an example, the routine may provide the update to another computing device. [00197] At block 1510, the routine selects another information item. If all information items have been processed, the routine continues at block 1512 where it returns. Otherwise, the routine continues at block 1506.
- the routine replicates the information item.
- the routine may provide the information item to another computing device.
- the computing device to which the information items or updates are replicated may batch the updates.
- the computing device may receive a number of updates or information items before updating its local copy.
- the computing device that receives the updates or information items may forward the updates or information items to other computing devices.
- the computing device may forward the information item to a server corresponding to that user.
- Computing devices may share updates as XML updategrams.
- XML updategrams provide indications of updates in XML messages.
- the facility can perform the replication, e.g., by sending the updategrams, using various protocols.
- the facility can use the HTTP protocol with a variant of a distributed authoring and versioning ("DAV") protocol to enable replication.
- the facility detects whether the user is "inside" or "outside" a firewall by checking the computing device's network connection. Based on whether the computing device is inside or outside the firewall, the computing device determines which URLs to use.
- the URL may reference local server names, such as http://internalserver/share.
- the URL may reference an Internet domain, such as http://www.companyname.com/share.
- Figure 16 is a block diagram illustrating components for and aspects of the facility's use of multiple search providers.
- the facility employs an operating system's change journal 1602.
- an embodiment of the system configured to use the MICROSOFT WINDOWS operating system may use an "NT change journal.”
- An operating system's change journal records changes to files and other objects of the operating system. By employing the change journal, the facility is able to detect changes to files, pinboard collections, information items, etc.
- the facility then propagates indications of the changes to various indices.
- the facility may propagate changes to documents to a text index 1604, changes to schemas used by the facility to a metadata index 1606, changes of locations of documents to a pinboard collections index 1608 (e.g., to fix links when documents are moved), changes to ACPs to an access control index 1610, and changes relating to locations of files to a URL resolution index 1612.
- a replication engine (not shown) may replicate changes from the change journal to a computing device on a network 1614, such as a server, so that information can be kept up to date across networks.
- the facility merges information contained or indicated by the indices to create results 1616. By combining this information with information provided by search providers, the facility creates search results. As an example, the facility may merge information contained or indicated by the indices with information provided by an RSS search provider 1618, web search provider 1620, or one or more third-party search providers 1622. The facility can employ various communications protocols to communicate with the RSS, web, or other search providers.
- the facility may store the search results in a normalized format, such as in an internal format or RSS.
- the facility transforms the search results by applying a transformation 1624.
- the transformation can create any of a number of types of documents, such as an HTML document 1626.
- Figure 17 is a block diagram illustrating various components employed by the facility. In various embodiments, these components can be utilized alone or jointly to make use of some features of the facility. The facility may also employ additional components that are neither illustrated nor described herein.
- a unified data access component 1702 functions with data stored in disparate data sources and having disparate data types.
- the unified data access component is extensible in such a manner that it can function with additional sources and types of data.
- a query aggregation component 1704 combines query results from different sources to create a unified result.
- the query aggregation component functions with multiple query protocols and synchronous or asynchronous responses, and may provide extracts in an internal format based on the results.
- a relational index component 1706 builds relational indices based on information items.
- the indices enable applications or users to perform full text queries on the indexed data, thereby enabling use of back links and related links.
- a back link is a link identifying a pinboard collection to which an item is pinned.
- An access control engine 1708 creates an access control flow graph based on a database (e.g., a database that stores ACPs for pinboard collections and information items) and tracks and updates ACPs based on the created access control flow graph.
- a database e.g., a database that stores ACPs for pinboard collections and information items
- This component enables the facility to provide a rich collaborative user model by setting or resetting permissions on pinboard collections and information items so that appropriate users can view, modify, and share information.
- a viewing and authoring framework 1710 generates user interfaces from search results and enables editing.
- the viewing and authoring framework may create a user interface by transforming combined extracts using XSL.
- the user interface may have text regions for receiving annotations.
- a replication component 1712 enables the facility to provide seamless offline and online capabilities. It enables replication between servers and between clients and servers. As an example, it may replicate pinboard collections and information items between servers so that users of different domains can access the information.
- the replication component may replicate pinboard collections and information items between servers and clients to enable a user to seamlessly view information when the client is disconnected from the server. As an example, a user may indicate to make various pinboard collections available offline. When this is done, pinned information items and pinboard collections (and the information items pinned to these pinboard collections) may also be available offline. The results of database searches, e-mails, or other information items may also be made available offline in a static manner. When doing the replication, the replication component ensures that ACPs are appropriately enforced. When the client is reconnected to the server, the replication component may synchronize offline updates to the server, such as annotations made while offline.
- the facility combines addressability of e- mail with navigational ease of Internet browsers and simplicity of search to enable information exchange.
- the facility enables users to create personal information networks that are updateable and searchable and that comprise pinboard collections containing links to information items. These pinboard collections and information items can be annotated and shared in a secure manner.
- the facility enables searching across various data types (e.g., e-mail, databases, file systems, etc.) and data sources (Internet, intranet, personal computing devices, etc.) using various terms, including enabling multiple searches to locate a specific information item.
- data types e.g., e-mail, databases, file systems, etc.
- data sources Internet, intranet, personal computing devices, etc.
- the facility further enables information items and pinboard collections (e.g., any document) to be easily located without referencing a particular location.
- a user can provide some information relating to the information being sought, such as a URL, name, description, content, etc., and the facility quickly locates and retrieves the information, provided the user has sufficient permissions to view the information.
- the facility also enables the user to share the information with others when the user has sufficient permissions to do so.
- the facility provides an ability to determine backwards and forwards links in pinboard collections.
- the facility can determine which pinboard collections a particular information item is pinned to.
- the facility is able to determine these relationships based on a database the facility employs to track pinboard collections and information items.
- a background agent notifies creators or recipients of pinboard collections that information items matching queries used to create the pinboard collections have been modified or added.
- the creators or recipients can then optionally modify the pinboard collection to include the modified or added information item.
- the background agent may perform stored queries intermittently.
- the background agent may receive events relating to changes to information items. The background agent may then notify creators, recipients, or both, such as by sending an e-mail message.
- the facility invokes various actions when it detects that an information item or ACPs relating to an information item or pinboard collection change.
- the facility upon detecting that a pinboard collection is shared with a user belonging to a particular group of users, invokes a workflow application that requires a managing user to approve the sharing.
- the facility is capable of detecting changes to content and ACPs using various means.
- the facility may register with an operating system to receive change notifications or may poll an operating system's change log. When it detects changes, the facility invokes workflow components that are registered with the facility.
- the facility builds one or more indices of information items, pinboard collections, and permissions.
- the indices enable the facility to find information items having a specified set of permissions.
- the indices enable the facility to find all information items that have been shared with a given user.
- the facility enables integration of searching with a document authoring canvas.
- a user of an authoring application can perform a search using search providers outside the application's context and quickly and easily embed the results of the search within a document being authored with the application.
- a user of a word processing document or spreadsheet can perform a search using a single action and add the results of the search to the document or spreadsheet that the user is authoring.
- the facility may be extended using replication.
- the facility may replicate pinboard collections and their underlying data to multiple servers, such as servers located in multiple Internet domains. When the pinboard collections and their underlying data are replicated, users of a domain do not need to access servers of another domain to share or receive pinboard collections.
- the facility discovers search providers automatically when searching using search criteria provided by a creator or recipient and, optionally, installs the search provider automatically.
- Information located using the search criteria identifies from where and how to install the search provider.
- the facility functions with a variety of types of documents that may be considered to be "containers.”
- a container is a document that contains other documents or references to other documents. Examples of containers include, e.g., media playlists, installation files containing other files and instructions for installing the other files on a computing system, and so forth. Because containers are similar to pinboard collections, the facility works with any type of container.
- a user can control access to files in the container by manipulating permissions on the container. As an example, when a user indicates that a recipient should have view access to a container, the facility also provides view access to all files contained or indicated by the container. Furthermore, when a container contains other containers, the facility may recursively apply the permissions to the files indicated by the contained containers.
- the facility enables third parties to extend the facility by providing logic indicated by an information item that is contained by a container, the facility can automatically recognize additional file formats of files contained by containers.
- the facility may enable a user to indicate specific information items from which a pinboard collection (e.g., a container) is to inherit permissions.
- the facility enables a user to create a "personal portal" based on information items and pinboard collections available to the user.
- the user may indicate that a pinboard collection is available for remote use.
- a pinboard collection is enabled for remote use, the user can access the personal portal from a remote computing device in a manner similar to using MICROSOFT OUTLOOK WEB ACCESS to remotely access e-mail stored on a MICROSOFT EXCHANGE SERVER.
- the facility provides a generic model for generating relational indices based on documents.
- the relational indices in conjunction with full text indices built by the search providers, enable the facility to generate and maintain data that is extracted from varying schemas that represent similar information.
- the facility builds a link index using information derived from any type of document that is a collection of links, such as dashboards, playlists, html files, deployment files, and so forth.
- the facility can employ the link index to create the back links and related links described above, such as by determining relationships of documents.
- This generic model can be also used to generate other custom indices, such as contact information tables or application setup tables.
- the contact information tables can be used, e.g., to populate a Lightweight Directory Access Protocol server or create a list of contacts based on shared documents.
- the application setup tables can be used, e.g., to create an application setup repository that an operating system feature can use to add or remove software programs.
- the facility combines the addressability of e- mail, navigational ease of an Internet browser, and simplicity of search to create collections of information that can be shared, updated, and utilized for collaboration.
- the collaboration can be initiated and controlled by defining access control permissions relating to information items.
- the facility enables a creator to build a pinboard collection (e.g., a portal) with searching as a primary navigation metaphor.
- a portal e.g., a portal
- the facility enables the portal to exist with no entry point. That is, a recipient does not need the portal's location or even need to be aware that a particular portal exists to be able to view it.
- the facility creates and manages portals organically, in that information items and pinboard collections contained by the portal can be added, removed, or modified easily.
- an administrator is not required to indicate which users should have access and which users should not.
- a share box contains one or more pinboard collections and enables its user to control what data from a pinboard collection is displayed, organized, or acted upon.
- a user can indicate that some pinboard collections should display information items while other pinboard collections should only be listed in a "collapsed" condition. The user would then be able to expand a collapsed pinboard collection to display its contents.
- a user can organize a share box by indicating areas that contain pinboard collections or information items having specified attributes. As an example, a share box can have an area that displays all pinboard collections shared during a specified timeframe, another area that displays pinboard collections shared with a particular user, and so forth.
- the facility may employ an "AJAX" user interface design with share boxes.
- AJAX defines an architecture for defining user interfaces by making use of an AJAX engine that communicates with a server and dynamically updates a user interface.
- the user can take various actions on pinboard collections displayed in a share box. As examples, the user can respond to a shared pinboard collection, share a received or created pinboard collection with other users, remove a pinboard collection, indicate permissions for the pinboard collections, and so forth.
- the facility described above can be extended in various ways.
- the facility can create an index on various types of information contained in information items, such as contact information, and provide an API or user interface for accessing the data via an application or service (e.g., a shared contacts application or a Lightweight Directory Access Protocol server).
- an application or service e.g., a shared contacts application or a Lightweight Directory Access Protocol server.
- the facility is adaptable to provide a user interface for such an application.
- the facility employs a file system to store information items and other objects.
- an underlying operating system notifies the facility when these information items or objects change (e.g., when they are modified, created, deleted, and so forth).
- the facility creates and manages an index associated with the information items and objects and, when it receives these notifications from the operating system, modifies the index accordingly.
- Other applications and services may employ the index and the underlying information items or objects.
- a messaging client program e.g., MICROSOFT OUTLOOK
- a messaging client program may be able to utilize files located in the file system to compose or review e-mail. By storing e-mail messages (or information items and objects, in general) in files, the facility enables offline use.
- the facility creates a single place to query for all information that is "shared" with a user. This enables the facility program to build new indices on the same shared data and expose application interfaces to retrieve the data in meaningful ways.
- the facility may also be readily extended to create other application- specific "servers" for enterprises.
- the facility can create a software repository server, directory provider, and so forth.
- a software repository server would store various software applications, updates thereto, etc.
- the facility could easily determine whether the user has sufficient ACPs to install the program or update and then provide the program or update to the operating system component for installation.
- An administrator (or other user with sufficient privileges) can share the application with the user needing the application or update.
- the directory provider may, e.g., store information relating to printers. An administrator or user can share a printer with a user needing access to a printer.
- the facility may provide an indication of the shared printer.
- the facility can be employed during "staged" deployments of enterprise or business software.
- a container contains indications of files that are to be installed on users' computing devices.
- This container can be shared with classes of users (e.g., early adopters, late adopters, etc.) to stage the deployment of the software to these user classes.
- a personalizable information network can alternatively be referred to as a personal information network or personalized information network.
- user interfaces are illustrated with some user interface elements, those skilled in the art will appreciate that the user interface elements may be rearranged, additional user interface elements may be added, or user interface elements may be eliminated. Those skilled in the art will also appreciate that various user interface elements can be substituted for one another without materially affecting functionality of the facility.
- the facility may employ various indexing or search providers. These indexing or search providers may operate on a user's desktop computer or on a remote computing device, such as a server.
- the facility can operate with various information types, such as documents, web logs ("blogs"), web pages, data from various sources, images, multimedia, and so forth. While the foregoing description makes reference to particular embodiments, the scope of the invention is defined solely by the claims that follow and the elements recited therein.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008512316A JP2008541296A (ja) | 2005-05-19 | 2006-05-04 | パーソナル化可能情報ネットワーク |
EP06758911A EP1891551A2 (en) | 2005-05-19 | 2006-05-04 | Personalizable information networks |
BRPI0610742-7A BRPI0610742A2 (pt) | 2005-05-19 | 2006-05-04 | redes de informação personalizáveis |
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68328205P | 2005-05-19 | 2005-05-19 | |
US60/683,282 | 2005-05-19 | ||
US71158005P | 2005-08-25 | 2005-08-25 | |
US60/711,580 | 2005-08-25 | ||
US11/333,980 US20060265377A1 (en) | 2005-05-19 | 2006-01-17 | Personalizable information networks |
US11/333,978 | 2006-01-17 | ||
US11/333,980 | 2006-01-17 | ||
US11/333,978 US20060265394A1 (en) | 2005-05-19 | 2006-01-17 | Personalizable information networks |
US11/333,985 US20060265395A1 (en) | 2005-05-19 | 2006-01-17 | Personalizable information networks |
US11/334,008 US20060265396A1 (en) | 2005-05-19 | 2006-01-17 | Personalizable information networks |
US11/334,008 | 2006-01-17 | ||
US11/333,985 | 2006-01-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2006124268A2 true WO2006124268A2 (en) | 2006-11-23 |
WO2006124268A3 WO2006124268A3 (en) | 2009-04-16 |
Family
ID=37431777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2006/016781 WO2006124268A2 (en) | 2005-05-19 | 2006-05-04 | Personalizable information networks |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1891551A2 (pt) |
JP (1) | JP2008541296A (pt) |
KR (1) | KR20080009107A (pt) |
BR (1) | BRPI0610742A2 (pt) |
WO (1) | WO2006124268A2 (pt) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8306944B2 (en) | 2007-07-13 | 2012-11-06 | Samsung Electronics Co., Ltd. | Apparatus, method and system for providing content of media server |
US20170024436A1 (en) * | 2015-07-21 | 2017-01-26 | Autodesk, Inc. | Platform for authoring, storing, and searching workflows |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101553848B1 (ko) * | 2014-02-17 | 2015-09-17 | 네이버 주식회사 | 검색 결과를 제공하는 방법 및 상기 방법을 수행하는 시스템 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103867A1 (en) * | 2001-01-29 | 2002-08-01 | Theo Schilter | Method and system for matching and exchanging unsorted messages via a communications network |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06250946A (ja) * | 1993-02-22 | 1994-09-09 | Matsushita Electric Ind Co Ltd | 分散型電子掲示板装置 |
JP3943824B2 (ja) * | 2000-10-31 | 2007-07-11 | 株式会社東芝 | 情報管理方法および情報管理装置 |
US7757162B2 (en) * | 2003-03-31 | 2010-07-13 | Ricoh Co. Ltd. | Document collection manipulation |
-
2006
- 2006-05-04 JP JP2008512316A patent/JP2008541296A/ja active Pending
- 2006-05-04 BR BRPI0610742-7A patent/BRPI0610742A2/pt not_active IP Right Cessation
- 2006-05-04 KR KR1020077026027A patent/KR20080009107A/ko not_active Application Discontinuation
- 2006-05-04 EP EP06758911A patent/EP1891551A2/en not_active Withdrawn
- 2006-05-04 WO PCT/US2006/016781 patent/WO2006124268A2/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103867A1 (en) * | 2001-01-29 | 2002-08-01 | Theo Schilter | Method and system for matching and exchanging unsorted messages via a communications network |
Non-Patent Citations (1)
Title |
---|
'DOGPILE ENHANCES META SEARCH, OFFERS COMPARISON TOOLS BY CHRIS SHERMAN' SEARCH ENGINE WATCH 12 May 2005, pages 1 - 3, XP008123618 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8306944B2 (en) | 2007-07-13 | 2012-11-06 | Samsung Electronics Co., Ltd. | Apparatus, method and system for providing content of media server |
US20170024436A1 (en) * | 2015-07-21 | 2017-01-26 | Autodesk, Inc. | Platform for authoring, storing, and searching workflows |
US10073881B2 (en) * | 2015-07-21 | 2018-09-11 | Autodesk, Inc. | Platform for authoring, storing, and searching workflows |
US11537600B2 (en) | 2015-07-21 | 2022-12-27 | Autodesk, Inc. | Platform for authoring, storing, and searching workflows |
Also Published As
Publication number | Publication date |
---|---|
EP1891551A2 (en) | 2008-02-27 |
KR20080009107A (ko) | 2008-01-24 |
JP2008541296A (ja) | 2008-11-20 |
WO2006124268A3 (en) | 2009-04-16 |
BRPI0610742A2 (pt) | 2010-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060265396A1 (en) | Personalizable information networks | |
US20060265377A1 (en) | Personalizable information networks | |
US20060265394A1 (en) | Personalizable information networks | |
US20060265395A1 (en) | Personalizable information networks | |
US7865873B1 (en) | Browser-based system and method for defining and manipulating expressions | |
AU2015216608B2 (en) | System for synchronization of changes in edited websites and interactive applications | |
US7930629B2 (en) | Consolidating local and remote taxonomies | |
US7673282B2 (en) | Enterprise information unification | |
US7933871B2 (en) | Discovering and updating templates | |
US7133867B2 (en) | Text and attribute searches of data stores that include business objects | |
US20070094248A1 (en) | System and method for managing content by workflows | |
US20060041558A1 (en) | System and method for content versioning | |
US20040268240A1 (en) | System for normalizing and archiving schemas | |
EP1605367A2 (en) | Method,system, and apparatus for making available workbook ranges as data sources | |
US7590654B2 (en) | Type definition language for defining content-index from a rich structured WinFS data type | |
US7240076B2 (en) | System and method for providing a lifecycle for information in a virtual content repository | |
US8135697B2 (en) | Search-friendly templates | |
US7236990B2 (en) | System and method for information lifecycle workflow integration | |
US20050251502A1 (en) | System and method for virtual content repository entitlements | |
WO2006124268A2 (en) | Personalizable information networks | |
EP2420939B1 (en) | System and method for a virtual content repository | |
Zekri et al. | Temporal schema versioning in τOWL: a systematic approach for the management of time-varying knowledge | |
US7475091B2 (en) | System and method for viewing a virtual content repository | |
US7236989B2 (en) | System and method for providing lifecycles for custom content in a virtual content repository | |
US20050251503A1 (en) | System and method for content and schema versioning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200680017341.3 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1020077026027 Country of ref document: KR |
|
ENP | Entry into the national phase in: |
Ref document number: 2008512316 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase in: |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 5403/CHENP/2007 Country of ref document: IN |
|
NENP | Non-entry into the national phase in: |
Ref country code: RU |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006758911 Country of ref document: EP |
|
ENP | Entry into the national phase in: |
Ref document number: PI0610742 Country of ref document: BR Kind code of ref document: A2 |