Language selection

Search

Patent 2555280 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2555280
(54) English Title: SEMANTIC KNOWLEDGE RETRIEVAL MANAGEMENT AND PRESENTATION
(54) French Title: SYSTEME ET PROCEDE POUR UNE EXTRACTION, UNE GESTION, UNE CAPTURE, UN PARTAGE, UNE DECOUVERTE, UNE DISTRIBUTION ET UNE PRESENTATION DE CONNAISSANCES SEMANTIQUES
Status: Deemed Abandoned and Beyond the Period of Reinstatement - Pending Response to Notice of Disregarded Communication
Bibliographic Data
(51) International Patent Classification (IPC):
(72) Inventors :
  • OMOIGUI, NOSA (United States of America)
(73) Owners :
  • NERVANA, INC.
(71) Applicants :
  • NERVANA, INC. (United States of America)
(74) Agent: SMART & BIGGAR LP
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 2004-02-17
(87) Open to Public Inspection: 2004-09-02
Examination requested: 2010-02-17
Availability of licence: N/A
Dedicated to the Public: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/US2004/004674
(87) International Publication Number: WO 2004075466
(85) National Entry: 2006-08-03

(30) Application Priority Data:
Application No. Country/Territory Date
60/447,736 (United States of America) 2003-02-14

Abstracts

English Abstract


The present invention is directed to an integrated implementation framework
and resulting medium for knowledge retrieval, management, delivery and
presentation. The system includes a first server component that is responsible
for adding and maintaining domain- specific semantic information (item 50) and
a second server component (iem 80) that hosts semantic and other knowledge for
use by the first server component that work together to provide text and time-
sensitive semantic information retrieval services to clients operating a
presentation platform via a communication medium (item 10). Within the system,
all objects or events given hierarchy are active Agents (item 90) semantically
related to each other and representing queries (comprised of underlying action
code) that return data objects for presentation to the client according to a
predetermined and customizable theme or ~Skin~. This system provides various
means for the client to customize and ~blend~ Agents and the underlying
related queries to optimize the presentation of the resulting information
(item 30).


French Abstract

L'invention concerne un cadriciel d'implémentation intégré et un support résultant pour une extraction, une gestion, une capture, un partage, une découverte, une distribution et une présentant de connaissances. Ce système est responsable de la maintenance d'informations sémantiques.

Claims

Note: Claims are shown in the official language in which they were submitted.


CLAIMS
The embodiments of the invention in which an exclusive property or privilege
is claimed
are defined as follows:
1. A system for knowledge retrieval, management, delivery and presentation,
comprising:
a server programmable to maintain semantic information;
a client providing a user interface for a user to communicate with the server;
and
wherein the processor of the server operates to perform the steps of:
securing information from information sources;
semantic ascertaining one or more semantic properties of the information; and
responding to user queries based upon one or more of the semantic properties.
2. The system of claim 1, wherein the first server further comprises structure
or
methodology directed to providing at least one of the following: a Semantic
Network, a Semantic
Data Gatherer, a Semantic Network Consistency Checker, an Inference Engine, a
Semantic
Query Processor, a Natural Language Parser, an Email Knowledge Agent, or a
Knowledge
Domain Manager.
3. The system of claim 1, wherein:
the information comprises objects or events; and
the semantic properties of the objects or events are represented by active
agents for
semantically linking to the semantics and properties of the queries.
4. A method for knowledge retrieval, management, delivery and presentation for
use
with a server system programmed to add, maintain and host domain specific
information that is
used to classify and categorize semantic information, comprising:
securing information from information sources;
semantically linking the information from the information sources;
maintaining the semantic attributes of the semantically linked information;

delivering requested semantic information based upon user queries; and
presenting semantic information according to customizable user preferences.

Description

Note: Descriptions are shown in the official language in which they were submitted.


DEMANDE OU BREVET VOLUMINEUX
LA PRESENTE PARTIE DE CETTE DEMANDE OU CE BREVET COMPREND
PLUS D'UN TOME.
CECI EST LE TOME 1 DE 3
CONTENANT LES PAGES 1 A 298
NOTE : Pour les tomes additionels, veuillez contacter 1e Bureau canadien des
brevets
JUMBO APPLICATIONS/PATENTS
THIS SECTION OF THE APPLICATION/PATENT CONTAINS MORE THAN ONE
VOLUME
THIS IS VOLUME 1 OF 3
CONTAINING PAGES 1 TO 298
NOTE: For additional volumes, please contact the Canadian Patent Office
NOM DU FICHIER / FILE NAME
NOTE POUR LE TOME / VOLUME NOTE:

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
SYSTEM AND METHOD FOR SEMANTIC KNOWLEDGE RETRIEVAL,
MANAGEMENT, CAPTURE, SHARING, DISCOVERY, DELIVERY AND
PRESENTATION
INVENT~R
Nosa Omoigui
PRI~RITY CLAIM
This application is a C~ntmuation-In-Part of U.S. Application Serial No.
10/179,651 filed
June 24, 2002, which claims priority to U.S. Provisional Application No.
60/360,610 filed
February 2S, 2002 and to U.S. Provisional Application No. 60/300,355 filed
June 22, 2001. This
Application also claims priority to U.S. Provisional Application No.60/447,736
filed
February 14, 2003. This Application also claims priority to PCTICTS02/20249
filed June 24,
2002. All of the foregoing applications are hereby incorporated by reference
in their entirety as
if fully set forth herein.
COPYRIGHT NOTICE
This disclosure is protected under United States and International Copyright
Laws.
2002 - 2004 Nosa Omoigui. All Rights Reserved. A portion of the disclosure of
this patent

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
document contains material which is subject to copyright protection. The
copyright owner has
no objection to the facsimile reproduction by anyone of the patent document or
the patent
disclosure, as it appears in the Patent and Trademark Office patent file or
records, but otherwise
reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
This invention relates generally to computers and, more specifically, to
information
management and research systems.
BACKGROUND OF THE INVENTION
The general baclcground to this invention is described in my co-pending parent
application (U.S. Application Serial No. 10/179,651 filed June 24, 2002),
which is incorporated
by reference herein, and of which this application is a Continuation in Part.
SUMMARY OF THE INVENTION
The present invention is directed in part to a semantically integrated
knowledge retrieval,
management, delivery and presentation system, as is more fully described in my
co-pending
parent application (U.S. Application Serial No. 10/179,651 filed June 24,
2002). The present
invention and system includes several additional improved features,
enhancements andlor
properties, including, without limitation, Entities, Profiles and Semantic
Threads, as are more
fully described in the Detailed Description below.
BRIEF DESCRIPTION OF THE DRAWINGS
The preferred and alternative embodiments of the present invention are
described in
detail below with reference to the following drawings.
FIGURE 1 is a partial screenshot overview and FIGURE 2 is an expansion of a
dialog
box of FIGURE 1 for a scenario of a Patent Examiner using the preferred
embodiment in a prior
art search, a screenshot of where "Magnetic Resonance Imaging" occurs in a
Pharmaceuticals
taxonomy.
2

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FIGURE 3 shows the Sharable Smart Request System Interaction, which is the
binary
document format that encapsulates the SQML buffer with the smart request and
also illustrates
how the extension handler opens a document.
FIGURE 4A is a partial screenshot overview of document files.
FIGURE 4B shows an illustration of two .REQ documents from FIGURE 4A (titled
'Headlines on Reuters Related to My Research Report (Live)' and 'Headlines on
Reuters (as of
January 21 2003, 08 17AM)' on the far right) With a registered association in
the Windows shell.
FIGURE 5 is a Diagram Illustrating the Text-to-Speech Object Skin and shows an
illustration of an email message being rendered via a text-to-speech object
skin.
FIGURE 6 is a Diagram Illustrating a Text-to-Speech Request Skin.
FIGURE 7 is a Diagram Illustrating Knowledge Modeling for a Pharmaceuticals
Company Example.
FIGURE 8 is a Diagram Illustrating Client Component Integration and
Interaction
Workflow.
FIGURES 9 -11 show three different views of the Explore Categories dialog box.
FIGURES 12 and 13 show sample screenshots of the Dossier Smart Lens in
operation.
FIGlJRE 14 shows how the server-side semantic query processor processes
incoming
semantic queries (represented as SQML).
FIGURE 15 illustrates the semantic browser showing two profiles (the default
profile
named "My Profile" and a profile named "Patents"). Observe how the user is
able to navigate
his/her knowledge worlds via both profiles without interference.
FIGURE 16A-C illustrate how a user would configure a profile (to create a
profile, the
user will use the "Create Profile Wizard" and the profile can then be modified
via a property
sheet as shown in other Figures).
FIGURE 17 shows how a user would select a profile when creating a request with
the
"Create Request Wizard."
3

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FIGURE 18 shows a screenshot with the 'Smart Styles' Dialog Box illustrating
some of
the foregoing operations and features.
FIGURE 19 illustrates the "Smart Request Watch" Dialog Box.
FIGURE 20 illustrates a Watch Window displaying Filtered Smart Requests (e.g.,
Headlines on Wireless). Figure 20 is an Illustration of the Watch Window with
a Current Smart
Request Title (e.g., "Breaking News").
FIGURE 21 illustrates Entity views displayed in the Semantic Browser.
FIGURE 22A and 22B show the UI for the Knowledge Community Subscription.
FIGURE 23 illustrates a semantic thread object and its semantic links.
FIGURES 24 through 46B are additional screen shots further illustrating the
functions,
options and operations as described in the Detailed Description.
FIGURE 47 as a sample semantic image for Pharmaceuticals/Biotech industry (DNA
helix).
FIGURE 48 is an illustration of a semantically appropriate image visualization
for the
Breaking News context template.
FIGURE 49 is a Visualization - Sample Image for smart hourglass, interstitial
page,
transition effects, background chrome, etc. (Headlines).
FIGURE 50 is a Visualization - Sample Image for smart hourglass, interstitial
page,
transition effects, background chrome, etc. (Two people working at a desk).
FIGURE 51 illustrates a semantic "Newsmaker" Visualization or Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
FIGURE 52 illustrates a semantic "Upcoming Events" Visualization - Sample
Image for
smart hourglass, interstitial page, transition effects, background chrome,
etc.
FIGURE 53 is a Visualization - Sample Image for smart hourglass, interstitial
page,
transition effects, background chrome, etc. (Petri Dish).
FIGURE 54 illustrates a semantic "History" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
4

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FIGURE 55 illustrates a semantic Visualization - Sample Image for smart
hourglass,
interstitial page, transition effects, background chrome, etc. (Spacecraft).
FIGURE 56 illustrates a "Best Buys" Visualization - Sample Image for smart
hourglass,
interstitial page, transition effects, background chrome, etc.
FIGURE 57 illustrates a semantic Visualization - Sample Image for smart
hourglass,
interstitial page, transition effects, background chrome, etc. (Coffee).
FIGURE 58 illustrates a semantically appropriate Sample Image for "Classics"
for smart
hourglass, interstitial page, transition effects, background chrome, etc.
(Car).
FIGURE 59 illustrates a semantically appropriate "Recommendation"
Visualization -
Sample Image for the contextual/application elements of smart hourglass,
interstitial page,
transition effects, background chrome, etc. (Thumbs up).
FIGURE 60 illustrates a semantic "Today" Visualization - Sample Image for the
elements smart hourglass, interstitial page, transition effectsa background
chrome, etc.
FIGURE 61 illustrates a semantic "Annotated Items" Visualization - Sample
Image for
smart hourglass, interstitial page, transition effects, background chrome,
etc.
FIGURE 62 illustrates a semantic "Annotations" Visualization - Sample hnage
for smart
hourglass, interstitial page, transition effects, background chrome, etc.
FIGURE 63 illustrates a semantic "Experts" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
FIGURE 64 illustrates a semantic "Places" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
FIGURE 65 illustrates a semantic "Blenders" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
FIGURES 66 through 84 illustrate semantic Visualizations for the following
Information
Object Types, respectively: Documents, Books, Magazines, Presentations,
Resumes,
Spreadsheets, Text, Web pages, White Papers, Email, Email Annotations, Email
Distribution
Lists, Events, Meetings, Multimedia, Online Courses, People, Customers, and
Users.

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Figure 85 illustrates a semantic "Timeline" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc..
6

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
TABLE OF CONTENTS
A. ADDITIONAL ILLUSTRATIVE SCENARIOS
...............................................................................
.................9
1. Patent Examiner Prior Art Search
Tool...........................................................................
................................9
2. BioTech Company Research
Scenario.......................................................................
...................................13
B. SUBJECT MATTER FOR THE PRESENTLY PREFERRED EMBODIMENT OF THE INFORMATION
NERVOUS
SYSTEM.........................................................................
...............................................................17
1. Smart Selection Lens
Overview.............................................................,.........
.............................................18
2. Pasting Person Objects Overview
...............................................................................
..................................20
3. Saving and Sharing Smart Requests
Overview.......................................................................
......................22
4. Saving and Sharing Smart Snapshots Overview
...............................................................................
............24
5. Virtual Knowledge
Communities....................................................................
..............................................25
6. Implementing Time-Sensitive Semantic
Queries........................................................................
..................26
7. Text-To-Speech Skins Overview
...............................................................................
...................................26
8. Language Translation
Skins..........................................................................
................................................28
9. Categories as First Class Objects in the User
Experience.....................................................................
........29
10. Categorized Annotations
...............................................................................
................................................ 29
11. Additional Context Templates
...............................................................................
.......................,...............30
12. Importing and Exporting User
State.............................................................,............
....................................31
13. Local Smart
Requests.......................................:..............................,
......,......................................................32
14. Integrated
Navigation.....................................................................
.........:.....................................................32
15. Hints for Visited Results
.........................................................................:.....
................................................33
16. Knowledge Federation
...............................................................................
...................................................34
17. Anonymous Annotations and Publications
...............................................................................
....................38
18. Offline Support iii the Semantic Browser
...............................................................................
......................38
19. Guaranteed Cross-Platform Support in the Semantic Browser
.....................................................................39
20. Knowledge
Modeling.....,.................................................................
.............................................................40
21. KIS Housekeeping Rules
...............................................................................
...............................................41
22. Client Component Integration & Interaction Workflow
...............................................................................
41
23. Categories Dialog Box User Interface
Specification..................................................................
...................42
24~. Client-Assisted Server Data Consistency
Checking..............................,........................................
...............45
25. Client-Side Duplicate
Detection......................................................................
..............................................4~6
26. Client-Side Virtual Results
Cursor.........................................................................
.......................................46
27. Virtual Single Sign-
On.............................................................................
.....................................................47
28. Namespace Object Action
Matrix.........................................................................
........................................49
29. Dynamic End-to-End Ontology/Taxonomy Updating and
Synchronization................................................. 50
30. Invoking Dossier (Guide) Queries
...............................................................................
.................................51
31. Knowledge Community (Agency) Semantics
........................................,......................................
................ 52
32. Dynamic Ontology and Taxonomy
Mapping........................................................................
............,...........53
33. Semantic Alerts
Optimizations..................................................................
....................................................53
a »
34. Semantic 'News
Images.........................................................................
.....................................................54
35. Dynamically Choosing Semantic
Images.........................................,...............................
.............................54
36. Dynamic Knowledge Community (Agency) Contacts
Membership.............................................................54
37. Integrated Full-Text Keyword and Phrase Indexing
........................,......................................................
......55
38. Semantic "Mark Object as
Read".....................................,....................................
........................................56
39. Mufti-Select Object Lens
...............................................................................
...............................................57
40. Ontology-Based Filtering and Spam Management
...............................................................................
........ 58
41. Results Refmement
...............................................................................
.,...................................................... 58
42. Semantic Management of Information
Stores........................................,................................
......................60
43. Slide-Rule Filter User Interface
...............................................................................
..................................... 61
C. SERVER-SIDE SEMANTIC QUERY PROCESSOR
SPECIFICATION........................................................62
1.
Overview.......................................................................
...............................................................................
. 62
2. Semantic Relevance Score
...............................................................................
............................................. 63
3. Semantic Relevance
Filter.........................................................................
....................................................63

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
4. Time-Sensitivity Filter
...............................................................................
................................................... 64
5. Knowledge Type Semantic Query
Implementations................................................................
.....................64
D. EXTENSIBLE CLIENT-SIDE USER PROFILES SPECIFICATION FOR THE
INFORMATION NERVOUS
SYSTEM
...............................................................................
............................................................................
71
E. SMART STYLES SPECIFICATION FOR THE INFORMATION NERVOUS SYSTEM..73
...........................
1. Smart Styles
Overview.......................................................................
...........................................................73
2. Implicit and Dynamic Smart Style
Properties....,................................................................
..........................73
F. SMART REQUEST WATCH SPECIFICATION FOR THE INFORMATION NERVOUS..75
SYSTEM ........
1.
Overview.......................................................................
...............................................................................
.
75
2. Request Watch Lists (RWLs) and Groups
(RWGs).........................................................................
.............76
3. The Notification Manager (NM)
...........................................................,...................
....................................79
4. Watch Group Monitors
...............................................................................
.....,............................................80
5. The Watch Pane
...............................................................................
.............................................................
80
6. The Watch Window
...............................................................................
.......................................................
81
7. Watch List Addendum
...........................................................,...................
...................................................82
G. ENTITIES SPECIFICATION FOR THE INFORMATION NERVOUS
SYSTEM.........................................
82
1.
Introduction...................................................................
...............................................................................
.
82
2. Portfolios (or Entity Collections)
...............................................................................
..........,........................88
3. Sample Scenarios
...............................................................................
...............:...........................................
89
H. KNOWLEDGE COMMUNITY BROWSING AND SUBSCRIPTION SPECIFICATION
FOR THE
INFORMATION NERVOUS
SYSTEM.........................................................................
..................................
90
I. CLIENT-SIDE SEMANTIC QUERY DOCUMENT SPECIFICATION FOR THE
INFORMATION
NERVOUS
SYSTEM.........................................................................
...............................................................91
1. Semantic Query Markup Language (SQML) Overview
...............................................................................
91
2. SQML
Generation.....................................................................
..................................................................100
3. SQML
Parsing........................................................................
.....................................................................100
J. SEMANTIC CLIENT-SIDE RUNTIME CONTROL API SPECIFICATION FOR
THE INFORMATION
NERVOUS
SYSTEM.........................................................................
......,......................................................101
1. Introducing the Nervana Semantic Runtime Control - Overview 101
..................................................,............
2. The Nervana Semantic Runtime Control
API............................................................................
.................101
3. Email Control
APIs............................,..........................,...................
.............................................,............112
4. Person Control
APIs...........................................................................
.........................................................115
5. System Control
Events.........................................................................
.......................................................118
I~.SECURITY SPECIFICATION FOR THE INFORMATION NERVOUS
SYSTEM.~I.....................................120
1. Authorization
...............................................................................
...............................................................120
2. People
Groups.........................................................................
...............,....................................................124
3. Identity Metadata Federation
...............................................................................
.......................................125
4. Access
Control........................................................................
............................................,.......................126
L. DEEP INFORMATION SPECIFICATION FOR THE INFORMATION NERVOUS 132
SYSTEM..................
M. CREATE REQUEST WIZARD SPECIFICATION FOR THE INFORMATION NERVOUS138
SYSTEM .....
N. CREATE PROFILE WIZARD SPECIFICATION FOR THE INFORMATION NERVOUS140
SYSTEM.......
O. CREATE BOOI~MMARK WIZARD SPECIFICATION FOR THE INFORMATION 141
NERVOUS SYSTEM
1. Introducing the Create Bookmark Wizard
...............................................................................
...................141
2. Scenarios
...............................................................................
......................................................................142
3. Intelligent Publishing-Tool Metadata Suggestion and
Maintenance...........................................................142
P. SEMANTIC THREADS SPECIFICATION FOR THE INFORMATION NERVOUS 143
SYSTEMTM.............
1. Semantic
Threads.............................:.........~................................
................................................................143
2. Semantic Thread
Conversations..................................................................
..........................................,.....146
3. Semantic Thread
Management................................................................:....
...............................................147
Q. SAMPLE SCREEN
SHOTS.......................................................................,..
..................................................148
R. SPECIFICATION FOR SEMANTIC QUERY DEFII~1ITIONS & VISUALIZATIONS
FOR THE
INFORMATION NERVOUS
SYSTEM.........................................................................
................................148
1. Semantic Images & Motion
...............................................................................
.........................................148
2. The Smart
Hourglass......................................................................
.............................................................153
3. Visualizations -- Context Templates
...............................................................................
............,...............154

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In a currently preferred embodiment, the system incorporates not only the
features and
functions described in my parent application and this CIP.
A. ADDITIONAL ILLUSTRATIVE SCENARIOS
The following scenarios help to explain the utility and operation of the
system, and will
thereby make the rest of the detailed description easier to follow and
understand.
1. Patent Examiner Prior Art Search Tool
Largely because of PTO fee diversion, there is a great' deal of pressure on
U.S. Patent
Examiners to conduct a robust prior art search in very little time. And, while
the research tools
available to Examiners have improved dramatically in the last several years,
those tools still have
many shortcomings. Among the shortcomings are that most of the research tools
are text based,
rather than meaning based. So, for example, the search tool on the PTO website
will search for
particular words in particular fields in a document. Similarly, the advanced
search tool on
Google enables the Examiner to locate documents with particular words, or
particular strings of
words, or documents without a particular word or words. However, in each case,
the search
engine does not allow the Examiner to locate documents on the basis of
meaning. So, for
example, if there is a relevant reference that teaches essentially the same
ideaq but uses
completely different words (e.g., a synonym, or worse yet, a synonymous
phrase) than those in
the query, the reference, even though perhaps anticipating, may well not be
discovered. Even if
the Examiner could spare the time to imagine and search every possible
synonym, or even
synonymous phrase to the key words critical to the invention, it could still
overlook references
because sometimes the same idea can be expressed without using any of the same
words at all,
and sometimes the synonymous idea is not neatly compressed into a phrase, but
distributed over
several sentences or paragraphs.
The reason for this is that words do not denote or connote meaning one to one
as, for
example, numerals tend to do. Put differently, certain meanings can be denoted
or connoted by
several different words or an essentially infinite combination of words, and,
conversely, certain
9

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
words or combinations of words can denote or connote several different
meanings. Despite this
infinite many-to-many network of possibilities human beings can isolate
(because of context,
experience, reasoning, inference, deduction, judgment, learning and the like)
isolate probable
meanings, at least tolerably effectively most of the time. The current prior
art computer-
automated search tools (e.g. the PTO website, or Google, or Lexis), cannot.
The presently
preferred embodiment of my invention bridges this gap considerably because it
can search on the
basis of meaning.
For example, using the some of the search functions of the preferred
embodiment of the
present invention, the Examiner could conduct a search, and with no additional
effort or time as
presently invested, obtain search results relevant to patentability even if
they did not contain a
single word in common with the key words chosen by the Examiner. Therefore,
the system
would obtain results relevant to the Examiner's task that would not ordinarily
be located by
present systems because it can locate references on the basis of meaning.
Also on the basis of meaning, it can exclude irrelevant references, even if
they share a
key word or words in common with the search request. In other words, one
problem in prior art
research is the problem of a false positive; results that the search engine
"thought" were relevant
merely because theg~ had a key v~ord in conunon, but that were in fact totally
irrelevant because
the key word, upon closer inspection in context, actually denoted or connoted
an irrelevant idea.
Therefore, the Examiner must search for the needle in the haystack, which is a
waste of time.
W contrast, using some of the search functions of the preferred embodiment of
the
present invention, the density of relevant search results increases
dramatically, because the
system is "intelligent" enough to omit search results that, despite the common
key words, are not
relevant. Of course, it is not perfect in this respect any more than human
beings are perfect in
this respect. But, it is much more effective at screening irrelevant results
than present systems,
and in this respect resembles in function or in practice an intelligent
research assistant than a
mere keyword based search engine. Thus, using the system, the Examiner can
complete a much

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
better search in much less time. The specific mechanics of using the system
this way, in one
example, would work as follows:
Imagine the Examiner is assigned to examine an application directed to
computer
software for a more accurate method of interpreting magnetic resonance data
and thereby
generating more accurate diagnostic images. To search for relevant prior art
using the search
fiuzctions of the preferred embodiment of the present invention, the Examiner
would:
a. Using the Create Entity wizard, create a "Topic" entity with the relevant
categories in the various contexts in which "Magnetic Resonance Imaging"
occurs. As an
illustration, Figures 1 and 2 show where "Magnetic Resonance Imaging" occurs
in a
Pharmaceuticals taxonomy. Notice that there are several contexts in which the
category occurs.
Add the relevant categories to the entity and apply the "OR" operation.
Essentially, this amounts
to defining the entity "Magnetic Resonance Imaging" (as it relates to YOUR
specific task) as
being equivalent to all the occurrences of Magnetic Resonance Zinaging in the
right contexts -
based on the patent application being examined.
b. Name the new entity "Magnetic Resonance Imaging" and perhaps "imaging" and
"diagnostic" or some variations and combinations of the same.
c. Drag and drop the "Magnetic Resonance Imaging" Topic entity to the Dossier
(special agent or default knowledge request) icon in the desired profile (the
profile is preferably
configured to include the "Patent Database" knowledge community). This
launches a new
Dossier requestlagent that displays each special agent (context template).
Each special agent is
displayed with the right default predicate as follows:
~ All Bets on Magnetic Resonance Imaging
~ Best Bets on Magnetic Resonance Imaging
~ Breaking News on Magnetic Resonance Imaging
~ Headlines on Magnetic Resonance Imaging
~ Random Bets on Magnetic Resonance Imaging
~ Experts in Magnetic Resonance Imaging
~ Newsmakers in Magnetic Resonance Imaging
~ Interest Group in Magnetic Resonance Imaging
~ Conversations on Magnetic Resonance hnaging
11

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Annotations on Magnetic Resonance Imaging
~ Annotated Items on Magnetic Resonance Imaging
~ Upcoming Events on Magnetic Resonance Imaging
~ Popular Items on Magnetic Resonance Imaging
~ Classics on Magnetic Resonance Imaging
d. Alternatively, the request can be created by using the Create Request
Wizard. To
.do this, select the Dossier context template and select the "Patent Database"
knowledge
community as the knowledge source for the request. Alternatively, you can
configure the profile
to include the "Patents Database" knowledge community and simply use the
selected profile for
the new request. Hit Next - the wizard intelligently suggests a name for the
request based on the
semantics of the request. The wizard also selects the right default predicates
based on the
semantics of the "Magnetic Resonance hnaging" "Topic" entity. Because the
wizard knows the
entity is a "Topic," it selects the right entities that make sense in the
right contexts. Hit Finish.
The wizard compiles the query, sends the SQML to the I~ISes in the selected
profile, and then
displays the results.
In the foregoing example, the results could be drawn, ultimately, from any
source.
Preferably, some of the results would have originated on the Web, some on the
PTO intranet,
some on other perhaps proprietary extranets. Regardless of the scope or origin
of the original
documents, bg~ use of the system they hare been automatically processed, and
automatically
"read" and "understood" by the system, so that when the Examiner's query was
initiated, and
also "read" and "understood" semaaztically, and by context, the system locates
all relevant, and
only relevant results. Again, not perfectly, but radically more accurately
than in any prior
systems. Note also that the system does not depend on any manual tagging or
categorization of
the documents in advance. While that would also aid in accuracy, it is so
labor intensive as to
utterly eclipse the advaaZtages of online research in the first place, and is
perfectly impractical
given the rate of increase of new documents.
W this scenario, the Examiner may also wish to use additional features of the
preferred
embodiment of the invention. For example, the Examiner may wish to consult
experts within the
PTO, or literature by experts outside the PTO, as follows (note that Experts
in Magnetic
12

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Resonance Imaging would be included in the Dossier on Magnetic Resonance
Imaging;
however, the examiner might want to create a separate request for Experts in
order to track it
separately, save it as a "request document," email it to colleagues, etc.).
Find all Experts in
Magnetic Resonance Imaging:
a. Follow steps 1-4 above.
b. Drag and drop the "Magnetic Resonance Imaging" entity to the Experts
(special
agent or default knowledge request) icon in the desired profile. This
automatically launches a
new requestlagent appropriately titled "Experts in Mag~letic Resonance
Imaging." The semantic
browser selects the xight default predicate "in" because it "knows" the entity
is a "Topic" entity
and the context template is a "People" template (Experts). As such, the
default predicate is
selected based on the intersection of these two arguments ("in") since this is
what makes sense.
2. BioTech Company Research Scenario
Eiotech companies are research intensive, not only in laboratory research, but
in research
of the results of research by othexs, both within and outside of their own
companies.
Unfortunately, the research tools available to such companies have
shortcomings. Proprietary
services provide context-sensitive and useful results, but those services
themselves have inferior
tools, and thus rely heavily on indexing and human effort, and subscriptions
to expensive
specialized joun~als, and as consequence are very expensive and not as
accurate as the present
system. ~n the other hand, biotech researchers can search inexpensively using
Google0, but it
shares all the lcey word based limitations described above.
In contrast, using the search features of the preferred embodiment of the
present
invention, a biotech researcher could more efficiently locate more relevant
results. Specifically,
the researcher might use the system as follows. For example, if some
researchers wanted to Find
Headlines on Genomics and .Anatomy written by anyone in Marketing or Research,
they would
do that as follows:
13

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
a. Using the wizard, launch an information-type requestlagent for distribution
lists
with the keywords "Marketing Research".
b. Select the Marketing distribution list result and click "Save as Entity" -
this saves
the object as a "Team" entity (because the semantic browser "knows" the
original object is a
distribution list - as such, a "Team" entity makes sense in this context).
c. Select the Research distribution list result and click "Save as Entity" -
this saves
the object as a "Team" entity (because the semantic browser "knows" the
original object is a
distribution list).
d. Using the Create Entity Wizard, create a new "Team" entity and select the
"Marketing" and "Research" team entities as members. Name the new entity
"Marketing or
Research".
e. Using the Create Request Wizard, select the Headlines context template, and
then
select the "Marketing or Research" entity as a filter. Also, seleet the
Genomics category and the
Anatomy category. Next, select the "AND" operator. Hit Next - the wizard
intelligently
suggests a name for the request based on the semantics of the request. The
wizard also selects the
right default predicates based on the semantics of the "Marketing or Research"
team entity ("by
an~rone in'°). Eecause the wizard kno~rs the entity is a "Team," it
selects "by anyone in" by
default since this makes sense. Hit Finish. The wizard compiles the query,
sends the SQML to
the I~ISes in the selected profile, and then displays the results.
In addition, the researchers may wish to Find all Experts in Marketing or
Research:
a. Follow steps 1-4 above.
b. Drag and drop the "Marketing or Research" entity to the Experts (special
agent or
default knowledge request) icon in the desired profile. This launches a new
request/agent
appropriately titled "Experts in Marketing or Research." The semantic browser
selects the right
default predicate "in" because it "lcnows" the entity is a "Team" entity and
the context template
is a "People" template (Experts). As such, the default predicate is selected
based on the
intersection of these two arguments ("in") since this is what makes sense.
14

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
If the researchers expect to need to return to this research, or to supplement
it, or to later
analyze the results, they may wish to Open a Dossier on Marketing or Research,
as follows:
a. Follow steps 1-4 above.
b. Drag and drop the "Marketing or Research" entity to the Dossier (special
agent or
default knowledge request) icon in the desired profile. This launches a new
Dossier
requestlagent that displays each special agent (context template). Each
special agent is displayed
with the right default predicate as follows:
~ All Bets by anyone in Marketing or Research
~ Best Bets by anyone in Marketing or Research
~ Breaking News by anyone in Marketing or Research
~ Headlines by anyone in Marketing or Research
~ Random Bets by anyone in Marketing or Research
~ Experts in Marketing or Research
~ Newsmakers in Marketing or Research
~ Interest Group in Marketing or Research
~ Conversations involving anyone in Marketing or Research
Annotations by anyone in Marketing or Research
Annotated Items by anyone in Marketing or Research
~ Upcoming Events by anyone in Marketing or Research
~ Popular Items by anyone in Marketing or Research
~ Classics by anyone in Marketing or Research
'The researchers may be interested in Finding egBrealbing Ne~~rs on my
~'~mpetitors'q, and
would do so as follows:
a. For each competitor, create a new "competitor" entity (under "companies")
using
the Create Entity Wizard. Select the right filters as needed. For instance, a
competitor with a
well-known English name - like "Groove" should have an entity that includes
categories in
which the company does business and also the keyword.
b. Using the Create Entity Wizard, create a portfolio (entity collection) and
add all
the competitor entities you created in step a. Name the entity collection "My
Competitors."
c. Using the Create Request Wizard, select the Breaking News context template
and
add the portfolio (entity collection) you created in step b. as a filter. Keep
the default predicate
selection. Hit "Next" - the wizard intelligently suggests a name for the
request using the default

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
predicate ("Breaking News on My Competitors"). Hit Finish. The wizard launches
a new
request/agent named "Breaking News on My Competitors."
In addition, the researchers may wish to be kept apprised. They could instruct
the system
to alert them on "Breaking News on our Competitors", as follows:
a. Create the "Breaking News on My Competitors" request as described above.
b. Add the request to the request watch list. The semantic browser will now
display
a watch pane (e.g., a ticker) showing "Breaking News on My Competitors." Using
the
Notification Manager (NM), you can also indicate that the semantic browser
send alerts via
email, instant messaging, text messaging, etc. when there are new results from
the request/agent.
In addition, the researchers may wish to keep records of competitors for
future reference,
and to have them constantly updated. The system will create and update such
records, by the
researchers instructing the system to Show a collection of Dossiers on each of
our competitors,
as follows:
a. Create entities for each of your competitors as described in 4a. above.
b. For each competitor entity, create a new Dossier on that competitor by
dragging
the entity to the Dossier icon for the desired profile - this creates a
Dossier on the competitor.
c. Using the Create Request ~Nizard, create a new request collection (blender)
and
add each of the Dossier requests created in step b. above to the collection
(you can also drag and
drop requests to the collection after it has been created in order to further
populate the
collection). Hit Next - the wizard intelligently suggests a name for the
request collection. Hit
Finish. The wizard launches a request collection that contains the individual
Dossiers. You can
then add the request collection as a favorite and open it everyday to get
rich, contextual
competitive intelligence.
The researchers may wish to review a particular dossier, and can do so by
instructing the
system to Show a Dossier on the CEO (e.g., named John Smith):
a. Using the wizard, launch an information-type request/agent for People with
the
keywords "John Smith".
16

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
b. Select the result and click "Save as Entity" - this saves the object as a
"Person"
entity (because the semantic browser "knows" the original object is a person -
as such, a
"Person" entity makes sense in this context).
c. Using the Create Request Wizard, select the Dossier context template, and
then
select the "John Smith" entity as a filter. Hit Next - the wizard
intelligently suggests a name for
the request based on athe semantics of the request. The wizard also selects
the right default
predicates based on the semantics of the "John Smith" person entity. Hit
Finish. The wizard
compiles the query, sends the SQl'vIL to the KISes in the selected profile,
and then displays the
results (as sub-querieslagents) as follows:
~ All Bets by John Smith
~ Best Bets by John Smith
~ Breaking News by John Smith
~ Headlines by John Smith
~ Random Bets by John Smith
° Experts lilce John Smith (this returns Experts that have expertise on
the same
categories as those in which John Smith has expertise)
~ Newsmakers like John Smith (this returns Newsmakers that have recently "made
news" in the same categories as those in which John Smith has recently "made
news")
~ Interest Group like John Smith (this returns the people that have shown an
interest
in the same categories as those in which John Smith has shovJn interest -
~n~ithin a
time-windov~ (~-3 months in the preferred embodiment))
Conversations involving John Smith
~ Annotations by John Smith
~ Annotated Items by John Smith
~ Upcoming Events by John Smith
~ Popular Items by John Smith
~ Classics by John Smith
The foregoing scenarios illustrate the operation of the system. The system
itself is
described in greater detail below.
B. SUBJECT MATTER FOR THE PRESENTLY PREFERRED EMBODIMENT OF
THE INFORMATION NERVOUS SYSTEM
Several improvements, enhancements and variations have been developed since
the filing
of my co-pending parent application and prior provisional applications
referenced above. Some
17

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
of these are improvements on, or only clarifications of, features previously
included in the parent
application, and some are new features of the system altogether. These are
listed and described
below. They are not arranged in order of importance, or in any particular
order. While the
preferred embodiment of the present invention would allow the user to use any
or all of these
features and improvements described below, alone or in combination, no single
feature is
necessary to the practice of the invention, nor any particular combination of
features.
Also, in this application, reference is made to the same terms as are defined
in my parent
application Serial No. 10/179,651, and the Description throughout this
application is intended to
be read in conjunction with the definitions, terminology, nomenclature and
Figures of my parent
application except where the context of this application clearly indicates to
the contrary.
1. Smart Selection Lens Overview
The Smart Selection Lens is similar to the Smart Lens feature of the
Information Nervous
System information medium. In this case, the user can select text within the
object and the lens
will be applied using the selected text as the object (dynamically generating
new "images" as the
selection changes). This way, the user can "lens" over a configurable subset
of the object
metadata, as opposed to being constrained t~ "lens" over either the entire
object or nothing at all.
This feature is similar to a selection cursor/verb overloaded with context.
For example, the user
can select a piece of text in the Presenter and hit the "Paste as Lens" icon
over the object in
which the text appears. The Presenter will then pass the text to the client
runtime component
(e.g., an ActiveX object) with a method call like:
bstrSRML = GetSRMLForText( bstrText );
This call then returns a temporary SRML buffer that encapsulates the argument
text. The
Presenter will then call a method like:
bstrSQML = GetQueryForSmartLensOnObject( bstrSRMLObject );
This method gets the SQML from the clipboard, takes the argument SRML for the
object,
and dynamically creates new SQML that includes the resource in the SRML as a
link in the
1s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
SQML (with the default predicate "relevant to"). The method then returns the
new SQML. The
Presenter then calls the method:
ProcessSemanticQuery( bstrSQML);
This method passes the generated lens SQML and then retrieves the number of
items in
the results and the SRML results, preferably asynchronously. For details on
this call, see the
specification "Information Nervous System Semantic Runtime OCX." The Presenter
then
displays a preview window (or the equivalent, based on the current skin) with
something like:
[Lens Agent Title]
Found 23 items
[PREVIEW OBJECT 1
[PREVIEW WINDOW CONTROLS ]
where the "Lens Agent Title" is the title of the agent on the clipboard. For
details of the
preview window (and the preview window controls), please refer to my parent
application Serial
No. 10/179,651.
In the preferxed embodiment, the preview window will:
~ Disappear after a timer expires (maybe SOOms) - on mouse move, the timer is
preferably reset (this will avoid flashing the window when the user moves the
mouse around the
same area).
Fade out slowly (eventually).
The preferred embodiment also has the following features:
1. One selection range per object but multiple selections per results-set is
the best option.
Otherwise, the system would result in a confusing user experience arid complex
IJI to show lens icons
per selection per object (as opposed to per object).
2. Outstanding lens query requests (which are regular SQML queries, albeit
with SQML
dynamically generated consistent with the agent lens) should be cancelled when
the Presenter no
longer needs them (e.g. if the Presenter is navigating to a new page, or if we
are requesting new lens
info for an object). In any case, such cancellation is not critical from a
performance (or bandwidth)
standpoint because lens queries will likely only ask for a few objects at a
time. Even if the queries are
19

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
not cancelled, the Presenter can ignore the results. Regardless, because the
Presenter also has to deal
with stale results, dropping them on the floor the Presenter will have to do
this anyway (whether or
not lens queries are also cancelled). There will be a window of delay between
when the Presenter
issues a cancel request and when the cancellation actually is complete.
Because some results can
trickle in during this time, they need to be discarded. Thus, the preferred
embodiment has
asynchronous cancellation implementations - the software component has been
designed to always be
prepared to ignore bad or stale results.
3. The Presenter preferably has both icons (indicating the current lens
request state)
and tool-tips: When the user hovers over or clicks on an object, the Presenter
can put up a tool-
tip with the words, "Requesting Lens Info" (or words to that effect). When the
info comes back,
hovering will show the "Found 23 Objects" tip and clicking will show the
results. This
interstitial tool tip can then be transitioned to the preview window if it is
still up when the results
arrive.
In addition, note that the smart selection lens, like the smart lens, can be
applied to
objects other thaw textual metadata. For instance, the Smart Selection Lens
can be applied to
images, video, a section of an audio stxeam, or other metadata. In these
cases, the Presenter
~,~~uld return the appropriate SRI~1L consistent with the data type and the
"selection region."
This region could be an area of an image, or video, a time span in an audio
stream, etc. The rest
of the smart lens functionality would apply as described above, with the
appropriate SQML
being generated based on the SRML (which in turn is based on the schema for
the data type
under the lens).
2. Pasting Person Objects Overview
The Information Nervous System (which, again, is one of our current shorthand
names
for certain aspects of our presently preferred embodiments) also supports the
drag and drop or
copy and paste of 'Person' objects (People, Users, Customers, etc.). There are
at least two
scenarios to illustrate the operation of the preferred embodiment in this
case:

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
1. Pasting a Person object on a smart request representing a Knowledge
community
(or Agency) from whence the Person came. In this case, the server's semantic
query processor
merely resolves the SQML from the client using the Person as the argument. For
instance, if the
user pastes (or drags and drops) a person 'Joe' on top of a smart request
'Headlines on Reuters,'
the client will create a new smart request using the additional argument. The
Reuters
Information Nervous System Web service will then resolve this request by
returning all
Headlines published or annotated by ''Joe.' In this case, the server will
essentially apply the
proper default predicate ('published or annotated by') - that makes sense for
the scenario.
2. Pasting a Person object on a smart request representing a Knowledge
community
(or Agency) from whence the Person did not come. In this case, because the
Person object is not
in the semantic network of the destination Knowledge community (on its SMS),
the server's
semantic query processor would not be able to make sense of the Person
argument. As such, the
server must resolve the Person argument, in a different way, such as, for
example, using the
categories on which the person is an expert (in the preferred embodiment) or a
newsmaker. For
instance, talcing the above example, if the user pastes (or drags and drops) a
person 'Joe' on top
of a smart request 'Headlines on Reuters' and Joe is not a person on the
Reuters knowledge
community, the Reuters Web service (in the preferred embodiment) must return
Headlines that
are "relevant to Joe's expertise." This embodiment would then require that the
client take a two-
pass approach before sending the SQML to the destination Web service. First,
it must aslc the
Knowledge community that the person belongs to for "representative data
(SRML)" that
represents the person's expertise. The Web service resolves this request by:
a. Querying the Knowledge community (e.g., Reuters) on which the person object
is
pasted or dropped for that community's semantic domain information which
comprises andlor
represents that community's specifictaxonomy and ontology. Note that there
could be several
semantic domains.
b. Querying the Knowledge community from whence the person object came for
that person object's semantic domain information.
21

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
c. If the semantic domains are identical or if there is at least one common
semantic
domain, the client queries the Knowledge community from whence the person came
for the
person's categories of expertise. The client then constructs SQML with these
categories as
arguments and passes this SQML to the Knowledge community on which the person
was pasted
or dropped.
If the semantic domains are not identical or there is not least one common
semantic
domain, the client queries the Knowledge community from whence the person came
for several
objects that belong to categories on which the person is an expert. In the
preferred embodiment,
the implementation should pick a high enough number of objects that accurately
represent the
categories of expertise (this number is preferably picked based on
experimentation). The reason
for picking objects in this case is that the destination Web service will not
understand the
categories of the Knowledge community from whence the person came and as such
will not be
able to map them to its own categories. Alternatively, a category mapper can
be employed (via a
centralized Web service on the Internet) that maps categories between
different Knowledge
Communities. In this case, the destination Knowledge community will always be
passed
categories as part of the SQML, even though it does not understand those
categories - the
Knowledge cornrnunity will then map these categories to internal categories
using the category
mapper Web service. The category mapper Web service will have methods for
resolving
categories as well as methods for publishing category mappings.
3. Saving and Sharing Smart Requests Overview
Users of the liiformation Nervous System semantic browser (the Information
Agent or
Librarian) will also be able to save smart requests to disk, email them as an
attachment, or share
them via Instant Messenger (also as an attaclunent) or other means. The client
application will
expose methods to save a smart request as a sharable document. The client
application will also
expose methods to share a smart request document as an attachment in email or
Instant
Messenger.
22

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
A sharable smart request document is a binary document that encapsulates SQML
(via a
secure stream in the binary format). It provides a safe, serialized
representation of a semantic
query that, among other features, can protect the integrity and help protect
the intellectual
property of the specification. For example, the query itself may embody trade
secrets of the
researcher's employer, which, if exposed, could enable a competitor to reverse
engineer critical
competitive information to the detriment of the company. The protection can be
accomplished in
several ways, including by strongly encrypting the XML version of the semantic
query (the
SQML) or via a strong one-way hash. The sharable document has an extension
(.REQ) that
represents the request. An extension handler on the client operating system is
installed to
represent this extension. When a document with the extension is opened, the
extension handler
is invoked to open the document. The extension handler opens the document by
extracting the
SQML from the secure stream, and then creating a smart request in the semantic
namespace with
the SQML. The handler then opens the smart request in the semantic namespace.
When a smart request in the semantic namespace is saved or if the user wants
to send it as
an email attachment, the client serializes the SQ1VIL representing the smart
request in the binary
.REQ format and saves it at the requested directory path or opens the email
client with the .REQ
document as an attachment.
Figure 3 shows the binary document format that encapsulates the SQML buffer
with the
smart request and also illustrates how the extension handler opens the
document. A similar
model can also be employed for sharing results (via SRML). In this case, a
binary document
encapsulates the SRML, rather than the SQML as in the case above.
Figure 4A and A.B shows an illustration of two .REQ documents (titled
'Headlines on
Reuters Related to My Research Report (Live)' and 'Headlines on Reuters (as of
January 21
2003, 08 17AM)' on the fax right) with a registered association in the Windows
shell. The first
request document is 'live' and the second one is a snapshot at a particular
time (they are both
time-sensitive requests). Notice that the operating system has associated the
semantic browser
23

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
application (Nervana Librarian) with the document. When the document is
opened, the semantic
query gets opened in the application.
~ Saving and sharing entities - the same process applies as above except with
a
.ENT extension to represent an entity. When an entity document is invoked, the
Nervana
Librarian opens the entity SQML in the browser.
~ Extension Property Sheet - this will create a temporary smart request or
entity
(depending on the kind of document) in the semantic enviromnent and display
the property sheet
for a smart request or entity.
~ Extension Tool tips - this will display a helpful tool tip when the user
hovers over
a librarian document (a request, .REQ or an entity, .ENT).
4. Saving and Sharing Smart Snapshots Overview
The Information Nervous System also supports the sharing of what the inventor
calls
"Smart Snapshots." A smart snapshot is a smart request frozen in time. This
will enable a
scenario where the user wants to share a smart request but not have it be
"live." For instance, by
default, if the user shares the smart request "Breaking News on Reuters
related to this document"
with a colleague, the colleague will see the live results of the smart request
(based on the
'°current time"). Hovrever, if the user wants to share "[Current]
Breaking News on Reuters
related to this document," a smart snapshot will be employed.
A smart snapshot is the same as a smart request (it is also represented by an
SQML query
document) except that the "attributes" section of the SQML document contains
attributes
marking it as a snapshot (the flag QUERYATTRIBUTES-SNAPSHOT). The creation
date/time
of the SQML document is also stored in the SQML (as before - the SQML schema
contains a
field for the creation date/time). When the user indicates that he/she wants
to share the smart
request, the user interface (the semantic browser, Information Agent, or
Librarian) prompts
him/her whether he/she wants to share the smart request (live) or a smart
snapshot. If the user
indicates s smart request, the process described above (in Part 3) is
employed. If the user
24

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
indicates a smart snapshot, the binary document is populated with the edited
SQML (containing
the snapshot attribute) and the remainder the process is followed as above.
When the recipient of the binary document receives it (by email, instant
messaging, etc.),
and opens it, the extension handler opens the document and adds an entry into
the semantic
namespace as a smart request (as described above). When the recipient opens
the smart request,
the client's semantic query processor will send the processed SQML to the
server's XML web
service (as previously described). The server's semantic query processor then
processes the
SQML and honors the snapshot attribute by invoking the semantic query relative
to the SQML
creation date/time. As such, results will be relative to the original
date/time, thereby honoring
the intent of the sender.
5. Virtual Knowledge Communities
Virtual Knowledge Communities (agencies) refer to a feature of the Information
Nervous
System that allows the publisher of a knowledge community to publish a group
of servers to
appear as though they were one server. For instance, Reuters could have per-
industry Reuters
Knowledge Communities (for pharmaceuticals, oil and gas, mmufacturing,
financial services,
etc.) but might also choose to expose one 6Reuters' knowledge community. To do
this, Reuters
will publish and announce the SQML for the virtual knowledge community (rather
than the ZJRL
to the WSDL of the XML Web Service). The SQML will contain a blender (or
collection) of the
WSDLs of the actual Knowledge Communities. The semantic browser will then pick
up the
SQML and display an icon for the knowledge community (as though it were a
single server).
Any action on the knowledge community will be propagated to each server in the
SQML. If the
user does not have access for the action, the Web service call will fail
accordingly, else the
action will be performed (no different from if the user had manually created a
blender containing
the Knowledge Communities).

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
6. Implementing Time-Sensitive Semantic Queries
Semantic queries that are time-sensitive are preferably implemented in an
intelligent
fashion to account for the rate of knowledge generation at the knowledge
community (agency) in
question. For instance, 'Breaking News' on a server that receives 10 documents
per second is
not the same as 'Breaking News' on a server that receives 10 documents per
month. As such, the
'server-side semantic query processor would preferably adjust its time-
sensitive semantic query
handling according to the rate at which information accumulates at the server.
To implement
this, general rules of thumb could be used, for instance:
~ The most recent N objects where N is adjusted based on the number of new
objects per minute.
~ All objects received in the last N minutes with a cap on the number of
objects
(i.e., min (cap, all objects received in the last N minutes)).
N can also be adjusted based on whether the query is a Headline or Breaking
News. In
the preferred embodiment, newsmaker queries is preferably implemented with the
same time-
sensitivity parameters as Headlines.
7. Text-To-Speech Skins Overview
'Text-to-speech is implemented at the object level and at the request level.
At the object
level, the obj ect skin runs a script to take the SRML of the obj ect,
interprets the SRML, and then
passes select pieces of text (in the SRML fields) to a text-to-speech engine
(e.g., using the
Microsoft Windows Speech SDI) that generates voice output.
Figure 5 shows a diagram illustrating text-to-speech object skin. When
executed, the
pipeline shown in Figure 5 results in the following voice output:
1. Reading Email Message
2. Appropriate Delay
3. Message From Nosa Omoigui
4. Appropriate Delay
5. Message Sent to John Smith
6. Appropriate Delay
7. Message Copied To Joe Somebody
8. Appropriate Delay
26

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
9. Message Subject Is Web services are software building blocks used for
distributed
computing
10. Appropriate Delay
11. Message Summary is Web services
12. Appropriate Delay
13. [Optional] Message Body is Web services are software building blocks used
for
distributed computing
This example assumes a voice skin template as follows:
1. Reading Email Message
2. Appropriate Delay
3. Message From <message author name>
4. Appropriate Delay
5. Message Sent to <message to: recipient name>
6. Appropriate Delay
7. Message Copied To <message cc: recipient name>
8. Appropriate Delay
9. Message Subject Is <message subject text>
10. Appropriate Delay
11. Message Summary is <message body summary>
12. Appropriate Delay
13. [Optional] Message Body is <message body>
Other templates can also be used to render voice that is easily understandable
and which
conveys the semantics of the object type being rendered. Like the example
shown above (which
is for email), the implementation should use appropriate text-to-speech
templates for all
information object types, in order to capture the semantics of the object
type.
At the request level, the semantic browser's presentation engine (the
Presenter) loads a
skin that takes the SRML for all the current objects being rendered (based on
the user-selected
cursor position) and then invokes the text-to-speech object skin for each
object. This essentially
repeats the text-to-speech action for each XML obj ect being rendered, one
after another.
Email Obj ect (SRML)
Object Interpretation Engine (Object Skin)
Text-to-Speech Engine
From: Nosa Omoigui
To: John Smith
Cc: Joe Somebody
Subject: Web services
Summary: Web services are software building blocks used for distributed
computing
Body: Web services...
27

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Voice Output
Reading Email Message
Delay
Voice Output
Message From Nosa Omoigui
Delay
Voice Output
Message Sent To John Smith
Delay
Voice Output
Message Copied To Joe Somebody
Delay
Message Subj ect is Web services are software building blocks used for
distributed
computing
Voice Output
Delay
Voice Output
Message Summary is Web services
Delay
Voice Output
Message Summary is Web services
Figure 6 shows an illustration of several email objects being presented in the
semantic
browser via a request skin.
From: Nosa Omoigui
To: John Smith
Cc: Joe Somebody
Subject: Web services
Summary: Web services are software building blocks used for distributed
computing
Body: Web services...
Email Obj ect 1
Object Skin (Object 1)
Email Obj ect 2
Email Object 3
Email Obj ect N
8. Language Translation Skins
Language translation skins are implemented similar to text-to-speech skins
except that
the transform is on the language axis. The XSLT skin (smart style) can invoke
a software engine
to automatically perform language translation in real-time and then generate
XML that is
encoded in Unicode (16 bits per character) in order to account for the
universe of languages. The
2s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
XSLT transform that generates the final presentation output then will render
the output using the
proper character set given the contents of the translated XML.
Lasaguage agnostic sefnahtic queries
Semantic queries can also be invoked in a language-agnostic fashion. This is
implemented by having a translation layer (the SQML language translator) that
translates the
SQML that is generated by the semantic browser to a form that is suitable for
interpretation by
the KDS (or KBS) which in turn has a knowledge domain ontology seeded for one
or more
languages. The SQML language translator translates the objects referred to by
the predicates
(e.g., keywords, text, concepts, categories, etc.) and then sends that to the
server-side seW antic
query processor for interpretation. The results are then translated back to
the original language
by the language translation skin.
9. Categories as First Class Objects in the User Experience
This refers to a feature by which categories of a knowledge community are
exposed to
the end user. The end user will be able to issue a query for a category as an
information type -
e.g., 'Web services.' The metadata will then be displayed in the semantic
browser, as would be
the case for any first-class information object type. Visualizations, d5mamic
links, context
palettes, etc. will also be available using the category object as a pivot.
This feature is useful in
cases where the user wants to start with the category and then use that as a
pivot for dynamic
navigation, as opposed to starting off with a smart request (smart agent) that
has the category as a
parameter.
10. Categorized Annotations
Categorized annotations follow from categories being first-class objects.
Users will be
able to annotate a category directly - thereby simulating an email list that
is mapped to a
category. However, for cases where there are many categories (for instance, in
pharmaceuticals),
this is not recommended because information can belong to many categories and
the user should
not have to think about which category to annotate - the user should publish
the annotation
29

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
directly to the knowledge community (agency) where it will be automatically
categorized or
annotate an obj ect like a document or email message that is more contextual
than a category.
11. Additional Context Templates
1. Experts - The Experts feature was indicated as a special agent in my parent
application Serial No. 10/179,651. As should have also been understood from
that application,
the Experts feature can also operate in conjunction with the context templates
section. Experts
are a context template and as the name implies indicate people that have
expertise on one or
more subject matters or contexts (indicated by the PREDICATETYPEID EXPERTON
predicate).
2. Interest Group - this refers to a context template which as the name
implies
indicate people that have interest (but not necessarily expertise) on one or
more subject matters
or contexts (indicated by the PREDICATETYPEID INTERESTIN predicate). This
context
template returns People that have shown interest in any semantic category in
the semantic
networlc. A very real-world scenario will have Experts returning people that
have answers and
Interest Group returning results of people that have questions (or answers).
In the preferred
embodiment, this is implemented by returning results of people who have
authored information
that in turn has been categorized in the semantic network, with the knowledge
domains
configured for the KIS. Essentially, this context template presents the user
with dynamic,
semantic communities of interest. It is a very powerful context template.
Currently, most
organizations use email distribution lists (or the like) to indicate
communities of interest.
However, these lists are hard to maintain and require that the administrator
manually track (or
guess) which people in the organization preferably belong to the list(s). With
the Interest Group
context template, however, the "lists" now become intelligent and semantic
(akin to "smart
distribution lists"). They are also contextual, a feature that manual email
distribution lists lack.
Like with other context templates, the Interest Group context predicate in
turn is
interpreted by the server-side semantic query processor. This allows powerful
queries like

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
"Interest Group on XML" or "Interest Group on Bioinformatics." Similarly, this
would allow
queries (via drag, and drop and/or smart copy and paste) like "Interest Group
on My Local
Document" and "Interest Group on My Competitor (an entity)." The Interest
Group context
template also becomes a part of the Dossier (or Guide) context template (which
displays all
special agents for each context templates and loads them as sub-queries of the
main
agent/request).
In the preferred embodiment, the context template should have a time-limit for
which it
detects "areas of interest." An example of this would be three months. The
logic here is that if
the user has not authored any information (most typically email) that is
semantically relevant to
the SQML filter (if available) in three months, the user either has no
interest in that category (or
categories) or had an interest but doesn't any longer.
3. Annotations of My Items - this is a context template that is a variant of
,~,n_n_otations but is further filtered with items that were published by the
calling user. This will
allow the user to monitor feedback specifically on items that he/she posted or
annotated.
12. Importing and Exporting User State
The semantic browser will support the importation and exportation of user
statee The
user will be able to save his/her personal state to a doeument and export it
to another machine or
vice-versa. This state will include information (and metadata) on:
~ Default user state (e.g., computer sophistication level, default areas of
interest,
default job role, default smart styles, etc.)
~ Profiles
~ Entities (per profile)
~ Smart requests (per profile)
~ Local Requests (per profile)
~ Subscribed Knowledge Communities (per profile)
The semantic browser will show UI (lilcely a wizard) that will allow the user
to select
which of the user state types to import or export. The UI will also ask the
user whether to
include identity/logon information. When the UI is involved, the semantic
browser will serialize
the user state into an XML document that has fields corresponding to the
metadata of all the user
31

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
state types. When the XML document is imported, the semantic browser will
navigate the X1VIL
document nodes and add or set the user state types in the client environment
corresponding to the
nodes in the XML document.
13. Local Smart Requests
Local smart requests would allow the user to browse local information using
categories
from an knowledge community (agency). In the case of categorized local
requests, the semantic
client crawls the local hard drives, email stores, etc. extracts the metadata
(including summaries)
and stores the metadata in a local version of the semantic metadata store
(SMS). The client
sends the AML metadata (per obj ect) to an knowledge community for
categorization (via its
XML Web Service). The knowledge community then responds with the category
assignment
metadata. The client then updates the local semantic network (via the local
SMS) and responds
to semantic queries just like the server would. Essentially, this feature can
provide functionality
equivalent to a local server without the need for one.
14. Integrated Navigation
Integrated Navigation allows the user to dynamically navigate from within the
Presenter
(in the main results pane on the right) and have the navigation be integrated
with the shell
extension navigation on the left. Essentially, this merges both stacks. In the
preferred
embodiment, this is accomplished via event signaling. When the Presenter wants
to dynamically
navigate to a new request, it sets some state off the GUID that identifies the
current browser
view. The GUID maps to a key in the registry that also has a field called
'Navigation Event,'
'Next Namespace Object m' and 'Next Path.' The 'Navigation Event' field holds
a DWORD
value that points to an event handle that gets created by the current browser
view when it is
loaded. When the Presenter Wants to navigate to a new request, it creates the
request in the
semantic environment and caches the returned ID of the request. It then
dynamically gets the
appropriate namespace path of the request (depending on the
informationlcontext type of the
request) and caches that too. It then sets the two fields ('Next Namespace
Object m' and 'Next
32

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Path' with these two values). Next, it sets the 'Navigation Event' (in
Windows, this is done by
calling a Win32 API named 'SetEvent').
To catch the navigation event, the browser view starts a worker thread when it
first starts.
This thread waits on the navigation event (and also simultaneously waits on a
shutdown event
that gets signaled when the browser view is being terminated - in Windows, it
does this via a
Wiii32 API named 'WaitForMultipleObjects'). If the navigation event is
signaled, the 'Wait'
API returns indicating that the navigation event was signaled. The worker
thread then looks up
the registry to retrieve the navigation state (the object id and the path). It
then calls the shell
browser to navigate to this object id and path (in Windows, this is done by
retrieving a 'PIDL'
and then calling IShellBrowser::BrowseTo off the shell view instance that
implements
IShellView).
15. Hints for Visited Results
The Nervaala semantic browser empowers the user to dynamically navigate a
lmowledge
space at the speed of thought. The user could navigate along context,
information or time axes.
However, as the user navigates, he/she might be presented with redundant
information. For
instance, the user can navigate from a local document to 'Freaking News' and
then from one of
the 'Freaking News' result obj acts to 'Headlines.' However, semantically,
some of the
Headlines might overlap with the breaking news (especially if not enough time
has elapsed).
This is equivalent to browsing the Web and hitting the same pages over and
over again from
different 'angles.'
The Nervana semantic browser handles this redundancy problem by having a local
cache
of recently presented results. The Presenter then indicates redundant results
to the user by
showing the results in a different color or some other UI mechanism. The local
cache is aged
(preferably after several hours or the measured time of a typical 'browsing
experience'). Old
entries are purged and the cache is eventually reset after enough time might
have elapsed.
33

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Alternately, at the users option, the redundant results can be discarded and
not presented
at all. Specifically, the semantic browser will also handle duplicate results
by removing
duplicates before rendering them in the Presenter - for instance if objects
with the same metadata
appear on different Knowledge Communities (agencies). The semantic browser
will detect this
by performing metadata comparisons. For unstructured data like documents,
email, etc., the
semantic browser will compare the summaries - if the summaries are identical
the documents are
very likely to be identical (albeit this is not absolutely guaranteed,
especially for very long
documents).
16. Knowledge Federation
Client-Side Kyaowledge Federation
Client-side Knowledge Federation which allows the user to federate knowledge
communities and operate on results as though they came from one place (this
federation feature
was described in my parent Application Serial No. 10/179,651). In the
preferred embodiment,
such Client-side Knowledge Federation is accomplished by the semantic browser
merging
SRML results as they arrive from different (federated) KISes.
~'e~~~er-,Side Ka~owled~-e Federation
Server-Side Knowledge Federation is technology that allows external knowledge
to be
federated within the confines of a lcnowledge community. For instance, many
companies rely on
external content providers like Reuters to provide them with information.
However, in the
Information Nervous System, security and privacy issues arise - relating to
annotations, personal
publications, etc. Many enterprise customers will not want sensitive
annotations to be stored on
remote servers hosted and managed by external content providers.
To address this, external content providers will provide their content on a
KIS metadata
cache, which will be hosted and managed by the company. For instance, Reuters
will provide
their content to a customer like Intel but Intel will host and manage the KIS.
The Intel KIS
would crawl the Reuters KIS (thereby chaining KIS servers) or the Reuters DSA.
This way,
34

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
sensitive Intel annotations can be published as 'Post-Its' using Reuters
content as context while
Intel will still maintain control over its sensitive data.
Federated Anyaotatiohs
Federated annotations is a very powerful feature that allows the user to
annotate an obj ect
that comes from one agency/server (KIS) and annotate the object with comments
(and/or
attachment(s)) - like "Post-Its" on another server. For example, a server
(call it Server A) might
not support annotations (this is configurable by the administrator and might
be the common case
for Internet-based servers that don't have a domain of trust and verifiable
identity). A user might
get a document (or any other semantic result) from Server A but might want to
annotate that
object on one or more agencies (KISes) that do support annotations (more
typically hitranet or
Extranet-based agencies that do have a domain of trust and verifiable
identity). In such a case,
the annotation email message would include the URI of the object to be
annotated (the email
message and its attachments) would contain the annotation itsel f . When the
server crawls its
System Inbox and picks up the email annotation, it scans the annotation's
encoded To or Subject
field and extracts the URI for the object to be annotated. If the URI refers
to a different server,
the server then invokes an XML Web Service call (if it has access) to that
server to get the
SRI~1~L metadata for the object. The server then adds the SRI~L metadata to
its Semantic
Ieiletadata Store (S1VIS) and adds the appropriate semantic links from the
email annotation to the
SRML object. This is very powerful because it implies that users of the agency
would then view
the annotation and also be able to semantically navigate to the annotated
object even though that
object came from a different server.
If the destination server (for the annotation) does not have access to the
server on which
the object to be annotated resides, the destination server informs the client
of this and the client
then has to get the SRML from the server (on which the object resides) acid
send the complete
SRML back to the destination server (for the annotation). This embodiment
essentially implies
that the client must first "de-reference" the IJRI and send the SRML to the
destination server,
rather than having the destination server attempt to "de-reference" the URI
itself. This approach

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
might also be superior for performance reasons as it spreads the CPU and I/O
load across its
clients (since they have to do the downloading and "de-referencing" of the URI
to SRML).
Semantic Alerts for Federated Annotations
I11 the same manner that semantic browser would poll each KIS in the currently
viewed
user profile for "Breaking News" relevant to each currently viewed object on a
regular basis
(e.g., every minute), the same will be performed for annotations. Essentially,
this resembles
polling whether each object that is currently displayed "was just annotated."
For annotations that
are not federated (i.e., annotations that have strong semantic links to the
objects they annotate),
this is a straightforward SQML call back to the KIS from whence the annotated
object came.
However, for federated annotations, the process is a bit more complicated
because it is possible
that a copy of object has been annotated on a different KIS even though the
KIS from whence the
object came doesn't support annotations or contain an annotation for the
'specific object.
In this case, for each object being displayed, the semantic browser would poll
each KIS
in the selected profile and pass the URI of the object to "ask" the KIS
whether that object has
been annotated on it. This way, semantic alerts will be generated even for
federated annotations.
36

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Annotation Hints
This refers to a feature where the KIS returns a context attribute indicating
that an object
has been annotated. This can be cached when the KIS detects an annotation
(typically from the
System Inbox) and is updating the semantic network. This context attribute
then becomes a
performance optimizer because for those objects with the attribute set, the
client wouldn't have
to query the KIS again to .check if the object has been annotated. This
amounts to caching the
state of the object to avoid an extra (and unnecessary) roundtrip call to the
KIS.
Attotlzer Pef~spective otz Ahttotations
An interesting way to tlunk of the Simple and Semantic Annotations feature of
the
W formation Nervous System is that now every object/itexn/result in a user's
knowledge universe
will have its own contextual inbox. That way, if a user views the obj ect, the
inbox that is
associated with the object's context is always available for viewing. In other
words,
Category l~Tamitt~ a>z.d Iden.tifzcatiott (U~s) f~f~ p'edet~ated l~ttowZedge
Coftamuftities
This refers to how categories will be named on federated knowledge
communities. For
instance, a Reuters knowledge community (agency) deployed at Intel will be
named
Reuters aOIntel with categories named like 'Reuters@Intel/Information
Technology/Verireless/80211'. In the preferred embodiment, every category will
be qualified
with at least the following properties:
~ Knowledge Domain ID - this is a globally unique identifier that uniquely
identifies the knowledge domain from whence the category came
~ Name - this is the name of the category
~ Path - this is the full taxonomy path of the category
The preferred embodiment, the categories knowledge domain id (and not the
name) is
preferably used in the category URI, because the category could be renamed as
the knowledge
domain evolves (but the identifier should remain the same). An example of a
category URI in
the preferred embodiment is:
nerv://c9554bce-aedf 4564-81f7-48432bf8e5a0?type=category&path= Information
Technology/Wireless/80211
37

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In this example, the knowledge domain id is c9554bce-aedf 4564-81f7-
48432bf8e5a0,
the URI type is "category" and the category path is "Information
Technology/Wireless/80211".
17. Anonymous Annotations and Publications
The semantic browser will also allow users to anonymously annotate and publish
to an
lmowledge community (agency). In this mode, the metadata is completely stored
(with the user
identity) but is flagged indicating that the publisher wishes to remain
anonymous. This way, the
Inference Engine can infer using the complete metadata but requests fox the
publisher will not
reveal his/her identity. Alternately, the administrator will also be able to
configure the
knowledge community (agency) such that the inference engine cannot infer using
anonymous
annotations or publications.
18. Offline Support in the Semantic Browser
The semantic browser will also have offline support. The browser will have a
cache for
every remote call. The cache will contain entries to XML data. This could be
ShML or could
be any other data that gets returned from a call to the XML Web Service. Each
call is given a
iulique signature by the semantic browser and this signature is used to hash
into the XML data.
For instance9 a serzlantic query is hashed by its S~I~Le ~ther rmnote calls
are hashed using a
combination of the method name, the argument names and types, aald the
argument data.
Fox every call to the XML Web Service, the semantic runtime client will
extract the
signature of the call and then map this to an entry in the local cache. If the
browser (or the
system) is currently offline, the client will return the XML data in the cache
(if it exists). If it
does not exist, the client will return an error to the caller (likely the
Presenter). If the browser is
online, the client will retrieve the XML data from the XML Web Service and
update the cache
by overwriting the previous contents of the file entry with a file path
indicated by the signature
hash. This assumes that the remote call actually goes through - it might not
even if the
system/browser is online, due to network traffic and other conditions. In such
a case, the cache
38

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
does not get overwritten (it only gets overwritten when there is new data; it
does not get cleared
first).
19. Guaranteed Gross-Platform Support in the Semantic Browser
Overview
As discussed in my parent application (Serial No. 10/179,651), the Information
Nervous
System can be implemented in a cross-platform manner. Standard protocols are
preferably
employed where possible and the Web service layer should use interoperable Web
service
standards and avoid proprietary implementations. Essentially, the test is that
the semantic
browser does not have to "know" whether the Knowledge community (or agency)
Web service it
is talking to is running on a particular platform over another. For example,
the semantic browser
need not know whether the Web service it is talking to is running on
Microsoft's .NETTM
platform or Sun's J2EE platform (to take 2 examples of proprietary application
servers), a Linux
or any other "open source" server. The IW owledge community Web service and
the client-
server protocol should employ Web service standards that are commonly
supported by different
Web service implementations like .NETTM and J2EETM.
In an ideal world, there will be a common set of standards that would be
endorsed and
properly implemented across Web service vendor implementations. however, this
might not be
the case in the real world, at least not yet. To handle a case where the
semantic browser must
handle unique fiznctionality in different Web service implementations, the
Knowledge
community schema is preferably extended to include a field that indicates the
Web service
platform implementation. For instance, a .NETTM implementation of the
Knowledge community
is preferably published with a field that indicates that the platform is
.NETTM. The same applies
to J2EETM. The semantic browser will then have access to this field when it
retrieves the
metadata for the Knowledge community (either directly via the WSDL URL to the
Knowledge
community, or by receiving announcements via multicast, the enterprise
directory (e.g., LDAP),
the Global Knowledge community Directory, etc.).
39

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The semantic browser can then issue platform-specific calls depending on the
platform
that the Knowledge community is running on. This is not a recommended approach
but if it is
absolutely necessary to make platform-specific calls, this model is preferably
employed in the
preferred embodiment.
20. Knowledge Modeling
Knowledge Modeling refers to the recommended way enterprises will deploy an
Inf~rmation Nervous System. This involves deploying several KIS servers (per
high-level
knowledge domain) and one (or at most few) KDS (formerly KBS) servers that
host the relevant
ontology and taxonomy. KIS servers are preferably deployed per domain to
strike a balance
between being too narrow such that there is not enough knowledge sharing
possibility of
navigation and inference in the network and being too high that scalability
(in storage and CPU
horsepower needed by the database and/or the inference engine) becomes a
problem. ~f course,
the specific point of balance will shift over time as the hardware and
software technologies
evolve, and the preferred embodiment does not depend on the particular balance
struck. In
addition, KIS servers are preferably deployed where access control becomes
necessary at the
server level (for higher-level security) as opposed to imposing access control
at the group level
with multiple groups sharing the same KIS. For instance, a large
pharmaceutical company could
have a knowledge community KIS for oncology for the entire company and another
KIS for
researchers working on cutting-edge R&D and applying for strategic patents.
These two KIS'
might crawl the same sources of information but the latter KIS would be more
secure because it
would provide access only to users from the R&D group. Also, optionally, these
researchers'
publications and annotations will not be viewable on the corporate KIS.
Figure 7 illustrates an example of a possible knowledge architecture for a
pharmaceuticals company. As shown in Figure 7, the KDS can serve several
subsidiary KIS', as
follows:
Client
Knowledge Integration Server 1 (Oncology)

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Knowledge Integration Server 2 (Pharmacology)
Knowledge Integration Server 3 (Biotechnology)
Knowledge Integration Server 4 (Cardiology)
Knowledge Domain Server (Pharmaceuticals)
21. KIS Housekeeping Rules
The Knowledge Integration Server (KIS) will allow the admin to set up
'housekeeping'
rules. to purge old or stale metadata. This will prevent the SMS on the KIS
from growing
infinitely large. These rules could be as simple as purging any metadata older
than a certain age
(between 2-5 years depending on the company's policies for keeping old data)
and which does
not have any annotations and that is not marked as a favorite (or rated).
22. Client Component Integration & Interaction Workflow
The client components of the system can be integrated in several different
steps or
sequences, as, can the workflow interaction or usage patterns. In the
presently preferred
embodiment, the workflow and component integration would be as follows:
1) Shell: User implicitly creates a SQML query (i.e. an agent) via UI
navigation or a
wizard.
2) Shell: User opens an agent (via tree or folder view).
3) The query buffer is saved as a file, and a registry entry created is
created for the
agent.
a) IZegistr ~ entry contain : Agent l~Tarrie~ Creation date, Agent (I~equest)_
GUS, SQML path, Comments, ~Tamespace object type (agency, agent,
blender, etc), and attributes
4) Shell: The request is handed off to the presenter:
a) A registry request GUID entry is created containing (namespace path that
generated the request, and SQML file URL).
b) Browser is initialized and opened with command line
http:/lPresenterPage.html#RequestGUlD http://presenterpage.html/. The
Presenter loads default Chrome contained in the page.
c) Presenter page loads presenter binary behavior and Semantic Runtime
OCX.
5) Presenter: Loads SQML and issues requests via the query manager.
a) Resolves request GUID to get SQML ale path.
b) Loads SQML file into buffer, creates resource handler requests, passes
them to resource handlers, waits for and gathers results. Summarization of
local resources happens here. All summarization follows one of two paths:
Summarize the doc indicated by this file path, or summarize this text
(extracted from clipboard, Outlook, Exchange, etc.). Both paths produce a
41

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
summary in the same form, suitable for inclusion in a request to the
semantic server XML Web service.
c) Compiles SQML file into individual server request buffers, including any
resource summary from above.
d) Initiates Server Requests by calling semantic runtime client Query
Manager.
6) Query Manager: Monitors server requests and makes callback on data. It also
signals an event on request completion or timeout. The callback is into the
Presenter, which
mean inter-process messaging to pass the XML.
7) Presenter: receives data and loads appropriate skin:
a) Receives SRML data in buffer; this will happen incrementally.
b) Determines if there is a preferred skin (smart style) associated with this
agent, otherwise chooses default skin.
c) Transforms SRML into preferred skin format via XSLT. This is
multistage, for the tree of results (root is list, then objects, then
Deep/Lens/BN info) as results come in.
d) Display results in target DIV in page. The target is an argument to the
behavior itself and is defined by the root page.
8) Presenter: Calls Semantic Runtime to fill context panels (per context
template),
deep info, smart copy and paste, and other semantic commands. The Presenter
also loads the
smart style, which then loads semantic images, motion, etc. consistent with
the semantics of the
request.
Figure 8 illustrates the presently pr eferred client component integration and
interaction
workflow described above.
23. Categories Dialog Box User Interface Speeifieation
a. ~ver~rie~
The Categories Dialog Box allows the user to select one or more categories
from a
category folder (or taxonomy) belonging to a knowledge domain. While more or
fewer can be
deployed in certain situations, in the preferred embodiment, the dialog box
has all of the
following user interface controls:
1. Profile - this allows the user to select a profile with which to filter the
category
folders (or taxonomies) based on configured areas of interest. For instance,
if a profile has areas
of interest set to "Health and Medicine," selecting that profile will display
only those category
folders that belong to the "Health and Medicine" area of interest (for
instance, Pharmaceuticals,
Healthcare, and Genes). This control allows the user to focus on the
taxonomies that are relevant
to his/her knowledge domain, without having to see taxonomies from other
domains.
42

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
2. Area of Interest - this allows the user to select a specific area of
interest. By
default, this combo box is set to "My Areas of Interest" and the profile combo
box is set to "All
Profiles." This way, the dialog box will display category folders for all
areas of interest for all
profiles. However, by using the "Area of Interest" combo box, the user can
directly specify an
area of interest with which to filter the category folders, regardless of the
areas of interest in
hislher profile(s).
3. Publisher Domain Zone/Name - this allows the user to select the domain zone
and name of the taxonomy publisher. This is advantageous to distinguish
publishers that might
have name collisions. In the preferred embodiment, the Publisher Domain Name
uses the DNS
naming scheme (for instance, IEEE.org, Reuters.com). The domain zone allows
the user to
select the scope of the domain name. In the preferred embodiment, the options
are W ternet,
Intranet, and Extranet. The zone selection further distinguishes the published
category folder (or
taxonomy). A fairly common case would be where a department in a large
enterprise has its own
internal taxonomy. In this case, the department will be assigned the Intranet
domain zone and
will have its own domain name - for instance, Intranet\Marketing or
Intranet\Sales.
4. Category Folder - this allows the user to select a category folder or
taxonomy.
When this selection is made, the categories for the selected category folder
are displayed in the
categories tree view.
5. Search categories - this allows the user to enter one or more keywords with
which
to filter the currently displayed categories. For instance, a Pharmaceuticals
researcher could
select the Pharmaceuticals taxonomy but then enter the keyword "anatomy" to
display only the
entries in the taxonomy that contain the keyword "anatomy."
6. "Remember" checlc box - this allows the user to specify whether the dialog
box
should "remember" the last search when it exits. This is very helpful in cases
where the user
might want to perform many similar category-based searcheslrequests from the
same category
folder and with the same keyword filter(s).
43

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
7. Search Options - these controls allow the user to specify how the dialog
box
should interpret the keywords. The options allow the user to select whether
the keywords should
apply to the entire hierarchy of each entry in the taxonomy tree, or whether
the keywords should
apply to only the [end] names of the entries. For instance, the taxonomy entry
"Anatomy\Cells\Chromaffin Cells" will be included in a hierarchy filter
because the hierarchy
includes the word "Anatomy." However, it will be excluded from a names filter
because the
end-name ("Chromaffm Cells") does not include the word "Anatomy."
Also, the search options allow the user to select whether the dialog box
should check for
all keywords, for any keyword, or for the exact phrase.
8. Categories Tree View - the tree view displays the taxonomy hierarchy and
allows
the user to select one or more items to add to the Create Request Wizard or to
open as a new
Dossier (Guide) request/agent. The user interface breaks the category
hierarchy into "category
pages" - for performance reasons. The ITI allows the user to navigate the
pages via buttons and
a slide control. There is also a "Deselect All" button that deselects all the
currently selected
taxonomy items.
9. Explore Sutton - this is the main invocation button of the dialog box. When
the
dialog box is launched from the Create Request Wizard, this button is renamed
to "bAdd" and
adds the selected items to the wizard "filters" property page. When the dialog
box is launched
directly from the application, the button is titled "Explore" and when
cliclced launches a Dossier
request on the selected categories. If the user has multiple profiles or if
multiple taxonomy
categories are selected, the dialog box launches another dialog box, the
"Explore Categories
Options" dialog box that prompts the user to select the profile with which to
launch the Dossier
and/or the operator to use in applying the categories as filters to the
Dossier (AND or OR).
The features described above are illustrated in Figures 9 - 11, which show
three different
views of the Explore Categories dialog box.
44

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
24. Client-Assisted Server Data Consistency Checking
As the server (KIS) crawls knowledge sources, there will be times when the
server's
metadata cache is out of sync with the sources themselves. For instance, a web
crawler on the
KIS that periodically crawls the Web might add entries into the semantic
metadata store (SMS)
that become out of date. In this case, the client would get a 404 error when
it tries to invoke the
source URI. For data source adapters (DSAs) that have monitoring capabilities
(for instance, for
f le-shares that can be monitored for changes), this wouldn't be much of an
issue because the
KIS is likely to be in sync with the knowledge source(s). However, for sources
such as Web
sites that don't have monitoringlchange-notification services, this may
present an issue of
concern.
My parent application (Serial No. 10/179,651) described how the KIS can use a
consistency checker (CC) to periodically purge stale entries from the SMS.
However, in some
situations dais approach might impair performance because the CC would have to
periodically
scan the entire SMS and confimn whether the indexed objects still exist. An
alternative
embodiment of this feature of the invention is to have the client (the
semantic browser) notify the
server if it gets a 404 error. To do this, the semantic browser would have to
track when it gets a
404 error for each result that the user 'fiopen~e" For ~l~leb do~a.~znent~~
the client can poll f~r the
HTTP headers when it displays the results, even before the user opens the
results. In this case, if
the source web server reports a 404 error (object not found), the client
should report this to the
KIS.
When the KIS gets a "404 report" from the client, it then intelligently
decides whether
this means the object is no longer available. The KIS cannot arbitrarily
delete the object because
it is possible that the 404 error was due to an intermittent Web server
failure (for instance, the
directory on the Web server could have been temporarily disabled). The KIS
should itself then
attempt to asynchronously download the object (or at the very least, the HTTP
headers in the
case of a Web object) several times (e.g., 5 times). If each attempt fails,
the KIS can then
conclude that the object is no longer available and remove it from the SMS. If
another client

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
reports the 404 error for the same object while the KIS is processing the
download, the KIS
should ignore that report (since it is redundant).
This alternate technique could be roughly characterized as lazy consistency
checking. In
some situations, it may be advantageous and preferred.
25. Client-Side Duplicate Detection
The server (KIS) performs duplicate detection by checking the source URIs
before
adding new objects into the semantic metadata store (SMS). However, fox
performance reasons,
it is sometimes advantageous if the server does not perform strict duplicate-
detection. In such
cases, duplicate detection is best performed at the client. Furthermore,
because the client
federates results from several KISes, it is possible for the client to get
duplicates from different
KISes. As such, it is advantageous if the client also performs duplicate
detection.
In the preferred embodiment, the client removes objects that are definitely
duplicates and
flags objects that are likely duplicates. Definite duplicates are objects that
have the same URI,
last modified time stamp, summaryfconcepts, and size. Likely duplicates are
objects that have
the same summarylconcepts, but have different URIs, last modifi ed times, or
sizes. For obj acts
for which summary extraction is difficult, it is recommended that the title
also be used to check
for lil~ely duplicates (i.e., objects that have the same summary but different
titles are not
considered likely duplicates because the summary might not be a reliable
indicator of the
contents of the object). Also, if summarylconcept extraction is difficult (in
order to detect
semantic overlap/redundancy), the semantic browser can limit the file-size
check to plus or
minus N % (e.g., 5%) - for instance, an object with the same summary/concepts
and different
URIs, last-modified times, and sizes might be disqualified as a likely
duplicate if the file-size is
within 5% of the file-size of the object it is being compared to for
redundancy checking.
26. Client-Side Virtual Results Cursor
The client (semantic browser) also provides the user with a seamless user
experience
when there are multiple knowledge communities (agencies) subscribed to a user
profile. The
46

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
semantic browser preferably presents the results as though they came from one
source. Similarly,
the browser preferably presents the user with one navigation cursor - as the
user scrolls, the
semantic browser re-queries the KISes to get more results. In the preferred
embodiment, the
semantic browser keeps a results cache big enough to prevent frequent re-
querying - for
instance, the cache can be initialized to handle enough results for between 5-
10 scrolls (pages).
The cache size are preferably capped based on memory considerations. As the
cursor is
advanced (or retreated), the browser checks if the current page generates a
cache hit or miss. If it
generates a cache hit, the browser presents the results from the cache, else
if re-queries the KISes
for additional results which it then adds to the cache.
The cache can be implemented to grow indefinitely or to be a sliding window.
The
former option has the advantage of simplicity of implementation with the
disadvantage of
potentially high memory consumption. The latter option, which is the preferred
embodiment,
has the advantage of lower memory consumption and higher cache consistency but
with the cost
of a more complex implementation. With the sliding window, the semantic
browser will purge
results from pages that do not fall within the window (e.g., the last N -
e.g., 5-10 - pages as
opposed to all pages as with the other embodiment).
2~. ~g~-~t~aal ~inglc ~gga~-~n
The client (semantic browser) also provides the user with a seamless user
experience
when authenticating the user to his/her subscribed knowledge communities
(agencies). It does
this via what the inventor calls "virtual single sign-on." This model involves
the semantic
browser authenticating the user to knowledge communities without the user
having to enter
his/her username and password per knowledge cormnunity. Typically, the user
will have a few
usernames and passwords but might have many knowledge communities of which
he/she is a
member (especially within a company based on departmental or group access, and
on Internet-
based knowledge communities). As such, the ratio of the number of knowledge
communities to
the number of authentication credentials (per user) is likely to be very high.
47

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
With virtual single sign-on, the user specifies his/her logon credentials to
the semantic
browser in a server (knowledge community)-independent fashion. The semantic
browser stores
the credentials in a Credential Cache Table (CCT). The CCT has columns as
illustrated below:
Account Name User Name Password Knowledge Community Entry List
~ Account Name - this is a friendly name for the account
~ User Name - this is the logon user name (e.g., an ernail address)
~ Password - this is the password, stored encrypted with a secure private key
~ Knowledge Community Entry List (KCEL) - this is a list of knowledge
communities that authenticate the user using the credentials for this account
When the user first attempts to subscribe to a knowledge community (or access
the
knowledge community in some other way - for instance, to get the properties of
the community),
the semantic browser prompts the user for his/her password and then tries to
logon to the server
using the supplied credentials. If a logon is successful, the semantic browser
creates a new CCT
entry (CCTE) with the supplied credentials and adds the KC to the Knowledge
Community Entry
List (KCEL) for the new CCT entry.
For each subsequent subscription attempt, the semantic browser checks the CCT
to see if
the KC the user is about to subscribe to is in the KCEL for any CCTE. If it
is, the semantic
browser retrieves the credentials for the CCTE and logs the user on with those
credentials. This
way, the user does not have to red~.andantly enter his/her logon credentials.
Note that the semantic browser also supports pass-through authentication when
the
operating system is already logged on to a domain. For instance, if a Windows
machine is
already logged on to an NT (or Active Directory) domain, the client-side Web
service proxy also
includes the default credentials to attempt to logon to a KC. In the preferred
embodiment, the
additional credentials supplied by the user are preferably passed via SOAP
security headers (via
Web Services Security (WS-Security) or a similar scheme). For details of WS-
Security and
passing authentication-information in SOAP headers, see http://www.oasis-
open.org/committees/download.php/3281/WSS-SOAPMessageSecurity-17-082703-
merged.pdf
48

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The semantic browser exposes a property to allow the user to indicate whether
the
credentials for a CCTE are preferably purged when the KCEL for the CCTE is
empty or whether
the credentials should be saved. In the preferred embodiment, the credentials
are preferably
saved by default unless the user indicates otherwise. If the user wants the
credentials purged, the
semantic browser should remove a KC from a CCTE in which it exists when that
KC is no
longer subscribed to any profile in the browser. If after removing the KC from
the CCTE's
KCEL, the CCTE becomes empty, the CCTE is preferably deleted from the CCT.
The virtual single sign-on feature, like many of the features in this
application, could be
used in applications other than with my Information Nervous System or the
Virtual Librarian.
For example, it could be adapted for use by any computer user who must log
into more than one
domain.
28. Namespace Object Action Matrix
The table below shows the actions that the semantic browser invokes when
namespace
objects are copied and pasted onto other namespace objects.
Destination Portfolio' Knowledge
~
(EntityObject Default DossierCommunityApplication
z -
Source EntityCollection)(Result)ProfileProfileRequest(Guide)(Agency)(Root
b - Tcon)
Entity ObjectCopy ObjectCopy Copy Query DossierDossierN/A
(Open
Lens Lens Query Query as bookmark
(Dossier) (Dossier) (from in default
KC)
profile
in
alternative
embodiment)
PortfolioObjectCopy ObjectCopy Copy Query DossierDossierN/A
(Open
(EntityLens (contents)Lens Query Query as bookmark
Collection)(Dossier) (Dossier) (from in
default
KC)
profile
in
alternative
embodiment)
Object ObjectObject ObjectCopy Copy Query DossierDossier(Open
as
(Result)Lens Lens Lens (Bookmark)(Bookmark) Query Query bookmark
in
(Dossier)(Dossier)(Dossier) (from default
KC)
rofile
ProfileN/A N/A N/A N/A N/A NlA NlA NlA NlA
DefaultN/A N/A NlA N/A N/A N/A N/A N/A N/A
Profile
RequestSmart Smart Smart Copy Copy Agent DossierDossierCopy
Lens (to
Lens Lens Lens Agent Agent default
Lens
Lens (from profile)
KC)
DossierDossierDossierDossierCopy Copy DossierDossierDossierCopy
(to
(Guide)Smart Smart Smart Agent Agent Agent default
Lens Lens
Lens Lens Lens Lens (from profile)
KC)
KnowledgeDossierDossierDossierCopy Copy DossierDossierDossierCopy
CommunitySmart Smart Smart (subscribe)(subscribe)A ent Agent A ent
(subscribe)
Lens Lens
49

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Destination Portfolio Knowledge
-> (EntityObject Default Dossier;CommunityApplication
, a .
Source Entity, (Result)Profile= Profile,Request> -(Guide)(Agency)' (Root
i Colleotion) . lcon),v
(Agency)Lens (from Lens Lens Lens (from to default
KC)
(from ~ ~ (from ~ (from~ (from~ source~ profile
KC) KC) KC)
~
KC) KC)
29. Dynamic End-to-End Ontology/Taxonomy Updating and Synchronization
The Information Nervous SystemTM will support dynamic updates of ontologies
and
taxonomies. Knowledge domain plug-ins that are published by Nervana (or that
are provided to
Nervana by third-party ontology publishers) will be hosted on a central Web
service (an ontology
depot) on the Nervana Web domain (Nervana.com). Each KDS will then
periodically poll the
central Web service via a Web service call (for each of its knowledge domain
plug-ins,
referenced by the URI or a globally unique identifier of the plug-in) and will
"ask" the Web
service if the plug-in has been updated. The Web service will use the last-
modified timestamp of
the ontology file to determine whether the plug-in has been updated. If the
plug-in has been
updated, the Web service will return the new ontology file to the calling KDS.
The KDS then
replaces its ontology file.
If the KDS is running during the update, it will ordinarily temporarily stop
the service
before replacing the file, unless it supports file-change notifications and
reloads the ontology
(which is the recommended implementation).
Each KIS also has to poll each I~I~S it is connected to in order to "ask" the
KISS if its
ontology has changed. In the preferred embodiment, the KIS should poll the KDS
and not the
central Web service in case the KDS has a different version of the ontology.
The KDS also uses
the last modified time stamp of the knowledge domain plug-in (the ontology) to
determine if the
ontology has changed. It then indicates this to the KIS. If the ontology has
changed, the KIS
needs to update the semantic network accordingly. In the preferred embodiment,
it does this by
removing semantic links that refer to categories that axe not in the new
version of the ontology
and addinglmodifying semantic links based on the new version of the ontology.
In an alternative
embodiment, it purges the semantic network and re-indexes it.
so

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The client then polls each KIS it is subscribed to in order to determine if
the taxonomies
it is subscribed to (directly via the central Web service or via the KISes)
have changed. The KIS
exposes a method via the XML Web service via which the client determines if
the taxonomy has
changed (via the last modified time stamp of the taxonomy/ontology plug-in
file). If the
taxonomy has changed, the client needs to update the Categories Dialog user
interface (and other
UI-based taxonomy dependents) to show the new taxonomy.
For taxonomies that are centrally published (e.g., via Nervana), the client
should poll the
central Web service to update the taxonomies.
With this model, the client, ISIS, KDS, and central taxonomy/ontology depot
will be kept
synchronized.
30. Invoking Dossier (Guide) Queries
Dossier Seynantic Query Pf~ocessing
Dossier (guide) queries are preferably invoked by the client-side semantic
query
processor by parsing the SQML of the requestlagent and replacing the Dossier
context predicate
with each special agent (context template) context predicate - e.g., All Bets,
Best Bets, Breaking
News, I~eadlines9 Random Bets, Newsmakers9 etc. Each query (per context
template) is then
invoked via the query processor - just like an individual query. This way, the
user operates at
the level of the Dossier but the semantic browser maps the dossier to
individual queries behind
the scenes.
For example, the SQML for "Dossier on Category C" is parsed and new SQML
queries
are generated as follows:
~ All Bets on Category C
~ Best Bets on Category C
~ Breaking News on Category C
~ Headlines on Category C
~ Random Bets on Category C
~ Newsmakers on Category C
~ Etc.
51

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The client-side semantic query processor retains every other predicate except
the context
predicate. This way, the filters remain consistent as illustrated by the
example above.
Dossier Smart Lens
Like other requests/agents in the Information Nervous SystemTM, dossiers
(guides) can be
used as a Smart Lens (just like how they can be targets for drag and drop,
smart copy and paste,
etc.). In this case, the smart lens displays a "Dossier Preview Window" with
sections/tabs/frames for each context template (special agent). Sample
screenshots of the
Dossier showing the UI of the Dossier Smart Lens are included in Figures 12
and 13.
Dossier Screenshots
31. Knowledge Community (Agency) Semantics
The following describe the semantics of a knowledge community (agency) within
the
context of the semantic namespace/environment in the semantic browses:
1. Selecting a knowledge community - this opens a dossier request from that
KC.
Essentially, the Dossier becomes the equivalent of the KC's "home page."
2. Drag and drop (document, text, entity, keywords, etc.) to a KC - this opens
a
Dossier request/agent on the object (using the default predicate) from the KC
3. Copy KC to the clipboard - this selects KC as the Smart Lens. When the user
hovers over a result or entity, the semantic browses displays the Smart Lens
by showing the KC
name and the KC's profile name under the cursor and then opens a Dossier from
the KC on the
obj ect underneath the lens in the lens preview pane
4. Subscribing to a KC - when a KC is subscribed for the first time, the
semantic
browses adds the KC's email address to the local email contacts (e.g., in
Microsoft Outlook or
Outlook Express). This makes it easy for the user to publish knowledge to the
KC by sending it
email (via the integrated contacts list). Similarly, when the KC is
unsubscribed from all profiles,
the semantic browses prompts the user whether it should remove the KC from the
local email
contacts list.
52

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
32. Dynamic Ontology and Taxonomy Mapping
One of the challenges of using taxonomies and ontologies is how to map the
semantics of
one taxonomy/ontology onto another. The Information Nervous SystemTM
accomplishes this by
the following algorithm:
Each KDS will be responsible for ontology mapping (via an Ontology Mapper
(OM)) and
will periodically update the central Web service (the ontology depot) with an
Ontology Mapping
Table (OMT). The updates axe bi-directional: the KDS will periodically update
its ontologies
and taxonomies from the central Web service and send updates of the OMT to the
central Web
service. Each OMT will be different but the central ontology depot will
consolidate all OMTs
into a Master OMT. The ontology mapper will create a consistent user
experience because the
user wouldn't have to select all items in the umbrella taxonomy that are
relevant but overlapping.
The semantic browser will automatically handle this. The ISIS wouldn't have
any concept of the
mapper but will get mapped results from the I~I~S which it will then use to
update the semantic
network.
The KDS and ISIS administrators would still be responsible for selecting the
right KDS
ontology plug-ins, however - based on the quality of each ontology/taxonomy
(the ontology
mapping doesn't improve ontologies~ it merely maps them).
33, semantic Alerts Optimizations
Semantic Alerts in the semantic browser can be optimized by employing the
following
rule (in order):
For a given filter (e.g., result, document, text, keywords, entity):
' 1. Check for Headlines first.
2. If there are Headlines, check for Breaking News and Newsmakers.
This is because in the preferred embodiment, Headlines are implemented similar
to
Breaking News except with a larger time window. As a consequence, if there are
no Headlines
(in the preferred embodiment), there is no Breaking News. Also, in the
preferred embodiment,
53

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Newsmakers are implemented by returning the authors of Headlines. As such, if
there are no
Headlines, there are no Newsmakers.
34. Semantic "News" Images
Both Corbis (http://www.corbis.com) and Getty Images
(http://www.gettyimages.com)
have "News" images that are constantly kept fresh. The Information Nervous
SystemTM can use
these kinds of images for semantic images that are not only context-sensitive
but also "fresh."
This can be advantageous in terms of keeping the user interface interesting
and "new." For
instance, "Breaking News on SARS" can show not only pharmaceutical images but
images
showing doctors responding to recent SARS outbreaks, etc.
35. Dynamically Choosing Semantic Images
Semantic images can be dynamically and intelligently selected using the
following rules:
1. If the currently displayed namespace object is a request, parse the SQMI,
of the
object for categories. If there are categories, send the categories to the
central Web service (that
hosts the semantic image cache) to get images that are relevant to the
categories. Also, send the
request type (e.g., knowledge types like All Bets and Headlines, or
information types like
Presentations) to the central Web service to return irrlages consistent vrith
the request type:
2. If the namespace object is not a request, send the areas of interest for
the current
profile (if available) to the central Web service. The Web service then
returns semantic images
consistent with the profile's areas of interest. If the profile does not have
configured areas of
interest, send the areas of interest for the application (the semantic
browser). If the application
does not have configured areas of interest, send an empty string to the
central Web service - in
this case, the central Web service returns generic images (e.g., branded
images).
36. Dynamic Knowledge Community (Agency) Contacts Membership
Knowledge communities (agencies) have members (users that have read, write, or
read-
write access to the community) and contacts. Contacts are users that are
relevant to the
community but are not necessarily members. For example, a departmental
knowledge
54

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
community (KC) in a large enterprise would likely have the members of the
department as
members of the KC but would likely have all the employees of the enterprise as
contacts.
Contacts are advantageous because they allow members of the KC to navigate
users that are
semantically relevant to the KC but might not be members. The KC might
semantically index
sent by contacts - the index in this case would include the contacts even
though the contacts are
not members of the KC.
Another way to think of this is that communities of knowledge in the real
world tend to
have core members and peripheral members. Core members are users that are very
active in the
community while peripheral members include "other" users such as knowledge
hobbyists,
occasional contributors, potential recruits, and even members of other
relevant communities.
With dynamic KC contacts membership in the Information Nervous SystemTM, the
KIS
will add users to its Contacts table in the semantic metadata store (SMS) and
to the semantic
network "when and as it sees them" (in other words, as it indexes email
messages that have new
users that are not members). This allows the community to dynamically expand
its contacts, but
in a way that distinguishes between Members and mere Contacts, and
"understands" the
importance of the distinction semantically when operating the system (e.g.,
executing searches
and the like).
37. Integrated Full-Text Keyword and Phrase Indexing
The KIS also indexes concepts (key phrases) and keywords as first-class
members of the
semantic network. This can be done in a domain-independent fashion as follows:
For each new object (e.g., documents) to be added to the semantic network:
1. Extract concepts (key phrases) from the body of the object.
2. For each concept, add the concept to the semantic network with the object
type id
OBJECTTYPEID_CONCEPT. Add a semantic link with the predicate
PREDICATETYPEID_CONTAINSCONCEPT to the "Semantic Links" table with the new
obj ect as subj ect and the new concept obj ect as the subj ect.
3. For the current concept, extract the keywords from the concept key phrase
and
add each keyword to the semantic network with the object type id
OBJECTTYPEID KEYWORD. Also, add a semantic link with the predicate

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
PREDICATETYPEID_CONTAINSKEYWORD to the "Semantic Links" table with the new
obj ect as subj ect and the new keyword obj ect as the subj ect.
Repeat the steps above for the title of the object and other meta-tags as
appropriate for the
schema of the obj ect.
While some embodiments do not require integrated full-text indexing, it is
included in the
presently preferred embodiment because it provides several useful advantages:
1. It allows a consistent model for implementing semantic filters (in SQML).
The
user can add categories, documents, entities, and keywords as filters and the
filters are applied
consistently to the semantic network (as sub-queries).
2. In particular, it supports the semantic query processing of entities.
Entities can be
defined with categories and can be further narrowed with keywords (to
disambiguate the
keywords in the case where the keywords could mean different things in
different contexts).
W tegrated full-text indexing allows the ISIS semantic query processor (SQP)
to interpret entities
seamlessly - by applying the necessary sub-queries with categories and
keywords/concepts to the
semantic network.
3. In general, integrated full-text indexing results in a seamless and
consistent data
and query model.
~f~. ~earaaantic '~IV~arlg ~bje~t a~ ll~cad99
In some cases, the ISIS might not have the resources to store semantic links
between
People and objects on a per-object basis. In addition, semantic-based
redundancy is not the same
as per-object redundancy - as in email. To take an example, email clients
allow users to select
an email message as read or unread - this is typically implemented as a flag
stored on the mail
server with the email message. However, because email is not a semantic
system, a semantically
similar or identical message on the server would not be flagged as such - the
user has to flag
each message separately regardless of semantic redundancy.
In the lilformation Nervous SystemTM, the user is able to flag an object as
read not unlike
in email. However, in this case, the semantic browser extracts the concepts
from the object and
56

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
informs all the KISes in the request profile that the "concepts" have been
read. The KIS then
dynamically maps the concepts to categories via the KDSes it is configured
with and adds a flag
to the objects belonging to those categories (in the preferred embodiment)
and/or adds a flag to
the semantic network with a semantic link with the predicate
PREDICATETYPEID ~VIEWEDCATEGORY between the categories corresponding to the
concepts and all the objects that are linked to the categories. In the
preferred embodiment, the
KIS should only flag those categories over a link-strength threshold (for the
source concepts).
This ensures that only those objects (in the preferred embodiment) and/or
categories that are
semantically close to the original object will be flagged.
When the semantic browses flags the object via the KISes, the I~ISes should
retunl a flag
indicating whether the network was updated (it is possible that no changes
would be made in the
event that the object does not have any "strong" categories or if there are no
other objects that
share the same "strong" categories). If at least one ISIS in the request
profile indicates that the
network was updated, the semantic browses should refresh the request/agent.
The semantic
browses can expose a property to allow the user to indicate whether he/she
wants the I~ISes to
return only unread objects or all objects (read or unread), in which case the
browses should
display unread objects differently (like how email clients display unread
messages in a bold
font). The presentation layer in the semantic browses should then display the
read and unread
obj ects with an appropriate font and/or color to provide a clear visual
distinction.
39. Mufti-Select Object Lens
Mufti-select object lens is an alternative implementation of the object lens
that was
described in my parent application. In that embodiment, the object lens was
invoked via smart
copy and paste - pasting an object over another object would invoke the object
lens with the
appropriate default predicate. This has the benefit of allowing the user to
copy objects across
instances of the semantic browses, across profiles, and from other
environments (like the file-
system, word processors, email clients, etc.).
57

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In the currently preferred embodiment, the object lens is a Dossier Lens (the
context
predicate is a Dossier, the filters are the source and target objects, and the
profile is the profile in
which the source object was displayed).
Mufti-selection can also be used instead of copy and paste to invoke an object
lens. The
semantic browser will allow the user to select multiple objects (results). The
user can then hit a
button (or alternative user-interface object) to invoke the object lens on the
selected objects. In
this case, a Dossier Lens will be displayed (in a preview pane) with a Dossier
context predicate,
with the filters.as the selected objects, and the current profile as the
request profile.
40. Ontology-Based Filtering and Spam Management
The KIS (in the preferred embodiment) would only add objects to the Semantic
Metadata
Store (SMS) if those objects belong to at least one category from at least one
of the knowledge
domains the KIS is configured with (via one or more KDSes). This essentially
means the KIS
will not index objects it "does not understand." The exception to this is that
the KIS will index
all objects from its System Inbox - because this contains at-times personal
community-specific
publications and annotations that might be relevant but not always
semantically relevant.
t~ side-effect of this ontology-based filtering model is span managmnent -
ontology-
based indexing would be effective in preventing seam from being indexed and
stored. If users
use the semantic browser to access email, as opposed to their inboxes, only
email that has been
semantically filtered will get through.
41. Results Refinement
The results of a request/agent can be further refined via additional filters
and predicates.
For example, the requestlagent Headlines on Bioinformatics could be further
refined with
keywords specific to certain areas of Bioinformatics. This way, the end-user
can further narrow
the result set using the request/agent as a base. In addition, for time-
sensitive requests, the user
can specify a time-window to override the default time-window. For example,
the default
Breaking News time-request could be set to 3 hours. The user should be able to
override this for
5s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
a specific request/agent (in addition to changing the defaults on a per-
profile or application-wide
basis) with an appropriate UI mechanism (e.g., a slider control that ranges
from 1 hour to 24
hours). The same applies to Headlines and Newsmakers (e.g., a slider control
that ranges from 1
day to 1 week).
When the user specifies a filter-oven-ide, the semantic browser invokes the
XML Web
Service call for each of the KISes in the request profile and passes the
override arguments as part
of the call. If override arguments are present, the Web service uses those
values instead of the
default filter values. The same applies to additional filters (e.g., keywords)
- these will be
passed as additional arguments to the Web service and the Web service will
apply additional
sub-queries appropriately to further filter the query that is specified in the
agent/request SQML
(in other words, the SQML is passed as always, but in addition, the filter
overrides and additional
filters are also passed).
A good case for filter-overrides will be for Best Bets. The default semantic
relevance
strength for Best Bets could be set to 90% (in the preferred embodiment).
However, for a given
request/agent, the user might want to see "bets" across a semantic relevance
range. Exposing a
relevance UI control (e.g., a slider control that ranges from 0% to 100%) will
allow this. This
essentially allows the user to change the Best Bets on the fly from "All Bets"
(0%) all the v~ay to
"Perfect Bets" (100%).
A hybrid model should also be employed for embodiments of context template
(special
agent) implementations that involve multiple axes of filtering. For instance,
Breaking News
could also impose a relevance filter of 25% and Headlines and Newsmakers could
impose a
relevance filter of 50% (Breaking News has a lower relevance threshold because
it has a higher
time-sensitivity threshold; as such, the relevance threshold can be relaxed).
In this case, the
semantic browser should expose UI controls to allow the user to refine the
special agents across
both axes (a slider control for time-sensitivity and another slider control
for relevance).
With dossiers, the semantic browser can display UI controls for each special
agent
displayed in the Dossier - the main Dossier pane can show all the UI controls
(changing any UI
59

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
control would then refresh the Dossier sub-request for that special agent).
Also, if the Dossier
has tabs for each special agent, each tab can have a UI control specific to
the special agent for the
tab.
42. Semantic Management of Information Stores
The Information Nervous SystemTM can also be used to manage information stores
such
as personal email inboxes, personal contact lists, personal event calendars, a
desktop file-system
(e.g., the Microsoft Windows Explorer file-management system for local and
network-based
files), and also other stores like file-shares, content management systems,
and web sites.
For client-based stores (such as email inboxes and file-systems), the client
runtime of the
semantic browser should periodically poll the store via a programmatic
interface to check for
items that have become redundant, stale, or meaningless. This would address
the problem today
where email inboxes keep growing and growing with stale messages that might
have "lost their
meaning and relevance." however, due to the sheer volume of information users
are having to
cope with, many computer users are losing the ability to manage their email
inboxes themselves,
resulting in a junk-heap of old and perhaps irrelevant messages that take up
storage space and
make it more difficult to find relevant messages and items.
The client runtime should enumerate the items in the user's information
stores, extract the
concepts from the items (e.g., from the body of email messages and from local
documents) and
send the concepts to the KISes in the user's profiles. In an alternative
embodiment, only the
default profile should be used. The client then essentially "asks" the user's
subscribed I~ISes
whether the items mean anything to them. In the preferred embodiment, the
client should
employ the following heuristics:
1. First, check for redundancy - by flagging (or deleting) duplicate email
items,
duplicate documents that share concepts and summaries (but perhaps with
different titles or file-
sizes). The client should either delete the duplicate items (user-
configurable) or flag the items by
moving them into a special folder (user-configurable) in the email client or
desktop.
2. Next, for non-duplicate items, the client should check for meaninglessness
or
irrelevance. First, the client should only check items that are "older" than N
days (e.g., 30 days)
by examining the last-modified time of the email item, document, or other
object. For items that

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
qualify, extract the concepts and call the XML Web Service for each I~.IS in
all the user's
profiles (or the default profile in an alternative embodiment).
3. For very old items (e.g., older than 180 days), the client should specify a
very low
threshold of meaning to the XML Web Service (e.g., 25%) for preservation.
Essentially, this is
akin to deleting (or flagging) those items that are very old and weak in
meaning.
4. For fairly old items (e.g., older than 90 days old but younger than 180
days old),
the client should specify a very low threshold (e.g., 10%) for preservation.
This is akin to
deleting (or flagging) those items that are fairly old and very weak in
meaning.
5. For old items (but not too old - e.g., older than 1 day old but younger
than 30
days old), the client should specify a very low threshold (e.g., 0%) for
preservation. This is akin
to deleting (or flagging) those items that are old (but not too old) but are
meaningless, based on
the user's profile(s).
Essentially, the model fox this aspect or feature of the preferred embodiment
balances
semantic sensitivity with time-sensitivity by imposing a higher semantic
threshold on younger
items (thereby preserving items that might be largely - albeit not totally -
meaningless if they are
fairly young. For example, fairly recent email threads might be very weak in
meaning - the
client should preserve them anyway because their "youth" is also a sign of
relevance. As they
"age," however, the client can safely delete them (or flag them for deletion).
This model can also be applied to manage documents on local fzle-systems. The
model
can be extended to content-management systems, document repositories, etc. by
configuring an
Information Store lVIonitor (IS1VI) to monitor these systems (via calls to the
Information hTervous
SystemT~ ~I~L Web Services) and configuring the ISIS! with I~ISes that are
configured with
KI~Ses that have ontologies consistent with the domain of the repositories to
be semantically
managed. This feature will save storage space and storage/maintenance costs by
semantically
managing content management systems and ensuring that only relevant items get
preserved on
those systems over time.
43. Slide-Rule Filter User Interface
The refinement pane in the semantic browser allows the user to "search within
results."
The user will be able to add additional keywords, specify date ranges, etc.
The date-range
control can be implemented like a slide-rule. Shifting one panel in the slide-
rule would shift the
lower date boundary while moving the other panel will shift the upper date
boundary. Other
61

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
panels can then be added for time boundaries - shifting both time and date
panels will impose
both date and time constraints. Panels can also be added for other filter
axes.
C. SERVER-SIDE SEMANTIC QUERY PROCESSOR SPECIFICATION
1. Overview
This section describes a currently preferred embodiment of how the server-side
semantic
query processor (SQP) resolves SQML queries. Ori a given server, queries can
be broken into
several components:
a. Context (documents, keywords, entities, portfolios (or entity
collections)).
b. Context/Knowledge Template (or Special Agent) or Information Template -
this
describes whether the request if for a knowledge type (e.g., Breaking News,
Conversations,
Newsmakers, or Popular Items) or for a particular information type (e.g.,
Documents, Email).
On the client, a semantic query is made up of the triangulation of context,
request (or
Agent) type, and the knowledge communities (or Agencies). The client sends the
SQML that
represents the semantic query to all the knowledge communities in the profile
in which the
request lives. The client asks for a few results at a time and then aggregates
the results from one
or more servers.
The server-side semantic query processor subdivides semantic queries into
several sub-
queries, which it then applies (via SQL inner joins or sub-queries in the
preferred embodiment).
These sub-queries are:
1. Request type sub-query - this represents a sub-query (semantic or non-
semantic)
depending on the request type. Examples are context (knowledge) types (e.g.,
All Bets, Best
Bets, Headlines, Experts, etc.) and information types (like General Documents,
Presentations,
Web Pages, Spreadsheets, etc.),
2. Semantic context sub-query - this represents a semantic sub-query derived
from
the context (filter) passed from the client (an example of this is categories
sent from the client or
mapped from keywords/text via semantic stemming).
3. Non-semantic context sub-query - this represents a non-semantic sub-query
derived from the context (filter) passed from the client (examples are
keywords without semantic
stemming - mapping to ontology-based categories).
4. Access-control sub-query - this represents a sub-query that filters out
those items
in the semantic metadata store (S1YIS) that the calling user does not have
access to. For details,
see the "Security" specification.
62

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The foregoing steps are illustrated in Figure 14 (Server-Side Semantic Query
Processor
Components). Figure 14 shows how the server-side semantic query processor
processes
incoming semantic queries (represented as SQML).
2. Semantic Relevance Score
The semantic relevance score defines the normalized score that the concept
extraction
engine returns. It maps a given teen of "blob" of text to one or more
categories for a given
ontology. The score is added to the semantic network (in the "LinkStrength"
field of the
"SemanticLinks" table) when items are added to the Semantic Network.
3. Semantic Relevance Filter
The relevance filter is different from the relevance score (indeed, both will
typically be
combined). The relevance filter indicates how the SQP will semantically
interpret context (note:
in the currently preferred embodiment, the filtering is always semantic in
this case). There are
two relevance filters: High and Low. kith the High relevance filter, the SQP
will include a sub-
query that is the intersection of categories and terms. For instance, context
for the keyword
"XML" will be interpreted as: Items that share the same categories as XML and
also include the
keyword "XML." This is the highest level of ontology-based semantic filtering
that can occur.
However, it could lead to information loss in cases where there axe objects in
the Semantic
Network (or Semantic Metadata Store (SMS)) that are semantically equivalent to
the context but
that do not share its keywords or terms. For instance, the query described
above would miss
items that share the same categories as XML but which include the term
"Extensible Markup
Language" instead. A Low relevance filter will only include obj ects that
share the same
categories as the context but unlike the High relevance filter, would not
include the additional
constraint of lceyword equivalence.
For this reason, the relevance filter is preferably used only to create sub-
query "buckets"
that are then used for ordering results. For instance, the SQP might decide to
prioritize a High
relevance filter ahead of a Low relevance filter when filtering the semantic
network but would
63

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
still return both (with duplicates removed) in order to help guarantee that
synonyms don't get
rejected during the final semantic filtering process.
4. Time-Sensitivity Filter
The time-sensitivity filter determines how time-critical the semantic sub-
query is. There
are two levels: High and Low. A High filter is meant to be extremely time-
critical. Default is 3
hours (this accounts for lunch breaks, time away from the office/desk, etc.).
A Low filter is
meant to be moderately time-critical. The default is 12 hours.
S. Knowledge Type Semantic Query Implementations
Throughout this application certain specific knowledge types axe referred to
by apt
shorthand names, some of which the applicant uses or may use as trademarks.
This section
explains the nature and function of some of these in greater detail.
a. All Bets
For "All Bets" queries, the serer simply returns all the items in the semantic
metadata
store. If the SQML has filters, the filters are imposed via an inner sub-query
with no semantic
link strength threshold. For instance, All Bets on Topic A will return all
items that have
anything (strongly or barely) to do v~rith Topic A.
b. candor, Bct~
In the preferred embodiment, for "Random Bets" queries, the server simply
returns all the
items in the semantic metadata store (like in the case of "All Bets" queries)
but orders the results
randomly. If the SQML has filters, the filters are imposed via an inner sub-
query with no
semantic link strength threshold. For instance, Random Bets on Topic A will
return all items
(ordered randomly) that have anything (strongly or barely) to do with Topic A.
c. Breaking News
If the serer has user-state, Breaking News can be implemented in a very
intelligent way.
The table below illustrates the currently preferred ranking and prioritization
for Breaking News
when the server tracks what items (and/or categories) the user has read:
64

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Priority Sub-Query Time- Semantic Primary Secondary
Name SensitivityRelevance Ordering Ordering
Filter Filter Axis Axis
1 Breaking Low High Creation Semantic
Unread Time Relevance
Semantic Score
News
2 Breaking Low Low Creation Semantic
Unread Time Relevance
Semantic Score'
News
3 Breaking High High Creation Semantic
Read Time Relevance
Semantic Score
News
4 Breaking High Low Creation Semantic
Read Time Relevance
Semantic Score
News
W the preferred embodiment, the server processes SQML for Breaking News (via
the
Breaking News content predicate) as follows:
I. All breaking news is filtered with a sub-query that the returned news must
be
"younger" than N hours (or days, or months, configurable) - this imposes the
key time-
sensitivity constraint.
2. Breaking News is always semantic.
3. In the preferred embodiment, the Semantic Network Manager (SNM) should
update the semantic network to indicate the "last read time" for each user to
each category. This
is then used in the sub-query to check whether news has been "read" or not
(per category or per
object - per category is the preferred embodiment because the latter will not
scale).
4. Priority is given to news items that the user has not "read" (this is
implemented by
comparing the last read time in the SemanticLinks table with the semantic link
type that links
"User" to "Category").
5. The implication of the semantic prioritization scheme is that the user
could get
"older" breaking news first because the news is more semantically relevant and
"younger"

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
breaking news "later" because the news is less semantically relevant. This
results in a hybrid
relevance-time sensitivity prioritization scheme.
6. The primary ordering axis (Creation Time) guarantees that results are
filtered by
freshness. The secondary ordering axis (Relevance Score) acts as a tiebreaker
and guarantees
that equally fresh results are distinguished primary based on relevance.
7. Breaking News Intrinsic Alerts can be implemented on the client by limiting
the
Breal~ing News priority to Priority 2 and by changing the Priority 1 and
Priority time-sensitivity
filters to high. This way, only very fresh Brealcing Unread Semantic News (of
both High and
Low semantic relevance filters) will be returned. This is advantageous because
the alert should
have a higher disruption threshold than the Breaking News Request (or agent) -
since it is
implicit rather than explicit.
8. Unread Breaking News is higher priority than Read Breaking News because
users
are likely to be more interested in stuff they haven't seen yet.
9. Unread Breaking News has a lower time-sensitivity filter than Read Breaking
News because users are likely to be more tolerant of older news that is new to
them than younger
news that is not.
In some cases, the server might not have user-state (and "iead'9 information).
In this case9
a simple implementation of Breaking News is shown below:
1. By default (no filter), Breaking News should return only items younger than
N
hours (default is 3 hours).
2. If there is at least one filter in the SQML, Breaking News should apply the
time-
sensitivity filter (3 hours) to the outer sub-query and also apply a
moderately strong relevance
filter to the inner sub-query (off the SemanticLinks table). In the preferred
embodiment, this
should correspond to a relevance score (and link strength) of 50%. For
instance, Breaking News
on Topic A should return those items that have been posted in the last 3 hours
and which belong
to the category (or categories) represented by Topic A with at least a
relevance score of 50%.
This will avoid false positives like Breaking News items which are barely
relevant to Topic A.
66

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
d. Headlines
Ditto with Breaking News (except that time-sensitivity constraints are more
relaxed -
e.g., the High filter is 12 hours instead of 3 hours and the low filter is 1
day instead of 12 hours).
In the simple implementation, the time-sensitivity constraint is 1 day. This
can also be made 3-
days on Mondays to dynamically handle weekends (making the number of days the
"number of
working days").
e. Newsmakers
Newsmakers are handled the same way as Headlines, except that the SQP returns
the
authors of the Headline items rather than the items themselves.
f. Best Bets
As described in my parent application (Serial No.lO/179,651), Best Bets axe
implemented by imposing a filter on the strength of the semantic link with the
"Belongs to
Category" predicate. The preferred default is 90%, although the client (at the
option of the user)
can change this on the fly via an argument passed via the XML Web Service.
Best Bets are
implemented with a SQL inner join between the Objects table and the
SemanticLinks table and
joining only those rows in the SemanticLinlcs table that have the "Belongs to
Category" predicate
and a LinkStrength greater than 90% (default). When the SQML that is being
processed contains
filters (e.g., keywords, text, entities, etc.), the server-side semantic query
processor must also
involve a sub-query, which is a SQL inner join that maps to the desired
alters. In the preferred
embodiment, this sub-query should also include a "Best Bets" filter.
In the preferred embodiment, it is advantageous and probably preferable for
most users
for the outer sub-query to be a Best Bet, and for the inner sub-query. To
illustrate this, "Best
Bets on Topic A" is semantically different from "Best Bets that are also
relevant to Topic A." In
the first example, only Best Bets, which are Best Bets "ON" Topic A, will be
returned (via
applying the "Best Bets" semantic filter on the inner sub-query). In contrast,
the second example
will return Best Bets on anything that might have anything to do with Topic A.
As such, the
second example might return false positives because for example, a document,
which is a Best
67

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Bet on Topic B but a "weak bet" on Topic B, will be returned and that is not
consistent with the
semantics of the query or the presumably desired results. Extending the "Best
Bets" filter to not
only the outer sub-query but also all inner sub-queries will prevent this from
happening. Other
query implementations can also follow this rule (with the right sub-queries
applied based on the
semantics of the main query) if the SQML contains filters.
g. Query Implementation for Other Knowledge Types
Other knowledge types are implemented in a similar fashion as above (via the
right
predicates). Several examples are described below.
Information Type Semantic Query Implementations
All information type semantic query implementations can follow, and preferably
(but not
necessarily) follow, the same pattern: the SQP returns only those objects that
have the object
type id that corresponds to the requested information type. An example is
"Information
Type~Presentations." When the SQP parses the SQML received from the client, it
extracts this
attribute from the SQML and maps it to an object type id. It then invokes a
SQL query with an
added filter for the object type id. For special information types that could
span several
individual information types (such as "lmformation Type~All Documents"), the
SQP maps the
request to a set of object type ids and invokes a SQL query with this added
filter.
Context Semantic Query Implementations
When the client sends SQML that contains concepts (extracted on the client
from text or
documents), the server-side SQP has to first semantically interpret the
context before generating
sub-queries that correspond to it. To do this, the server sends the concepts
to all KDS'es
(I~BS'es) it is configured with (for the desired knowledge community or
agency) for semantic
categorization. When the server gets the categories back, it preferably
determines which of those
categories are "strong" enough to be used as filters before generating the
appropriate sub-queries.
This "filter-strength" determination is advantageous because if the context
is, for
example, a fairly long document, that document could contain thousands of
concepts and
categories. As a result, the "representative semantics" of the document might
be contained in
68

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
only a subset of all the concepts/categories in the document. Mapping all the
categories to sub-
queries will return results that might be confusing to the user - the user
would likely have a
"sense" of what the document contains and if he/she sees results that are
relevant to some weak
concepts in the document, the user might not be able to reconcile the results
with the document
context. Therefore, in the preferred embodiment, the server-side SQP
preferably chooses only
"strong categories" to apply to the sub-queries. It is recommended that these
be categories with
a semantic strength of at least 50%. That way, only those categories that
register strongly in the
semantic context would be applied to the sub-query. The implementation of the
sub-query
would then follow the rules described above depending on whether the query
contains a context
predicate, is based on a knowledge type, information type, etc.
Semantic Stemming Implementation
As described in my parent application, the server-side semantic query
processor performs
semantic stemming to map keywords, text, and concepts to categories based on
one or more
domain ontologies. ~ne way it does this by invoking an XML Web Service call to
the
KDS/KBS (or KDSes/KBSes) it is configured with in order to obtain the
categories. It then
maps the categories to its semantic network. This form of stemming is superior
to regular
stemming that is based on keyword variations (such as singular and plural
variations, tense
variations, etc.) because it also involves domain-specific semantic mapping
that stems based on
meaning rather than merely stemming based on keyword forms.
In the currently preferred embodiment, the KIS calls the KDS/KBS each time it
receives
SQML that requires further semantic interpretation. However, this could result
in delays if the
KDS/KBS resides on a different server, if the network connection is not fast,
or if the KDS/KBS
is busy processing many requests. In this case, the ISIS can also implement a
Semantic
Stemming Cache. Tlus cache maps keywords and concepts to categories that are
fully qualified
with URIs (making them globally unique). When the server-side semantic query
processor
receives SQML that contains keywords, text, or concepts (extracted from, say,
documents on the
client by the client-side semantic query processor), it first checks the cache
to see if the
69

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
keywords have already been semantically stemmed. If there is a cache hit, the
SQP simply
retrieves the categories from the cache and maps those categories to the
semantic network via
SQL queries. If there is a cache miss (i.e., if the context is not in the
cache), it then calls the
KDSesIKBSes to perform semantic categorization. It then takes the results,
maps them to unique
category URIs, and adds the entry to the cache (with the context as the hash
code). Note that
even if the context does not map to any category, the "lack of a category" is
preferably cached.
In other words, the context is added as a cache entry with no categories. This
way, the server can
also quickly determine that a given context does not have any categories,
without having to call
the KDSes/I~BSes each time to find out.
Cache Management
The SQP can also manage the semantic stemming cache. It has to do this for two
reasons: first, to keep the cache from growing uncontrollably and consuming
too much system
resources (particularly memory with a heap-based hash table); and, second, if
the ISIS
configuration is changed (e.g., if knowledge domains are addedlremoved), the
cache is
preferably purged because the entries might now be stale. The first scenario
can be handled by
assigning a maximum number of entries to the cache. In the preferred
embodiment, the SQP
caches the current amount of memory consumed by the cache and the cache limit
is dictated by
memory usage. For example, the administrator might set the maximum cache size
to 64MB. To
simplify the implementation, this can be mapped to an approximate count of
items (e.g., by
dividing the maximum memory usage by an estimate of the size of each cache
entry).
For each new entry, if the cache limit has not been reached, the SQP simply
adds the
entry to the cache. However, if the cache limit has been reached, the SQP (in
the preferred
embodiment) should purge the least recently added items from the cache. In the
preferred
embodiment, this can be implemented by keeping a queue of items that is kept
in sync with a
hash table that implements the cache itself (for quick lookups using the
context as a key). When
the SQP needs to purge items from the cache to free up space, it de-queues an
item from the
least-recently-added queue and also removes the corresponding item from the
hash table (using

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the context as key). This way, fresh items are more likely to result in a
cache hit than older
items. This will result in a faster user experience on the client because
context for saved
agents/requests/queries will end up being cached with quick-lookups each time
the user opens
the agent/request/query. The same goes for Dossier (Guide) queries which will
have the same
context (but with different knowledge types) - the client will request for
each knowledge type
for the same context and since the context will be cached, each sub-query will
execute faster.
D. EXTENSIBLE CLIENT-SIDE USER PROFILES SPECIFICATION FOR THE
INFORMATION NERVOUS SYSTEM
Overview
Extensible client-side user profiles allow the user of a semantic browser to
have a
different state for different job roles, knowledge sources, identities,
personas, work styles, etc.
This essentially allows the user to create different "knowledge worlds" for
different scenarios.
For instance, a Pharmaceuticals researcher might have a default profile that
includes all sources
of lazowledge that are relevant to his/her work. .As described in my parent
application Serial
No. 10/179,651, the SRML from each of these sources will be merged on the
client thereby
allowing the user to seamlessly go through results as though they were coming
from one source.
~Iowe~rer, the researcher rrught e~~an~ to tracl~ patents separate from
everything else. In such a
case, the researcher would be able to create a separate "Patents" profile and
also include those
knowledge communities (agencies) that have to do with patents (e.g.,. the US
Patent Office
Database, the EU Patent Database, etc.) _
To take another example, for instance, the user might create a profile for
'Work' and one
for 'Home.' Many investment analysts track companies across a variety of
industries. With the
semantic browser, they would create profiles for each industry they track.
Consultants move
from project to project (and from industry to industry) and might want to save
requests and
entities created with each project. Profiles will be used to handle this
scenario as well.
71

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Profiles contain the following user state:
~ NamefDescription - the descriptive name of the profile.
~ One or more knowledge communities (agencies) that indicate the source of
knowledge (running on a KIS) at which requests (agents) will be invoked.
~ Identity Information - the user name (currently tagged with the user's email
address) and password.
~ Areas of Interest or Favorite Categories - this is used to suggest
information
communities (agencies) to the user (by comparing against information
communities with
identical or similar categories) and as a default query filter for requests
created with the profile.
~ Smart styles - the smart styles to be used by default for requests and
entities
created with the profile.
~ Default Flag - this indicates whether the profile is the default profile.
The default
profile is initiated by default when the user wishes to create requests and
entities, browse
information communities, etc. Unless the user explicitly selects a different
profile, the default
profile gets used.
Profiles can be created, deleted, modified, and renamed. However, in the
preferred
embodiment the default profile cannot be deleted because there has to be at
least one profile in
the system at all times. In alternate embodiments, a minimum profile would not
be required.
Preferably, all objects in the semantic browser are opened within the context
of a profile.
For instance, a smart request is created in a profile and at runtime, the
client semantic query
processor will use the properties of the profile (specifically the subscribed
knowledge
communities (agencies) iai that profile) to u~rol~e the request. This allovJS
a user to correlate or
scope a request to a specific profile based on the knowledge characteristics
of the request (more
typically the sources of knowledge the user wants to use for the request).
Figure 15 illustrates the semantic browser showing two profiles (the default
profile
named "My Profile" and lSAand a profile named "Patents" 15B). Observe how the
user is able
to navigate hisJher knowledge worlds via both profiles without interference.
Figures 16A-C illustrate how a user would configure a profile (to create a
profile, the user
will use the "Create Profile Wizard" and the profile can then be modified via
a property sheet as
shown).
Figure 17 shows how a user would select a profile when creating a request with
the
"Create Request Wizard."
72

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
E. SMART STYLES SPECIFICATION FOR THE INFORMATION NERVOUS
SYSTEM
1. Smart Styles Overview
A color theme and animation theme applied to a style theme yields a "smart
style".
"Smart" in this context means the style is adaptive or responsive to the mood
of its request,
context panes, preview mode, handheld mode, live mode, slideshow mode,
screensaver mode,
blenderlcollection mode, accessibility, user settings recognition, and
possibly other variables
within the system (see below). There is an infinite number and kind or
"Classes" of possible
styles. The preferred embodiment comprises at least the following style
Classes:
1. Subtle - for task-oriented productivity.
2. Moderate - for task-oriented productivity with some presentation effects.
3. Exciting - exciting effects (good for both primary and secondary machines,
and
for inactive Nervana windows - e.g., Nervana client windows in the background
or docked on the
taskbar).
4. Super-exciting (great for smart screensavers with productivity - e.g.,
secondary
machines - when the user is using hislher primary machine).
Sci-Fi (for Matrix fans, great for smart screensavers without specific need
for
productivity - e.g., when the user is away from his/her desk).
Style, Color & Animation Themes - Variable, unlimited - created by Nervana,
and
perhaps users and/or third party skin authors
Iaraplieit and I~ynaanic smart ~t~rle JPr~pertie~
a. Mood - the smart style must convey the mood of the request (i.e., the
request is a parameter passed to the smart style). This will involve semantic
images, semantic
motions, Visualizations, etc. that convey the semantically informed or
semantically determined
properties of the smart request (the context template or infornzation type,
the categories, whether
there are filters (e.g., local documents), the information types of those
filters, etc.)
b. Context panes - e.g., deep info pane (per object), dockable preview panes,
dockable contextual PIP watch groups/panes, etc.
c. Preview Mode - each smart style must be able to display its results for
preview (in a small window).
73

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
d. Handheld Mode - each smart style must be able to display its results
optimized for a handheld device.
e. Live mode - each smart style must have a "live" mode during which it
would display real-time semantic Visualizations (per object). This can be
toggled on or off (e.g.
if the user does not want real-time semantic Visualizations, or to save
bandwidth that results
from real-time Web service calls per object).
f. Slideshow mode - preferably, each smart style must be able to "play" the
results of the request - like a live stream.
g. Screensaver mode - preferably, each smart style must be able to "play"
the results of the request as a screensaver. This is a variant of slideshow
mode, except in full-
screen/theater mode.
h. Blender/collection mode - preferably, each smart style must change its UI
appropriately if the request it is displaying is a blender/colleetion.
i. Accessibility - preferably, each smart style must support accessibility.
j. User settings recognition - the Nervana Librarian will allow users to
indicate whether they are beginners, moderate users, or power-users, and their
respective job
function~s~ (F~~I~, sales, marketing, executive, etc.). Preferably, each smart
style considers (or is
influenced by) these functions where appropriate.
~ Preferably, each smart style is responsible, consistent with the semantics
of the request, for
recognizing (or discerning or perceiving) and then Visualizing (or presenting
or depicting
or illustrating, consistent with what should deserve the user's attention):
~ the Mood of the Current Request (including semantic images, motion, chrome,
etc.
~ a Change in the number of Items in the Current Request
~ the Mood of each object (intrinsically)
~ the Mood of each object's context (headlines, breaking news, experts, etc.)
~ Binary/Absolute issues or characteristics (e.g., is there breaking news, OR
NOT? how
many experts are there? how many headlines?) as distinct from issues that are
matters of
degree, or on a gradient or continuum
If the characteristic is on a gradient or continuum, perceiving the relative
placement along
it (e.g., how breaking is breaking news?, how critical are the headlines? what
is the level of
expertise for the experts?, etc.)
74

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ a change in each object's context (there is new breaking news, there are new
annotations,
etc.)
~ the RELATIVE criticality of each object being displayed (different sized
view ports,
different fonts, different chrome, etc.)
~ a request navigation and "loading" status (interstitials that INTRODUCE the
mood of the
new request being loaded)
~ all properties of any individual PIP windows (animated with an animation
control)
~ the addition of a new PIP window (to a PIP window palette)
~ any Resizing/Moving/Docking PIl' Windows
~ any preview windows (for context palettes, "Visualization UI" on each
object, timelines,
etc.)
~ Sounds consistent with all of the foregoing Visualizations of mood and
notifications
(across the board)
Figure 18 shows a screenshot with the 'Smart Styles' Dialog Box illustrating
some of the
foregoing operations and features. As can be seen, the Dialog Box allows the
user to browse
smart styles by pivoting across style classes, style themes, color themes, and
animation themes.
A preview window shows the user a preview of the currently selected smart
style.
IF. ~IV~AlI~'IC ~E~TIJE~~L° ~A'~~~L ~PE~I1F~~A~C~~1~1 ~°~Il~
~C~lf~ Il'~T1F~~MA'1CI~hT
h'~E~VO~J~ ~~~TEI~
1. Overview
Smart Request Watch refers to a feature of the Information Nervous System that
allows
users of the semantic browser (the Information Agent or the Librarian) to
monitor (or 6~avatch'9)
smart requests in parallel. This is a very advantageous feature in that it
enhances productivity by
allowing users to traclc several requests at the same time.
. The feature is implemented in the client-side semantic runtime, the semantic
browser, and
skins that allow a configurable way of watching smart requests (via a
mechanism similar to
"Picture-In-Picture" (PIP) functionality in television sets). Preferably, one
or more of the
following software components are used:
1. The Request Watch List
(RWL)
2. Request Watch Groups
3. The Notification Manager
(NM)
4. Watch Group Monitors
(WLM)
5. The Watch Pane
6. The Watch Window
7s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
2. Request Watch Lists (RWLs) and Groups (RWGs)
The Request Watch List is a list of smart requests (or smart agents) that the
client runtime
manages. This list essentially comprises the smart requests the user wishes to
monitor. The
Request Watch List comprises a list of entries, the Request Watch List Entry
(RWLE) with the
following data structure:
Field Name Field Field Description
T a
Re uestlD GUID The unique identifier of the
smart request
Notification ReferenceDWORD The reference count indicating
whether the
Count Notification Manager should track
whether
there are "new" obj ects for
this smart re uest
RequestViewInstancelDGUID The unique identifier of the
~ smart request
view instance that "owns" the
RWLE. This
is used for dynamically added
and browser-
instance-specific RWLEs like
Categorized
Headlines, Breaking News, and
Newsmakers
(see below). For system-wide
RWLEs added
manually by the user or via non-categorized
Request Watch Rules (RWRs) (see
below),
this entry is initialized to
NULL.
LastUpdateTime Date/TimeThe Iast date/time the notification
manager
updated the request results count
RequestResultsCount DWORD The number of results in the
smart request
LastResultTime Date/TimeThe date/time of the most recently
published
result
The Request Watch List (RWL) contains an array or vector of RWLE structures.
The
Request Watch List Manager manages the RWL. The semantic browser provides a
user
interface that allows the user to add smart requests to the RWL - the UI talks
to the RWLM to
add and remove RWLEs to/from the RWL. The RWL is stored (and persisted)
centrally by the
client-side semantic nmtirne (either as an XML file-based representation or in
a store like the
Windows registry).
The RWL can also be populated by means of Request Watch Groups (RWGs). A
Request Watch Group provides a means for the user to monitor a collection of
smart requests. It
also provides a simple way for users to have the semantic browser
automatically populate the
RWL based on configurable criteria. There are at least two types of RWGs: Auto
Request
76

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Watch Groups and the Manual Request Watch Group. Auto Request Watch Groups are
groups
that are dynamically populated by the semantic browser depending on the
selected profile, the
profile of the currently displayed request, etc. The Manual Request Watch
Group allows the user
to manually populate a group of smart requests (regular smart requests or
blenders) to monitor as
a collection. The Manual Request Watch Group also allows the user to add
support context
types (e.g., documents, categories, text, keywords, entities, etc.) - in this
case, the system will
dynamically generate the semantic query (SQML) from the filters) and add the
resulting query
to the Manual Request Watch Group. This saves the user from having to first
create a time-
sensitive request based on one or more filters before adding the filters to
the Watch Group - the
user can simply focus on the filters and the system will do the rest.
Users will be able to add the following types of Auto-RWGs (for one or more
configurable profiles, including "All Profiles" as shown in the Smart Request
Watch Dialog Box
in Figure 19):
1. Breaking News - this tells the semantic browser to automatically add a
Breaking
News smart request to the RWL (for the selected profile(s)).
2. ~-Ieadlines - this tells the semantic browser to automatically add a
Deadlines smart
request to the RWL (for the selected profile(s)).
3. Newsmakers - this tells the semantic browser to automatically add a
Newsmalcers
smart request to the RWL (for the selected profile(s)).
4. Categorized Breaking News - this tells the semantic browser to
automatically add
Categorized Brealcing News smart requests to the RWL (for the contextual
profile). The
semantic browser will dynamically add smart requests with category filters
corresponding to
each subcategory of the currently displayed smart request (and for the
contextual or current
profile) - if the currently displayed smart request has categories. For
example, if the smart
request "Breaking News" about Technology" is currently being displayed in a
semantic browser
instance, and if the category "Technology" has 5 sub-categories (e.g.,
Wireless, Semiconductors,
77

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Nanotechnology, Software, and Electronics), the following smart requests will
be dynamically
added to the RWL when the current smart request is loaded:
~ Breaking News about Technology.Wireless [<Contextual Profile Name>]
~ Breaking News about Technology.Semiconductors [<Contextual Profile Name>]
~ Breaking News about Technology.Nanotechnology [<Contextual Profile Name>]
~ Breaking News about Technology.Software [<Contextual Profile Name>]
~ Breaking News about Technology.Electronics [<Contextual Profile Name>]
Also, the RWLEs for these entries will be initialized with the
RequestViewInstancelD of
the current semantic browser instance. If the user navigates to a new smart
request, the
categorized Breaking News for the previously loaded smart request will be
removed from the
RWL and a new list of categorized Breaking News will be added for the new
smart request (if it
has any categories) - a.nd initialized with a new RequestViewInstancelD
corresponding to the
new smart request view. This creates a smart user experience wherein relevant
categorized
breaking news (for subcategories) will be dynamically displayed based on the
currently
displayed request. The user vrill then be able to monitor Categorized Breaking
News smart
requests as a watch group or collection.
5. Categorized Headlines - this tells the semantic browser to automatically
add
Categorized Headlines smart requests to the RWL (for the cor~te~tual profile)o
This is similar tea
Categorized Breaking News, except that Headlines are used in this case. The
user will then be
able to monitor Categorized Headlines smart requests as a watch group or
collection.
6. Categorized Newsmakers - this tells the semantic browser to automatically
'add
Categorized Newsmakers smart requests to the RWL (for the contextual profile).
This is similar
to Categorized Breaking News, except that Newsmakers are used in this case.
The user will then
be able to monitor Categorized Newsmakers smart requests as a watch group or
collection.
7. My Favorite Requests - this tells the semantic browser to automatically add
all
favorite smart requests to the RWL (for the selected profile(s)). This allows
the user to watch or
monitor all his/her favorite smart requests as a group.
7s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
8. My Favorite Breaking News - this tells the semantic browser to
automatically add
all favorite breaking news smart requests to the RWL (for the selected
profile(s)), This allows
the user to watch or monitor all his/her favorite breaking news smart requests
as a group.
9. My Favorite Headlines - this tells the semantic browser to automatically
add all
favorite headlines smart requests to the RWL (for the selected profile(s)).
This allows the user to
watch or monitor all his/her favorite headlines smart requests as a group.
10. My Favorite Newsmakers - this tells the semantic browser to automatically
add
all favorite newsmakers smart requests to the RWL (for the selected
profile(s)). This allows the
user to watch or monitor all his/her favorite newsmakers smart requests as a
group.
Request Watch Group Manager' User Interface
Figure 19 illustrates the "Smart Request Watch" Dialog Box in the semantic
browser of
the preferred embodiment. The top half of the dialog is used to add auto-watch
groups. The user
can select auto-watch group types and profile types ("I~11 Profiles,"
"Contextual Profile," and the
actual profile names) and add them to the auto-watch-group list. The user can
also remove auto-
watch-groups. The bottom half of the dialog box is used to add/remove smart
requests to/from
the manual watch group.
'1I'k~c I'~~~aficatf0n I~aa~a~;e~~ (l~tl~)
In the preferred embodiment the Notification Manager (NM) is a component of
the
semantic runtime client that monitors smart requests in the RWL. The NM has a
thread that
periodically invokes each smart request in the RWL (via the client semantic
query processor) and
updates the RWLE with the "results count" and the "last update time." In the
preferred
embodiment the NM preferably invokes the smart requests every 5-30 seconds.
The NM can
intelligently adjust the periodicity or frequency of request checks depending
on the size of the
RWL (in order to minimize bandwidth usage and the scalability impact on the
Web service).
For time-sensitive smart requests (like Breaking News, Headlines, and
Newsmakers), the
NM preferably invokes the smart request without any additional time filter.
However, for non
79

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
time-sensitive requests (like for information as opposed to context types or
for non time-sensitive
context templates like Favorites and Recommendations), the NM preferably
invokes the query
for the smart request with a time filter (e.g., the last 10 minutes).
4. Watch Group Monitors
In the preferred embodiment, the semantic runtime client manages what the
inventor calls
Watch Group Monitors (WGM). For each watch group the user has added to the
watch group
list, the client creates a watch group monitor. A watch group monitor tracks
the number of new
results in each request in its watch group. The watch group monitor creates a
queue for the
RWLEs in the watch group that have new results. The WGM manages the queue in
order to
maximize the freshness of the results. The WGM periodically polls the NM to
see whether there
are new results for each request in its watch group. If there are, it adds the
request to the queue
depending on the 'last result time' of the request. It does this in order to
prioritize requests with
the freshest results first. The currently displayed visual style (skin)
running in the Presenter
would then call the semantic runtime OCX to dequeue the requests in the WGM
queue. This
way, the request watch user interface will be consistent with the existence of
new results and the
freshness of the results. ~nce there are no more new results in the currently
displayed request,
the smart style will dequeue the next request from the WGM queue.
5. The Watch Pane
The Watch Pane (WP) refers to a panel that gets displayed in the Presenter
(alongside the
main results pane) and which holds visual representations of the user's watch
groups. The WP
allows the user to glance at each watch group to see whether there are new
results in its requests.
The WP also allows the user to change the current view with which each watch
group's real-time
status gets displayed. The following views are currently defined:
~ Tiled View - this displays the title of the watch group along with the total
number
of new results in all its smart requests.
~ Ticker View - this displays the total number of new results in all the watch
group's smart requests but also shows an animation that sequentially displays
the number of new
results in each smart request (as a ticker).

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Preview View - this is similar to the ticker view except that the most
recent result
per smart request is also displayed alongside the number of new results in the
ticker.
~ Deep View - in this view, the WP displays the total number of new results in
all
the watch group's smart requests along with a ticker that shows the number of
new results in
each smart request and a slide-show of all the new results per smart request.
6. The Watch Window
The WP also allows the user to watch a watch group. The user will do this by
selecting
one of the watch groups in the WP and dragging it into the main results pane
(or by a similar
technique). This forms a Watch Window (WW). This WW resembles or can be
analogized to
TV's picture-in-picture functionality in appearance or layout, but differs in
several ways, most
noticeably in that in this case the displayed content is comprised of semantic
requests and results
as opposed to television channels are being "watched." Of course, the
underlying technology
generating the content is also quite different. The WW can be displayed in
asry of the
aforementioned views. When the WW is in Deep View however, the WW's view
controls are
displayed. The following controls are currently defined:
~ Pinning Requests - this allows the user to pin a particular request in the
watch
group. The WW will keep displaying the new results for only the pinned
requests (in a cycle)
and will not advance to other requests in the watch group for as long as the
current request
remains pinned.
~ Swapping Requests - this allows the user to swap the curs ently displayed
request
~~ith the main request being shoer~n in the semantic browser. The smart style
will invoke a
method on the OCX to create a temporary request with the swapped request
(hashed by its
SQML buffer) and then navigate to that request while also informing the
Presenter to now
display the main request in its place (in the WW).
~ Stop, Play, Seek, FF, RW, Speedup - these allow the user to stop, play,
seek, fast-
forward, rewind or speedup the "watch group request stream." For instance, a
fast-forward will
advance to several requests ahead of the currently displayed one.
~ Results controls - this allows the user to control the results in each
request in the
watch group. Essentially, the results are a stream within a stream and this
will also allow the
user to control the results in the current request in the current watch group.
~ Auto-Display Mode - this will automatically hide the WW when there are no
results to display and fade it in when there are new results. This way, the
user can maximize the
utility of hislher real estate on the screen knowing that watch windows will
fade in when there
are new semantic results. This feature also allows the user to manage his/her
attention during
information interaction in a personal and semantic way.
~ Docking, Closing, Minimizing, Maximizing - these features, as the names
imply,
allow the user to dock, close, minimize or maximize watch windows. Figure 20
illustrates a
Watch Window displaying Filtered Smart Requests (e.g.,. Headlines on
Wireless). Figure 20 is
s1

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
an Illustration of the Watch Window with a Current Smart Request Title (e.g.,
"Breaking
News").
7. Watch List Addendum
In the User Interface, the Watch List can be named "News Watch." The user will
be
asked to add/remove requests, objects, keywords, text, entities, etc. to/from
the "News Watch."
The "News Watch" can be viewed with a Newsstand watch pane. This will provide
a spatially-
oriented view of the user's requests and dynamically-created requests (via
objects added to the
Watch List, and created dynamically by the runtime using those objects as
filters) - not unlike
the view of a news-magazine rack when one walks into a Library or Bookstore.
G. ENTITIES SPECIFICATION FOR THE INFORMATION NERVOUS SYSTEM
1. Introduction
Entities are a very powerful feature of the preferred embodiment of the
Information
Nervous System. Entities allow the user to create a contextual definition that
maps to how they
work on a regular basis. Examples of entities include:
1. People 7. Meetin s
2. Teams ~. ~rganizations
3. Action Items ~. Partners
4. Companies 10. Products
5. Com etitors 11. Projects
6. Customers 12. Topics
There are also industry-specific entities. For instance, in pharmaceuticals,
entities could
include drugs, drug interaction issues, patents, FDA clinical trials, etc.
Essentially, an entity is a
semantic envelope that is a smart contextual object. An entity can be dragged
and dropped like
any other smart object. However, an entity is represented by SQML and not SRML
(i.e., it is a
query-object because it has much richer semantics). An entity can be included
as a parameter to
a smart request.
s2

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The user creates entities based on his/her tasks. Entities in the preferred
embodiment
contain at least the following information (in alternate embodiments they
could contain more or
less information):
1. Name/Description - a friendly descriptive name for the entity.
2. The categories of the entity - based on standard cross-industry taxonomies
or
vertical/company-specific taxonomies.
3. Contextual resources - these could include keywords, local documents,
Internet
documents, or smart objects (such as people).
An entity can be opened in the semantic browses, can be used as a pivot for
navigation, as
a parameter for a smart request (e.g., Headlines on My Project), can be
dragged and dropped, can
be copied and pasted, can be used with the smart lens, can be visualized with
a smart style, can
be used as the basis for an intrinsic alert, can be saved as a .ENT document,
can be emailed,
shared, etc. In other words, an entity is a first-class smart object.
The semantic runtime client dynamically creates SQML by appending the rich
metadata
of the entity to the subject of the relational request to create a new rich
SQML that refers to the
entity.
Entities preferably also have other powerful characteristics:
1. Regarding topicsp entities allow the user to create his/her primate
taxonomy
(without being at the mercy of or restricted exclusively to a public taxonomy
that is strictly
defined and as such, might not map exactly to the user's specific context for
a request). The
problem with taxonomies is that no taxonomy can ever fit everybody's needs -
even in the same
organization. Context is very personal and entities allow the user to create a
personal taxonomy.
For instance, take the example of a dog (of the boxer breed) named Kashmir
owned by a dog-
owner Steve. To everyone else (but Steve), Kashmir can be expressed
(taxonomically) as:
Living Things
Animals
Mammals
Dogs
Boxers
Kashmir
83

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
But to Steve, Kashmir is also:
My Loved Ones
My Pets
Kashmir
To Steve's veterinary doctor, however, Kashmir is:
My Clients
My Dogs
My Dogs in Good Health
Kashmir
If taxonomies (standalone) were used to "define" Kashmir, none of the three
taxonomies
would satisfy the general public, Steve, and Steve's veterinary doctor. With
entities on the other
hand, Steve could create a "Kashmir" entity based on "what Kashmir means to
him." Everyone
else could then do the same. And so can Steve's veterinary doctor. Entities
therefore empower
the user with the ability to create private topics that might be extensions of
broad taxonomies.
To take another example, a Phamnaceuticals researcher in a large
Pharmaceutical
company might be working on a new top-secret project (named "Gene Project") on
Genomics.
Because "Gene Project" is an internal project, it would likely not exist in a
public taxonomy
vrhich could be used vrith the senmntic browser of this the preferred
embodiment of my
invention. However, the researcher could create an entity named "Gene
Project", typed as a
Proj ect, and could then initialize the entity by scoping it to Genomics
(which exists in broad
taxonomies) and then also qualifying it with the keyword-phrase "Gene Project"
(using the AND
operator). Essentially, this is akin to defining "Gene Project" as anything on
Genomics that has
the phrase "Gene Project." This will impose much stricter context than merely
using the
keywords "Gene Project" (which might return results that contain the word
"Project" but have
nothing to do with Genomics). By defining a personal topic, "Gene Project"
that is scoped to
Genomics but also extends "Gene Project" with a specific qualifier, the
researcher now has much
more precise and personal context. The entity can then be dragged and dropped,
copied and
pasted, etc. to create requests (e.g., "Experts on Gene Project." At runtime,
the server-side
84

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
semantic query processor will interpret this (by mapping the SQML to the
semantic network) as
"Experts on any information that belongs to the category Genomics AND which
also includes
the phrase "Gene Proj ect."
2. Entities also allow the user to create a dynamic taxonomy - public
taxonomies are
very static and are not updated regularly. With entities, the user can
"extend" his/her private
taxonomy dynamically and at the speed of thought. Knowledge is transferred at
the speed of
thought. Entities allow the user to create context with the same speed and
dynamism as his/her
mind or thought flow. This is very significant. For instance, the user can
create an entity for a
newly scheduled meeting, a just-discovered conference, a new customer, a newly
discovered
competitor, etc. - ALL AT THE SPEED OF THOUGHT. Taxonomies don't allow this.
3. Taxonomies assume that topics are the only source of context. With
entities, a
user can create abstract contextual definitions that include - but are not
limited to - topics.
Examples include people, teams, events, companies, etc. Entities might
eventually "evolve" into
topics in a taxonomy (over time and as those entities gain "fame" or
"notoriety") but in the
"short-term," entities allow the user to create context that has not yet
evolved (or might never
evolve) into a full-blown taxonomic entry. For instance, Nervana (our company)
was initially an
entity (known only to itself and its few employees) but as we have grown and
attracted public
attention, as an entity we are evolving into a topic in a public taxonomy.
With entities, users
don't have to wait for context (like Nervana) to "eventually become" topics.
4. Entities allow the user to create what the inventor calls "compound
context." An
example of this is a meeting. A meeting typically involves several
participants with documents,
presentation slides, and/or handouts relevant to the topic of discussion. With
entities in the
Information Nervous System, a user can create a "meeting" context that
captures the semantics
of the meeting. Using the Create Entity Wizard, the user can specify that the
entity is a meeting,
and then specify the semantic filters. Consider an example of a project
meeting with five
participants and 2 handed out documents, and one presentation slide. The
Presenter of the
meeting might want to create an entity in order to track knowledge
specifically relevant to the
s5

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
meeting. For instance, helshe might want to do this to determine when to
schedule a follow-up
meeting or to track specific action items relating to the meeting. To create
the entity, the user
would add the email addresses of the participants, the handed out documents,
and also the
presentation to the entity filter definition. The user then saves the entity
which is then created in
the semantic namespacelenvironment. The user can then edit the entity with new
or removed
filters (and/or a new name/description) at a later dateltime - for instance,
if helshe has discovered
new documents that would have been relevant to the meeting. When the user
drags and drops
the entity or includes it in a requestlagent, the semantic browser then
compiles the entity and
includes it in a master SQML with the sub-queries also passed to the XML Web
Service for
interpretation. The server-side semantic query processor then processes the
compound SQML
by constructing a series of SQL sub-queries (or an equivalent) and by joining
these queries with
the entity sub-queries which in turn are generated using SQL sub-queries.
The user can use an ANh or OIL (or other) operator to indicate how the entity
filters
should be applied. For instance, the user can indicate that the meeting
(semantically) is the
participants of the meeting AND the documentslslides handed out during the
meeting. When the
entity is compiled at the client and the server, the SQML equivalent is used
to interpret the entity
(vrith the desired operatorj. This is very powerful. It means that the user
can define an entity
named "Project Meeting" and drag and drop that entity to the special agent
named "Breaking
News." This then creates a request named "Breaking News on Proj ect Meeting"
(with the
appropriate SQML referring to the identifier of the entity- which will then be
compiled into sub-
SQML before it is passed to the servers) for interpretation. The server then
applies default
predicates to the entries in the entity (based on what "makes sense" for the
object). In this
particular example, because of the definition of the entity, the server will
then only return:
Breaking News BY ALL the participants AND which is ALSO semantically relevant
TO
ALL the documents/slides
For instance, this will only return conversations/threads that involve all the
participants of
the meeting and which are semantically relevant to all the handouts given out
during the meeting.
86

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
This is precisely what the user desired (in this case) and the semantic
browser would have
empowered the user to essentially construct a rather complex query.
Even more complex queries are possible. Entities can include other entities to
allow for
compound entities. For instance, if an entire team of people were involved in
the meeting, the
Presenter might want to create an entity that includes an email distribution
list of those people.
In this case, the user might search the Information Nervous System for the
distribution list and
then save the result as an entity. The browser will allow the user to save
results as entities and
based on the result type, it will automatically create an entity with a
default entity type that
"makes sense." For instance, if the user saves a document result as an entity,
the semantic
browser it will create a "Topic" entity. If the user saves a Person result as
an entity, the semantic
browser will create a "Person" entity. If the user saves an email distribution
list as an entity, the
semantic browser will create a "Team" entity.
In this example, the user can save a Person result as a Person entity and then
drag and
drop that entity into the Project Meeting entity. The Team entity that maps to
the email
distribution list of the meeting participants can be dragged and dropped to
the Project Meeting
entity. The user can then create a request called "Deadlines on Project
Meeting" that includes
the entity. The semantic query processor will then return Deadlines B~ anyone
in the email
distribution list (using the right default predicate) and which is
semantically relevant to ALL the
handouts given out during the meeting. Similarly, a ossier (Guide) on the
Project Meeting will
return All Bets on the meeting, Best Bets on meeting, Experts on the meeting,
etc.
Note that such a compound entity that includes other entities gets checked by
the client-
side semantic consistency checker for referential integrity. In other words,
if Entity A refers to
Entity B and the user attempts to delete Entity B, the semantic browser will
detect this and flag
the user that Entity B has an outstanding reference. If the user deletes
Entity B anyway, the
reference in Entity A (and any other references to Entity B) will get removed.
Alternately, in
some embodiments, the user could be prohibited (whether informed or not) from
deleting Entity
B in the same situation, based on permissions of others within an organization
associated with
s7

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the entity. For example, employers could monitor activities of employees for
risk management
purposes, like as is done with email in some companies, only much potentially
much more
powerfully (Of course, appropriate policies and privacy considerations would
have to be
addressed). The same process applies to Request Collections (Blenders),
Portfolios (Entity
Collections - see below), and other compound items in the semantic
namespace/environment
(items that could refer to other items in the namespace/environrnent).
5. Popular entities can also be shared amongst members of a knowledge
community.
Like other items in the semantic browser (like requests or knowledge
communities (agencies),
entities can be saved as files (so the user can later open them or email them
to colleagues, or save
them on a central file share, etc.). A common scenario would be that the
corporate Librarians at
businesses would create entities that map to internal projects, meetings,
seminars, tasks, and
other important corporate knowledge items of interest. These entities would
then be saved on a
file-share or other sharing mechanism (like a portal or web-site) or on a
knowledge community
(agency). The knowledge workers in the organization would then be able to use
the entities. As
the entities get updated, in the preferred embodiment the Librarians can and
will automatically
edit their context and users will be able refresh or synchronize to the new
entities. Entities could
also and alternately be shared on a peer-to-peer basis by individual users.
This is akin to a legal
peer-to-peer file sharing for music, but instead of music, what is shared is
context to facilitate
meaning, or more meaningful communication.
2. Portfolios (or Entity Collections)
Portfolios are a special type of entity that contains a collection of
entities. In the preferred
embodiment, to minimize complexity and confusion (at least of nomenclature or
terminology),
while an entity can be of any size or composition, and portfolio can contain
any kind or number
of entities, a portfolio would not contain other portfolios. A portfolio
allows the user to manage
a group of entities as one unit. A portfolio is a first-class entity and as
such has all the
aforementioned features of an entity. When a portfolio is used as a parameter
in a smart request,
ss

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the OR qualifier is applied (by default) to its containing entities. W other
words, if Portfolio P
contains entities E1 and E2, a smart request titled 'Headlines on P' will be
processed as
'Headlines on E1 or E2.' The user can change this setting on individual smart
requests (to an
AND qualifier).
3. Sample Scenarios
Again, in reviewing the scenarios below, it is helpful to recall that,
conceptually, the
system can gather more relevant information in part because it "knows" who is
asking for it, and
"understands" who that person or group is, and the kinds of information they
are probably
interested in. Of course, strictly speaking, the system is not cognitive or
self aware in the full
human sense,' and the operative verbs in the preceding sentence are conceptual
metaphors or
similes. Still, in operation and results, it mimics understanding and
knowledge to an
unprecedented degree in part because of its underlying semantically-informed
architecture and
execution.
This point can be illustrated by a simplistic contrast: If two very different
people entered
the exact same search at the exact same time into a search engine such as
Google, they would get
the exact same results. In contrast, with the preferred embodiment of the
present system? if those
same two people entered the same request via an Entity, each would get
different results tailored
to be relevant to each.
To appreciate some of the potential power of this feature, it is useful to
note that while
the system or Entities "kn.ow" who is posing the query, the Entities do not
depend for that
k~lowledge on the user informing them and keeping them constantly updated and
informed
(although user information can be supplied and considered at any time). Tf
that were the case,
the system could be too labor intensive to be efficient and useful in many
situations; it would just
be too much work. Instead, the Entities "know" who the requester is by
inference and from
semantics from characteristics sometimes supplied by others, sometimes derived
or deduced,
89

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
sometimes collected from other requests and the like, as explained throughout
tlus application
and its parent application.
Some example scenarios of Entities in operation:
1. A pharmaceuticals 'patent' entity could include the categories of the
patent,
relevant keywords, and relevant documents.
2. A CIA agent could create a 'terrorist' entity to track terrorists. This
could include
categories on terrorism, suspicious wire transfers, suspicious arms sales,
classified documents,
keywords, and terrorism experts in the information community.
3. Find All Breaking News on Yesterday's Meeting.
4. Find Headlines on any of my competitors (this is done by creating the
competitor
entities, and then creating a smart request with the entities as parameters
using the OR qualifier
with each predicate).
5. Find Experts on my investment portfolio companies (create the individual
entities,
create a portfolio containing these entities and then create a smart request
that has the 'Experts'
context template and that uses the portfolio as an argument).
6. Open a Dossier (Guide) on my competitors (create the individual competitor
entities, create a portfolio containing these entities and then create a smart
request that has the
'Dossier' (or 'Guide') context template and that uses the portfolio as an
argument). Figure 21
shows Entity views displayed in the semantic browser (on the left).
H. KNOWLEDGE COMMUNITY BROWSING AND SUBSCRIPTIOI~T
SPECIFICATION FOR THE INFORMATION NERVOUS SYSTEM
Overview
The IVer~Jam semantic bro~~ser will allovJ the user to subscribe and
unsubscribe to/from
knowledge communities (agencies) for a given profile. These lmowledge
communities will be
readily available to the user underneath the profile entry in the semantic
environment. In
addition, these knowledge communities will be queried by default for intrinsic
alerts, context
panels, and etc. whenever results are displayed for any request created using
the same profile.
The semantic environment includes state indicating the subscribed knowledge
conununities for each profile. The client-side semantic query processor (SQP)
uses this
information for dynamic requests that start from results for requests of a
given profile (the SQP
will ask the semantic runtime client for the knowledge communities for the
profile and then issue
XML Web Service calls to those knowledge communities as appropriate).

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Figures 22A and 22B show the user interface for the knowledge community
subscription
and un-subscription. The dialog box has combo boxes allowing the user to
filter by profile, to
view all, new, subscribed, suggested, and un-subscribed communities, by
industry and area of
interest, by keywords, by publishing point (all publishing points, the local
area network, the
enterprise directory, and the global knowledge community directory), and by
creation time
(anytime, today, yesterday, this week, and last week). The semantic runtime
client queries the
publishing point endpoint listeners (for each publishing point) using the
filters. It then gathers
the results and displays them in the results pane. The user is also able to
view the categories of
each knowledge community in the results pane via a combo box. Figure 20B
illustrates the
bottom portion of the Knowledge Communities Dialog Box.
I. CLIENT-SIDE SEMANTIC QUERY DOCUMENT SPECIFICATION FOR THE
INFORMATION NERVOUS SYSTEM
1. ~~a~garatgc query l~Iar~up Language (~QI~dL) ~vegvaevv
In the currently preferred embodiment, the Nervana Semantic DHTML Behavior is
an
Internet Explorer DHTML Behavior that, from the client's perspective, every
thing it
understands as a query document. The client opens 'query documents,' in a
manner resembling
how a word processor opens 'textual and comlaound documents.' The l~Ter5,~ana
client i~
primarily responsible for processing a Nervana semantic query document and
rendering the
results. A Nervana semantic query document is expressed and stored in form of
the Nervana
Semantic Query Markup Language (SQML). This is akin to a "semantic file
format."
In the preferred embodiment, the SQML semantic file format comprises of the
following:
~ Head - The 'head' tag, like in the case of HTML, includes tags that describe
the
document.
~ Title - The title of the document.
~ Comments - The comments of the document.
~ UserName - The username of the document creator.
~ SystemName - The systemname of the device on which the document was
created.
~ Subject - The subject of the document.
~ Creator ~ The creator of the document.
91

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Company - The company in which the document was created.
~ RequestType - This indicates the type of request. It can be "smart request"
(indicating requests to one or more information community web services) or
"dumb request" (indicating requests to one or more local or network
resources).
~ ObjectType - This fully qualifies the type of objects returned by the query.
~ URI - The location of the document.
~ CreationTime - The creation time of the document.
~ LastModifiedTime - The last modified time of the document.
~ LastAccessedTime - The last accessed time of the document.
~ Attributes - The attributes of the document, if any.
~ RevisionNumber - The revision number of the document.
~ Language - The language of the document.
~ Version - this indicates the version of the query. This allows the web
service's
semantic query processor to return results that are versioned. For instance,
one
version of the browser can use V 1 of a query, and another version can use V2.
This allows the web service to provide backwards compatibility both at the
resource level (e.g., for agents) and at the link level.
~ Targets - This indicates the, names and the URLs of the information
community
web services that the query document targets.
~ Type - this indicates the type of targets. This can be "targetentries," in
which
case the tag includes sub-tags indicating the actual web seuvice targets, or
"allsubscribedtargets," in which case the query processor uses all subscribed
infomnation communities.
~ Categories - This indicates the list of category URLs that the query
document
refers to. Each "category" entry contains a name attribute and a URI attribute
that
indicates the URL of the Knowledge Domain Server (KDS) from which the
category came.
o 'type - this indicates the type of categories. This can lae either
"categoryentries,"
in which case the sub-tag refers to the list of category entries,
"allcategories," in
which case all categories are requested from the information community web
services, or "myfavoritecategories," in which case the query processor gets
the
user's favorite categories and then generates compiled SQML that contains
these
categories (this compiled SQML is then sent to the server(s)).
~ Query - This is the parent tag for all the main query entries of the query
document
~ Resource - The reference to the 'dumb' resource being queried. Examples
include file paths, URLs, cache entry identifiers, etc. These will be mapped
to
actual resource managers components by the interpreter.
~ Type - The type of resource reference, qualified with the namespace.
Examples of
defined resource reference types are: nervana:url (this indicates that the
resource
reference is a well-formed standard Internet URL, or a custom Nervana URL like
'agent://..."), nervana:filepath (this indicates that the resource reference
is a path
to a file or directory on the file-system), and nervana:namespaceref (this
indicates
that the resource comes from the client semantic namespace).
92

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Uri - This indicates the universal resource identifier of the resource. In the
case
of paths and Internet URLs, this indicates the URL itself. In the case of
namespace entries, this indicates the GUID identifier of the entry.
Mid - This indicates the metadata identifier, which is used by the SQML
interpreter to map the resource to the metadata section of the document. The
metadata id is mapped to the same identifier within the metadata section.
~ Args - This indicates the arguments of the resource identifier.
~ Links - this indicates the reference to the semantic links (for "targets"
only)
~ Type - this indicates the type of links. This can be "linkentries,"
indicating the
links are explicit entries.
~ LinkEntries - this indicates the details of a link entry.
~ Predicate - this indicates the type of predicate for the link. For instance,
the
predicate "nervana:relevantto" indicates that the query is "return all objects
from
the resource R that are relevant to the obj ect O," where R and O and the
specified
resource and object, respectively. Other examples of predicates include
nervana:reportsto, nervanaaeammateof, nervana:from, nervanaao, nervana:cc,
nervana:bcc, nervana:attachedto, nervanaaentby, nervanaaentto,
nervana:postedon, nervana:containstext, etc.
~ Type - this indicates the type of object reference indicates in the 'Link'
tag.
Examples include standard XML data types like xmlatring, xml:integer, Nervana
equivalents of same, custom Nervana types like nervana:datetimeref (which
could
refer to object references like 'today' and 'tomorrow'), and any standard
Internet
URL (IiTTP, FTP, etc.) or Nervana URL (objects://, etc.) that refers to an
object
that Nervana can process as a semantic XML obj ect.
~ Metadata - this contains the references to the metadata entries.
~ MetadataEntry - this indicates the details of a metadata entry.
~ Mid - this indicates the metadata identifier (GUID).
o ~lalue - this indicates the nmtadata itself
EX~IPLE: DOCUMENTS (INFORMA.TION OR CONTEXT-EASED)
<?xml version--"1.0" encoding--"utf 8"?>
<sqml>
<head
requesttype="smart request"
obj ecttyp e--"context\headlines"
uri="c:\foo's\bar.pd~'
creationtime="foo"
lastmodifiedtime="foo"
lastaccessedtime="foo"
attributes="0"
revisionnumber="0"
language--"foo"
version--"foo" />
<title>foo</title>
93

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
<comments>foo</comments>
<username>foo</username>
<systemname>foo</systemname>
<subj ect>foo</subj ect>
<creator>foo</creator>
<company>foo</company>
<targets>
<target
name--"Marketing"
reftype--"uri"
ref--"kisp://marketingldefault.wsdl"
/>
<target
name--"Research"
reftype--"uri"
ref--"kisp://research/default.wsdl"
/>
</targets>
<categories>
<category
name--"renters\pharmaceuticals\biotechnology"
reftype="uri"
ref--' 'kdsp ://renter s. com/categories.wsdl?id=4.5"
/>
<category
name--"renters\pharmaceuticals\life sciences"
reftype="uri"
ref--"kdsp://renters.com/categories.wsdl?id=57"
/>
</categories>
/>
<resources>
<resource
name--"foo"
type--"information\documents\general document"
reftype="nervana: filepath"
ref--"file://c:\bar.doc"
mid--"7886e4a0-S Sd9-45 ac-a084-97adc6fffdOf'
~.gs ""
/>
<resource
name--"foo"
type--"information\all information"
reftype="nervana:url"
red"file://c:\bar.doc"
mid--"Olfc64a3-c068-4339-bc97-17e5ff37e93f'
94

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
args-""
/>
<resource
name--"foo"
type--"information\all information"
reftype="nervana:folderpath"
ref--"file://c:\"
mid--"f8cc39c3-e4fb-4a29-beta-d2faf36eb3a0"
args--"includesubfolders=true"
/>
<resource
name--"foo"
type--"information\documents\general document"
reftype="nervana:url"
red"http://www.bar.com/doc.htm"
mid--"fbcc39c3-e4~-4a29-beta-d2faf36eb3 a0"
Wigs ""
/>
<resource
name--"foo"
type--"information\documents\general document"
reftype="nervana:url"
ref--"ftp://gate.com/doc.txt"
mid="f8cc39c3-e4fU-4a29-beta-d2faf36eb3a0"
args ""
/>
<resource
name="foo"
type=66information\docunmnts\general docurrmzlt"
reftype="nervana:filepath"
red"file://\\servers\server\file.pdf
mid="1b870a25-4e98-45d8-a444-f0283a495357"
~.gs=""
/>
<resource
name---"foo"
type--"information\documents\text document"
reftype="nervanaaext"
red""
mid="7886e4a0-55d9-45ac-a084-97adc6fffdOf
args=""
/>
<resource
name="foo"
type="information\documents\general document"
reftype="nervana: cacheentr~'

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
red"ef~c90ea-282d-46d6-b355-ac8a4fc2f3e5"
mid--""
~.gs ""
/>
<resource
name-"foo"
type="information\email\email message"
reftype="nervana:url"
red"request://email. all@ibm.com"
mid--""
args-""
/>
<resource
name----"foo"
type="information\email\email annotation"
reftype--"nervana:url"
ref--"objects://rad.com/agency.asp"
mid--""
args=""
/>
<resource
name--"foo"
type 6'infonnation\documents\general document"
reftype="nervana:url"
ref--"obj ects: //rad. conn/agency. asp"
mid=""
~.gs=""
/>
<resource
name--"foo"
type--"information\documents\general document"
reftype="nervana:url"
red"obj ects ://rad. com/agency. asp"
mid="''
args=""
/>
<resource
name--"foo"
type="information\documents\general document"
reftype="nervana:url"
red"request://docurnents.all@intel.com"
mid--""
~.gs ""
/>
</resources>
<links>
96

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
clink
/>
clink
/>
clink
/>
clink
/>
clink
operator="and"
predicate="nervana:relatedto"
name--"foo"
type--"information\documents\general document"
reftype="nervana: filepath"
red"file://c:\foo.doc"
mid--"7886e4a0-SSd9-45ac-a084-97adc6fffd0~'
args--""
operator="and"
predicate---"nervana: contains"
name--"foo"
type="information\documents\general document"
reftype"nervanaaext"
ref--""
mid="46ea76cb-1383-4885-af6f Oe0fc6a66896"
~,gs ~"'
operator--"and'9
predicate=6'nervana:postedon"
name--' 'foo"
type="types\datetime"
reftype="nervana:datetimeref"
ref--""
mid="3fa64c3c-4754-4380-91b5-521299036c62"
~,gs-~,~'
operator--"and"
predicate="nervana:relatedto"
name="foo"
type--"information\documents\general document"
reftype="nervana:url"
ref--"kisp://98@in.com/m.asp"
mid="c2649c39-alc3-4ca8-ae8d-c85c04372e9a"
args ""
operator="and"
predicate="nervana:isofpriority"
name--"foo"
type="types\priority"
reftype="nervana:priority"
97

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
red""
mid--"69bbc048-98c8-4f76-8edf Sa00ce91c183"
args--""
/>
</links>
<metadata>
<metadataentry
mid--"7886e4a0-SSd9-45ac-a084-97adc6fffd0~'
reftype--"uri"
ref--"file://c:\foo\bar.pdf ' />
<value>
<document>
<title>scenario modelling</title>
<type>text</type>
<format>application/pdf</format>
<filepath>c:\foo\bar.pdf</filepath>
<shortfilename>bar.pdf</shortfilename>
<creationtime>foo</creationtime>
<lastmodifiedtime>foo</lastmodifiedtime>
<lastaccessedtime>foo</lastaccessedtime>
<attributes>0</attributes>
<si~e>0</size>
<subj ect>foo</subj ect>
<creator>foo</creator>
<manager>foo</manager>
<company>foo</company>
<category>foo</category>
<keywords>foo</keywords>
<comnients>foo</comments>
<hlinkbase>foo</hlinkbase>
<template>foo</template>
<lastsavedby>foo</lastsavedby>
<revisionnumber>0</revisionnumber>
<totaleditingtime>foo</totaleditingtime>
<numpages>0</numpages>
<numparagraphs>0</numparagraphs>
<numlines>0</numlines>
<numwords>0</numwords>
<numcharacters>0</numcharacters>
<numcharacterswithspaces>0</niuncharacterswithspaces>
<numbytes>0</numbytes>
<language>foo</language>
<version>foo</version>
<abstract>foo</abstract>
</document>
98

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
</value>
/>
<metadataentry
mid--"bfcb12b4-70bb-473a-847c-ebffe187828p'
reftype="uri"
red"file://c:\foo\bar.pd~' />
<value>
<email>
<title>scenario modelling</title>
<type>text</type>
<format>applicatioi~/pdf</format>
<filepath>c:\foo\bar.pdf</filepath>
<shortfilename>bar.pdf</shortfilename>
<creationtime>foo</creationtime>
<lastmodifiedtime>foo</lastmodifiedtime>
<lastaccessedtime>foo</lastaccessedtime>
<attributes>0</attributes>
<size>0</size>
<subj ect>foo</subj ect>
<creator>foo</creator>
<manager>foo</manager>
<company>foo</company>
<category>foo</category>
<keywords>foo</keywords>
<comments>foo</comments>
<hlinkbase>foo</hlinkbase>
<template>foo</template>
<lastsavedby>foo</lastsavedby>
<re~risionnumber>0</re~isionnumber>
<totaleditingtime>foo</totaleditingtime>
<numpages>0</numpages>
<numparagraphs>0</numparagraphs>
<numlines>0</numlines>
<numwords>0</numwords>
<numcharacters>0</numcharacters>
<numcharacterswithspaces>0</numcharacterswithspaces>
<numbytes>0</numbytes>
<language>foo</language>
<version>foo</version>
<abstract>foo</abstract>
</email>
</value>
/>
</metadata>
</sqml>
99

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
2. SQML Generation
Preferably, SQML is generated in any one or more of several possible ways:
~ By creating a smart request
~ By creating a local request
~ By creating an entity
~ By opening one or more local documents in the semantic browser
~ By the client (dynamically) - in response to a drag and drop, smart copy and
paste, intrinsic alert, context panel/link invocation, etc.
3. SQML Parsing
In some embodiments in some situations, SQML that gets created on the client
might not
be ready (in real-time) for remote consumption - by the server's XML web
service or at another
machine site. This is especially likely to be the case when the SQML refers to
local context such
as documents, Entities, or Smart Requests (that are identified by unique
identifiers in the
semantic environment).1 In the preferred embodiment, the client generally
creates SQML that is
ready for remote consumption. Preferably, it does this by caching the metadata
for all references
in the metadata section of the document. This is preferable because in some
cases, the resource
or object to which the reference points might no longer exist when the query
is invoked. For
instance, a user might drag and drop a document from the W ternet to a smart
request in order to
generate a nevi relational request. The client extracts the metadata
(including the summary from
the link and inserts the metadata into the SQML. Because the resolution of the
query uses only
the me~adata, the query is ready for consumption once the metadata is inserted
into the SQML
document. However, the link that the object refers to might not exist the day
after the user found
it. In such a case, even if the user invokes the relational request after the
link might have ceased
to exist, the request will still work because the metadata would already have
been cached in the
SQML.
The client SQML parser performs "lazy" updating of metadata in the SQML. When
the
request is invoked, it attempts to update the metadata of all parameters
(resources, etc.) in the
SQML to handle the case where the objects might have changed since they were
used to create
I Blenders (or collections) contain references to smart requests.
100

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the relational request. If the object does not exist, the client uses the
metadata it already has.
Otherwise, it updates it and uses the updated metadata. That way, even if the
obj ect has been
deleted, the user experience is not interrupted until the user actually tries
to open the object from
whence the metadata came.
J. SEMANTIC CLIENT-SIDE RUNTIME CONTROL API SPECIFICATION FOR
THE INFORMATION NERVOUS SYSTEM
1. Introducing the Nervana Semantic Runtime Control - Overview
In the preferred embodiment, the Nervana Semantic Runtime Control is an
ActiveX
control that exposes properties and methods for use in displaying semantic
data using the
Nervana semantic user experience. The control will be primarily called from
XSLT skins that
take XML data (using the SRML schema) and generate DHTML+TIME or SVG output,
consistent with the requirements of the Nervana semantic user experience.
Essentially, in this
embodiment, the Nervana control encapsulates the "SDI" on top of which the
XSLT slcins sit in
order to produce a semantic content-driven user experience. The APIs listed
below illustrate the
functionality that will be exposed or made available by the final API set in
the preferred
embodiment.
The l~crvana ~c~aantic ~untimc control API
a. EnumObjectslnl~amesgacePath
INTRODUCTION
The EnumObjectslnNamespacePath method returns the objects in a namespace path.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to open a namespace path in order for the user to navigate
the namespace from
within the semantic browser.
PROTOTYPE
SCODE
EnumObj ectsInNamespacePath(
[in] BSTR Path,
101

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
b. CompileSemanticQueryFromBuffer
INTRODUCTION
The CompileSemanticQueryFromBuffer method opens an SQML buffer and compiles it
into one or more execution-ready SQML buffers. For instance, an SQML file
containing a
blender will be compiled into SQML buffers representing each blender entry. If
the blender
contains blenders, the blenders will be unwrapped and an SQML buffer will be
returned for each
contained blender. A compiled or "execution-ready" SQML buffer is one that can
be
semantically processed by an agency. The implication is that a blender that
has agents from
multiple agencies will have its SQML compiled to buffers with the appropriate
SQML from each
agency.
Note: If the buffer is already compiled, the method returns S FALSE and the
return
arguments are ignored.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to compile an SQI~IIL buffer- and retrieve generated
"compiled code" that is
ready for execution. In typical scenarios, the application or skin will
compile an SQML buffer
and then prepare frame windows where it wants each individual SQML query to
sit. It can then
issue individual SQML semantic calls by calling OpenSemanticQueryFromBuffer
and then have
the results displayed in the individual frames.
PROTOTYPE
SCODE
CorripileS emanticQueryFromBuffer(
[in] BSTR SQMLBuffer,
[in] DWORD Flags,
[out] DWORD *pdwNumCompiledBuffers,
[out] BSTR *pbstrCompiledBuffers );
102

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
c. OpenSemanticQueryFromBuffer
INTRODUCTION
The OpenSemanticQueryFromBuffer method opens an SQML buffer and asynchronously
fires the XML results (in SRML) onto the DOM, from whence a Nervana skin can
sink the
event. Note that in this embodiment the SQML has to be "compiled" and ready
for execution. If
the SQML is not ready for execution, the call will fail. To compile an SQML
buffer, call
CompileSemanticQueryFromBuffer.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to open a compiled SQML buffer.
PROTOTYPE
SCODE
OpenSemanticQueryFromBuffer(
[in] BSTR SQMLBuffer,
[in] DWORD Flags,
[out] GUS *pQuerylD );
d. GetSemanticQueryBufferFromFile
IhTTR~DUC'B"I~h~T
The GetSemanticQueryBufferF°romF'ile method opens an SQML file, and
returns the
buffer contents. The buffer can then be compiled and/or opened.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to convert an SQML file into a buffer before processing it.
PROTOTYPE
SCODE
GetSemanticQueryBufferFromFile
[in] BSTR SQMLFiIePath,
[in] DWORD FileOpenFlags,
[out] BSTR *pbstrSQMLBuffer );
103

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
e. GetSemanticQuerySufferFromNamespace
INTRODUCTION
The GetSemanticQueryBufferFromNamespace method opens a namespace object, and
retrieves its SQML buffer.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to open an SQML buffer when it already has access to the id
and path of the
namespace object.
PROTOTYPE
SCODE
Gets emanticQueryBufferFromNamespace(
[in] GU>D Objector,
[in] BSTR Path,
[out] BSTR *pbstrSQMLBuffer );
f c~et~en~antic~ueryBufferFromUl~L
INTRODUCTION
The GetSemanticQueryBufferFromURL method wraps the URL in an SQML buffer, and
returns the buffer.
USAGE ~CEI'~lAl~1~
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to convert an URL of any type to SQML. This can include file
paths, HTTP
URLs, FTP URLs, Nervana agency object URLs (prefixed by "wsobject://") or
Nervana agency
URLs (prefixed by "wsagency://").
PROTOTYPE
SCODE
Gets emanticQueryBufferFromURL(
[in] BSTR URL,
[out] BSTR *pBuffer );
104

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
g. GetSemanticQueryBufferFromClipboard
INTRODUCTION
The GetSemanticQueryBufferFromClipboard method converts the clipboard contents
to
SQML, and returns the buffer.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to get a semantic query from the clipboard. The application
can then load the
query buffer.
PROTOTYPE
SCODE GetSemanticQueryBufferFromClipboard( [out] BSTR *pBuffer );
h. Stop
INTRODUCTION
The Stop method stops current open request.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to stop a load request is just issued.
PROTOT'~ PE
SCODE Stop( [in] GUS Query );
i. Refresh
INTRODUCTION
The Refresh method refreshes the current open request.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
call this method to refresh the currently loaded request.
PROTOTYPE
SCODE Refresh( [in] GU1D Querym );
105

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
j. CreateNamespaceObject
INTRODUCTION
The CreateNamespaceObject method creates a namespace object and returns its
GUm.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
typically call this method to create a temporary namespace object when a new
query document
has been opened.
PROTOTYPE
SCODE
CreateNamespaceObj
ect(
[in]BSTR Name,
[in]BSTR Description,
[in]BSTR QueryBuffer,
[in]LONG AgentObjectType,
[in]LONG Attributes,
[in]LONG NamespaceObjectType,
[out]GUS ~p~bject~ );
k. DeleteNamespaceObject
INTRODUCTION
The DeleteNmnespaccObje~,t method deletes a namespac~ objee,t.
USAGE ~CE1~TAP~1(~
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
typically call this method to delete a temporary namespace object.
PROTOTYPE
SCODE DeleteNamespaceObject( [in] GUm Objector );
1. CopyObject
INTRODUCTION
The CopyObject method copies the semantic object to the clipboard as an SQML
buffer
using a proprietary SQML clipboard format. The object can then be "pasted"
onto agents for
relational semantic queries, or used as a lens over other objects or agents.
106

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
USAGE SCENARIO
A Nervana skin will typically call the CopyObject method when the user clicks
on the
"Copy" menu option - off a popup menu on the object.
PROTOTYPE
SCORE CopyObject( [in] BSTR ObjectSRML );
m. CanObjectBeAnnotated
INTRODUCTION
The CanObjectBeAnn.otated method checks whether the given object can be
annotated.
USAGE SCENARIO
A Nervana skin will typically call the CanObjectBeAnnotated method to
determine
whether to show UI indicating the "Annotate" command.
PROTOTYPE
SCORE CanObjectBeAimotated( [in] BSTR bstrObjectSRML );
n. AnnotatcObjcct
INTRODUCTION
The AnnotateObj ect method involves the currently installed email client and
initializes it
tea send ~n mnail annotation of the object to the ernail agent caf the ~.gency
frown ~rhence the object
came.
USAGE SCENARIO
A Nervana skin will typically call the AnnotateObject method when the user
clicks on the
"Annotate" menu option - off a popup menu on the obj ect.
PROTOTYPE
SCORE AnnotateObject( [in] BSTR bstrObjectSRML );
o. CanObjectBePublished
INTRODUCTION
The CanObjectBePublished method checks whether the given object can be
published.
107

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
USAGE SCENARIO
A Nervana skin will typically call the CanObjectBePublished method to
determine
whether to show UI indicating the "Publish" command.
PROTOTYPE
SCODE CanObjectBePublished ( [in] BSTR bstrObjectSRML );
p. PublishObject
INTRODUCTION
The PublishObj ect method invokes the currently installed email client and
initializes it to
send an email publication of the object to the email agent of the agency from
whence the object
came.
USAGE SCENARIO
A Nervana skin will typically call the PublishObject method when the user
clicks on the
"Publish" menu option - off a popup menu on the obj ect.
PROTOTYPE
SCODE AnnotateObject( [in] BSTR bstrObjectSRML );
q. OpenObjectContents
I~.TTR~DUCTI~1~T
The OpenObjectContents method opens the object using an appropriate viewer.
For
instance, an email object will be opened in the email client, a document will
be opened in the
browser, etc..
USAGE SCENARIO
A Nervana skin will typically call the OpenObjectContents method when the user
clicks
on the "Open" menu option - off a popup menu on the object.
PROTOTYPE
SCODE OpenObjectContents ( [in] BSTR ObjectSRML );
los

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
r. SendEmailToPersonObject
INTRODUCTION
The SendEmailToObject method is called to send email to a person or customer
object.
The method opens the email client and initializes it with the email address of
the person or
customer obj ect.
USAGE SCENARIO
A Nervana skin will typically call the SendEmailToObject method when the user
clicks
on the "Send Email" menu option - off a popup menu on a person or customer obj
ect.
PROTOTYPE
SCODE SendEmailToObject( [in] BSTR ObjectSRML );
s. GetObjectAnnotations
INTRODUCTION
The GetObjectAnnotations method is called to get the annotations an object has
on the
agency from whence it came.
USAGE SCENARIO
A Nervana skin will typically call the GetObjectAnnotations method when it
wants to
display the titles of the annotations an object has - for instance, in a popup
menu or when it
wants to display the annotations metadata in a window.
PROTOTYPE
SCODE
GetObj ectAnnotations(
[in] BSTR ObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
t. IsObjectMarkedAsFavorite
INTRODUCTION
The IsObj ectMarkedAsFavorite method is called to check whether an obj ect is
marked as
a favorite on the agency from whence it came.
109

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
USAGE SCENARIO
A Nervana skin will typically call the IsObjectMarkedAsFavorite method to
determine
what UI to show - either the "Mark as Favorite" or the "Unmark as Favorite"
command. If the
object cannot be marked as a favorite (for instance, if it did not originate
on an agency), the error
code E INVALIDARG is returned.
PROTOTYPE
SCODE
IsObjectMarkedAsFavorite( in] BSTR ObjectSRML );
u. MarkObjectAsFavorite
INTRODUCTION
The MarkObjectAsFavorite method is called to mark the object as a favorite on
the
agency from whence it came.
USAGE SCENARIO
A Nervana skin will typically call the MarkObj ectAsFavorite method when the
user
clicks on the "Mark as Favorite" command.
PROTOTYPE
SCODE
MarkAsFavorite( in] BSTR ObjectSRML );
v. IJa~~aark~bjectA~Favoritc
INTRODUCTION
The UmnarkObj ectAsFavorite method is called to urunark the obj ect as a
favorite on the
agency from whence it came.
USAGE SCENARIO
A Nervana skin will typically call the UnmarkObjectAsFavorite method when the
user
clicks on the "Umnark as Favorite" command.
110

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
PROTOTYPE
SCODE
UnmarkAsFavorite( in] BSTR ObjectSRML );
w. IsSmartAgentOnClipboard
INTRODUCTION
The IsSmartAgentOnClipboard method is called to check whether a smart agent
has been
copied to the clipboard.
USAGE SCENARIO
A Nervana skin will typically call the IsSmartAgentOnClipbOard method when it
wants
to toggle the user interface to display the "Paste" icon or when the "Paste"
command is involved.
PROTOTYPE
SCODE
IsSmartAgentOnClipboard();
x. GetSmartLensQueryBuffer
Il'~T'1CI~~DUC~1CI~I'~T
The GetSmartLensQueryBuffer method is called to get the query buffer of the
smart lens.
This returns the SQML of the query that represents the objects on the smart
agent that is on the
clipboard, and which are semantically relevant to a given object.
IJ~AGE ~CEI'~T1~
A Nervana skin will typically call the GetSmartLensQueryBuffer method when the
user
hits "Paste as Smart Lens" to invoke the smart lens off the smart agent that
is on the clipboard.
PROTOTYPE
SCODE
GetSmartLensQueryBuffer(
[in] BSTR ObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
111

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
y. OpenObjectContents
INTRODUCTION
The OpenObjectContents method opens the object using an appropriate viewer.
For
instance, an email object will be opened in the email client, a document will
be opened in the
browser, etc.
USAGE SCENARIO
A Nervana skin will typically call the OpenObjectContents method when the user
clicks
on the "Open" menu option - off a popup menu on the object.
PROTOTYPE
SCODE OpenObjectContents( [in] BSTR ObjectSRML );
Part
3. Email Control APIs
a. lEmail Get~'romlainlg~bjects
II~TRODUCTYOh~
The Email GetFromLinkObjects method is called to get the metadata for the
"From"
links on an email object from the agency from whence it carne.
~J~~W'~ ~cWI~A~~1~
A Nervana skin will typically call the Email GetFromLinkObj acts method when
it wants
to navigate to the "From" list from an email object, or to display a popup
menu with the name of
the person in the "From" list.
PROTOTYPE
SCODE
Email_GetFromLinkObj acts(
[in] BSTR EmailObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
112

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
b. Email GetToLinkObjects
INTRODUCTION
The Email GetFromLinkObj ects method is called to get the metadata for the
"To" links
on an email object from the agency from whence it came.
USAGE SCENARIO
A Nervana skin will typically call the Email GetToLinkObjects method when it
wants to
navigate to the "To" list from an email object, or to display a popup menu
with the name of the
person in the "To" list.
PROTOTYPE
SCODE
Email_GetToLinkObj ects( .
[in] BSTR EmailObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
c. Email_Get~''LcILinl~~bjects
INTRODUCTION
The Email GetCcLinkObjects method is called to get the metadata for the "CC"
links on
an entail object from the agency from whence it came.
U~~GE ~(~EI'~TA L~If
A Nervana skin will typically call the Email GetCcLinlcObjects method when it
wants to
navigate to the "CC" list from an email object, or to display a popup menu
with the name of the
person in the "CC" list.
PROTOTYPE
SCODE
Email_GetCcLinkObj ects(
[in] BSTR EmailObjectSRML,
[in] LONG QueryMask, a
[out] BSTR *pQueryRequestGuid );
113

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
d. Email GetBccLinkObjects
INTRODUCTION
The Email GetBccLinkObjects method is called to get the metadata for the "BCC"
links
on an email obj ect from the agency from whence it came.
USAGE SCENARIO
A Nervana skin will typically call the Email GetBccLinkObj ects method when it
wants
to navigate to the "BCC" list from an email object, or to display a popup menu
with the name of
the person in the "BCC" list.
PROTOTYPE
SCODE
Email GetBccLinkObjects(
[in] BSTR EmailObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
e. Email GetAttaclaanentlLinl~~bject~
INTRODUCTION
The Email GetAttachmentLinkObjects method is called to get the metadata for
the
"Attachment" links on an email obj ect from the ~.gency from whence it came.
TIJ~AGE ~~",lEI'~TAI~lf~
A Nervana skin will typically call the Email GetAttachmentLinkObjects method
when it
wants to navigate to the "Attachments" link from an email object, or to
display a popup menu
with the titles of the attachments in the "Attachments" list.
PROTOTYPE
SCODE
Email_GetAttachmentLinkObj ects(
[in] BSTR EmailObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
114

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
4. Person Control APIs
a. Person GetDirectReports
INTRODUCTION
The Person GetDirectReports method is called to get the metadata for the
"Direct
Reports" links on a person object from the agency from whence it came.
USAGE SCENARIO
A Nervana skin will typically call the Person GetDirectReports method when it
wants to
navigate to the "Direct Reports" link from a person object, or to display a
popup menu with the
names of the direct reports in the "Direct Reports" list.
PROTOTYPE
SCODE
Person_GetDirectReports(
[in] BSTR EmailObjectSRML,
[in] LONG QueryMask,
[out] BSTR ~'pQueryRequestCauid );
b. Person GetDistributionLists
INTRODUCTION
The Person GetDistributionLists method is called to get the metadata for the
"Member of
Distributi~n Lists"' links on a person object from the agency from whence it
came.
USAGE SCEI~ARI~
A Nervana skin will typically call the Person GetDistributionL,ists method
when it wants
to navigate to the "Member of Distribution Lists" link from a person object,
or to display a
popup menu with the names of the distribution lists of which the person is a
member.
PROTOTYPE
SCODE
Person_GetDistributionLists(
[in] BSTR PersonObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
115

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
c. Person GetInfoAuthored
INTRODUCTION
The Person GetInfoAuthored method is called to get the metadata for the "Info
Authored
by Person" links on a person object from the agency from whence it came.
USAGE SCENARIO
A Nervana skin will typically call the Person GetInfoAuthored method when it
wants to
navigate to the "Info Authored by Person" link from a person obj ect, or to
display a preview
window with time-critical or recent information that the person authored.
PROTOTYPE
SCODE
Person_GetInfoAuthored(
[in] BSTR PersonObjectSRML,
[in] BOOL SemanticQuery,
[in] LONG QueryMask,
[out] BSTR °'°pQueryRequestGuid );
d. Person GetInfoAnnotated
INTRODUCTION
The Person GetInfoAnnotated method is called to get the metadata for the "Info
Annotated lay Person" links on a person object from tlhe agency from whence it
came.
USAGE SCEl~TARI~
A Nervana skin will typically call the Person GetInfoAnnotated method when it
wants to
navigate to the "Info Annotated by Person" link from a person object, or to
display a preview
window with time-critical or recent information that the person annotated.
PROTOTYPE
SCODE
Person_GetInfoAnnotated(
[in] BSTR PersonObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
116

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
e. Person GetAnnotationsPosted
INTRODUCTION
The Person GetAnnotationsPosted method is called to get the metadata for the
"Annotations Posted by Person" links on a person object from the agency from
whence it came.
USAGE SCENARIO
A Nervana skin will typically call the Person GetAnnotationsPosted method when
it
wants to navigate to the "Annotations Posted by Person" link from a person
object, or to display
a preview window with time-critical or recent annotations that the person
posted.
PROTOTYPE
SCODE
Person_GetAnnotationsPosted(
[in] BSTR PersonObjectSRML,
[in] LONG QueryMask,
[out] BSTR *pQueryRequestGuid );
f l~er~oa~ ~endlEx~aaafll'o
INTRODUCTION
The Person SendEmailTo method is called to send email to a person or customer
object.
The method opens the email client and initialises it with the email address of
the person or
customer obj ect.
USAGE SCENARIO
A Nervana skin will typically call the Person SendEmailTo method when the user
clicks
on the "Send Email" menu option - off a popup menu on a person or customer
object.
PROTOTYPE
SCODE Person SendEmailTo( [in] BSTR ObjectSRML );
117

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
5. System Control Events
a. Event:OnBeforeQuery
INTRODUCTION
The OnBeforeQuery event is fired before the control issues a query to
resources
consistent with the current semantic request.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
sink this event if it wants to cancel a query or cache state before the query
is issued.
PROTOTYPE
VOm
OnB
eforeQuery(
[in] GUID Querym,
[in] BSTR QueryBuffer,
[in] DWORD QueryMask,
[in] DWORD Flags,
[out]BOOL Cancel );
b. Event:OnQueryBegin
INTRODUCTION
The OnQueryBegin event is fired when the control issues the first query to a
resource
consistent with the current semantic request.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
slcin will
sink this event if it wants to cache state or display status information when
the query is in
progress.
PROTOTYPE
VOID
OnQueryBegin( [in] GUm Objector );
c. Event:OnQueryComplete
INTRODUCTION
The OnQueryComplete event is fired before the control issues a query to
resources
consistent with the current semantic request.
118

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
sink this event if it wants to cancel a query or cache state before the query
is issued.
PROTOTYPE
VOID
OnQueryComplete( [in] GUID QuerylD );
d. Event:OnQueryResultsAvailable
INTRODUCTION
The OnQueryResultsAvailable event is fired when there are available results of
an
asynchronous method call. The event indicates the request GUID, via which the
caller can
uniquely identify the specific method call that generated the response.
USAGE SCENARIO
A Nervana client application (for instance, the semantic browser) or a Nervana
skin will
sink this event to get responses to method calls on the control.
PROTOTYPE
VOID
OnQueryResultsAvailable(
[in] GUS QueryID,
[in] SCODE QueryResult,
[in] ESTR Results,
[in] DWORD NumResults,
[in] DWORD QueryMask,
[in] VARIANT ResultsParam
);
e. Appendix A
QUERY MASK VALUES
#define QM RESULTS 0x01
#define QM RESULTCOUNT 0x02
#define QM NEWRESULTS 0x04
#define QM NEWRESULTCOUNT 0x08
#define QM DEFAULT ( QM RESULTS )
Example:
Person GetInfoAuthored(
119

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
PersonObj ectSRML,
QM_RESULTS ~ QM_RESULTCOUNT,
&QueryRequestGuid );
K. SECURITY SPECIFICATION FOR THE INFORMATION NERVOUS SYSTEM
1. Authorization
INTRODUCTION
The 'People' DSA will be initialized with an LDAP Directory URL and Group
Name.
The 'Users' DSA will also be initialized with an LDAP Directory URL and Group
Name.
Typically, the 'Users' will be a subset of 'People.' For instance, a
pharmaceuticals corporation
might install a KIS for different large pharmaceutical categories (e.g.,
Biotechnology, Life
Sciences, Pharmacology, etc). Each of these will have a group of users that
are knowledgeable
or interested in that category. However, the KIS will also have the 'People'
group populated
with all employees of the corporation. This will enable users of the KIS to
navigate to members
of the entire employee population even though those members are not users of
the ISIS. W
addition, the inference engine will be able to infer expertise with semantic
links off people that
are in the corporation, not necessarily just users of the KIS.
This is also advantageous for access control at the KIS level - this
complements or
supplements access control provided by the application serer at the W eb
service layer. The
Users group will contain people that have access to the KIS knowledge.
However, the People
group will contain people that are relevant to the KIS knowledge, even though
those people don't
have access to the KIS.
Both People and Users DSA populate the People table in the Semantic Metadata
Store
(SMS) and indicate the object type id appropriately. Note that preferably the
passwords are NOT
stored in the People table in the SMS.
The Users DSA also populates the User Authentication Table (UAT). This is an
in-
memory hash table that maps the user names to passwords. The server's Web
service will
implement the IPasswordProvider interface or an equivalent. The implementation
of the
120

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
PasswordProvider object will return the password that maps to a particular
user name. The C#
example below illustrates this:
namespace WSDK_Security
f
public class PasswordProvider : Microsoft.WSDK.Security.IpasswordProvider
f
public string GetPassword( string username )
f
return "opensezme";
The following C# code shows how the Web service can retrieve the user
information
after the user has been authenticated:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using Microsoft.WSDK.Security;
using Microsoft.WSDK;
namespace WSDK Security
public class Seuvicel : System.Web.Ser~%ices.WebSer~iice
f
[WebMethod]
public string PersonalHello()
f
string response = "";
SoapContext requestContext = HttpSoapContext.RequestContext;
if (requestContext == null)
f
throw new ApplicationException("Non-SOAP request.");
foreach (SecurityToken tok in requestContext.Security.Tokens)
f
if (tok is UsernameToken)
f
response +_ "Hello " + ((UsernameToken)tok).Username;
)
121

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
)
)
)
return response;
The Nervana Web service can then go ahead and call the Server Semantic Runtime
with
the calling user name. The runtime then maps this to SQL and uses the
appropriate filters to
issue the semantic query.
For the Nervana ASP.NET application, the following entry is added as a child
of the
parent configuration element in the Web.config file:
<microsoft.wsdk>
<security>
<p asswordProvider
type="WSDK_Security.PasswordProvider, WSDK-Security" />
</security>
</microsoft.wsdk>
a. Client-Side Authorization Request
In order to create a Userna~neTolcen for the request, the Nervana client has
to pass the
username and password as part of the SOAP request. The Nervana client can pass
multiple
tokens as part of the request - this is preferable for cases where the user's
identity is federated
across multiple authentication providers. The Nervana client will gather all
the user account
information the user has supplied (including user name and password
information), convert these
to WS-Security tokens, and then issue the S~AP request. The client code will
look like the
following (reference: http:llwww.msdn.microsoft.com):
localhost.Servicel proxy = new localhost.Servicel();
UseniameToken clearTextToken
= new UsernameToken("Joe",
"opensezme",
PasswordOption.SendHashed);
proxy.RequestSoapContext.Security.Tokens.Add(clearTextToken);
labell .Text = proxy.PersonalHello();
b. Validating the UsernameToken on the Server
(http://msdn.microsoft.com/libraryldefault.asp?url=llibrary/en-
us/dnwssecur/htmllwssecwithwsdk. asp)
122

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Although the WSDK verifies the Security header syntax and checks the password
hash
against the password from the Password Provider, there is some extra
verification that is
preferably be performed on the request. For instance, the WSDK will not call
the Password
Provider if a UsernameToken is received that does not include a password
element. If there is no
password to check, there is no reason to call the password provider. This
means we need to
verify the format of the UsernameToken ourselves.
Another possibility is that there is more than one UsernameToken element
included with
the request. WS-Security provides support for including any number of tokens
with a request
that may be used for different purposes.
The code above can be modified for the Nervana Web method to verify that the
UsernameToken includes a hashed password and to only accept incoming requests
with a single
UsernameToken. The modified code is listed below.
[WebMethod]
public string ProcessSemanticQuery( string Query )
SoapContext requestContext = HttpSoapContext.RequestContext;
if (requestContext == null)
f
f
throw new ApplicationException("Non-SOAP request.");
1
d
if (requestContext.Security.Tokens.Count == 1)
foreach (SecurityToken tolc in requestContext.Security.Tokens)
f
if (tok is UsernameToken)
f
UsernameToken UserToken = (UsernameToken)tok;
if (UserToken.PasswordOption
= PasswordOption.SendHashed)
(
return ProcessSemanticQueryInternal( Query, UserToken.Username );
else
f
throw new SoapException(
"Invalid UsernameToken password type.",
SoapException.ClientFaultCode);
123

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
else
throw new SoapException(
"UsernameToken security token required.",
SoapException.ClientFaultCode);
)
else
f
throw new SoapException(
"Request must have exactly one security token.",
SoapException.ClientFaultCode);
return null;
2. People Groups
The KIS will include metadata for people groups. These are not unlike user
groups in
modem operating systems. The People Group will be a Neuvana first-class object
(i.e., it will
inherit from the ~bject class). In addition, the People Group schema will be
as follows:
Field Name Field Type Description
~bject~ String The object id of the people group
1'Tame String 'I'he name of the people roup
DescriptionSti-in The descri tion of the eople
group
URI String The URL of the people group -
this uniquely
identifies the group and in the
preferred
embodiment, will be an LDAP URT
In most cases, people groups will map to user groups in directory systems
(like LDAP)
For instance, the KIS server admin will have the KIS crawl a configurable set
of user groups.
There will be a People DSA that will crawl the user groups and populate the
People Groups and
Users tables in the SMS. The People DSA will perform the following actions:
~ Create the group (if it doesn't exist in the SMS) or update the metadata of
the
Group (if it exists).
~ Enumerate all the users in the group (at the source - an LDAP directory in
the
preferred embodiment).
124

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ For all the users in the group, create People objects (or update the
metadata if the
objects already exist in the SMS).
~ Update the semantic network (via the 'SemanticLinks' table in the ' SMS) by
mapping the people objects to the group objects (using the BELONGS TO GROUP
semantic
link type). This ensures that the SMS has semantic links that capture group
membership
information (in addition to the groups and users themselves).
3. Identity Metadata Federation
Identity Metadata Federation (IMF) refers to a feature wherein an Information
Community (agency) is deployed over the Internet but is used to service
corporate or personal
customers. For instance, Reuters could set up an information community for all
its corporate
customers that depend on its proprietary content. In such a case where
multiple customers share
an information community (likely in the same industry), Reuters will. have a
group on the SMS
for each customer. However, each of these customers would have to have its
corporate directory
mirrored on Reuters in order for people metadata to be available. This would
cause problems,
particularly from a security and privacy standpoint. Corporations will
probably not be
comfortable with having external content providers obtaining access to the
metadata of their
employees. 1MF addresses this problem by having the Internet-hosted
information community
(agency) host only enough metadata for authentication of the user. For
instance, Reuters will
store only the logon information fear the users of its corporate custorraers,
in its SM a. WImr2 the
semantic browser receives SRML containing such incomplete metadata, the client
will then issue
another query to the enterprise directory (via LDAP access or via UDDI if the
enterprise
directory metadata is made available through a Web services directory) to
fetch the complete
metadata of the user. This is possible because the externally stored metadata
will have the
identity information with which the remaining metadata can be fetched. Since
the client fetches
the remaining metadata within the firewall of the enterprise, the sensitive
corporate metadata is
not shared with the outside world.
125

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
4. Access Control
a. Access Control Policy
In the preferred embodiment, the ISIS will include and enforce access control
semantics.
The KIS employs a policy of "default access." Default access here means that
the ISIS will grant
access to the calling user to any metadata in the SMS, except in cases where
access is denied. As
such, the system can be extended to provide new forms of denial, as opposed to
new forms of
access. In addition, this implies that if there is no basis for denial, the
user is granted access (this
leads to a simpler and cleaner access control model).
The KIS will have an Access Control Manager (ACM). The ACM is primary
responsible
for generating a Denial Semantic Query (DSQ) which the SQP will append to its
query for a
given semantic request from the client. The ACM will expose the following
method (C#
sample):
String GetDenialSemanticQuery( String CallingUserName
Preferably, the method tales in the calling user name and returns a SQL query
(or
equivalent) that encapsulates exception objects. These are objects that must
not be returned to
the calling user by the SQP (i.e., objects for which the user does not have
access).
The SQP then builds a final raw query that includes the denial query a~
follo~v~:
Aggregate Raw Query AND NOT IN (Denial Query)
For example, if the aggregate raw query is:
SELECT OBJECTm FROM OBJECTS WHERE OBJECTTYPE~ = 5,
and the denial query is:
SELECT OBJECTm FROM OBJECTS WHERE OWNERUSERNAME <>
'JOHNDOE',
The final raw query (which is that the SQP will finally execute and serialize
to SRML to
return to the calling user) will be:
SELECT OBJECTm FROM OBJECTS WHERE OBJECTTYPEm = 5 AND NOT 1N
126

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
(SELECT OBJECTID FROM OBJECTS WHERE OWNERUSERNAME <>
'JOHNDOE')
Semantically, this is probably equivalent to:
"Select all objects that have an object type id of 5 but that are not in an
object list not
owned by John Doe."
This in turn is probably semantically equivalent to:
"Select all objects that have an object type id of 5 that are owned by John
Doe."
b. General Access Control Rules
Each semantic query processed by the semantic query processor (SQP) will
contain an
access control check. This will guarantee that the calling user only receives
metadata that he/she
has access to. The SQP will employ the following access control rules when
processing a
semantic query:
1. Preferably, if the query is for 'People' objects (people, users, customers,
experts,
newsmakers, etc.), the returned 'People' objects must either:
~ hzclude the calling user, or
~ Include people that share at least one people group with the calling user,
and be
owned by the calling user or the system
Preferably, the corresponding denial query maps to the following rule: The
returned
objects must satisfy the following:
~ Is not the calling user +
~ Is not owned by the calling user or the system +
~ Has people that do not share any people group with the calling user
Sample Denial Query SQL
The SQL below illustrates the access control denial query that will be
generated by the
ACM and appended by the SQP to enforce the access control policy. In this
example, the name
of the calling user is 'JOHNDOE.'
127

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
SELECT OBJECTID FROM OBJECTS WHERE
OWNERUSERNAME <> 'JOHNDOE' OR
OWNERUSERNAME <> 'SYSTEM' OR
WHERE OBJECTID NOT IN (SELECT OBJECTID FROM PEOPLE WHERE
NAME='JOHNDOE') OR
WHERE OBJECTID NOT IN
(SELECT OBJECTID FROM SEMANTICLINKS WHERE
OBJECTTYPEID - ' 'PERSON AND
PREDICATETYPEID='BELONGS TO GROUP' AND SUBJECTID IN (SELECT
SUBJECTID FROM SEMANTICLINKS WHERE OBJECTID 1N (SELECT OBJECTID
FROM PEOPLE WHERE NAME='JOHNDOE' ) )
2. Preferably, if the query is for non-People objects (documents, email,
events, etc.),
the returned objects must:
~ Be owned by the calling user or the system user, and
~ Be the subject of a semantic link with the calling user as the object, or
~ Be the object of a semantic link with the calling user as the subject, or
~ Be the subject of a semantic link with the object being a person that shares
at least
one people group with the calling user, or
~ Be the object of a semantic link with the subject being a person that shares
at least
one people group with the calling user
Preferably, the corresponding denial query maps to the following rule: The
returned
objects must satisfy the following:
~ Is not owned by the calling user +
Is not o~~Jned by the system user +
Is not the subject of a semantic link with the calling user as the object +
Is not the object of a semantic link with the calling user as the subject +
~ Is not the subject of a semantic link with the object being a person that
shares at
least one people group with the calling user +
~ Is not the object of a semantic link with the subject being a person that
shares at
least one people group with the calling user
Safnple Denial Query SQL
The SQL below illustrates the access control denial query that will be
generated by the
ACM and appended by the SQP to enforce the access control policy. In this
example, the name
of the calling user is 'JOHNDOE.'
SELECT OBJECTID FROM OBJECTS WHERE OWNERUSERNAME <>
'JOHNDOE' OR
OWNERUSERNAME <> 'SYSTEM' OR
OBJECTID NOT IN (SELECT OBJECTID FROM SEMANTICLINKS WHERE
its

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
OBJECTTYPEID = "PERSON' AND OBJECTID IN (SELECT OBJECTID FROM
PEOPLE WHERE NAME='JOHNDOE') OR
WHERE OBJECTID NOT IN (SELECT OBJECTID FROM SEMANTICLINI~S
INNER JOIN PEOPLE WHERE SEMANTICLINKS.SUBJECTTYPEID='PERSON' AND
SEMANTICLINKS.SUBJECTm = PEOPLE.OBJECTID) OR
OBJECTID NOT IN (SELECT OBJECTID FROM SEMANTICLINI~S WHERE
OBJECTTYPEID='PERSON' AND PREDICATETYPEID='BELONGS TO GROUP' AND
SUBJECTID IN (SELECT SUBJECTID FROM SEMANTICLINI~S WHERE OBJECTID IN
(SELECT OBJECTID FROM PEOPLE WHERE NAME='JOHNDOE')) OR
OBJECTID NOT IN (SELECT OBJECTID FROM SEMANTICLINKS WHERE
OBJECTTYPEID='PERSON' AND PREDICATETYPEID='BELONGS TO GROUP' AND
OBJECTID IN (SELECT OBJECTID FROM PEOPLE WHERE NAME='JOHNDOE'))
Sample Mef ged Denial Quefy SQL
By merging these two rules, the ACM returns the following merged query to the
SQP for
access denial:
SELECT OBJECTID FROM OBJECTS WHERE
OWNERUSERNAME <> 'JOHNDOE' OR
OWNERUSERNAME <> 'SYSTEM' OR
OBJECTS NOT IN (SELECT OBJECTS FROM PEOPLE WHERE
NAME='JOHNDOE') OR
OBJECTS NOT 1N (SELECT OBJECTS FROM SEMANTICLINI~S WHERE
OBJECTTYPEID - ' 'PERS ON AND
PREDICATETYPEID='BELONGS TO_GROUP' AND SUBJECTID IN (SELECT
SUBJECTID FROM SEMANTICLINKS WHERE OBJECTID IN (SELECT OBJECTID
FROM PEOPLE WHERE NAME='JOHNDOE')) OR
OBJECTID NOT I1~J (SELECT OBJECTII~ FRO1~11 SEMA1~1TI~'LINhS i~HERE
OBJECTTYPE~ _ ° 'PERSON' AND OBJECTS IN (SELECT OBJECTS FROM
PEOPLE
WHERE NAME='JOHNDOE') OR
OBJECTID NOT IN (SELECT OBJECTS FROM SEMANTICLINI~S INNER JOIN
PEOPLE ON SEMANTICLINKS.SUBJECTTYPEID='PERSON' AND
SEMANTICLINI~S.SUBJECT~ = PEOPLE.OBJECTID) OR
OBJECTID NOT IN (SELECT OBJECTS FROM SEMANTICL1NKS WHERE
OBJECTTYPEID='PERSON' AND PREDICATETYPE117='BELONGS TO GROUP' AND
SUBJECTID IN (SELECT SUBJECTID FROM SEMANTICL1NKS WHERE OBJECTID IN
(SELECT OBJECTID FROM PEOPLE WHERE NAME='JOHNDOE')) OR
OBJECTID NOT IN (SELECT OBJECTID FROM SEMANTICLINKS WHERE
OBJECTTYPEID='PERSON' AND PREDICATETYPEID='BELONGS TO GROUP' AND
OBJECTID IN (SELECT OBJECTID FROM PEOPLE WHERE NAME='JOHNDOE'))
Example Scenario
For instance, A Reuters agency (KIS) might have people groups for each
enterprise
customer that Reuters serves. The agency will have a common information base
(Reuters
129

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
content) but will have people groups per enterprise customer. These groups
might include
competitors. As such, it is preferable to ensure that the knowledge flow,
generation, and
inference do not cross competitor boundaries. For instance, an employee of
Firm A must not
derive knowledge directly from an employee of Firm B that competes with Firm
A, not must he
or she derive knowledge indirectly (via inference). An employee of Finn A must
not be able to
get recommendations for items annotated by employees of Firm B. Or an employee
of Firm A
must not be able to find experts that work for Firm B. Of course, this assumes
that Firm A and
Firm B are not partners in some fashion (in which case, they might want to
share knowledge). In
the case of knowledge partners, Reuters would create a people group (likely
via LDAP) that
includes the people groups of Firm A and Firm B. The Reuters KIS will then
have the following
people groups: Firm A, Firm B, and Finns A&B. The SMS will also include
metadata that
indicates that the people in Firms A and Firms B belong to these groups (via
the "belongs to
gro~p99 semantic link type). 5~ith this process in place, the aforementioned
rules will guarantee
that knowledge gets shared between Firms A and B.
c. Access Control Rules for Annotations
In the case of annotations, the calling user will be editing the semantic
network, as
opposed to querying it. W this case, the following rules would apply:
1. Preferably, if the obj ect being annotated is a Person obj ect, the obj ect
must either
be:
~ The calling user, or
~ A person that shares at least one people group with the calling user, and be
owned
by the calling user or the system
2. Preferably, if the object being annotated is a non-Person object (e.g., a
document,
email, event, etc.), the object must either be:
~ Owned by the calling user
~ Owned by the system
130

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Sample Denial Query SQL
The SQL below illustrates the access control denial quexy that will be
generated by the
ACM (for checking access control for annotations) and appended by the SQP to
enfoxce the
access control policy. In this example, the name of the calling user is
'JOHNDOE.'
SELECT OBJECTID FROM OBJECTS WHERE
OWNERUSERNAME ~ 'JOHNDOE' OR
OWNERUSERNAME ~ 'SYSTEM' OR
OBJECTID NOT IN (SELECT OBJECT117 FROM PEOPLE WHERE
NAME='JOHNDOE') OR
OBJECTID NOT IN (SELECT OBJECTID FROM SEMANTICLINKS WHERE
OBJECTTYPEID='PERSON' AND PREDICATETYPE117='BELONGS TO GROUP' AND
OBJECTID 1N (SELECT OBJECTID FROM SEMANTICLINKS WHERE OBJECTID IN
(SELECT OBJECTID FROM PEOPLE WHERE NAME='JOHNDOE'))
Access Cofztf°ol EsZfoYCemer~t
The ACM enforces access control fox annotations and other write operations on
the KIS.
The KIS XML Web Service exposes an annotation method as follows (C# sample):
Annotate~bject( string CallingUserName, String ObjectID );
This method calls the ACM to get the denial query. It then creates a final
query as
follows:
Annotation ~bject Query .l~ll~ 1~IO'T hl (Denial Query)
In the preferred embodiment, the annotation object query is always of the
form:
SELECT OBJECTII? FROM OBJECTS WHERE OBJECTID=ObjectlD,
where ObjectlD is the argument to the AnnotateObject method.
The ACM then builds a final access control query SQL and uses this SQL to
check for
access control. Because the ACM does not have to return the SQL, it merely
invokes it directly
in order to check for access control. In addition, because it is a binaxy
check (access or no
access), the ACM merely checks whether the 'denial query returns at least one
row. For instance,
a final query might look like:
SELECT OBJECTID FROM OBJECTS WHERE OBJECTID = ObjectlD AND NOT IN
(SELECT OBJECTm FROM OBJECTS WHERE OWNERUSERNAME ~ 'JOHNDOE')
131

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The ACM then runs this query (via the SQL query processor) and asks for the
count of
the number of rows in the result set. If there is one row, access is granted,
else access is denied.
Tlus model is implemented this way in order to have consistency with the
denial query model
(the ACM always builds a denial query and uses this as a basis for all access
control checks).
L. DEEP INFORMATION SPECIFICATION FOR THE INFORMATION
NERVOUS SYSTEM
Deep Information Overview
INTRODUCTION
In the preferred embodiment, the Nervana 'Deep Info' tool is aimed at
providing context-
sensitive story-like information for a Nervana information object. Deep Info
essentially provides
Nervana users with information that otherwise would be lost, given a
particular context. By way
of rough analogy, Deep Info is like the contextual information that gets
displayed on music
videos on MTV (showing information on the current artist, the current song,
and in some case,
the current musical instrument in the song).
The 'deep' in 'deep info' refers to the fact that the contextual information
will often span
multiple "hops" in the semantic network on the agency from whence the object
came. 'Deep
Info9 is comprised of 'deep inf~ nuggets' which caai either be plan textual
mEtadata or metadata
with semantic query links (via SQML).
In the preferred embodiment, there are at least five kinds of Deep Info
nuggets:
1. Basic Semantic Linlc Nuggets
2. Context Template Nuggets
3. Trivia Nuggets
4. Matchmaker Nuggets
5. Recursive Nuggets
a. Basic Semantic Link Nuggets
With basic semantic link truths, deep info nuggets merely convey a semantic
link of the
current object. These nuggets involve a semantic link distance of 1. In this
case, there is overlap
with what will be displayed in the 'Links' context/task pane. Examples are:
132

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Patrick Schmitz reports to Nosa Omoigui
~ Patrick Schmitz has 5 Direct Reports
~ Patrick Schmitz annotated 47 objects
~ Patrick Schmitz authored 13 objects
~ Patrick Schmitz was copied on 56 email objects
b. Context Template Nuggets
Context template nuggets display contextual information for each relevant
context
template, based on the information at hand. These nuggets are identical to
those that will be
displayed in the context bar or context panel for each type of context
template. For example:
~ Patrick Schmitz posted 3 breaking news items
~ Patrick Schmitz posted 14 classics
~ Patrick Schmitz authored 7 headlines
~ Patrick Schmitz is involved in 13 discussions
~ Patrick Schmitz is a newsmaker on 356 objects
c. Trivia Nuggets
For all email objects on an agency:
Steve Judkins appears on the "To" list of all of them
~ Steve Judkins replied to 23% of them
~ Patrick Schmitz annotated 50% of them
~ Only 3 of these have a thread depth greater than 2
For all people objects on an agency:
Patrick Schmitz has sent email to 4~7% of them
14.% of them report to Nosa Omoigui
~ Sally Smith has had discussions with~85% of them
~ 12% of them are newsmakers on at least one topic
~ All of them have been involved in at least one discussion this week
~ 33% of them are experts on at least one topic
~ 8% of them are experts on more than three topics
For a given distribution list on an agency:
~ Steven Judkins has posted the most email to this list
~ Sarah Trent has replied to the most email on this list
~ Nosa Omoigui has never posted to this list
~ Patrick Schmitz has posted 87 messages to this list this month
~ Richard Novotny has posted 345 messages to this list this year
133

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
For all distribution lists on an agency:
~ Steven Judkins has posted the most email to all lists
~ Lisa Heibron has replied to email on only 2% of the lists
~ Nosa Omoigui has never posted to any list
~ Patrick Schmitz has posted at least once every week to all the lists
~ Richard Novotny has posted messages on 3 lists
For all information objects on an agency:
~ Steven Judkins has been the most prolific publisher (he published 5% of
them)
~ Sally Smith has been the most prolific annotator (she annotated 2% of them)
~ Nosa Omoigui has been the most active newsmaker
~ Patrick Sclnnitz has the most aggregate expertise
~ Steve Judkins has the most expertise for information published this year
~ Gavin Schmitz has been involved in the most discussions (12% of them)
~ Richard Novotny has been involved in the most discussions this month (18% of
them)
d. Matchmaker Nuggets
Pcrson To Pcrson
Semantic Rink Based
~ Patrick Schmitz has sent mail to 13 people
~ 47 people have appeared on same To list as Patrick Schmitz
~ 47 people have appeared on same CC list as Patrick Schmitz
89 people in total have been referenced on email sent by Patrick Schmitz
24. people have annotated the same information as Patrick Schmitz
3 people are on all the same distribution lists as Patrick Schmitz
~ 29 people are on at least one of Patrick Schmitz's distribution lists
Context-Tem~alate Based
12 people have expertise on the same information categories as Patrick Schmitz
14 people and Patrick Schmitz are newsmakers on the same information items
27 people are in discussions with Patrick Schmitz
Information To Person
Semantic Link Based
~ Patrick Schmitz posted this information item
~ Steve Judkins authored this information item
~ This information item was copied to 2 people
~ 3 people annotated this information item
134

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Context Template Based (similar to context template nuggets)
one
~ There are 4 experts on this information item
~ There are 27 newsmakers on this information item
Information To Information
Context Template Based (similar to context template nuggets)
~ There are 578 relevant 'all bets'
~ There are 235 relevant 'best bets'
~ There are 4 relevant breaking news items
~ There are 46 relevant headlines
Semantic Link Based (via people)
~ There are 21 information items that have the same experts with this one
~ There are 23 information items that have the same newsmakers with this one
~ There are 34 information items posted by the same person that posted this
one
~ There are 34 information items authored by the same person that authored
this
~ There are 44 information items annotated by people that annotated this one
e. Recuar~ive l~~Ta~gget~
With recursive nuggets, displaying deep info on the subject of the current
information
nugget forms a contextual hierarchy. The system then recursively displays the
nuggets based on
the object type of the subject. With recursive nuggets9 the system essentially
probes the semantic
network starting from the source object and continues to display nuggets along
the path of the
network. Frobing is preferably stopped at a depth that is consistent with
resource limitations and
based on user feedbaclc.
Another way to think of recursive nuggets is like a contextual version of an
business
organization chart. However, with Deep Information in the Information Nervous
System, users
will be able to browse a tree of KNOWLEDGE, as opposed to a tree of
INFORMATION. To
talce an example, if a user selects an object and a tree view will show up
like what is displayed
below:
Example with document as context:
[+]Newsmakers on 'Title of document'
[+] Gavin Schmitz
[+] Reports To ->
135

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
[+] Steve Judkins
[+] Experts Like Steve Judkins ->
[+] Nosa Omoigui
[+] Patrick Schmitz
[+] Interest Group Like Steve Judkins ->
[+] Patrick Schmitz
[+] Chuck Johnson
[+]Direct Reports ->
[+]Joe Williams
[+] Direct Reports D
[+] Interest Group Like Joe Williams ->
[+] Richard Novotny
[+] Nosa Omoigui
[+] Interest Group
[+] Experts
Example with email as context:
[+] Emai1 is From:
[+] Nosa Omoigui
[+] Experts like Nosa Omoigui
[+] Email is To:
[+] ~'huck. Johnson
[+] Experts like Chuck Johnson
[+] Email is Copied To:
[+] Richard Novotny
[+] Experts like Richard Novotny
[+] Email Attachments:
foo.doc
[+] Experts on foo.doc
[+] Gavin Schmitz
[+] Newsmakers like Gavin Schmitz
[+] Newsmakers on 'Title of Email'
Example with conversation object as context:
136

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
[+]Conversation Participants
[+]Steve Judkins
[+] Interest Group Like Steve Judkins...
[+]Nosa Omoigui
[+] Interest Group Like Nosa Omoigui
[+] Experts on 'Title of Conversation'
[+] Richard Novotny
[+] Interest Group Like Richard Novotiiy
Notice the use of default predicates in the above example - e.g., with People
subjects
linked to People objects, the LIKE predicate is uses (e.g., Interest Group
LIKE Richard
Novotny).
Another example of recursive nuggets is shown below:
[+] Patrick Sclnnitz authored this email
[+] Patrick Schmitz reports to Nosa Omoigui
[+] Nosa Omoigui has 6 Direct Reports
[+] Steve Judkins . ..
[+] Steve Judkins posted ...
[+] Steve Judkins is an expert on ...
[+] Steve Judkins is a newsmaker on . . . '
[+] Steve Judkins has been involved in 6 discussions
[etc.]
[+] Richard Novotny. . .
[+] [The remaining ti direct reports]
[+] Nosa Omoigui annotated 13 objects...
[+] [More context template nuggets on the 13 obj acts]
[+] Nosa Omoigui has authored 278 objects
[+] Nosa Omoigui has annotated 23 items [...]
[+] Patrick Sclunitz has 5 Direct Reports
[+] John Doe ...
[+] More Native Nuggets based on the direct reports
[+] Patrick Schmitz annotated 47 objects
In the preferred embodiment, recursive nuggets will most typically be
displayed via a
drill-down pane beside each result object in the semantic browser. This will
allow the user to
select a result object and then recursively and semantically "explore" the
object (as illustrated
above).
137

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Also, each header item in the Deep Info drill down tree view will be a link to
a request
(e.g., Experts Like Steve Judkins), and each result will be a link to an
entity. For example, users
will be able to "navigate" to the "person" (semantically) Patrick Schmitz from
anywhere in the
Deep Info tree view. Users will then be able to view a dossier on Patrick
Schmitz, copy Patrick
Schmitz, and Paste it on, say, Breaking News - in order to open a request
called Breaking News
by Patrick Schmitz. Again, notice the use of a default predicate based on the
Person subject
("By°°),
The preferred embodiment Presenter Deep Info tree view (with support from the
semantic
runtime API in the semantic browser) will keep track of those links that are
requests and those
links that are result objects; that way, it will intelligently interpret the
user's intent when the user
clicks on a link the tree view (it will navigate to a request or navigate to
an entity).
M. CREATE REQUEST WIZARD SPECIFICATION FOR THE INFORMATION
1~TER~~1LT~ ~~~'lI°°EI'~JII
Introducing the Create Request Wizard
OVERVIEW
The preferred embodiment Create Request (or Smart Agent) Wizard allows the
user to
easily and intuitively create new requests that represent semantic queries t~
be issued to one ~r
more knowledge sources (running the IW owledge Integration Service).
Wizard Page 1: Select a Profile and Request Type: This page allows the user to
select
what profile the request is to be created in. The page also allows the user to
select the type of
request he/she wants to create. This type could be a Dossier (Guide) which
will create a request
containing sub-requests for each context template (based on the filters
indicated in the request),
knowledge types (corresponding to context templates such as Best Bets,
Headlines, Experts,
Newsmakers, etc.), information types (corresponding to types such as
Presentations, General
Documents, etc.), and request collections which are Blenders and allow the
user to view several
requests as a cohesive unit. See Figure 17A.
138

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Wizard Page 2: Select Knowledge Communities (Agencies): This page allows the
user to
select which knowledge communities (running on Knowledge Integration Servers
(KISes) the
request should get its knowledge from. The user can indicate that the request
should use the
same knowledge communities as those configured in the selected profile. The
user can
alternatively select specific knowledge communities. See Figure 17B.
Wizard Page 3: Select Filters: This page allows the user to select which
filters to include
in the request. Filters can include one or more of the following: keywords,
text, categories, local
documents, Web documents, email addresses (for People filters), and Entities.
In alternate
embodiments, other filter types will be supported. The property page also
allows the user to
select the predicate with wluch to apply a specific filter. Preferably, the
most cormnon predicate
that will be exposed is "Relevant to." Other predicates can be exposed
consistent with the filter
type (for instance a filter that refers to a Person via an email address or
entity will use the default
predicate 6'B~" if the requested type is not 'People' - e.g. Headlines B~ John
Smith and will use
the default predicate "LIKE" if the request type is 'People' - e.g., Experts
LIKE John Smith).
The property page also allows the user to select the operation with which to
apply the filters.
The two most common operators are AND (in which case only results that satisfy
all the filters
are returned) and OR (in which case results that satisfy any of the filters
are returned). See
Figure 17C.
Wizard Page 4: Name and describe this request: This page allows the user to
enter a
name and description for the request. The wizard automatically suggests a name
and description
for the request based on the semantics of the request. Examples include:
1. Headlines on Security AND on Application Development AND on Web Services.
2. Experts from R&D on Encryption Techniques~OR on User Interface Design, etc.
3. Presentations on Artificial Intelligence.
4. Dossier on Data Mining AND on Web Development. See Figure 17D.
The user is allowed to overnde the suggested name/description. The suggestions
are
truncated as needed based on a maximum name and description length.
139

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The semantic browser also exposes the properties of an existing request via a
property
sheet. This allows the user to "edit" a request. The property sheet exposes
the same user
interface as the wizard except that the fields are initialized based on the
semantics of the request
(by de-serializing the request's SQML representation). See Figure 17E.
N. CREATE PROFILE WIZARD SPECIFICATION FOR THE INFORMATION
NERVOUS SYSTEM
Introducing the Create Profile Wizard
OVERVIEW
The Create Profile Wizard allows the user to easily and intuitively create new
user
profiles.
Wizard Page 1: Select your areas of interest: This page allows the user to
select his/her
areas of interest. This allows the semantic browser to get some high-level
information about the
user's knowledge interests (such as the industry he/she works in). This
information is then used
to nanow category selections in the categories dialog, recommend new knowledge
communities
(agencies) configured with knowledge domains consistent with the user's areas)
of interests, etc.
See Figure 45A.
W izard Page 2: Select your kno~Jledge communities: This page alloy's the user
to
subscribe to knowledge cormnunities for the profile. This allows the semantic
browser to
"know" wluch knowledge sources to issue requests to, when those requests are
created for the
profile. The semantic browser also uses the knowledge communities in the
profile when it
invokes Visualizations, semantic alerts, the smart lens (when the lens is a
request/agent for the
given profile), the obj ect lens (when the target obj ect is a result from the
given profile), when the
user drags and drops (or copies and pastes) an object to a request/agent for
the given profile, etc.
See Figure 45B.
Wizard Page 3: Nasne and describe this profile: This page allows the user to
enter a name
and description for the profile. The page also allows the user to indicate
whether the profile is
preferably made the default profile. 'The default profile is used when the
user does not explicitly
140

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
indicate a profile in any operation in the semantic browser (for example,
dragging and dropping a
document from the file system to the icon representing the semantic browser
will open a
bookmark with that document from the default profile, whereas dragging and
dropping a
document to an icon representing a specific profile will open a bookmark with
that profile). See
Figure 45C.
O. CREATE BOOKMARK WIZARD SPECIFICATION FOR THE INFORMATION
NERVOUS SYSTEM
1. Introducing the Create Bookmark Wizard
OVERVIEW
The Create Bookmark (or Local/Dumb Request Agent) Wizard allows the user to
easily
and intuitively create new bookmarks (local/dumb requests) to view Ioca1/Web
documents,
entities, etc. in the semantic browser via which he/she can get access to the
toolbox of the system
(i.e., drag and drop, smart copy and paste, smart lens, smart alerts,
Visualizations, ete.).
Wizard Page 1: Select a Profile and Request Type: This page allows the user to
select
what profile the bookmark is to be created in. The page also allows the user
to add/remove items
to/from the bookmark. See Figure 46A.
Wizard Page 2: Name and describe this bookmark: This page allows the user to
enter a
name and description for the bookmark. The wizard automatically suggests a
name and
description for the bookmark based on the items in the bookmark. Examples
include:
~ Document 1, Document 2, and Document 3
~ Documents Matching 'Encryption'
~ Documents in the Folder 'My Documents' and Subfolders
~ Nervana Presentation (July 2003).ppt AND Documents Matching "Security" in
the Folder 'My Documents' and Subfolders
The user is allowed to override the suggested name/description. The
suggestions are
truncated as needed based on a maximum name and description length. See Figure
46B.
141

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
2. Scenarios
Show me all Presentations on Protein Engineering
Using the Create Request Wizard, select the Presentations information-type (in
Documents~Presentations), and then select the Protein Engineering category as
a filter. Hit Next
- the wizard intelligently suggests a name for the request (Presentations on
Protein Engineering)
based on the semantics of the request. The wizard also selects the right
default predicates. Hit
Finish. The wizard compiles the query, sends the SQML to the KISes in the
selected profile, and
then displays the results.
3. Intelligent Publishing-Tool Metadata Suggestion and Maintenance
While the Information Nervous System does not rely or depend on metadata that
is stored
by Publishing Tools (e.g., the author of a document), having such metadata
available and reliable
can be advantageous. One problem with prior art is that publishing tools
(e.g., Microsoft Word,
Adobe Acrobat, etc.) do not intelligently manage the metadata creation and
maintenance process.
Here are some ways that the preferred embodiment of the present invention can
be used to make
the metadata creation and maintenance process better:
a. When the user creates a new document, add the author's email address (this
can
be programmatically retrie~red from the useus entail client and in the event
that the user has
several addresses, the publishing tool should prompt the user for which
address to use) to the
metadata header of the document (rather than merely the author's name). This
is because email
addresses provide much more uniqueness (for instance, the name 'John Smith'
could refer to one
of millions of people - as such the existence of such data in the metadata of
a document is not
that useful). Note that one possible email address to use in the metadata
header can be retrieved
from, say, the logged on user's single sign-on account (e.g., Microsoft
PassportTM).
b. When the doctunent is edited and if the current user is different from the
author of
the document (as is indicated in the metadata header), prompt the user if
helshe wants to change
the metadata header accordingly. This provides some basis form of intelligent
metadata
maintenance.
142

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
This model can be applied across different object types and metadata fields in
cases
where the publishing tool can validate the field (e.g., as in the case of the
currently logged on
user's name and email address).
P. SEMANTIC THREADS SPECIFICATION FOR THE INFORMATION
NERVOUS SYSTEMTM
1. Semantic Threads
OVERVIEW
In the preferred embodiment, semantic threads are objects in the KIS semantic
network
that represent threads of 'annotations or conversations. They are different
from regular email
threads in that they are also semantic - they have object identifiers and type
identifiers (the
OBJECTTYPEID THREAD identifier) thread-specific semantic links, they convey
meaning via
one or more ontology-based knowledge domains and they support dynamic linking.
Also,
because they are first-class objects in the Itafonmation I~Tervous system,
they coal be queried,
copied, pasted, dragged, dropped, and used with the smart and object lenses.
Figure 23
illustrates a semantic thread object and its semantic links.
Because a semantic thread object is a first-class member of the semantic
network and the
entire Information l~Tervous System, it is subject to manipulation,
presentation and querying like
other obj ects in the system. For example, the semantic browser will allow the
user to navigate
from a Person object to all threads that that person has participated in (via
the "Participant"
predicate - with a predicate type id of PREDICATETYPEm PARTIGIPANTOFTHREAD).
The user can then navigate from the thread to all the thread's participants
(People) and keep
dynamically navigating from then on. To take another example, a thread object
can also be a
Best Bet in a given context (or none, if none is specified).
In the preferred embodiment, the semantic thread object also conveys meaning.
This is
advantageous because it means that the thread can be returned via a semantic
query in the
system. For instance, "Find me all threads on Topic A and Topic B." The KIS
maintains
semantic links for semantic threads just like it does with other objects such
as documents.
143

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
However, because semantic threads can refer to multiple objects, the semantics
of the thread
evolve with the obj ects the thread contains. For example, a thread can start
with one topic and
quickly evolve to include other topics. Email threads can end in a very
different "semantic
domain" from where they started - participants introduce new perspectives, new
information is
added to the thread, email attachments might be added to the thread, etc., all
on the basis of
meaning.
The KIS manages the "semantic evolution" of semantic threads. It does this by
adding
semantic links to the thread to "track" the contents of the thread. For
instance, if a thread starts
off with one document and an annotation, the KIS adds a semantic liuc to the
thread for each to
which the category the document and annotation belong. In other words, the
thread is asserted to
have the same semantics as the document and annotation it contains. If another
annotation is
added to the thread (e.g., if a user annotates the first annotation), the ISIS
computes a new link
strength for the categories of the new annotation that are already linked off
the thread. It is
preferable if it does this because the new annotation can attenuate or
strengthen the semantics of
the entire thread from a particular perspective. However, this modification of
the strength of the
semantic links) for the categories that are already present off the thread are
preferably done on a
per-category basis - as with other objects, the thread can belong to multiple
categories with
different strengths. The new link strength can be computed in at least two
ways: in a simple
embodiment, the average of all link strengths for the category being linked to
the thread is used.
However, this has the disadvantage that too many items in the thread of weak
strength can erode
the "perceived" (as far as the ISIS semantic query processor is concerned)
semantics of the entire
thread. An alternative embodiment is to use the maximum link strength.
However, this also has
a disadvantage that the semantics of the thread might remain fixed to a
domain/category even
though the thread "has moved on" to new domains/categories. From a weighted-
average
perspective, this would likely return confusing results as the thread grows in
size.
W the preferred embodiment, the KIS preferably computes a weighted average of
all the
link strengths for the categories to be linked to the thread. This new
weighted average becomes
144

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the link strength. The weighted average is preferably computed using the
number of concepts in
each object in the thread. This has the benefit of ensuring that "semantically
light" objects (such
as short postings) do not erode the semantics of the thread relative to
"semantically denser"
objects in the thread (such as email attachments and long postings). The
number of concepts,
and not the size, is preferably used in the preferred embodiment because the
size of the object is
a less reliable indicator of the conceptual weight of the object. For
instance, a document could
contain images or could include much information that does not map well to key
phrases or
concepts
Preferably, the computed weight could also include the time when the entry was
added
(thereby "aging" the semantics of older items relative to newer ones). This
weight is then
multiplied by the category link strength and the multiples axe added and then
divided by the
number of entries. Other weighting schemes can also be applied.
The following rules are applied when a new item is added to the semantic
network and
which is to be added to a semantic thread:
1. Categorize the new item to be added to the thread
2. For each category in the returned list of categories which are already on
the
semantic thread
Compute new weighted-average link strength
~ Update category semantic link off the semantic thread object
3. For each category in the returned list of categories which are not already
on the
semantic thread
f
~ Assign link strength
~ Add category semantic link off the semantic thread object
The weighted-average link strength is computed as follows:
New Link Strength = ~ Ci * Li
N
145

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Where Ci is the normalized number of concepts (from 0 to 1) of object i, Li is
the link
strength of object i, and N is the number of objects in the thread (including
the new object). The
normalized number of concepts is computed by dividing the number of concepts
in each object
(extracted by the Knowledge Domain Manager (KDM)) by the number of concepts in
the largest
object in the thread (including the new object).
If a semantic thread comprises of standard, intrinsic (and unedited) email
threads, the KIS
modifies the semantic network differently. This is because most email clients
include all prior
email messages that form the thread in the most recent email message. As such,
in this case, the
KIS preferably simply uses the most recent email message as being
representative of the entire
thread. To accomplish tlus, the KIS preferably categorizes the most recent
email message, and
replace all prior semantic links (relating to categories) from the thread
object with new semantic
links corresponding with the new categories and link strengths.
For non-email threads (for example, threads that form based on an annotation
of an
existing object in the semantic network), the model described above should be
employed.
Alternatively, the KIS can maintain an Aggregate Thread Document (ATD) which
is then
categorized. This document should contain the text of the objects in the
thread - roughly
analogous to how an email message contains the text ofprior messages in the
same thread.
When a new object is added to the thread, the KIS preferably updates the last-
modified-
time of the thread object in the Semantic Metadata Store (SMS).
2. Semantic Thread Conversations
Semantic thread conversations in the Information Nervous System are a special
form of
semantic threads. Essentially, a conversation is a semantic thread that has
more than one
participant. Semantic thread conversations have the object type id,
OBJECTTYPEll~ THREADCONVERSATION.
146

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The KIS creates a thread based on the number of participants in that thread
and could
immediately create the thread as a thread conversation. Alternatively, the KIS
could "upgrade" a
thread to a conversation once additional participants are detected.
3. Semantic Thread Management
The pseudo-code below illustrates how the KIS adds preferred threads and
conversations
to the semantic networlc:
1. If an individual email message is detected and is a member of an existing
thread
obj ect
f
~ Add the new email obj ect to the thread and update the semantic
network
~ If the thread has more than one participant, change the thread's
object type identifier to
OBJECTTYPEID THREADCONVERSATION
2. If am email thread is detected
f
~ Create a new thread object and update the semantic network
~ If the thread has more than one participant, change the thread's
object type identifier to
OBJECTTYPE~ THREI~CON~ERSATION
i
3. If an email amiotation of an existing obj ect is detected
f
~ Add the annotation to the semantic network
~ If the annotated object is not itself an annotation
~ Create a new thread object and update the semantic
network
Else
~ Add the new annotation to the thread containing the
annotated object (i.e., the existing annotation) and
update the semantic network
~ If the updated thread has more than one participant,
change the thread's object type identifier to
OBJECTTYPEID THREADCONVERSATION
147

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Q. SAMPLE SCREEN SHOTS
Figures 24-44B are additional screen shots further illustrating the functions,
options and
operations discussed above.
R. SPECIFICATION FOR SEMANTIC QUERY DEFINITIONS &
VISUALIZATIONS FOR THE INFORMATION NERVOUS SYSTEM
1. Semantic Images & Motion
a. Overview
Semantic images and motion can be an advantageous component of the preferred
embodiment in terms of the Nervana semantic user experience. In other words,
the user's
experience with the system can be enhanced in an embodiment that has semantic
image/motion
metadata stored on a Nervana agency (information community) and accessed via
the Nervana
XML Web Service. Tn that embodiment, via Nervana, end users will have context
and time-
sensitive semantic access to their images. Imagine, for example only, using a
Getty finages (or
Corbis) agent as a smart lens over an email message - when invoked, this will
open images that
are semantically related to the message. Cr, imagine dragging and dropping a
document from
your hard drive to a Getty agent to view semantically related images. This
will involve having
image metadata (consistent with an image schema). The Nervana toolbox remains
the same - we
merely add a new information object type for images. Also, there are semantic,
skins fox
semantic images - different views, thumbnails, slide shows, filtering,
aggregation, etc. For
examples of semantic images, visit:
http://creative.gettyimages.cornlsource/search/resultsmain.asp?source=advSearch
&hdnSy
nc=Medicine%7E0%2C12%2C449%2C3%2C15%2C1%2C0%2C0%2C0%2C12287%2C0%2C
7%2C14%2C6%2C3%2C3%2C0%2C12%2C449%2Cen%2Dus&UQR=t~fwz
Very generally, the properties of the semantic visualizations will vary
depending upon
several different variables. Among these variables will often be the context,
including the
148

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
context of what feature or property of the system is being invoked. In the
next several sections
some of the contextual variables that influence the semantic determinations
will be listed and/or
described. In many instances, there will be overlap or commonality of the
variables or
determinants of the semantic visualizations, but in some cases, the
considerations or combination
of considerations will be unique to the particular situation.
b. Industry-Specific Semantic Images and Motion
Industry-specific semantic images/motion are images/motion that can be used
(and in the
preferred embodiment axe used) as part of the presentation atmosphere for
semantic results for
one or more categories (that map to industries). For instance, visit
http://www.corbis.com and
http://www.gettyimages.com and enter a search for the keywords listed below
(which, in the
aggregate, map to target industries, based on industry-standard taxonomies).
Such
images/motion can also be used as backgrounds, filter effects,
transformations, and animations
for context and category skins (that map to context templates and categories).
In addition, these
images/motion can be used for visuals for motion paths extracted from some of
these images for
superior screensavers. For example, imagine a skin displaying metadata and
visualizations along
a motion path extracted from one of these semantic images (e.g., metadata
rotating inside a light
bulb - for the "electric utilities9' industry), along with chrome with other
surrounding unages and
animations, etc. Other industries, with industry specific images and motion
might include:
Pharmaceuticals Telecommunications Airlines
Medicine Telecom Equipment Retail
Healthcare Telecom Services Fashion
Life Sciences Telecom Technology Advertising
Biotechnology Telecom Regulations Aerospace
Oil and gas Tobacco Defense
Chemical Automotive A 'business
Energy Automobiles Agriculture
Electric Utilities Insurance Beverages
Gas Utilities Consulting Business services
Water Utilities Information E-commerce
Technology
Entertainment Technology Food
149

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Environmental Computer Equipment Forest products
Services
Publishing Computer Health Care Providers
Manufacturers
Real Estate Com utin Hos itality
Financial Semiconductors Internet
Brokerages Nanoteclmology Law
Financial Services Public Sector Legal
Banking Government Manufacturing
Consumer Homeland Security Marketing
Consumer Products Travel Media
Consumer Services Tourism Networkin
Communications Transportation
For example, if the user launches a request/agent, Headlines on Bioinformatics
or on
Protein Engineering, the semantic browser will map the biotechnology-related
categories from
the SQML to a set of images in the biotechnology industry. It will then
display one or more
images as part of the skin for the results of the requestlagent (thereby
proving a pleasant user
experience as well as visually conveying the "mood" of the request/agent).
Figure 101 as a sample semantic image for Pharmaceuticals/Biotech industry
(artistic
DNA helix superimposed over a human face on the left and a organic chemical
chart on the right,
licensed from the Corbis web site).
The same applies to information types and context templates. Skins will do the
smart
thing based on the context/information type and the category/ontology and mix
and match
semantic imageslmotion across these properties in an intelligent manner. For
instance, an agent
titled "Headlines on Wireless Technology" can have chrome (and/or a smart
hourglass - see
below) that shows an image/motion-based animation toggling between a
"Headlines"
imagelmotion and a "Wireless" image/motion. A blender titled "Headlines on
Wireless and
Breaking News on Semiconductors and Email by anyone in my group related to the
product
specification" can have chrome (and/or a smart hourglass) that "toggles"
between imageslmotion
for "Headlines " "News " "Wireless " "Semiconductors " and "Email."
> > > >
iso

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The Presenter's query processor can enumerate all context template and
information
types and all categories (from the agent/blender SQML) and set up the chrome
animation
accordingly.
For information types, enter searches (e.g., on Corbis and Getty) for:
Documents Online Learning
Email People
Books Users
Ma azines Customers
Multimedia
Also, for context templates, enter searches for:
Headlines Favorites
_
News Places
Discovery Time (for "timeline" and
"upcoming events")
Conversations Schedule
o Ex erts o Ap ointment
Also, note that semantic images/motion are preferably not completely random.
However,
preferably they are not from a bounded set either. Preferably, they are
carefully picked and then
skins can randomly select fr~rr the chosen set. »ut, preferably they ire not
randorr~ from the
entire set on, for example, Corbis or Getty Tmages. Otherwise there may be
silly images,
cartoons, and some potentially offensive or inappropriate images. Also, some
of these guidelines
preferably vary depending on whether the skin theme is in subtle, moderate,
exciting, or super-
exciting mode. In subtle mode, the skin might decide to choose one
image/motion per
visualization pivot. In other modes, this would likely lead to a boring user
experience.
In low-flashiness mode, the skin can use a semantic image/motion as part of
the chrome -
not unlike a PowerPoint slide-deck background (e.g., alpha blended). Semantic
images/motion
can also be used in the smart hourglass (see below) as well as in part of the
visualization (on the
context bar, panel, or palette). For visualizing context and information
types, semantic
151

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
images/motion are preferably carefully picked to clearly indicate the
information type or context.
In addition, the selection mode can also be a skin property.
Also, the number of possible semantic images/motion used per skin would likely
need to
be capped - depending on where the images/motion are being displayed. However,
in some
scenarios, this might not be necessary. For instance, a blender skin might
cycle between chrome
backgrounds as the user navigates the blender results (from page to page or
agent to agent) - to
be consistent with what is currently being displayed from the blender. This
can also be a skin
property.
c. The Client-Side Semantic Image & Motion Cache
The Presenter has a smart expandable client-side cache with semantic images
and
motions that are downloaded and stored on the client (on installation). Skins
can then select
from these pre-cached images and motions. The images/motions can be pre-cached
based on the
user's favorite categories and areas of interest (which he or she selects) -
which map to target
industries. Skins can then complement the pre-cached semantic images/motions
with on-demand
image queries to an image server (an XML Web Service that exposes server-side
images/motions
- hosted by I~Tervana or a third party like Corbis or C~etty Images).
'The Presenter will also do the smart thing and have a bias function such that
recently
downloaded images/motions are selected before older ones (as a tiebreaker). A
"usage count" is
also cached along with each image/motion - the Presenter uses this count in
filtering which
images/motions to display and when. Such "load balancing" will yield a fresher
and non-
repetitive user experience.
The cache is preferably populated on demand (based on the user's semantic
queries) - for
instance, there is no point in pre-caching pharmaceutical images/motions for a
user's machine at
Boeing. Preferably, he cache size is also capped and the image cache manager
preferably purges
"old" and "unused" images using an LRU algorithm or the equivalent. This way,
the cache can
be in "semantic sync" with the user's agent usage pattern and favorite agent's
list.
152

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
2. The Smart Hourglass
A majority of the calls that the Nervana Presenter will make to provide the
"semantic
user experience" probably will be remote calls to the XML Web Service. As
such, there will be
unpredictable, potentially unbounded delays in the UI. One can expect a fair
amount of
bandwidth and server horsepower within the enterprise but the Nervana user
interface must still
"plan" for unknown latency in method invocations.
Operating systems today have this problem with unbounded I/O calls to disk or
to the
network. Some CPU-bound operations also have substantial delays. In the
Windows and Mac
UI, the user is made to perceive delay via a "wait" cursor - usually in the
shape of an
"hourglass."
In the preferred embodiment, the Presenter will have semantic hints (via
direct access to
the SQML "method call") with which it can display the equivalent of a "smart
or semantic
hourglass." This could be in the form of an intermedi~.te page that displays
"Loading" or some
other effect. Additionally, the Presenter can convey the semantics of the
query by reading the
SQML to get hints on the categories that the query represents and the
information type or context
template. The Presenter can then use these hints to display semantic images
and text consistent
with the query, even though it has not received the results. The more hints
the query has, the
smarter the hourglass can get. The "Loading" page can then convey the
atmosphere of "what is
to come" - even before the actual results arrive from the Web service and are
merged (if
necessary) by the Presenter to yield the final results.
This "smart hourglass" can be displayed not just on the main results pane, but
perhaps
also on smart lens balloon popup windows and inline preview windows
(essentially at every call
site to the Web service and where there is "focus"). The Presenter can do the
smart thing by
timing out on the query (perhaps after several hundred milliseconds - the
implementation should
use usability tests to arrive at a figure for this) before displaying the
"hourglass."
153

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
3. Visualizations -- Context Templates
INTRODUCTION
Context templates are scenario driven information query templates that map to
specific
semantic models for information access and retrieval. Essentially, context
templates can be
thought of as personal, digital semantic information retrieval "channels" that
deliver information
to a user by employing a predefined semantic template. Context templates
preferably aggregate
information across one or more Agencies.
The context templates described below have been defined. Additional context
templates,
directed towards the integration and dissemination of varied types of semantic
information, are
contemplated (examples include context templates related to emotion, e.g.,
"Angry," "Sad," etc.;
context templates for location, mobility, ambient conditions, users tasks,
etc.).
BREAKING NEWS
The Breaking News context template can be analogized to a personal, digital
version of
CNN's "Breaking News" program insert in how it conveys semantic information.
The context
template allows a user to access information that is extremely time-critical
from one or more
Agencies, sorted according to the information creation or publishing time and
a configurable
amount of time that defines inf~rrnation criticality.
Figure 1Q2 is an illustration of a semantically appropriate image
visualization for the
Breaking News context template.
BREAKING NEWS - SAMPLE OBJECT AND CONTEXT BAR VISUALIZATIONS
Below is a list of sample or representative elements of visualizations
appropriate to the
Breaking News context. As with all Visualizations (or components thereof) in
the preferred
embodiment, the "mood" or semantic feeling or connotation will be appropriate
to the specific
context. By way of very rough analogy, the Visualization will be appropriate
to the context
within the application in the same way that a "set" must be appropriate to the
particular scene in
a screenplay for a movie. This will be true not only for this particular
Object and Context Bar
Visualization, but for all Visualizations in the preferred embodiment.
154

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
1. Ticking clock showing publication or scheduled time of most recent or
pending
breaking news item over a background of the total number of upcoming breaking
news items
2. Ticking clock showing publication or scheduled time of most recent or
pending
breaking news item over semantic images)
3. Ticking clock showing publication or scheduled time of most recent or
pending
breaking news item over semantic images) and the total number of breaking news
items
4. Ticking clock showing publication or scheduled time of most recent or
pending
breaking news item over a plain background
5. Non-ticking clocks showing publication or scheduled time of all breaking
news
items (sequentially) over various backgrounds
6. Calendar view showing publication or scheduled time of most recent or
pending
breaking news item over various backgrounds
7. Calendar view showing publication or scheduled time of all breaking news
items
(sequentially) over various backgrounds
8. Scaled font size - depending on the publication or scheduled time of the
most
recent or pending breaking news item
9. Scaled font size - depending on the number of breaking news items
10. Animated font (e.g., flashing text, rotating text, text on motion path,
etc.) with
animation rate depending on the publication or scheduled time of the most
recent or pending
breaking news item
11. Animated font (e.g., flashing text, rotating text, text on motion path,
etc.) with
animation rate depending on the number of breaking news items
12. Varying font color - depending on the publication or scheduled time of the
most
recent or pending breaking news item
13. Varying font color - depending on the number of breaking news items
14. Animated graphic of breaking news semantic images) or an equivalent
15. Number of breaking news items
16. Titles of breaking news items animated in a sequence (list view)
17. Titles and details of breaking news items animated in a sequence (tiled
~iev~)
18. Semantic image/motion moving on an orbital motion path around the object
19. Balloon popup showing number of items on semantic image/motion background
20. Balloon popup showing number of items with plain background but anmated
with semantic image/motion
HEADLINES
The Headlines context template can be analogized to a personal, digital
version of CNN's
"Headline News" program in how it conveys semantic information. The context
template allows
a user to access information headlines from one or more Agencies, sorted
according to the
information creation or publishing time and a configurable amount of time or
number of items
that defines information "freshness." For example, CNN's "Headline News"
displays headlines
every 30 minutes (around the clock). In a preferred embodiment, the Headlines
context template
155

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
will be implemented as a SQL query on the server with the following sub
queries chained in
sequence: Recommendations Published Today, Favorites Published Today, Best
Bets Published
Today, Upcoming Events Occurring Today and Tomorrow, Annotated Items Published
Today.
Preferably, all sub queries will be sorted by the publishing date/time and
then be chained
together. Additional filters will be applied to the query based on the
predicate list in the SQML.
The foregoing principles are illustrated in Figure 103, which is a Headlines
Visualization -
Sample Image for smart hourglass, interstitial page, transition effects,
background chrome, etc.
CONVERSATIONS CONTEXT TEMPLATE '
The Conversations context template can be analogized to a personal, digital
version of
CNN's "Crossfire" program in how it conveys semantic information. Like
"Crossfire," which
uses Conversations and debates as the context for information dissemination,
in the preferred
embodiment, the Conversations context template tracks email postings,
annotations, and threads
for relevant information.
The Conversations context template comprises the following information object
types:
1. Email of a thread depth of at least one (An email reply to an email
message)
2. Annotations of a thread depth of at least one (The annotation of an
annotation of
an object)
3. Internet liters Postings CA news posting reply to a news posting)
The query will be sorted by thread depth. Additional filters will be applied
to the query
based on the predicate list in the SQML. In addition, the context skin should
display the
information items by thread.
Figure 104 is a Visualization - Sample Image for smart hourglass, interstitial
page,
transition effects, background chrome, etc. (Two People working at a desk)
CONVERSATIONS CONTEXT - SAMPLE OBJECT AND CONTEXT BAR
VISUALIZATIONS
Below is a list of considerations for, or characteristics of visualization
elements
semantically appropriate to the corresponding indicated context (in
parentheses).
1. Animated graphic of semantic image/motion(s) (icon and context guide view)
156

CA 02555280 2006-08-03
view)
WO 2004/075466 PCT/US2004/004674
2. Maximum thread depth over plain background (icon and context guide view)
3. Maximum thread depth over semantic image/motion (icon and context guide
4. Titles of conversations animated in a sequence (list view)
5. Titles and details of conversations animated in a sequence (tiled view)
6. The number of conversations over a plain background (icon and context guide
view)
7. The number of conversations over semantic image/motion(s) (icon and context
guide view)
Newsfnakers Context Ten2plate
The Newsmakers context template can be analogized to a personal, digital
version of
NBC's "Meet the Press" program in how it conveys semantic information. In this
case, the
emphasis is on "people in the news," as opposed to the news itself or
Conversations. Users
navigate the network using the returned people as Information Object Pivots.
The Newsmakers
context template can be thought of as the Headlines context template,
preferably with the
"People" or "Users" object type filters, and the "authored by," "possibly
authored by," "hosted
by," "annotated by," "expert on," etc. predicates (predicates that relate
people to information).
The "relevant to" default predicate preferably is used to cover all the
germane specific
predicates. The sort order of the relevant information, e.g., the newsmakers,
is sorted based on
the order of the "news they make," e.g., headlines.
The query will be sorted by number of headlines. Additional filters will be
applied to the
query based on the predicate list in the SQML.
Figure 105 illustrates a semantic "Newsmaker" Visualization or Sample Image
for smart
hourglass, interstitial page, transition effects, background chrome, etc.
(Football Championship)
NEWSMAKERS - SAMPLE OBJECT AND CONTEXT BAR VISUALIZATIONS
1. Animated graphic of 2 talking heads in conversation (icon and context guide
view)
view)
2. A~iimated graphic of semantic image/motion(s) (icon and context guide view)
3. Total number of newsmakers (icon and context guide view)
4. Total number of newsmakers over semantic image/motion (icon and context
guide
5. Names of newsmakers animated in a sequence (list view)
6. Names and details of newsmakers animated in a sequence (tiled view)
is7

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Upcoming Events Context Template
The Upcoming Events context template (and its resulting Special Agent) can be
analogized to a personal digital version of special programs that convey
information about
upcoming events. Examples include specials for events such as "The World
Series," "The NBA
Finals," "The Soccer World Cup Finals," etc. The equivalent in a knowledge-
worker scenario is
a user that wants to monitor all upcoming industry events that relate to one
or more categories,
documents or other Information Object Pivots. The Upcoming Events context
template is
preferably identical to the Headlines context template except that only
upcoming events are
filtered and displayed (preferably using a semantically appropriate "context
Skin" that connotes
events and time criticality). Returned objects are preferably sorted based on
time criticality with
the most impending events listed first.
Figure 106 illustrates a semantic "Upcoming Events" Visualization - Sample
rmage for
smas-t hourglass, interstitial page, transition effects, background chrome,
etc. (Appointment
Binder).
UPCOMING EVENTS - SAMPLE OBJECT AND CONTEXT BAR VISUALIZATIONS
1. Ticking clock showing time till next event over a background of the total
nmnber
of upcoming events (icon and context guide view)
2. 'Ticking clock showing time till next event over semantic image/motion(s)
(icon
and context guide view)
3. Ticking clock showing time till next event over semantic image/motion(s)
and the
total number of upcoming events (icon and context guide view)
4. Ticking clock showing time till next event over a plain background (icon
and
context guide view)
5. Non-ticking clocks showing time till all upcoming events (sequentially)
over
various backgrounds (icon and context guide view)
6. Calendar view showing scheduled time of next upcoming event over various
backgrounds (icon and context guide view)
7. Calendar view showing scheduled time of all upcoming events (sequentially)
over
various backgrounds (icon and context guide view)
Animated graphic showing calendar motion (icon and context guide view)
9. Animated graphic of semantic image/motion(s) (e.g., schedule book) (icon
and
context guide view)
10. The total number of upcoming events over semantic image/motion(s) (icon
and
context guide view)
15s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
11. The total number of upcoming events over a plain background (icon and
context
guide view)
12. Titles of upcoming events animated in a sequence (list view)
13. Titles and details of upcoming events animated in a sequence (tiled view)
Discovery
The Discovery context template can be analogized to a personal, digital
version of the
"Discovery Channel." In this case, the emphasis is on "documentaries" about
particular topics.
The Discovery context template simulates intelligent aggregation of
information by randomly
selecting information objects that relate to a given set of categories and
which are posted within
an optionally predetermined, configurable time period. The semantic weight as
opposed to the
time is the preferred consideration for determining how the information is to
be ordered or
presented. The context template can be implemented by filtering all
information types by the
semantic link strength for the categorization predicate. In this case, the
filter should be less
selective than the 'Best Bets' filter - the context template lies somewhere
between 'Best Bets'
and 'All Items' in terms of filtering.
Figure 107 is a "Discovery" Visualization - Sample Image for smart hourglass,
interstitial page, transition effects, background chrome, etc. (Petri Dish).
Da~~~VaE ll~~I - ~AI~d~~~ ~~.I~~T AT~T~ ~~~~TT~~'lr BAS
VII~~JA.I~LI~.~TT~~I'T~
1. l~nimated graphic of semantic image/motion(s) (e.g., a telescope, a voyager
spacecraft, an old ship at sea) (icon and context guide view)
2. Titles of the first N information items in a sequential animation (list
view)
3. Titles and details of the first N information items in a sequential
animation (tiled
view)
4. The total number of items over semantic image/motion(s) (icon and context
guide
view)
5. The total number of items (icon and context guide view)
History
The History context template can be analogized to a personal, digital version
of the
"History Channel." In this case, the emphasis is on disseminating information
not just about
particular topics, but also with a historical context. For this template, the
preferred axes are
category and time. The History context template is similar to the Discovery
context template,
159

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
further in concert with "a minimum age limit." The parameters are preferably
the same as that of
the Discovery context template, except that the "maximum age limit" parameter
is replaced with
a "minimum age limit" parameter (or an optional "history time span"
parameter). In addition,
returned objects are preferably sorted in reverse or random order based on
their age in the system
or their age since creation.
Figure 108 illustrates a semantic "History" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc. (War
Memorial).
HISTORY - SAMPLE OBJECT AND CONTEXT BAR ANIMATIONS
VISUALIZATIONS
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Titles of the oldest (or random) N information items in a sequential
animation (list
view)
3. Titles and details of the oldest (or random) N information items in a
sequential
animation (tiled view)
4. Total number of items over semantic image/motion(s) (icon and contea~t
guide
view)
5. Total number of items over plain baclcground (icon and context guide view)
All IteYns
The All Items context template represents context that returns any information
that i~
relevant based on either semantics or based on a keyword or text based search.
In this case, the
emphasis is on disseminating information that may be even remotely relevant to
the context. The
primary axis for the All Items context template is preferably the mere
possibility of relevance. In
the preferred embodiment, the All Items context template employs both a
semantic and text-
based query in order to return the broadest possible set or universe of
results that may be
relevant.
Figure 109 illustrates a semantic Visualization - Sample Image for smart
hourglass,
interstitial page, transition effects, background chrome, etc. (~uter Space).
ALL ITEMS - VISUALIZATION & SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Animated graphic of semantic imagelmotion(s) or an equivalent
160

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
2. 'Titles of the most recent 1V mtormarion items in a sequential
animation (list view)
3. Titles and details of the most recent N information items
in a sequential animation
{tiled
view)
4. Total number of items over semantic image/motion(s) (icon
and context guide
view)
5. Total number of items over plain background (icon and
context guide view)
Best Bets
The Best
Bets
context
template
(and
its resulting
Special
Agent)
represents
context
that
returns only highly relevant information. In a preferred embodiment, the
emphasis is on
disseminating information that is deemed to be highly relevant and
semantically significant. For
this context template, the primary axis is relevance. In essence, the Best
Bets context template
employs a semantic query and will not use text based queries since it cannot
guarantee the
relevance of text-based query results. The Best Bets context template is
preferably initialized
with a category filter or keywords. If keywords are specified, the server
performs categorization
dynamically. Results are preferably sorted based on the relevance score, or
the strength of the
"belongs to category" semantic link from the object to the category filter.
Figure 110 illustrates a "Best Bets" Visualization - Sample Image for smart
hourglass,
interstitial page, transition effects, background chrome, etc. {Microscope).
BEST BET VISUAI,I~A'fIO~T - SAl~hI~E Ol~~~'I'" A~IsTI~ ~~~1'~T~I"E~'1C" ~~.,f~
~I'JIII~~°~Itt~?l~~
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Titles of the most recent N information items in a sequential animation
(list view)
3. Titles and details of the most recent N information items in a sequential
animation
(tiled view)
4. Total number of items over semantic image/motion(s) {icon and context guide
view)
5. Total number of items over plain background {icon and context guide view)
FAVORITES
The Favorites context template (and its resulting Special Agent) represents
context that
returns "favorite" or "popular" information. In this case, the emphasis is on
disseminating
information that has been endorsed by others and has been favorably accepted.
In the preferred
embodiment, the axes for the Favorites context template include the level of
readership interest,
161

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the "reviews" the object received, and the depth of the annotation thread on
the object. In one
embodiment, the Favorites context template returns only information that has
the "favorites"
semantic link, and is sorted by counting the number of "votes" for the object
(based on this
semantic link).
Figure 111 illustrates a semantic Visualization- Sample Image for smart
hourglass,
interstitial page, transition effects, background chrome, etc. (coffee and
pastry).
FAVORITES VISUALIZATION - SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Titles of the most recent N information items in a sequential animation
(list view)
3. Titles and details of the most recent N information items in a sequential
animation
(tiled view)
4. Total number of items over semantic image/motion(s) (icon and context guide
view)
5. Total number of items over plain background (icon and context guide view)
C1LA~~Ir'L~
The Classics context template (and its resulting Special Agent) represents
context that
returns "classical" information, or information that is of recognized value.
Like the Favorites
context template, the emphasis is on disseminating information that has been
endorsed by others
and has been favorably accepted. For this context template, the preferred axes
include a
historical context, the level of readership interest, the "reviews" the object
received and the depth
of the aimotation thread on the obj ect. The Classics context template is
preferably implemented
based on the Favorites context template but with an additional minimum age
limit filter and
voting score, essentially functioning as an "Old Favorites" context template.
Figure 112 illustrates a semantically appropriate Sample Image for "Classics"
for smart
hourglass, interstitial page, transition effects, background chrome, etc.
(Car)
CLASSICS VISUALIZATIONS - SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Titles of the most recent N information items in a sequential animation
(list view)
162

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
3. Titles and details of the most recent N information items in a sequential
animation
(tiled view)
4. Total number of items over semantic image/motion(s) (icon and context guide
view)
5. Total number of items over plain background (icon and context guide view)
' RECOMMENDATIONS
The Recommendations context template represents context that returns
"recommended"
information, or information that the Agencies have inferred would be of
interest to a user.
Recommendations will be inserted by adding "recommendation" semantic links to
the
"SemanticLinks" table and by mining the favorite semantic links that users
indicate.
Recommendations are preferably made using techniques such as machine learning
and
collaborative filtering. The emphasis of this context template is on
disseminating information
that would likely be of interest to the user but which the user might not have
already seen. For
this context template, the primary axes preferably include the likelihood of
interest and
freshness.
Figure 113 illustrates a semantically appropriate "Recommendation"
Visualization -
Sample Image for the contextual/application elements of smart hourglass,
interstitial page,
transition effects, background chrome, etc. (Thumbs up).
~~I~I~E1~~A'~CI~~~T ~I~IlALII~ATI~I~T - ~A1~~~E ~E~1ECT AI'~T~ ~~I'~T'~IE~~T'
EA 11~
AI\TI1~ATI~I'J~
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Titles of the most recent N information items in a sequential animation
(list view)
3. Titles and details of the most recent N information items in a sequential
animation
(tiled view)
4. Total number of items over semantic image/motion(s) (icon and context guide
view)
5. Total number of items over plain background (icon and context guide view)
TODAY
The Today context template represents context that returns information posted
or holding
(in the case of events) "today." The emphasis with this context template is
preferably on
163

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
disseminating information that is deemed to be current based on "today" being
the filter to
determine freshness.
Figure 114 illustrates a semantic "Today" Visualization - Sample Image for the
elements
smart hourglass, interstitial page, transition effects, background chrome,
etc.
"TODAY VISUALIZATION" - SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Titles of the most recent N information items in a sequential animation
(list view)
3. Titles aald details of the most recent N information items in a sequential
animation
(tiled view)
4. Total number of items over semantic imagelmotion(s) (icon and context guide
view)
5. Total number of items over plain background (icon and context guide view)
ANNOTATED ITEMS
The Annotated Items context template represents context that returns annotated
information. The emphasis with this context template is on disseminating
information that is
likely to be important based on the fact that one or moxe users have annotated
the items.
Figure 115 illustrates a semantic "Annotated Items" Visualization -- Sample
Image for
smart hourglass, interstitial page, transition effects, backgr~und chrome,
etc..
"~I'JI'~1~Th'~°EID IITEP~~" ~I~U~I~A'1CI~I'~T - ~~I~1IPILE ~BJ1EC'1C
~1'~T1D ~L~1'~T'If°E~'Ir EAR
AI'~TII~Ift~Ty01~~15
1. A~Zimated graphic of semantic imagelmotion(s) or an equivalent
2. Titles of the most recent N information items in a sequential animation
(list view)
3. Titles and details of the most recent N information items in a sequential
animation
(tiled view)
4. Total number of items over semantic image/motion(s) (icon and context guide
view)
5. Total number of items over plain background (icon and context guide view)
164

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
ANNOTATIONS
The Annotations context template represents context that returns annotated
information.
The emphasis with this context template is on disseminating information that
are annotations.
Figure 116 illustrates a semantic Visualization - Sample Image for smart
hourglass,
interstitial page, transition effects, background chrome, etc. (Note pinned to
Bulletin Board)
"ANNOTATIONS" VISUALIZATION - SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Titles of the most recent N information items in a sequential animation
(list view)
3. Titles and details of the most recent N information items in a sequential
animation
(tiled view)
4. Total number of items over semantic image/motion(s) (icon and context guide
view)
5. Total number of items over plain background (icon and context guide view)
EXPERTS
Figure 117 illustrates a semantic "Experts" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
(Professor)
"EXPERTS" VISUALIZATION - SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Animated graphic of semantic im~ge/n~otion(s) or an equi~ralent
2. Names of the most recent 1~ experts in a sequential animation (list view)
3. Names and details of the most recent N experts in a sequential animation
(tiled
view)
4. Total number of experts over semantic image/motion(s) (icon and context
guide
view)
5. Total number of experts over plain background (icon and context guide view)
PLACES
Figure 118 illustrates a semantic "Places" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
(Paris)
"PLACES" VISUALIZATION - SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Names of the most recent N places in a sequential animation (list view)
165

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
3. Names and details of the most recent N places in a sequential animation
(tiled
view)
4. Total number of places over semantic image/motion(s) (icon and context
guide
view)
6. Total number of places over plain background (icon and context guide view)
BLENDERS
Figure 119 illustrates a semantic "Blenders" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc.
(Blenders)
"BLENDERS" VISUALIZATION - SAMPLE ICONIC ANIMATIONS
1. Animated graphic of semantic image/motion(s) or an equivalent
2. Animated graphic of blender or mixer in action
3. Titles of the blender items in a sequential animation (list view)
4. Titles and details of the blender items in a sequential animation (tiled
view)
5. Total number of items over semantic image/motion(s) (icon and context guide
view)
6. Total number of items over plain background (icon and context guide view)
II'~Tl~~~I~'11I~I'~T ~l~JlECT T~PlE~
Figures 120 through 138 illustrate semantic Visualizations for the following
Information
Object Types, respectively: Documents, Books, Magazines, Presentations,
Resumes,
Spreadsheets, Text, Web pages, White Papers, Email, Email Annotations, Email
Distribution
Lists, E~rents, Meetings, Multimedia, Onlina Courses, People, Customers, and
Users.
PRESENTATION SI~.iN T'A'PES
TIMELINE
Figure 139 illustrates a semantic "Timeline" Visualization - Sample Image for
smart
hourglass, interstitial page, transition effects, background chrome, etc..
"TIMELINE" VISUALIZATION - SAMPLE OBJECT AND CONTEXT BAR
ANIMATIONS
1. Calendar view showing effective time (publication time, scheduled time,
etc.) of
information item over various backgrounds (icon and context guide view)
2. Calendar view showing effective time of all information items
(sequentially) over
various backgrounds (icon and context guide view)
3. Animated graphic showing calendar motion (icon and context guide view)
166

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
4. Animated graphic of semantic image/motion(s) (e.g., time warp imagelmotion)
(icon and context guide view)
5. The total number of information items over semantic imagelmotion(s) (icon
and
context guide view)
6. The total number of information items over a plain background (icon and
context
guide view)
7. Titles of information items animated in a sequence (list view)
8. Titles and details of information items animated in a sequence (tiled view)
9. Scrolling, linear timeline control with items populated based on effective
date/time
10. Animated timeline ticker control sorted by effective date/time
The Power of Semantic Visualizations.
One final note concerning Visualizations. The preferred embodiment not only
searches
for information semantically, and not only organizes and stores it
semantically, it also presents it
semantically. And, the presentation is not semantic only in the sequence,
organization and
relationships of the information, but also visually, as the foregoing
Visualizations are, in part,
intended to convey. As a result, the user is aided in understanding the
information being
presented by the system in roughly in the same way that a viewer of a movie is
aided in
understanding the meaning of dialogue by the surrounding context of the
lighting, costume,
music and entire set or scene. Put differently, the Visualizations, as with
everything else
presented or managed by, or located with, the preferred embodiment system,
serape the purpose
of conveying meaningful information; or, just as aptly, to convey information
meaningfully.
Ilileaning is a unifying theme of the preferred embodiment; it permeates the
design and operation
of the system, and each constituent component part of which the system is
comprised.
While the preferred and some alternate embodiments of the invention have been
illustrated and described, as noted above, many changes can be made without
departing from the
spirit and scope of the invention. Accordingly, the scope of the invention is
not limited by the
disclosure of the preferred embodiment. Instead, the invention should be
determined entirely by
reference to the claims that follow.
167

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Appendix A
SYSTEM AND METHOD FOR KNOWLEDGE RETRIEVAL,
MANAGEMENT, DELIVERY AND PRESENTATION
1 O IN VENT~R
Nosa 0moigui
P°RIO~,ITY CLAInI
This application claims priority from earlier filed U.S. Provisional Patent
Application
Serial No. 60/300,385 filed June 22, 2001 and U.S. Provisional Patent
Application Serial
No. d0/3~O,C10 filed February 28, 2002.
COPYRIGHT NOTICE
This disclosure is protected under tlnited States and International Copyright
Laws.
~ 2002 Nosa 0moigui. All Rights Reserved. A portion of the disclosure of this
patent
document contains material which is subject to copyright protection. The
copyright owner
has no objection to the facsimile reproduction by anyone of the patent
document or the patent
disclosure, as it appears in the Patent and Trademark Office patent file or
records, but
otherwise reserves all copyright rights whatsoever.
FIELD OF THE INVENT10N
This invention relates generally to information management systems and, more
specifically, to an integrated and seamless implementation framework and
resulting medium
for knowledge retrieval, management, delivexy and presentation.
168

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
BACKGROUND OF THE INVENTION
Knowledge is now widely recognized as a core asset for organizations around
the
world, and as a tool for competitive advantage. In today's comlected,
information-based
world, knowledge-workers must have access to the knowledge and the tools they
need to
make better, faster, and more-informed decisions to improve their
productivity, enhance
customer relationships, and to make their businesses more competitive. In
addition, industry
observers have touted "agility" and the "real-time enterprise" as important
business goals to
have in the information economy.
Many organizations have begun to realize the value of disseminating knowledge
within their organizations in order to improve products and customer service,
and the value
of having a well-trained workforce. The investments businesses are making in e-
Learning
and corporate training provides some evidence of this. Companies have also
invested in tools
for content management, search, collaboration, and business intelligence.
Companies are also
spending significant resources on digitizing their business processes,
particularly with respect
to acquiring and retaining customers.
However, many knowledge/learning and customer-relationship assets are still
stored
in a diverse set of repositories that do not understand each other's language,
and as a result
are managed and interacted with as independent islands of information. As
such, what many
organizations call "knowledge" is merely data and information. The
inforn~ation economy in
large part is a struggle to find a way to provide context, meaning and
efficient access to this
ever increasing body of data and information. Or, stated differently, to turn
the mass of
available data and information into usable knowledge.
Information has been long accessible in a variety of forms, such as in
newspapers,
books, radio and television media, and in electronic form, with varying
degrees of
proliferation. Information management and access changed dramatically with the
use of
computers and computer networks. Networked computer systems provide access
throughout
169

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the system to infornlation maintained at any point along the system. Users
need only
establish the requisite connection to the network, provide proper
authorization and identify
the desired information to obtain access.
Information access further improveoi with the advent of the Internet, which
connects a
large number of computers across diverse geography to provide access to a vast
body of
information. The most wide spread method of providing information over the
Internet is via
the World Wide Web. The Web consists of a subset of the computers or Web
servers
connected to the Internet that typically 'run Hypertext Transfer Protocol
(HTTP), File
Transfer Protocol (FTP), GOPHER or other servers. Web servers host Web pages
at Web
sites. Web pages are encoded using one or more languages, such as the original
Hypertext
Markup Language (HTML) or the more current eXtensible Markup Language (?AML)
or the
Standard Generic Markup Language (SGML). The published specifications for
these
languages are incorporated by reference herein. Web pages in these formatting
languages
may be accessed by Internet users via web browsing software such as
Microsoft's Internet
Expl~rer or 1'letscape's hTavigator.
The Web has largely been organized based on syntax and structure, rather than
context and semantics. As a result, information is typically accessed via
search engines and
Web directories. Current search engines use keyword and corresponding search
techniques
that rely on textual or basic subject matter inforniation and indices without
associated context
and semantic information. Unfortunately, such searching methods produce
thousands of
largely unresponsive results; documents a:; opposed to actionable knowledge.
Advanced
searching techniques have been developed to focus queries and improve the
relevance of
search results. Many such techniques rely on historical user search trends to
make basic
assumptions as to desired information. Alternatively, other search techniques
rely on
categorization of Web sites to further focus i:he search results to areas
anticipated to be most
relevant. Regardless of the search technique, the underlying organization of
searchable
i7o

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
information is index-driven rather than context-driven. The frequency or type
of textual
information associated the document detencnines the search results, as opposed
to the
attributes of the subject matter of the document and how those attributes
relate to the user's
context. The result is continued ambiguity and inefficiency surrounding the
use of the Web
as a tool for acquiring actionable knowledge.
In enterprises around the world today, the Web is the information platform for
knowledge-workers. And there lies the problem. The Web asvve know it is a
platform for
data and information while its users operatE; at the level of "knowledge."
This disconnect is a
very fundamental one and carrot be understated. The Web, in large measure, has
fulfilled the
dream of "information at your fingertips." However, knowledge-workers demand
"knowledge at your fingertips" as opposed to mere "Illf~rmatlon at your
fingertips."
Unfortunately, today's knowledge-workers use the Web to browse and search for
documents-compilations of data and information-rather than actual knowledge
relevant to
their inquiry. To achieve improved knowledge requires providing proper
context, meaning
and efficient access to data and information, all of which are missing with
the traditional
Web.
Efforts have been made to achieve the goal of "knowledge at your fingertips."
One
example is a new concept for information organization and distribution
referred to as the
Semantic Web. The Semantic Web is an extension of the current Web in which
information
is given well-defined meaning, better enabling computers and people to work in
cooperation.
While conceptually a significant step forward in supporting improved context,
meaning and
access of information on the Internet, the Semantic Web has yet to find
successful
implementation that lives up to its stated potential.
Both the current Web and the Semantic Web fail to provide proper context,
meaning
and efficient access to data and information to allow users to acquire
actionable knowledge.
This is partially a problem related to the ways in which Today's Web and the
contemplated
171

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Semantic Web are structured or, in other words, related to their teclmology
layers. As shown
in FIGURE 1, Today's Web, for example, which is a hypertext medium, provides
the three
technology layexs, which include "dumb" links, or links having no context-
sensitivity,
tlIlle-SeIISItIVIty, etc. Present conceptualizations of the Semantic Web, also
referred to as a
"semantic hypermedia," provide for five 'technology layers, as shown in FIGURE
2. As
explained in greater detail below, there area serious limitations associated
with each of the
technology layer structures.
In addition, various properties must be. present in a comprehensive
infornlation
management system to provide an integrated and seamless implementation
framework and
resulting medium for knowledge retrieval, management and delivery. A non-
exhaustive list
of these properties include: Semantics/h~eaning; Context-Sensltmty; Time-
Sensitivity;
Automatic and intelligent Discoverability; Dynamic Linking; User-Controlled
Navigation
and Browsing; Non-HTML and Local Document Participation in the Network;
Flexible
Presentation that Smartly Conveys the Semantics of the Information being
Displayed; Logic,
Inference, and Reasoning; Flexible User-Driven Information Analysis; Flexible
Semantic
Queries; Read/Write Support; Annotations; "Web of Trust"; Information Packages
("Blenders"); Context Templates, and User-CJriented Information Aggregation.
Each of these
properties will be discussed below in the context of their application to both
Today's Web
and the Semantic Web.
2O SEMANTICS/MEANINC
Today's Web lacks semantics as an intrinsic part of the platfornl and user
experience.
Web pages convey only textual and graphical data rather than the semantics of
the data they
contain. As a result, users cannot issue semantic queries such as those that
one might expect
with natural language-for example, "find nue all books less than hundred pages
long, about
Latin Jazz, and published in the last five years." To be able to process such
a query, a Web
site or search engine must "know" it contains. books and must be able to
intelligently filter its
172

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
contents based on the semantics of the query request. Such a query is not
possible on the
Web today. Instead, users are forced to rely on text-based searches. These
searches usually
result in information overload or information loss because the user is forced
to pick search
terms that 1171ght not match the text in the information base. In the
afOreI11e11t10ned example, a
user might pick the search term "Books Latin Jazz" and hope that the search
engine can make
the connection. The user is usually then left to independently filter the
search results. This
sort of text=based search also implies that teens that might convey the same
meaning. In the
above example, results from search teens such as "Books on .South or Central
American
Jazz" or "Publications on Jazz from Latino Lands" might be ignored during the
processing of
the search query.
The lack of semantics also implies that Today's Web does not allow users to
navigate
based on they way humans think. For example, one might want to navigate a
corporate
intranet using the organizational structure. For example, from people to the
documents they
create to the experts on that documents to the direct reports of those experts
to the
distribution lists the direct reports are members of to the members of the
distribution lists to
the documents those members created, etc. This "web" is semantic and is based
on actual
information classification ("things") and not: just "pages" as Today's Web is.
The lack of semantics also has other implications. First, it means that the
Web is not
programmable. With semantics, the Web can be consumed by Smart Agents that can
make
sense of the pages and the links and then make inferences, recommendations,
etc. With
Today's Web, the only "Agent" that can make inferences is the human brain. As
such, the
Web does not employ the enormous processing power that computers are capable
of-
because it is not represented in a way that computers can understand.
The lack of semantics also implies that information is not actionable. A
search engine
does not "understand" the results it spits out. As such, once a user receives
search results, he
or she is "on his or her own." Also, a web browser does not "understand" the
information it is
173

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
displaying and as such cannot d0 Slllart th117gS Wlth the information. With
semantics in place,
a smart display, for example, will "know" that an event is an event and might
do interesting
things like check if the event is already in the user's calendar, display
free/busy information,
or allow the user to automatically insert tlae event into his/her calendar
thereby making the
information actionable. IIlfOn11at10t1 presented without SelllantlCS 15 nOt
aCtlOnable Or Illlght
require that the semantics be inferred, which might result in an unpleasant
user experience.
The Semantic Web seeks to address semantics/meaning limitations with Today's
Web
by encoding information with well-defined semantics. Web pages on the Semantic
Web
include metadata and semantic links to otloer metadata, thereby allowing
search engines to
perform more intelligent and accurate searches. In addition, the Semantic Web
includes
ontologies that will be employed for knowledge representation, thereby
allowing a semantic
search engine to interpret terms based on n-leaning and not merely on text.
For example, in
the previous example, Latin Jazz ontology might be employed on a Semantic Web
site and
would allow a search engine on the site to ":know" that the terms "Books on
South or Central
l~merican Jazz" or "Publications on Jazz from Latino Lands" have the same
meaning as the
term "Books on Latin Jazz." While concepi:ually overcoming many of the
deficiencies with
Today's Web, there has not to date been a successful implementation of a well-
defined data
model providing context and meaning, including in particular the necessary
semantic links,
ontologies, etc. to provide for additional characteristics such as context-
sensitivity and
time-sensitivity.
CONTEAT-SENSITIVITY
Today's Web lacks context-sensitivity. The implication of a lack of context is
that
Today's Web is not personal. For example, documents in accessible storage are
independently static and therefore stupid. Irlfornzation relevant to the
subject matter of the
document has already been published, is being newly published, or will soon be
published.
Because the document in storage is static, however, there is no way to
dynamically associate
174

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
its subject matter with this relevant information in real-tinge. Stated
differently, users have no
way to dynamically connect their private context with external information in
real-time.
Information sources (such as the document) that form context sit in their own
islands, totally
isolated from other relevant information sources. This results in information
and productivity
losses.
The primary reason for this is that Today's Web is a presentation-oriented
medium
designed to present views of information to a dumb client (e.~., remote
computer). The client
has virtually no role to play in the user experience, aside from merely
displaying what the
server tells it to display. Even in cases where there is client-side code
(like Java applets and
ActiveX controls), the controls usually do one specific thing and do not have
coordinated
action with the remote server such that coda on the client is being
orchestrated with code on
the server.
From a productivity standpoint, the implication of this is that knowledge-
workers and
inforniation consumers are totally at the mercy of information authorse
'Today,
knowledge.-workers have portals that are maintained and updated to provide
custom views of
corporate information, external data, etc. However, this is still very
limiting because
knowledge-workers are completely helpless if nothing dynamically and
intelligently connects
relevant information in the context of their task with information that users
have access to.
If a knowledge-worker does not see a link to a relevant piece of information
on his of
her portal, of if a friend or colleague does not email him or her the link,
the information gets
dropped; infomlation does not connect with or adapt to the user context or the
context in
which it is displayed. Likewise, it is not enough to just notify a user that
new data for an
entire portal is available and shove it down to their local hard drive. It
lacks a customizable
presentation with context sensitive alert notif cations.
' 'vThe Semantic Web suffers from the same limitations as Today's Web when it
comes
to context-.sensitivity. On the Semantic Wets, users are likewise at the mercy
of information
i7s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
authors. The Semantic Web itself will be authored, but the authoring will
include semantics. '
As a result, users are still largely on their own to locate and evaluate the
relevance of
available information. The Semantic .Web, as a standalone entity, will not be
able to make
these dynamic connections with other information sources.
S TIME-SENSITIVITY
Today's Web lacks time-sensitivity. The Web platform (e.g., browser) is a dumb
piece of software that merely presents information, without any regard to the
time-sensitivity
of the information. The user is left to infer time sensitivity or do without
it. This results in a
huge loss in productivity because tlae Web ;platform cannot make time-
sensitive connections
in real-time. While some Web sites focus on presenting time-sensitive
information, for
example, by indexing information past a predetermined date, the Web browser
itself has no
notion of time-sensitivity. Instead, it is left to individual Web sites to
include time-sensitivity
in the information they display in their own island. In other words, there is
no axis of time on
a Web link.
1 S Tlm ~er~antgc °~~eb9 like Today's Web, also does not address time-
sensitivity.
A Semantic Web can have semantic links that do not internalize time. This is
largely because
the Semantic Web implicitly has no notion of software Web services that
address context and
time-sensitivity.
AUTOMATIC AND INTELLIGENT DISCOVEIZAI31LITY
?0 Today's 'Web lacks automatic anti intelligent discoverability of newly
created
information. There is currently no way to know what Web sites started anew
today or
yesterday. Unless the user is notified or the user serendipitously discovers a
new site when he
or she does a search, he or she might not have any clue as to whether there
are any new Web
sites or pages. The same problem exists in. enterprises. On Intranets,
knowledge-workers
25 have no way of knowing when new Web sites come up unless informed via some
external
means. The Web platform itself has no notion of announcements or discovery. In
addition,
176

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
there is no context-sensitive discovery to determine new sites or pages within
the context of
the user's task or current information space.
The Semantic Web, like Today's Web, does not address the lack of automatic
discoverability. Semantic, Wel? sites suffer from the, same prOblelll-uSerS
either Wlll have to
find out about the existence of new information sources from external sources
or'~tlrough
personal discovery when they perform a search.
DYNAI'11C LINKING
Today's Web employs a pure network or graph "data structure" for its
information
model. Each Web page represents a node in the network and each page can
contain links to
other nodes in the network. Each link is manually authored into each page.
This has several
problems. First, it means that the network needs to be maintained for it to
have continuous
value. If Web pages are not updated or if Web page or site authors do not have
the discipline
to add links to their pages based on relevance, the network loses value.
Today's Web is
essentially prone to having dead links, old links, etc. Another problem with a
pure network or
graph information model is that the information consumer is at the mercy of-
rather than in
control of-the presentation of the Web paf;e or site. In other words, if a Web
page or site
does not contain any links, the user has no recourse to find relevant
information. Search
engines are of little help because they merely return pages or nodes into the
network. The
network itself does not have any independent or dynamic linking ability. Thus,
a search
engine can easily return links to Web pages that themselves have no links or
dead, stale or
irrelevant links. Once users obtain search results, they are on their own and
are completely at
the mercy of whether the author of the returned pages inserted relevant, time-
sensitive links
into the page.
The Semantic Web suffers from the same' problem as Today's Web because the
Semantic Web is merely Today's Web plus semantics. Even though users will be
able to
navigate the 'network semantically (which they cannot currently do with the
Web), they will
177

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
still be at the mercy of how the information has been authored. In other
words, the Semantic
Web is also dependent on the discipline of the authors and hence suffers from
the same
aforementioned problems of Today's Web. If the Semantic Web includes pages
with
ontologies and metadata, but those pages are not well maintained or do not
include lines to
other relevant sources, the user will still be unable to obtain current links
and other
information. The Semantic Web, as currently contemplated, will not be a smart,
dynamic,
self authoring, self healing network.
USER-CONTROLLED NAVIGATION AND BROWSING
With Today's Web, the user ha s no control over the navigation and browsing
experience, but rather is completely at the mercy of a Web page and how it is
authored with
links (if any). As shown with reference tea prior art FICiUI~E 3, Today's Web
consists of
"dumb links," or statically authored generic links that are wholly dependent
on continuous
maintenance to be navigable.
The Semantic Web suffers from a similar problem as Today's Web in that there
is no
user-controlled browsing. Instead, as shown with reference to prior art
FICaLJRE 4~, the
Semantic Web consists of "dumb links," further including....semantic
information and
metadata. However, the Semantic Web links remain equally dependent on
continuous
maintenance to be navigable.
NON-HTML AND LOCAL DOCUnIENT PARTICIPATION IN THE NETWORK
Another problem with Today's Web is the requirement that only documents that
are
authored as HTML can participate in the Web, in addition to the fact that
those documents
have to contain links. The implication is that other information objects like
non-HTML
documents (e.g., PDF, Microsoft Word, PowerPoint, and Excel documents, ete.)-
especially
those on users" hard drives-are excluded from the benefits of linking to other
objects in the
network. This is very limiting, especially since there might be semantic
relevance between
information objects that are not HTML and vrhich do not contain links.
17s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Furthermore, search engines do not return results for the entire universe of
information since vast amount of content available on the web is inaccessible
to standard web
crawlers. This includes, for example, content stored in databases, unindexed
file repositories,
subscription sites, local machines and devices, proprietary file formats (such
as Microsoft
5Office documents and email), and non-text multimedia files. These form a vast
constellation
of inaccessible matter on the Internet, referred to as "the invisible
Intranet" inside
corporations. Today's Web servers do not provide web crawler tools that
address this
problem.
The Semantic Web also suffers from this limitation. It does not address the
millions
of non-HTML documents that are already out there, especially those on users"
hard drives.
The implication is that docwnents that do not have RI)F metadata equivalents
or proxies
cannot be dynamically linked to the network:.
FLEXIBLE PRESENTATION THAT SMARTLY CONVEYS TI-IE SEA9ANTICS OF THE
INFORMATION BEING DtSPLAYEH
T°oday'~ Web does not allow users to customise or "skin" a Web site or
page. This is
because Today's Web servers return information that is already formatted far
presentation by
the browser. The end user has no flexibility in choosing the best means of
displaying the
information-based on different criteria (e.g., the type of infornlation, the
available amount
of real estate, etc.)
The Semantic Web does not address the issue of flexible presentation. While
a semantic Web site conceptually employs I2DF and ontologies, it still sends
HTML to the
browser. Essentially, the Semantic Web does not provide for specific user
empowennent for
presentation. As such, a Semantic Web site, viewed by Today's Web platform,
will still not
empower the user with flexible presentation. Moreover, despite industry
movement towards
XML,., only a new platform can dictate that data will be separated from
presentation and
define guidelines for making the data programmable. Authors building content
for the
179

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Semantic Web either return XML and avoid issues with presentation entirely, or
focus their
efforts on a single presentation style (vertical industry scenario) for
rendering. Neither
approach allows the Semantic Web to achieve an optimum degree of knowledge
distribution.
LOGIC, TNFERENCE AND REASONING
Because Today's Web does not have any semantics, metadata, or knowledge
representation, computers cannot process Web pages using logic and inference
to infer new
links, issue notifications, etc. Today's Web was designed and built for human
consumption,
not for computer consumption. As such, Today's Web cannot operate on the
information
fabric without resorting to brittle, unreliable techniques such as screen
scraping to try to
extract metadata and apply logic and inference.
While the Semantic Web conceptually uses metadata and meaning to provide Web
pages and sites with encoded information that can be processed by computers,
there is no
current implementation that is able to successfully achieve this computer
processing and
which illustrates new or improved scenarios that benefit the information
consumer or
1 S producer.
FLE7~IBLE USER-DRIVEN INi°OR111AT10N A1VALYSIS
Today's Web lacks user-driven information analysis. Today's Web does not allow
users to display different "views" of the links, using different filters and
conditions. For
example, Web search engines do not allow users to test the results of searches
under different
scenarios. Users camiot view results using different pivots such as
information type (e.g.,
documents, email, etc.), context (e.g., "Headlines," "Best Bets," etc.),
category (e.g.,
"wireless," "technology," etC.) etC.
While providing a greater degree of flexible information analysis, the
Semantic Web
does not describe how the presentation layer can interact with the Web itself
in an interactive
fashion to provide flexible analysis.
1so

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FLExII3LE SEMANTIC QUERIES
Today's VVeb only allows text-based queries or queries that are tied to the
schema of
a particular Web site. These queries lack :flexibility. Today's Web does not
allow a user to
issue queries that approximate natural language or incorporate semantics and
local context.
Foi: example, a query such as "Find me all email messages written by my boss
or anyone in
,,;
research and which relate to this specification on my hard disk" is not
possible with~Today's
Web.
By employing metadata and ontolo dies, the conceptual Semantic Web allows a
user
to issue more flexible queries than Today's Web. For example, users will be
able to issue a
query such as "Find me all email messages written by my boss or anyone in
research."
However, users will not be able to incorporate local context. In addition, the
Semantic Web
does not define an easy manner with which users will query the Web without
using natural
language. Natural language technology is an option but is far from being a
reliable
technology. As such, a query user interface that approximates natural language
yet does not
rely on natural language is requirede The Semal~tic Web does not address thiso
IDEA~JWRITE SUPP~RT
Today's Web is a read-only Web. For example, if users encounter a dead link
(e.g., via the "404" error), they caln~ot "fix" the link by pointing it to an
updated target that
Illlght be known to the user. This can be limiting, especially in cases where
users might have
important knowledge to be shared with others and where users might want to
have input as to
how the network should be represented and f;volve.
While the Semantic Web conceptually allows for read/write scenarios as
provided by
independent participating applications, there is no current implementation
that provides this
ability.
1s1

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
ANNOTATIONS
Today's Web has no implicit support for annotations. And while some specific
Web
sites support annotations, they do so in a~ very restricted and self contained
way. Today's
Web medium itself does not address annotations. In other words, it is not
possible for users to
annotate any link with their comments or additional information that they have
access to.
This results in potential information loss.
While the Semantic Web conceptually allows for annotations to be built into
the
system subject to security constraints, there is no current implementation
that provides this
ability.
"WEe or. TRUST"
Today's Web lacks seamless integration of authentication, access control, and
authorization into the Web, or what has been referred to as a "Web of Trust:"
With a Web of
Trust, far example, users are able to make assertions, fix and update links to
the Web and
have access control restrictions built in for such operations. On Today's Web
this lack of
trust also means that ~jeb se.p-~rices remain independent islands that musfi
implement a
proprietary user subscription authorization, access control or payment system.
Grand
schemes for~centralizing this information on 3rd party servers meet with
consumer and vendor
distrust because of privacy concerns. To gain access to rich coritent, asset
users must log in
individually and provide identity information at each site.
Zfl While the Semantic VVeb conceptually allows for a Web of Tnist, there is
no current
implementation that provides for this ability.
INFORIIIATION PACKAGES (BLENDERS)
Neither Today's Web nor the Semantic Web allows users to deal with related
semantic information as a whale unit by combining characteristics of
potentially divergent
semantic information to produce overlapping results (for example, like
creating a custom,
personal newspaper or TV channel).
1s2

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
r
CONTEXT TEMPLATES
Neither Today's Web nor the Semantic Web allows users to independently create
and map to specific and familiar semantic rnodels for information access and
retrieval.
USER-ORIENTED INFORMATION AGGREGATION
Today's Web lacks support for user-oriented information aggregation. The user
can
only access one Web site or one search engine at a time, within the context
~of one browsing
session. As such, even if there is context or time-sensitive infonnation on
other information
sources that relate to the information that the user is currently viewing,
those sources cannot
be presented in a holistic fashion in the current context of the user's task.
10. The Semantic Web also suffers from a lack of user-oriented infornlation
aggregation.
The medium itself is an extension of Today's Web. As such, users will still
access one site or
one search engine at a time and will not be able to aggregate information
across infornlation
repositories in a context or time-sensitive manner.
Given the growing demand for "knowledge at your fingertips" as well as the
deficiencies in Today~s Web and the conceptual Semantic ~eb9 many of which are
noted
above, there is a need for a new and comprehensive system and method of
knowledge
retrieval, management and delivery.
SU1~9MARY OF THE INVENTION
The present invention is directed in part to an integrated and seamless
implementation
framework and resulting medium for knowledge retrieval, management, delivery
and
presentation. The system includes a server comprised of several components
that work
together to provide context and time-sensitive semantic information retrieval
services to
clients~operating a presentation platform via a communication medium. The
server includes a
first server component that is responsible for adding and maintaining domain-
specific
semantic information ° or intelligence. The first server component
preferably includes
structure or methodology directed to providing the following: a Semantic
Network, a
183

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Semantic Data Gatherer, a Semantic Network Consistency Checker, an Inference
Engine, a
Semantic Query Processor, a Natural Language Parser, an Email Knowledge Agent
and a
I~.nowledge Domain Manager. The server' includes a second server component
that hosts
domain-specific information that is used to classify and categorize semantic
infonnatian. The
first and second server components work together and may be physically
integrafed or
separate.
~ltl7ltl the system, all objects or events in a given hierarchy are active
Agents
semantically related to each other and representing queries (comprised of
underlying action
code) that return data objects for presentation to the client according to a
predetermined and
customizable theme or "Skin." This system provides various means for the
client to
customize and "blend" Agents and the underlying related queries to optimize
the presentation
of the resulting information.
The end-to-end system architecture of the present invention provides multiple
client
access means of communication between diverse knowledge information sources
iyia an
independent Semantic 5~eb platform or via a traditional Web ,portal (e.g.,
Today's Veleb
access browser) as modified by the present invention providing additional'
SDI. layers that
enable programmatic integration with a cust~am client.
The methodology of the present invention is directed in part to the
operational aspects
of the entire system, including the retrieval, management, delivery and
presentation of
knowledge. This preferably includes securing information from information
sources,
semantically linking the information from tLie information sources,
maintaining the semantic
attributes of the body of semantically linked information, delivering
requested semantic
information based upon user queries and presenting semantic information
according to
customizable user preferences. Alternative embodiments of the methodology of
the present
invention are directed to the operation of Agents representing queries that
are used with
184

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
server-side and client-side applications to enable efficient, inferential-
based queries
producing semantically relevant infonnatian.
BRIEF DESCRIPTION OF THE DRAWINGS
The preferred and alternative embodiments of the present invention are
described in
detail below with reference to the following; drawings.
FIGURE 1 is a table showing the te~~hnology layers of Today's Web.
FIGURE 2 is a table showing the technology layers of the conceptual Semantic
Web.
FIGURE 3 is a diagram showing user navigation to links in Today's Web.
FIGURE 4 is a diagram showing user navigation to links in the conceptual
Semantic
Web.
FIGURE S is a screenshot showing a sample Information Agent Results Pane 111
accordance with the present invention.
FIGURE 6 shows the technology platform stacks of Today's Web and the
Information Nervous System of the present :invention.
1 S FIGURE 7 is a diagram showing an ~averview of the system of the present
invention.
FIGURE 8 is a diagram showing the end-to-end system architecture for the
Information Nervous System of the present invention.
FIGURE 9 is a diagram showing; the system architecture for the Knowledge
Integration Server (KIS) of the Information Nervous System of the present
invention.
FIGURE 10 is a comparison between the high-level descriptive platform layers
of
Today's Web and the equivalents (where applicable) in the Inforn~ation Nervous
System of
the present invention.
FIGURE 11 illustrates the preferred embodiment of the Information Nervous
System
and illustrates the heterogeneous, cross-platfann context for the present
invention.
FIGURES 12-14 show exemplar screenshots of aspects of the Blender Wizard user
interface according to a, preferred embodiment of the present invention.
1s5

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FIGURE 15 is an exemplar pane of a Breaking News Agent user interface.
FIGURE 16 illustrates a preferred embodiment showing the Open Agent dialog of
the
present invention.
FIGURES 17-19 illustrate the Tree View of a sample Semantic Environment
involving the Open Agent dialog.
FIGURE 20 shows the Agent schf;ma of the preferred embodiment of the present
invention.
FIGURE 21 shows the AgentTypeIDs of the preferred embodiment of the present
invention.
FIGURE 22 shows the AgentQueryTypeIDs of the preferred embodiment of the
present invention.
FIGURE 23 illustrates sample semantic queries that correspond to Agent names
showing how server-side Agents are preferably configured on the ISIS of the
present
invention.
FIGU~ 24 is a diagram showing an. overview of the ISIS of the present
invention.
FIGURE 25 is a diagram showing a sample Semantic Network directed towards an
enterprise situation in accordance with the present invention.
FIGURE 26 is a table showing the preferred schema of the Object type in
accordance
with the present invention.
2p FIGURE 27 shows the SemanticLinks table of the present invention.
FIGURE 28 is a table showing predicate type IDs of the preferred embodiment of
the
present invention.
FIGURE 29 is a table showing the preferred user object schema made in
accordance
with the present invention.
FIGURE 30 is a table showing MailingAddressTypeIDs preferably associated with
the User (person) object schema.
186

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FIGURE 31 is a table of the preferred category object schema made in
accordance
with the present invention.
FIGURE 32 is a table of the preferred document object schema made in
accordance
with. the present invention.
FIGURE 33 shows the Print Media Type IDs of the preferred embodiment.
FIGURE 34 shows the preferred FORMATTYPEID.
FIGURE 35 shows the preferred email message list object schema made in
accordance with the present invention.
FIGURES 36 and 37~ are exemplar tables showing the email distribution list and
email
public folder object schemas, respectively, of a preferred embodiment of the
present
lIlventl On.
FIGURE 38 shows the preferred Puh~licFolderTypeID of the present invention.
FIGURE 39 shows the preferred event object schema message list object schema
made in accordance with the present invention.
FIGURE 4~0 shows the events types of a preferred embodiment of the present
invention.
FIGURE 41 shows the preferred media object schema message list object schema
made in accordance with the present invention.
FIGURE 42 shows the media types of a preferred embodiment of the present
invention.
FIGURES 43-45 illustrate additional samples showing how objects are
categorized
and utilized in the preferred embodiment of the present invention.
FIGURE 46 is an object graph showing mapping of raw email XML metadata to the
Semariti.c Network according to the present invention:
FIGURES 47-53 are exemplar screenshots showing aspects of Agent management by
the KIS.
is7

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FIGURE 54 shows a sample user interface illustrating an information object
displayed in the Information Agent Results Pane.
FIGURE 55 shows an example of a balloon popup associated with an Ilitrinsic
Semantic Link showing an email sample according to the present invention.
FIGURE 56 shows an example of a balloon popup associated with a Verb user
interface according to the present invention.
FIGURE 57 shows an example of a balloon popup associated with a Deep
Information Mode user interface according to the present invention.
FIGURES 58 and 59 are illustraticms showing an exemplar Semantic Environment
according to the present invention.
FIGURES 60-68 provide exemplar screenshots of an Information Agent according
t~
a preferred embodiment of the present invention.
FIGURES 69-71 provide exemplar balloon popup menus associated with the Smart
Lens feature of an Information Agent accoreling to the present invention.
FIGURE 72 shows a sample of a variant of the balloon popup menu of FIGURE 71
showing the relatedness measure of the two objects.
FIGURES 73-75 show sample~table~, illustrating the behaviors and relational
contains
objects types predicates when using Smart Lenses.
FIGURE 76 is a user interface sample illustrating semantic results
PlayerlPreview
Control according to the present invention.
FIGURE 77 is a user interface sample showing the semantic results of a
Blender.
FIGURES 78 and 79 illustrate exemplar functionality mappings of the present
invention.
FIGURE 80 illustrates a user interface showing Agent results and corresponding
Context Palettes according to the present invention.
lss

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
FIGURE 81 shows a sample Slnart Recommendations popup context Results Pane
according to the present invention.
FIGURE 82 is a table showing the technology layers of the IIIfOrI11at1011
Nervous
System of the present invention.
FIGURE 83 illustrates dynamic linking and user-controlled navigation and
browsing
according to a preferred enlbOdllllellt of the present invention.
DOCUMENTS INCORPORATED BY REFERENCE
The Appendix attached hereto and referenced herein is incorporated by
reference.
This Appendix includes exemplar code illustrating a preferred embodiment of
the present
invention.
C~1~1TENTS OF DETAILED DESCRIPTION OF THE INVENTION
A. DEFINITIONS
B. OVERVIEW
1. INVENTION CONTEXT
1 2. ~a9L UE ~ROhOSITIONS
S
I'~DA1'~S' 6gINFOR~IATIONe9 f~PEE I'S TtIE ZNF~R~fATION1~,L~R6'~IIS
S'3'STErbI OF
TIIE d~RESENT INVENTION
C. SYSTEM ARCHITECTURE AND TECHNOLOGY CONSIDERATIONS
1. SYSTEM ~VERYIEId'
2O 2. SYSTEMARCIIITECTURE
3. TECIINOLOGYSTACKS
4. SYSTEMHETEROGE71'EITY
S. SECURITY
B. EFFICIENCY CONSIDERATIONS
25 D. SYSTEM COMPONENTS AND OPERATION
I. A GENCIES AND t1 GENTS
a. Age~rcies
b. Agents
Z. ~ KNOIIsLEDGE INTEGRATION SERVER
30 a. Senrarrtic Netlvork
b. Senrarrtic Data Gatherer
189

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
c. Semantic Nehvork Consistency Checker'
d. Ir ference Engine
e. Semantic Quel y Processor'
f. Natztral Langrtage Farser
g. Enaail Knowledge Al;ent
77. Knowledge Domain Manager
i. Other' Components
3. KNO IVLEDGE BASE SER VER
4. INFORMATION A GENT ~SErI~ANTIC BRO I f~SER PLATFORlIT~
a. Overview
b. Client Configuration
c. Client Framework Specification
d. Client,Framework
e. Sellaantic Quel;y Docrrnaent
f. Senaaratie Er7V11'~r7l7aelrt
g. Sel7aaratlC E71V11'Olt)ne)at lvlanagel'
I7. E11V11'011171e1tt Br'OlvSe1' (Se177alatlC Bl'OWSer'
OT Ilrf0177aat1017 AgelatT~)
i. Additional Application Featztres
$. PRO RIDING CONTEXT IN TfIE PRESENT INTENTION
2D a. Context Templates
b. Context Skir7s
c. Skin Templates
d. Default Predicates
e. Context Predicates
f. Context Attributes
g. Context Palettes
h. Intrinsic Alerts
i. Smart Recommendations
G. , PROPERTYBENEFITS OF TIIE.~RESENT INDENTION
E. SCENARIOS
I. EXAMPLES OF SEMANTIC QUERIES UTILIZING THE PRESENT
INVENTION
2. BUSINESS PROBLEMS
3. SITUATIONS
DETAILED DESCRIPTION OF TI-IE INVENTION
190

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
A: DEFINITIONS
ActionScript. Scripting language of Macromedia Flash. This two-way
communication assists users in creating interactive movies. See
http:l! _www.macromedia.comlsupportlflashlaction_scriptslactionscript
tutoriall.
. Agency. A named instance of a Knowledge Integration Server (KIS) that is the
semantic equivalent of a website.
Agency Directory. A directory that stores metadata information, for Agencies
and
allows clients to add, remove, search, and browse Agencies stored within.
Agencies can be
published on directories like LDAP or the Microsoft Active Directory. Agencies
can also be
published on a proprietary directory built specifically for Agencies.
Agent. A semantic filter query that returns ~~IL information for a particular
semantic object type (e.g., documents, email, people, etc.), context (e.g.,
Headlines,
Conversations, etc.) or Blender.
~ BlenderTM or Compound AgentT"'. Trademarked name for an Agent that
1 ~ Colltalll5 Other Agents and alloys the user (in the case of client-side
blenders) or
the Agency administrator (in th~~ case of server-side blenders) to create
queries
that generate results that are the union or intersection of the results of
their
contained Agents. In the case of client-side blenders, the results can be
generated
using different views (showing each Agent in the blender in a different frame,
showing all the objects of a particular object type across the contained
Agents,
etc.)
~ Breaking News AgentT"t. Trademarked name for a Smart Agent that users
specially tag as being indicative of time-criticality. Users can tag any Smart
Agent
as a Breaking News Agent. This attribute is then stored in users' Semantic
Environment. A Breaking News Agent preferably shows an alert if there is
breaking news related to any information being displayed.
~ Default AgentT~l. Trademarked name for standardized, non-user modifiable
Agents presented to the user. ,
~~ Domain AgentT~'~. Trademarked name for an Agent that belongs to a semantic
domain. It is initialized with an Agent query that includes reference to the
"categories" table.
191

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Dumb AgentT"~. Trademarked name for an Agent that does not have an Agency
and which refers to local information (on a local hard drive), on a network
share
or on a Web link or URL. Dumb Agents are used to essentially load infomlation
items (e.g., documents) from a. non-smart sandbox (e.g., the file-system or
the
Internet) to a smart sandbox (the Information Nervous System via the
Inforniation
.. Agent (semantic browser)).
~ Email AgentT"z (or Email Knowledge AgentTn~. Trademarked names for a
Public Agent used to publish or annotate information and share knowledge on an
Agency. '
~ Favorite AgentT"t. Trademarked name for Agents that users indicate they like
and access often.
Public AgentT"t. Trademarked name for Agents that are created and managed by
the system administrator.
~ Private or Local AgentsTr~. Trademarked names for Agents that are created
and
managed by users.
~ Search AgentTr~. Trademarked) name for a Smart Agent that is created by
searching the semantic environment with keywords or by searching an existing
Smart Agent, in order to invoke an additional, text-based query filter on tle
Smart
Agent.
o Simple or .Standard AgentT'~t. Trademarked names for Standalone Agents that
encapsulate structured, non-semantic queries (e.g., from the local file system
or
data source).
~ Smart AgentT"f. Trademarked name for a standalone Agent that encapsulates
structured, 'semantic queries that refers to an Agency via its XML Web
Service.
~ Special AgentT"~. Trademarked name for a Smart Agent that is created based
on a
Context Template.
Agent Discovery. The property of the information medium of the present
invention
that allows users to easily, and automatically discover new server-side Agents
or client-side
Agents created by others (friends or colleagues). Also see "Discoverability."
Annotations. Notes, comments, or explanations that are used to add personal
context
to an information object. In the preferred embodiment, annotations are email
messages that
are linked to the object they qualify, and which can have attachments (just
like regular email
192

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
messages). In addition, annotations are first class information objects in the
system and as
such can be annotated themselves, thereby resulting in threaded annotations or
a tree of
allnOtatlollS Wlth the initial object as the root.
Application Programming Interlface (API). Defines how software programmers
utilize a particular computer feature. Al?Is exist for windowing systems, file
systems,
database systems, networking systems, and other systems.
Calendar Access Protocol (CAP). Internet protocol that permits users to
digitally
access a calendar store based on the iCalendar standard.
Compound Agent ManagerT"z. Trademarked name for an Agency component that
programmatically allows the user to create and delete Compound Agents and to
manage them
by adding and deleting Agents.
C~ntext. Information surrounding a particular item that provides meaning and
otherwise assists the information consumer in interpreting the item as well as
finding other
relevant information related to the item.
C~ntext I~csult~ Panc. A Results Pane that displays results for context-based
queries.
These include results for Context Palettes, Smart Lenses, Deep Information,
etc. See "Results
Pane."
Context-Sensitivity. The property of an information medium that enables it to
intelligently and dynamically perceive the context of all the information it
presents and to
present additional, relevant information given that context. A context-
sensitive system or
medium understands the semantics of the information it presents and provide
appropriate
behaviors (proactive and reactive based on the user's actions) in order to
present information
in its proper context (both intrinsically and relationally).
Context Templater"z. Trademarked name. for scenario-driven information query
templates that map to specific and familiar semantic models for information
access and
retrieval. For example,. a "Headlines" template in the preferred embodiment
has parameters
193

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
that are consistent with the delivery of "Hc;adlines" (where freshness and the
likelihood of a
high interest level are the primary axes for retrieval). An "Upcoming Events"
template has
parameters that are consistent with the delivery of "Upcoming Events." And so
on.
Essentially, Context Templates can be analogized to personal, digital semantic
information
retrieval "charu~els" that deliver inforniation to the user by employing a
well-known semantic
template.
Deep InformationTM. Trademarked name for a feature of the present invention
that
enables the Information Ageyt to display intrinsic, contextual information
relating to an
informatiomobject. The contextual information that includes information that
is mined from
the Semantic Network of the Agency from whence the object came.
Disc~verability. The ability of the information medium of the present
invention to
intelligently and proactively make information known or visible to the user
without the user
having to explicitly look for the information.
Domain Agent WizardT"i. Trademarked name for a system component and its user
interface for allowing the .~ger~cg~ administrator to create and manage Domain
Agents.
D~TNET (.I'~1ET). MicrosoftOO .NET is a set of Microsoft software technologies
for
connecting information, people, systems, and devices. It enables software
integration through
the use of XML Web Services: small, discrete, building-block applications that
connect to
each other, as well as to other, larger applications, via the Internet. .NET-
connected software
facilitates the creation and integration of XML Web Services. See
http://www.microsoft.com/netJdefined/default.asp).
Dynamic LinkingTM. Trademarked name for the ability of the Information Nervous
System of the present invention to allow users to link information
dynamically, semantically,
and at the speed of thought, even if those information items do not contain
links themselves.
By virtue of employing smart objects that have intrinsic behavior and using
recursive
intelligence embedded in the Information Agency's XML Web Service, each node
in the
194

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Semantic Network is much smarter than a regular link or node on Today's Web or
the
conceptual Semantic Web. In other words., each node in the Smaut Virtual
Network or Web
of the present invention can link to other nodes, independent of authoring.
Each node has
behavior that can dynamically link to Agencies and Smart Agents via drag and
;drop and
smart copy and paste, create links to Agencies in the Semantic,Environment,
respond to lens
requests from Smart Agents to create new :(inks, include intrinsic alerts that
will dynamically
create links to context and time-sensitive information on its Agency, include
presentation
hints for breaking news (wherein the node can automatically link to breaking
news Agents in
the namespace); form the basis for deep info that can allow the user to find
new links, etc. A
user of the present invention is therefore not at the mercy of the author of
the metadata. Qnce
the user reaches a node in the network, the user has many semantic means of
navigating
dynamically and automatically-using context, time, relatedness to Smart
Agencies and
Agents, ete.
Email XML, abject. An information object with the "Email" information object
type. The AML object has the "Email" SI~.IdiL schema (which uses XML).
Environment I~rov~ser. See Information Agent.
Favorite Agents ManagerTM. Trademarked name for a system component and user
interface element that allows the Agency administrator to manage server-side
Favorite
Agents.
Flash. Macromedia Flash user interface platform that enables developers and
content
authors to embed sophisticated graphics and animations in their content. See
http://www.macromedia.com/flash.
w Flash MX. Macromedia Flash MX is a text, graphics, and animation design and
development environment for creating a broad range of high-impact content and
rich
applications fore the ~~~Iriternet. See
http://www.macromedia.com/software/flash/productinfo/product overview/.
195

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Global Agency DirectaryTM. Trademarked name for an instance of an Agency
Directory that runs on the Internet (or other global network). The Global
Agency Directory
allows users to find, search, arid browse Internet-based Agencies using their
Information
Agent (directly in their semantic environmf;nt). Also, see "Agency Directory."
HTTP. Hypertext Transfer Protocol (HTTP) is an application-level protocol for
distributed, collaborative, hypernledia information systems. It is a generic,
stateless, protocol
that can be used for many tasks beyond its use for, hypertext, such as name
servers and
distributed object management systems, through extension of its request
methods, error codes
and headers. A feature of HTTP is the typing and negotiation of data
representation, allowing
systems to be built independently of the data being transferred. See
httpa/www.w3.orgiProtocols/ and http:l/www.w3.orgJProtocolslSpecs.html.
Inference EngineT'~s. Trademarked name for the methodology of the present
invention that observes patterns and data to arrive at relevant and logically
sound conclusions
by reasoning. Preferably utilizes Inference Rules (a predetermined set of
lmuristics) to add
1 ~ semantic links to the Semantic l~Tetwork of the present invention.
Information. A quantitative or qualitative measure of tlle~relevance and
intelligence
of content or data and which conveys knowledge.
Information AgentT'~t. ,Trademarked name for the semantic client or browser of
the
present invention that provides context and time-sensitive delivery and
presentment of
actionable information (or knowledge) from multiple sources, information
types, and
templates, and which allows dynamic linking of information across various
repositories.
Information Nervous SystemTn~" Trademarked name for the dynamic,
self authoring, context and time-sensitive information system of the present
invention that
enables users to intelligently and dynamically link information at the speed
of thought, and
with context and time-sensitivity, in order to maximize the acquisition and
use of knowledge
for the task at hand.
196

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Information ObjectT"~ (or Item or Packet). Trademarked name for a unit of
information of a particular type and which conveys knowledge in a given
context.
Information Object PivotT"t. Trademarked name for an information object that
users
employ as a navigational pivot to find other relevant infornlation in the same
context.
Information Object Type. See Object Type.
Intelligent Agent. Software Agents that act on behalf of the user to find and
filter
information, negotiate for services, easily automate complex tasks, or
collaborate with other
software Agents to solve complex problems. By' definition, Intelligent' Agents
must be
autonomous or, in other words, freely able to execute without user
intervention. Additionally,
Intelligent Agents must be able to communicate with other software or human
Agents and
must have the ability to perceive and monitor the environment in which they
reside. See
http://www.findarticles.com/cf dls/mOFW>=?/7 4/64694222/pl/article.jhtml).
Internet Calendaring and Scheduling (iCalendar). Protocol that enables the
deployment of interoperable calendaring and scheduling services for the
Internet. The
1 S protocol provides the definition of a common format for openly exchanging
calendaring and
scheduling information across the Internet.
Internet Message Access Protocol (IMAP). Communications mechanism for mail
clients to interact with mail servers, and manipulate mailboxes thereon.
Perhaps the most
popular mail access protocol currently is the Post Office Protocol (POP),
which also
addresses remote mail access needs. IMAP offers a superset of POP features,
which allow
much more complex interactions and provides for much more efficient access
than the POP
model. See http:/lwww-smi.stanford.edu/projects/imap/ml/imap.html.
Intrinsic Semantic LinkT"s. Tradenuarked name for semantic links that are
intrinsic
to the schema of a particular information object. For instance, an email
information object
has intrinsic links like "from " "to " "cc " "bcc " and "attachments" that are
native to the
> > > >
object itself and are defined in the schema for the email information object
type.
197

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Island. An information repository that is isolated from other repositories
which may
contain relevant, semantically related, context and time-sensitive information
but which are
disconnected from other contexts in which such information might be relevant.
J2EE. The JavaTM 2 Platforni, Enterprise Edition .(J2EE) used for developing
mufti-tier enterprise applications. J2EE bases enterprise applications on
standardized,
modular components by providing a set of services to those components and by
handling
many details of application behavior automatically. See
http://java.sun.com/j2eeloverview.html:
Know~tedge. W formation presented in a context and time-sensitive manner that
enables the information consumer to learn from the information and apply the
infomlation in
order to make smarter and more timely decisions for relevant tasks.
Knowledge AgentTM. See Infonmati~an Agent.
Kno~~~ledge Base ServerT~'i (KBS). Trademarked name for a server that hosts
.,
knowledge for the ICnovJledge Integration Server (ISIS).
Knowledge l~orraain ManagerT~' (:(~I~'I). 'Trademarked name for a component of
the Knowledge Integration Server that is responsible for adding and
maintaining
domain-specific intelligence on the Semantic Network.
ICnow~ledge Integration ServerT"z (KIS). Trademarked name for a server that
semantically integrates data from multiple diverse sources into a Semantic
Network, which
can also host server-side Agents that provide access to the network and which
hosts XML
Web Services that provide context and time-sensitive access to knowledge on
the server.
Knowledge WebT"'. See Information Nervous System.
Liberty Alliance. The vision of the :Liberty Alliance is to enable a networked
world
in which individuals and businesses can more easily conduct transactions while
protecting
the privacy and security of vital identity information. To accomplish its
vision, the Liberty
198

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Alliance seeks to establish an open standard for federated network identity
through open
technical specifications. See http:/lwww.projectliberty.org/index.hhnl.
Lightweight Directory Access Protocol (LDAP). Technology for accessing
common directory information. LDAP has been embraced and implemented in most
network-oriented middleware. As an open, vendor-neutral standard, LDAP
provides an
extendable architecture for centralized storage and management~of information
that needs to
be available for today's distributed systen-~s and services. LDAP is currently
supported in
most network operating systems, groupware and even shrink-wrapped network
applications.
See http://publib-
b.boulder.ibm.com/Redbor~ks.nsf/RedbookAbstracts/sg244986.html?Open.
Link TempIateTM. See Context Template.
Local C~ntex~t. Local Context refers to client-side information objects and
Agents
accessible to the users. This includes Agents in the Se~i~antic Enviromnent,
local files,
folders, email items in users' email inbo:Kes, users' favorite and recent Web
pages, the
current Web page(s), currently opened documents, and other information objects
that
represent users' current tasl~9 location, time, or condition.
Meaning. The attributes of behavior of information that allows the consumer of
the
information to locate and navigate to it based on its relevant information
content (as opposed
to its text or data) and to act on it in a context and time-sensitive manner,
in order to
maximize the utility of the information.
Metadata. "Data about data." It includes those data fields, links, and
attributes that
fully describe an information object.
Natural Language Parser. Parsing and interpreting software component that
understands natural language queries and can translate them to structured
semantic
infonrialion queries.
199

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
NervanaT"x. Trademarked name for a proprietary, end-to-end implementation of
the
Inforniation Nervous System information medimn/platfonn. The name also defines
a
proprietary namespace for resource type and predicate name qualifiers.
.NET Passport. Microsoft .NET Passport is a suite of Web-based services
directed
towards the Internet and online purchasing. .NET Passport provides users with
single sign-in
(SSI) and fast purchasing capability at a growing number of participating
sites, reducing the
amount of information users must remember or retype. .NET Passport provide a
high-quality
online experience for a large user base and uses powerful encryption
technologies-such as
Secure Sockets Layer (SSL) and the Triple Data Encryption Standard (3DES)
algorithm-for
data protection. Privacy is a key priority as well, and all participating
sites sign a contract in
which they agree to post and follow a privacy policy that adheres to industry-
accepted
guidelines.
Nehvork Effects. This exists when 'the number of other users affects the value
of a
product or service to a particular user. Telephone SerV~ce provides a clear
example. The value
of telephone service to users is a function of the number of other
subscribers. Few would be
interested in telephones that were not connected to anyone, and, most would
assess higher
value to a phone service linked to a national network rather than just a local
network.
Similarly, many computer users prize a computer system that allows them to
exchange
information readily with other users.
Network Effects are thus demand-sidw externalities that generate a positive
feedback
effect in which successful products become more successful. In this way,
Network Effects
are analogous to supply-side economies of scale and scope. As a firm increases
output,
economies of scale lead to lower average costs, permitting the fine to lower
prices and gain
additional business from rivals. Continued expansion results in even lower
average costs,
justifying even lower prices. Similarly, the positive feedback from Network
Effects builds
upon previous successes. In the computer industry, for example, users pay more
for a more
200

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
popular computer system, all else equal, or opt for a system with a larger
installed base if the
prices and other features of two competing systems are equivalent. See
http:l/www.ei.com/publications/199G/fall l .htm.
Network News Transfer Protocol (NNTP). Protocol for the distribution,':
inquiry,
S retrieval, , and posting of news articles using a reliable stream~based
transmission of news
among the ARPA-Internet community. NNTP is designed so that news articles are
stored in a
central database allowing subscribers to select only those items they wish to
read. Indexing,
cross-referencing, and expiration of aged m~°ssages are also provided.
Notifications. Notifications are alerts that are sent by the Information Agent
or an
Agency to indicate to a user that there is new information on an Agent (either
a client-side
Agent or a server-side Agent). Users can request notifications from Agents in
their Semantic
Environment. Users can indicate that they have received the notification. The
notification
source (the client or server) stores infornlat:ion for the user and the Agent
indicating the last
time the user acknowledged a notification for the Agent. The notification
source polls the
Agent to check if there is new infornzation since the last acknowledge time.
If there is, the
notification source alerts the user. Alerts can be sent via email, pager,
voice, or a custom alert
mechanism such as Microsoft's .NET Alerts service. Users have the option of
indicating their
preferred notification mechanism for the entire notification source (client or
server)-which
applies to all Agents on the notification source-on a per-Agent basis (which
overrides the
indicated preference on the notification source.
Object. See Information Object.
Object Type. Identification data associated with inforn~ation that allows the
consumer to understand the nature of the information, to interpret its
contents, to predict how
the information can be acted upon, and to link it to other relevant
information items based on
how the object types typically relate in the real world. Examples include
documents, events,
email messages, people, etc.
201

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Ontology. Hierarchical structuring of lmowledge according to essential
qualities.
Ontology is an explicit specification of a conceptualization. The term is
borrowed from
philosophy, where "Ontology" is a systematic account of Existence. For
artificial intelligence
systems, what ''exists" is that which can be represented. When the,knowledge
of a domain is
represented in a declarative formalism, the set of objects that can be
represented is called the
universe of discourse. This set of objects, and the describable relationships
among them, are
reflected in the representational vocabulary with which a knowledge-based
program
represents knowledge. Thus, in the coni:ext of artificial intelligence, the
ontology of a
program is described by defining a set of representational terms. In such
ontology, definitions
associate the names of entities in the universe of discourse (e.g., classes,
relations, functions,
or other objects) with human-readable te:~t describing what the names mean,
and formal
axioms that constrain the interpretation and well-forn~ed use of these terms.
Formally,
ontology is the statement of a logical theory.
The subject of ontology is the study of the categories of things that exist or
may exist
111 Some damain. The product of such a study, called ontology, is a catalog of
the types of
things that are assumed to exist in a domain of interest D from the
perspective of a person
who uses a language L for the purpose ~of talking about D. The types in the
ontology
represent the predicates, word senses, or concept and relation types of the
language L when
used to discuss topics in the domain D. See, generally, http:/lwww-
ksl.stanford.eduikstiwhat-
is-an-ontology.html and http:llusers.bestweb.nethsowa/ontologyl).
Predicates. A Predicate is an attribute or link whose result represents the
truth or.
falsehood of some condition. For example, the predicate "authored by" links a
person with an
information object and indicates whether a person authored the object.
PresenterTni. System component in i:he Information Agent (semantic browser) of
the
present invention that handles the aggregation and presentation of results
from the semantic
query processor (that preferably interprets SQML). The Presenter handles
layout
202

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
management, aggregation, navigation, Skin management, the presentation of
Context
Palettes, interactivity, animations, etc.
RDF. Resource Description Framework (RDF) is a foundation for processing
metadata; it provides interoperability between applications that exchange
S machine-understandable information on the Web. RDF emphasizes facilities to
enable
automated processing of Web resources. RDF defines a simple model for
describing
relationships among resources in terms of named properties and values. RDF
properties may
be thOllght of as attributes of resources and in this sense correspond to
traditional attribute-
value pairs. RDF properties also represent relationships between resources. As
such, the RDF
data model can therefore resemble an entity-relationship diagram.
RDF can be used in a variety of application areas including, for example: in
resource
discovery to provide better search engine capabilities, in cataloging for
describing the content
and content relationships available at a particular Web site, page, or digital
library, by
intelligent software Agents to facilitate knowledge sharing and exchange, in
content rating, in
describing collections of pages that represent a single logical "document',
for describing
intellectual property rights of Web pages, and for expressing the privacy
preferences of a
user as well as the privacy policies of a Web site. RDF with digital
signatures is preferably a
component of building the "Web of Trust" for electronic commerce,
collaboration, and other
applications. See, generally, http://www.w3.org/TR/PR-rdf syntax! and
http://www.w3.org/TR/rdf schema/.
RDFS. Acronym for RDF Schema. Resource description communities require the
ability to say certain things about certain kinds of resources. For describing
bibliographic
resources, for example, descriptive attributes including "author", "title",
and "subject" are
common. For digital certification, attributes such as "checksum" and
"authorization" are
often .required. The declaration .of these properties (attributes) arid their
corresponding
semantics are defined in the context of RDF as an RDF schema. A schema defines
not only
.. ,
203

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the properties of the resource (e.g., title, author, subject, size, color,
etc.) but may also deftne
tile kinds of resources being described (books, Web pages, people, companies,
etc.). See
http:lJwww.w3.org/TRlrdf schema/).
Results PaneTn~. Trademarked name for the graphical display area within the
Infonnation Agent (semantic browser} that displays results of an SQML query.
See
FIGURE 5, showing a sample Infornlation Agent screenshot illustrating server-
side Agents,
an optional player control/navigationlfilter toolbar, a "Server-Side Agents
Dialog" (which
allows users to browse and open server-side Agents), and sample results (with
the
"Documents" information object type) from a server-side Agent.
Semantics. Connotative meaning.
Semantic Envir~nmentT~g. 'This refers to all the data stored on users' local
machines,
in addition to user-specific data on an Agency server (e.g., subscribed server-
side Agencies,
server~side Favorite Agents, etc.). Client-side state includes favorite and
recent Agents and
authentication and authorization information (e.go, user names and
pass~.a~or°ds fear carious
Agencies), in addition to the SQML files and buffers for each client-side
(user-created)
Agent. The Information Agent is preferably configured to store Agents for a
set amount of
time before automatically deleting them, except those that have been added to
the "favorites"
list. For example, users may configure the Information Agent to store Agents
for two weeks.
In this case, Agents older than two weeks a:re automatically purged from the
system and the
Semantic Environment is adjusted accordin;;ly. The Semantic Environment is
employed for
Context Palettes (Context Palettes use the Agencies in the "recent" and
"favorites" list in
order to predict what default Agencies users want to view context from).
Semantic Environment ManagerT"z. Trademarked name for a software component
that manages all the local state for the Semantic Environment (in the
Information Agent).
This includes storing and managing the metadata for all the client-side Agents
(and the
history and favorites Agent sub-lists), per-A gent state (e.g., Agent Skins,
Agent preferences,
204

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
etc.), notification management, Agency browsing (on Agency directories),
listening for
Agencies via multicast and peer-to-peer anr-rouncement protocols, services to
allow users to
browse the Semantic Environment via the semantic browser (via the Tree View,
the "Open
Agent" dialog, and the Results Pane), etc.
Semantic Data GatUererTr~ (SDG). Trademarked name for XML Web Service used
by the Knowledge Integration Server (KISS) and which is responsible for'
adding, removing
and updating entries in the Semantic Network via the Semantic Metadata Store
(SMS).
Semantic Metadata StoreTn~ (SM;i). Trademarked name for a software component
on the KIS that employs a database (e.g., SQL Server, Oracle, DB2) having
tables for each
primary object type to store all the metadata. on the KIS.
Semantic I~etvmork. System and method of linking objects associated with
schemes
together in a semantic way via the database tables on the Semantic Metadata
Store.
Semantic Network Consistency CheckerT"'. Trademarked name for a software
component that runs on an Agency of the present invention that is tasked with
maintaining
the integr ity and consistency of the Semantic Network. The checker runs
periodically and
ensures that entries in the "SemanticLinks" table exist in the native object
tables, that entries
in the "objects" table exist in the native object tables and that all entries
in the Semantic
Metadata Store still exist at the repositories i:rom where they were gathered.
Semantic Queries. Queries that incorporate meaning, context, time-sensitivity,
context-templates, and richness that approach natural language. Much more
powerful than
simple, keyword-based queries in that they are context and time-sensitive and
incorporate
meaning or semantics.
Semantic Query Markup Language (SQML). A proprietary XML-based query
language used by this invention to define, ,tore, interpret and execute client-
side semantic
queries. SQML includes tags to define a query that gets its data from diverse
resources (that
represent data sources) such as files, folders, application repositories, and
references to
2os

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Agency XML Web Services (via resource identifiers and URLs). In addition, SQML
includes
tags that enable semantic filtering (via custom links and predicates) which
indicate how data
is to be queried and filtered from the resources, and arguments that indicate
how the
resources are to be queried and how the results are to be filtered. In
particular, the arguments
can include references to local or remote context. The context arguments are
then resolved by
the client-side SQP at run-time to XML nnetadata. The XML metadata is then
passed to the
appropriate resource (e.g., an Agency's XIvIL Web Service) as a method call
along with the
reference to the resource and the semantic links and predicates that indicate
how the query is
to be resolved by the resource (e.g., the Agency's XML Web Service). SQML is
to the
Information Nervous System as HTML is to Today's Web. The main difference is
that
SQML defines the rules for semantic querying while HTML defines the rules for
Hypertext
presentation. However, SQML is superior in that it enables the client to
recursively create
new semantic queries from existing ones (by creating new SQML with new links
derived
from an existing SQML query), e.g., via drag and drop and smart copy and
paste, the Smart
Lens, Context Templates and Palettes, etc. In addition, because SQML does not
define the
rules for presentation, the results of the semantic query can be presented in
multiple ways,
using a "skin" that takes the results (in Sl~I'vIL) to generate presentation
based on the user's
preferences, interests, condition, or context.. Furthermore, SQML can contain
abstract links
and predicates such as those that refer to or employ Context Templates. The
resource (e.g.,
the Agency's XML Web Service) then resolves the SQML to an appropriate query
format
(e.g., SQL or the equivalent in the case of an Agency's XML Web Service) and
then invokes
the "actual" query in order to generate the results (which will then account
for the user's .
context or Context Template). Also, an SQML buffer or file can refer to
multiple resources
(and Agencies), thereby empowering the client to view results in an aggregated
fashion (e.g.,
~ based on context. or time-sensitivity), rather than based on the source of
the data - this is a
powerful feature of the invention that enables user-controlled browsing and
information
206

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
aggregation (see the sections on both below). Lastly, every client-side Agent
has an SQML
definition and file, just as every Web page has an HTML file.
Semantic Query ProcessorT"i (SQP). Trademarked name fox the server-side
semantic query processor (XML Web Service in the preferred embodiment) that
takes SQML
and converts it to~ SQ,L (in the preferred embodiment) and then returns the -
results as XML.
On the Ka~owledge Integration Server (KIS), the SQP is the main entry point to
the Semantic
Network of the present invention responsible for responding to semantic
queries from clients
of the KIS. On the server, this is the software component that processes
semantic queries
represented as SQML from the client. On the client, the client-side SQP takes
aggregate
SQML and compiles or maps it to individual SQML queries that can be sent to a
server (or '
Agency) XML Web Service.
Semantic Results lVTarlcup Language (SRML). A proprietary XML-based data
schema and format used by this invention. to define, store, interpret and
present semantic
results. On the client, SR1VIL is returned from the SQP via semantic resource
handlers that
I.ea interpret, format, and issue query requests to semantic data sources.
Semantic data sources
will include an Agency's XML Web Sen~ice, local files, local folders, custom
data sources
from local or remote applications (e.g., a lvlicrosoft Outlook email
application inbox), etc.
The XML Web Service will return SRML to a client, in response to the client's
semantic
query. This way, the XML Web Service will not "care" how the results are being
presented at
the client. This is in contrast with Today's'Neb and the Semantic Web where
servers return
already-formatted HTML for a client to present and where clients merely
present
presentation data {as opposed to semantic data) and camlot customize the
presentation of the
data. In .this invention, two clients can render the same SRML in completely
differeyt ways,
based on the current "skin" that has been selected or applied by the user of
either client. The
"skin" then converts " the SRML to a presentation-ready format sucli~ as
XHTML,
DHTML+TIME, SVG, Flash MX, etc.
207

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
SRML is a meta-schema, meaning that it is a container format that can include
data
for different ~infonnation object types (e.g., documents, email, people,
events, etc.). An
SRML file or buffer can contain intertwined results for each of these object
types.
Well-formed SRML will contain well-formed XML document sections that are
consistent
with the schema of the information object types that are contained in the
semantic result the
SRML represents. See Sample A of the Appendix hereto.
Semantic Web. Extension of 'Today's Web in which information is given
well-defined meaning, better enabling computers and people to work in
cooperation. See Tim
Berners-Lee, James Hendler, Ora Las:>ila, The Sema»tic l~'eb, Scie»tific
A»aerica»,
May X000.
Facilities to put machine-understandable data on Today's Web axe becoming a
high
priority for many communities. The Web can reach its full potential only if it
becomes a
place where data can be shared and processed by automated tools as well as by
people. For
the Web to scale, tomorrow's programs must be able to share and process data
e~rer~ when
these programs have been designed totally independently. The Semantic Web is a
conceptual
vision: the idea of having data on the Web defined and linked in a way that~it
can be used by
machines not just for display purposes, but for automation, integration and
reuse of data
across various applications. See also httpa/www.rv3.org/2001/sw/.
Session Announcement Protocol (SAP). In order to assist the advertisement of
multicast multimedia conferences and other multicast sessions, and to
communicate the
relevant session setup information to prospective participants, a distributed
session directory
may be used. An instance of such a session directory periodically multicasts
packets
containing a description of the session, and these advertisements are received
by other
session directories such that potential remote participants can use the
session description to
start the tools required to participate in the session.
2os

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In its simplest form, this involved periodically multicasting a session
announcement
packet describing a particular session. To receive SAP, a receiver simply
listens on a
well-known multicast address and port. Sessions are described using the
Session Description
Protocol (ftp:/lftp.isi.edu/in-notes/rfc2327.txt). If a receiver receives a
session amouncement
packet it simply decodes the SDP message, and then can display the session
information for
the user. The interval between repeats of the same session description message
depends on
the number of sessions being announced (e:ach sender at a particular scope can
hear the other
senders in the,same scope) such that the bandwidth being used for session
announcements of
a particular scope is kept approximately constant. If a receiver has been
listening for a set
time, and fails to hear a session announcement, then the receiver can conclude
that the
session has been deleted and no longer ~;xists. The set period is based on the
receivers'
estimate of how often the sender should be sending.
See, generally, http://www.faqs.orglrfcs/rfc2974.html,
http:/lwww.video.ja.net/mice/archive/sdr docs/nodel.html, ftp://ftp.isi.edu/in-
notes/rfc2327.txt.
Simple Mail TransFer FrOtocol (SlYITP). Protocol designed to transfer mail
reliably
and efficiently. SMTP is independent of the particular transmission subsystem
and requires
only a reliable ordered data stream channel. An important feature of SMTP is
its capability to
relay mail across transport environments. See
http://vvww.ietf.org/rfc/rfc0821.txt.
Skins. Presentation templates that are used to customize the user experience
on a
per-Agent basis or which customizes the presentation of the entire layout
(independent of the
Agent), or object (based on the information object type), context (based on
the Context
Template), Blender (for Agents that are Blenders), for the semantic domain
name/path or
ontology, and other considerations. Each Agent will include a Skin which in
turn will have
an xML, metadata representation of parameters to customize the layout of the
XML~'results
that represent information objects (the layout Skin), for example;~whether or
not those results
209

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
are animated, the manner in which each result is displayed, including a
representation of the
object type (the object Skin), styles, colors, graphics, filters, transforms,
effects, animations
(and so on) that indicate the ontology of the current results (the ontology
Skin), styles that
indicate the Context Template of the current results (the context Skin) and
styles that indicate
how to view and navigate results from Blenders (i.e., the Blender Skin).
Smart LensT'~t. Trademarked name for a proprietary feature of this invention
that
allows users to select a Smart Agent or an object as a context with which to
view another .
object or Agent. The lens then displays met~adata, links, and result previews
that give users an
indication of what they should expect if the context is invoked. Essentially,
the Smart Lens
displays the results of a "potential query." The Smart Lens allows users to
quickly preview
context results without actually invoking p,ueries (thereby increasing their
productivity). In
addition, the Smart Lens can display views that are consistent with the
context, using pivots,
templates and preview windows, thereby allowing~users to analyze the context
in different
ways before invoking a query.
Smart virtual- WebT~'z. Trademarke°.d name for the property of the
present invention
to integrate semantics, context-sensitivity, time-sensitivity, and dynamism in
order to
empower users to browse a dynamic, virtual, "on-the-fly," user-controlled
"Web" that they
control and can customize. This is in contrast with Today's Web and the
conceptual
Semantic Web, both of which employ a manually authored network wherein users
are at the
mercy of the authors of.the information on the network.
Structured Query Language (SQL). Pronounced "ess-que-el." SQL is used to
communicate with a database. According to ANSI (American National Standards
Institute), it
is the standard language for relational database management systems. SQL
statements are
used to perform tasks such as update data on a database, or retrieve data from
a database.
Some common relational database management systems that use SQL are: Oracle,
Sybase,
Microsoft SQL Server, Access, Ingres, etc. .Although most database systems use
SQL, most
210

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
of them also have their own additional proprietary extensions that are usually
only used on
their system. However,, the standard SQL commands such as "Select", "Insert",
"Update",
"Delete", "Create", and "Drop" can be used to accomplish almost everything
that one needs
to do.with a database. .
SQL works with relational databases. A relational database stores data in
tables
(relations).. A' database is a collection of tables. A table consists of a
listv. of records, each
record in a table preferably includes the same structure, and each has a fixed
number of
"fields" of a given type.
See, generally, http:llwww.sqlcourse.comlintro.html and
http:/lwww.dcs.napier.ac.ukhandrew/sql/0lw.htm.
Scalable 'Vector Graphics (SVh). Language for describing two-dimensional
graphics in AML. SVG allows for three types of graphic objects: vector graphic
shapes (e.g.,
paths consisting of straight lines and cur<~es), images and text. Graphical
objects can be
grouped, styled, transformed and composited into previously rendered objects.
Text can be in
1 S any ~I~1IL namespace suitable to the application, which enhances
searchability and
accessibility of the SVG graphics. The feature set includes nested
transformations, clipping
paths, alpha masks, filter ,effects, template objects and extensibility. SVG
drawings can be
dynamic and interactive. The Document Object Model (DOM) for SVG, which
includes the
full AML DOM, allows far straightforward and efficient vector graphics
animation via
scripting. A rich set of event handlers such as onmouseover and onclick can be
assigned to
any SVG graphical object. Because of ita compatibility and leveraging of other
Web
standards, features like scripting can be done on SVG elements and other XML
elements
from different namespaces simultaneously within the same Web page. See
http:l/vww.w3.org/Graphics/SVG/Overview.htm8.
Ta~onotny. An organizational structure wherein divisions .are ordered into
groups or
categories.
211

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Time-Sensitivity. Property of an infornxation medium to deliver and present
information based on when the information would be most relevant in time. For
instance,
freslxness is an attribute that denotes time-sensitivity. In addition, the
delivery and
presentation of upcoming events (which, by definition, are time-sensitive) and
the nxanner in
which the time-criticality of the events are displayed are properties of a
time-sensitive
medium.
Today's Web. This refers to the World Wide Web as we know it today. Today's
Web is a universe of hypertext servers (HT'TP servers), which are the servers
that allow text,
graphics, sound files, etc. to be linked together. Hypertext is simply a non-
linear way of
presenting information. Rather than reading or learning about things in the
order that an
author, or editor, or publisher sets out for u;~, readers of lxypertext nxay
follow tlxeir own path,
create their own order or meaning out the material. This is accomplished by
creating "links"
between information. These links axe provided so that user may "jump" to
furtlxer
information about a specific topic being discussed (whiclx nxay have more
links, leading each
reader off into a different direction). The Hypertext medium can incorporate
pictures; sound,
and video present a multimedia approach to presenting information, also
referred to as,
hypermedia. See, generally, ~ http://www.w3.org/History.html and
http:llwww.umassd.edu/Public/People/KAnxaral/Thesis/hypertext.html.
Multicast Time to Live (TTL). Multicast routing protocol uses the field of
datagrams to decide how "far" from a sending host a given multicast packet
should be
forwarded. The default TTL for multicast datagrams is 1, which will result in
multicast
packets going only to other hosts on tlxe local network. A setsockopt(2) call
may be used to
change the TTL. As the value for TTL increases, routers will expand the number
of hops they
will forward a multicast packet. To provide meaningful scope control,
multicast routers
typically enforce the following "thresholds" on forwarding based on the T'TL
field:
~ 0 restricted to the same host
212

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ 1 restricted to the same subnet
~ 32 restricted to the same site
~ G4 restricted to the same region
~ 128 restricted to the same continent
~~ 255 unrestricted
See http:/lwww.isl.org/projects/eies/mboneJmbone27.htm.
User State. This refers to all state that is either created by a user or which
is needed
to cache a user's preferences, favorites, or other personal information on a
client or server.
Client-side User State includes authentication credential information, users'
Agent lists (and
all the metadata including the SQML quE:ries for the Agents), home Agent,
configuration
options, preferences such as Skins, etc. Essentially, client-side User State
is a persisted form
of users' Semantic Environment. Server-side User State includes information
such as users'
Favorite Agents, subscribed Agents, Default Agent, semantic links to
information objects on
the server (e.g., "favorites" links) etc. SE;rver-side User ~ State is
optional for servers but
support far it is preferred. Servers preferably support user logon and a
"people" object type
(even ~~rithout server-side P~gentsj because these are needed for features
such as favorites,
recommendations, and for Context Tf;mplates such as "Newsmakers," "Experts,"
"Recommendations," "Favorites," and "ClaliSlCS."
Virtual Information Object TypeT°s. Trademarked name for object types
that do not
map to distinct object types, yet are semantically of interest to users.
Virtual ParameterT"s. Trademarked name for variables, parameters, arguments,
or
names that are dynamically interpreted at runtime by the semantic query
processor. This
allows the Agency administrator to store Agents that refer to virtual names
and then have
those..names be converted to actual relevant terms when the query is invoked.
~ Web of Trust. Term coined by members of the Semantic Web research community
that refers to a chain of authorization that users of the Semantic Web 'can
use to validate
assertions and statements. Based on work in mathematics and cryptography,
digital
213

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
signatures provide proof that a certain person wrote (or agrees with) a
document or
statement. Users can preferably digitally sign all of their RDF statements.
That way, users
can be sure that they wrote them (or at least vouch fox their authenticity).
Users simply tell
the program whose signatures to trust. Each can set their own levels of trust
(or paranoia),
and the computer can decide ho~v much of what it reads to believe.
By way of example, with a Web of Trust, a user can tell a computer that he or
she
trusts his or her best friend, Robert. Robert happens to be a rather popular
guy on the Net,
and trusts quite a number of people. All the people he trusts in turn trust
another set of
people. Each of these measures of trust is to a certain degree (Robert can
trust Wendy a
whole lot, but Sally only a little). In addition to trust, levels of distrust
can be factored in. If a
user's computer discovers a docmnent which no one explicitly trusts, but no
one has said it
has totally false either, it will probably trust that information a little
more than one which
many people have said is false. The computer takes all these factors into
account when
deciding the trustworthy of a piece of infomlation. Preferabl~!~ the computer
combines all this
information into a simple display (tlmmbs-u:p ! thumbs-down) or a more complex
explanation
(a description of all the various trust factors in'volved). See
http://blogspace.comlrdflSwartzHendler.
Web Services-Interoperability (W;3-I). An open industry organization chartered
to
promote Web services interoperability across platforms, operating systems, and
programming languages. The organization works across the industry and
standards
organizations to respond to user needs by providing guidance, best practices,
and resources
for developing Web services solutions. See http:/lwww.ws-i.org.
Web Services Security (WS-Security). Enhancements to SOAP messaging
providing quality of protection through message integrity, message
confidentiality, and single
message authentication. These mechanisms can be used to accommodate a wide
variety of
security models and encryption technologies. WS-Security also provides a
general-purpose
214

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
111echa111S1n for associating security tOkellS Wlth meSSages. No specific type
of security token
is required by WS-Security. It is designed to be extensible (e.g. support
multiple security
token formats). For example, a client might provide proof of identity and
proof that they have
a particular business certification. Additionally, WS-Security describes how
to encode binary
security tokens. Specifically, the specification describes how to encode X.509
certificates and
Kerberos tickets as well as how to include opaque encrypted keys. It also
includes
extensibility mechanisms that can be used to further describe the
characteristics of the
credentials ' that are included with a message. See
httpa/msdn.microsoft.com/library/default.asp?url=/librarylen-
usldnglobspeclhtml/ws-
security.asp.
lExtensible l~arkaap Language (~MF~). Universal fomlat for structured
documents
and data on the Web. Structured data includes things like spreadsheets,
address books,
configuration parameters, financial transactions, and technical drawings. XML
is a set of
rules (you may also think of them as guidE;lines or conventions} for designing
text formats
1 ~ that let you structure your data. XML is not a programming language, and
one does not have
to be a programmer to use it or learn it. XML makes it easy for a computer to
generate data,
read data, and ensure that the data structure is unambiguous. XML avoids
common pitfalls in
language design: it is extensible, platform-independent, and it supports
internationalization
and localization. XML is fully Unicode-compliant. See
?0 http://www.w3.orglXML/1999/XML-in-10-points.
XML Web Service (also known as "Web Service"). Service providing a standard
means of communication .among different software applications involved in
presenting
dynamic context-driven information to the user. More specific definitions
include:
..,1. A software application identified by a URI whose interfaces and binding
are
25 capable of being defined, described and discovered by XML artifacts.
Supports
direct interactions with other software applications using XML based messages
via Internet-based protocols.
215

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
2. An application delivered as a service that can be integrated with other Web
Services using Internet standards. It is an URL-addressable resource that
programmatically returns information to clients that want to use it. The major
communication protocol used is the Simple Object Access Protocol (SOAP),
S which in most cases is XML over HTTP.
3. Programmable application logic. accessible using standard Internet
protocols. Web
Services combine aspects of component-based development and the Web. Like
components, Web Services represent black-box functionality that can.be reused
without worrying about how the service is implemented. Unlike current
component technologies, Web Services are not accessed via object-model-
specific
protocols, such as DCOM, RMI, or IIOP. Instead, Web Services are accessed via
ubiquitous Web protocols (ex: FITTP) and data formats (ex: XML).
See http:/lwww.xmlwebservices.cc/, http://www.perfectxml.com/WebSvcl.asp and
http://www.w3.org/2002/ws/archi2i06iwd-wsa-rags-20020605.html.
XQuery. (query language that uses the structure of XML to intelligently
express
queries across all these kinds of data, whether physically stored in XML or
viewed as XML
..
via riliddleware. See http://www.w3.org/TR/xquery/ and http://www-
106.ibm.com/developerworks/xml/library/x-xquery.htrnl.
XPath. The result of an effort to~ provide a common syntax and semantics for
functionality shared between XSL Transformations (http://www.w3.org/TR/XSLT)
and
XPointer (http://www.w3.org/TR/xpath#XPTR). The primary purpose of XPath is to
address
parts of an XML [XML] document. In.support of this primary purpose, it also
provides basic
facilities for manipulation of strings, numbers and Booleans. XPath uses a
compact, non-
XML syntax to facilitate use of XPath within URIs and XML attribute values.
XPath
operates on the abstract, logical structure of an XML document, rather than
its surface
syntax. XPath gets its name from its use of a path notation as in URLs for
navigating through
the hierarchical structure of an XML document.
In addition to its use for addressing, XPath is also designed so that it has a
natural
subset that can be used for matching (testing whether or not a node matches a
pattern); this
216

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
use of XPath is described in XSLT. XPath models an XML document as a tree of
nodes.
There are different types of nodes, including element nodes, attribute nodes
and text nodes.
XPath defines a way to compute a string-value for each type of node. Some
types of nodes
also .. have names. ' XPath fully , supports XML Naniespaces
(http:/lwww.w3.org/TR/xpath#XMLNAMES). Thus, the name of a node is modeled'~as
a pair
consisting of a local part and a possibly null namespace ~URI; this is called
an
(http:l/www.w 3.orglTRlxpath#dt-expanded-name). See
http://www~w3.org/TRlxpath#XPTR.
XSL. A style sheet language for XML that includes an XML vocabulary for
specifying formatting. See http://www.w3.org/TRlxsltl.l/.
XSLT. Used by XSL to describe how a document is transformed into another XML
document that uses the formatting vocabulary. See http://www.w3.org/TR/xsltl
1/.
B. l7vERVtEw
I. INVENTION CONTEXT
There is a misconception that the I~oly Grail for information access is the
provision of
natural language searching capability. Prior technologies for infornlation
access have focused
principally on improving the interface for sf;arching for or accessing
information to optimize
information retrieval. The presumption has largely been that providing a
natural language
interface to information will perfectly solve users' information access
problems and end the
frustration users have with f nding information.
In truth, however,, many axes of analysis are involved in how people acquire
knowledge in the real world. One example is context. There are many things
people know
only because of where they were at a certain place and time. If they were not
at that place at
that time, they would not know what is in fact known or, indeed, nmght not
care to know.
Having'the ability to search for what is presently known with natural language
does not assist
in uncover=ing the knowledge related to that particular time and..place. There
are simply no
natural parari'leters that~form the correct query to retrieve the desired
informatioil.
217

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The conundrum is that a person cannot ask for what he or she might not even
know
would have value until after the fact. Stated differently, one cannot query
for what they do
not know they do not know, or for what they do not know that they might want
to know.
Context-sensitivity, time-sensitivity, discovery, dynamic linking, user-
controlled browsing,
users' "Semantic Environment," flexible presentation, Context Skins, context
attributes,
Context Palettes (which bring up relevant, context and time-sensitive
information based on
Context Templates) and other aspects of this invention recognize and correct
this
fundamental deficiency with existing information systems.
For example, people may have many CDs in their library (thereby adding to the
"knowledge" of music) because they attended certain parties and spoke with
certain people.
Those people at those parties mentioned the CDs to the person, thereby
increasing the
person's knowledge of music. As another example, a person may purchase a book
(if read,
increasing the person's knowledge on the particular topic of the book), based
on a
recommendation from a hitherto unknown stranger the person happened to sit
beside on an
airplane flight. In the real world, people acquire knowledge based not just on
what they read
and search for, but also based on the friends they keep, the people with whom
they interact
and the people whose judgment they trust. The "knowledge environment" is
arguably as
critical if not more critical for knowledge dissemination and acquisition as
the model for
retrieval (whether digital or analog).
2Q The present invention mirrors virtually every real-world knowledge-
acquisition
scenario in the digital world. The resulting Information Nervous SystemTM is
the medium
doing most of the work but the scenarios map very cleanly to the analog (real)
world. The
inability of efforts such as natural-language search techniques of Today's Web
as well as the
Semantic Web to recognize the many ways in which knowledge is disseminated and
acquired
render them ultimately ineffective. The present invention accounts for the
variety of ways in
21s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
which humans have always acquired knowledge-independent of the actual
technology used
for information delivery.
By way of example, there has always been context and there has always been
time.
Likewise there has always been the notion of discovery and the need to link
information
dynamically and with user control. There have always been certain
Context,Templates, albeit
in different mediums that presented herein, including "classics," "history,"
"timelines,"
"upcoming events," "headlines." These templates existed before the creation of
the Internet,
Today's Web, Email, e-Learning, etc. Nevertheless, prior to the present
invention, there was
no ability in the electronic medium to focus on the mode, protocol and
presentation of
knowledge delivery which maps to real-world scenarios (for example, via
Context
Templates, context-sensitivity, time-sensitivity, dynamic linking, flexible
presentation,
Context Skins, context attributes, etc.) as opposed to actual information
types, semantic links,
metadata, etc. There will always be new information types. But the
dissemination and
acquisition axes of knowledge (e.g.,~Context Templates) have always and vrill
always remain
the same. The present invention captures this reality.
In addition, the present invention provides the ability to disseminate
knowledge via
serendipity. Serendipity plays a large part in knowledge acquisition in the
real world and it is
a first-class mode of knowledge delivery. 'the present invention enables a
user to acquire
information serendipitously (albeit intelligE:ntly) by its support for
context, time, Context
Templates, etc.
Information models or mediums that employ a strict, static structure like a
"Web"
break down because they assume the presence of an authored "network" or "Web"
and fail to
accaurlt for the various axes of knowledge formation. Such information models
are not
user-focused, do not incorporate context, time, dynamism and templates, and do
not map to
real-world knowledge . acquisition and dissemination scenarios. The present
invention
minimizes information loss and maximizes inforn~ation retained, even without
the presence
219

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
of a "Web" per se, and even if no natural language is employed to find
information. This is
possible because, unlike existing mediums for information access, a preferred
embodiment of
the present invention focuses on the knowledge dissemination models that
incorporate
context, time, dynamism, and' templates (for the benefit of both the end-user
and the content
producer) and not on the specifics of the access interface, or the linking
(semantic or non-
semantic) of information resources based on static data models or human-based
authoring. In
many scenarios, a "Web" (semantic or non.-semantic) is necessary as a means of
navigation,
but is far from being sufficient as a means of knowledge dissemination and
acquisition. The
Information Nervous System of the pm;sent invention incorporates "knowledge
axes"
described in the invention (including but not limited to link-based
navigation) and
intelligently and seamlessly integrates therr~ to facilitate the dissemination
and acquisition of
knowledge and to benefit all parties involved in the transfer of knowledge.
2. j~ALUE hROPOSITIONS
Today, knowledge must be "manually hard-coded" into the digital fabric of an
1 S information structure, whether it be for an enterprise, a consumer or the
general inquiring ,
population. If it is not authored and distributed properly, no one knows. of
its existence,
knows how it relates to other sources of intelligence, or knows how to act on
it in real-time
and in the proper fashion. This is largely because Today's Web was not
designed to be a
platfori for knowledge. It was designed to be a platform for presentation and
is intentionally
dumb, static, and reactive. Today, knowledge-workers-those who seek to use
information
by adding context and meaning-are at the mercy of knowledge-authors.
A significant aspect of knowledge interaction is to have knowledge-workers be
able
to navigate their way through a knowledge space in a very intuitive manner,
and at the speed
at which they wish to make decisions and act on the knowledge. In other words;
knowledge-workers do not have to "think" about an e-Learning island as being
separate from
documents in their organizations, e-mail that contains customer feedback,
media files,
220

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
upcoming video-conferences, a meeting they had recently, information stored in
newsgroups,
or related books. The preferred situation is to relegate the information
"type" and "source"
and to create a "seamless knowledge experience" that cuts across all those
islands in a
semantic way.
In creating a knowledge experience, it is also preferred to be able to
integrate
knowledge assets across content-provider, partner, supplier, customer and
people boundaries.
In the enterprise scenario, for example, no single organization has all the
knowledge it needs
to remain competitive. Knowledge is stored in industry reports, research
documents from
consulting firms and investment banks, media companies like ReutersTns and
BloombergTht,
etc. All this constitutes "knowledge." It is not enough to deploy an e-
Learning repository to
train users on a one-time or periodic basis. ~CJsers should have always-on
access to knowledge
from a variety of sources, in-place, and in an intelligent context that is
relevant to their
current task.
All this requires a layer of intelligence and pro-acti~yity that is not
a~,railable todaye
Today, for example, enterprises use information portals, such as intranets and
the Internet, as
a way of disseminating information to their employees. However, this is far
from being
enough, as it provides only presentation-level integration. This is akin to
subscribing to
newsletters to keep updated with information, as opposed to having an Agent
that manages
your information for you, helps you discover new information on-the-fly, helps
you capture
and share information with colleagues, etc.
To accomplish the desired level of knowledge interaction requires Agents
working in
the background, reasoning, learning, inferring, matching users together based
on their
profiles, capturing new knowledge and automatically deducing new knowledge,
and
federating knowledge from external sourcca so that they become a seamless part
of the
knowledge experience. This in turn requires the semantic integration of
knowledge assets so
that they all make sense ~in a holistic fashion, rather than mexely providing
the basis for
221

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
presentation-level integration and document searching. The implementation
framework and
resulting medium must provide real-time, agile discovery and recommendation
services so
that context and time-sensitive information is "honored" and such that
knowledge-workers
can.be more productive and get more done faster and withlless. And lastly, the
system must
work with existing information sources in a plug-n-play manner, must
seamlessly and
automatically classify and integrate kIIOWIl knowledge assets, and must embed
the
knowledge tools in the knowledge themselves, thereby adding another
"dimension" into
knowledge assets.
The present invention is designed to be an intelligent, proactive, real-time
knowledge
platform that co-exists with Today's Web (or any other layer of presentation).
Incorporation
and use of the present invention will allow knowledge-workers to be in control
of their
knowledge experiences because authoring (via "connections") will be done
intelligently,
dynamically, automatically, and at the speed. of thought.
3. T°~I)~l ~''~ "ZIVF~RA~ATI~IV" l~i~~'1~ I%S. Tl~E ~I~F~le~T~1 Z'~~ly
~~'If 6~~(I~' ~~'~ST~'~2 ~~°
1 g ~t~~ ~~~.s~~~~°~w~w~~°~~~
With Today's Web environment, the semantics of information presented are lost
upon
conversation of the structured data to HTM:L at the server, meaning that the
"knowledge" is
stripped from the objects before the user has an opportunity to interact with
them. In
addition, Today's Web is authored and "hard-coded" on the server based on how
the author
"believes" the infornlation will be navigated and consumed. Users consume only
information
as it is presented to them.
The present invention adds a layer of intelligence and layers of customization
that
Today's HTML-based Web environment cannot support. The present invention
provides an
XML-based dynamic Web of smart knowledge objects rather than dumb Web pages
wherein
the semantics of the objects are preserved between the server and the client,
thereby giving
users much more power and control over their knowledge experience. In
addition, with the
222

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Web of the present I11Ve11ti0I1, knowledge-workers are able to consume and act
on
information on their own terms because they will interactively author their
own knowledge
experiences via "dyllal111C linking" and "user-controlled browsing."
The Information Agent (semantic browser) of the present invention is designed
to
co-exist with Today's Web and to integrate with and augment all facets of
private and public
intranets as well as the Internet. The technology platform stacks of Today's
Web and the
Information Nervous System of the present invention are summarized in FIGURE
6. With
reference to FIGURE 6, the stack for the Today's Web has at the bottommost
layers
Structured Information Sources, including such information as the data stored
in databases,
and Unstructured Information Sources, including such information as documents,
email
messages, etc. Information in both of these layers is handled distinctly. No
semantics are
used at the Information Indexing Layer; rai:her, search engines based on
keywords 'are used.
The Logic Layer consists primarily of a database that allows programmability
for searching,
rules, view, triggers, etc. The Application Layer consists of server-side
scripts that drive e-
Easiness applications based on user input. At the topmost or Presentation
Layer, Today's
Web has presentation information (in the form of Web pages) that is exposed
via portals with
a Web platform (e.g., browser).
Apart from overlapping layers of processing, the present invention uniquely
handles
infornlation from the bottommost level of operation in a manner that preserves
the semantics
of the underlying information sources. At both the Structured and Unstructured
Information
Sources Layers, the system 10 handles information uniformly, taking into
account metadata
and semantics associated with the information. At the Information Indexing
Layer,
information metadata and semantics are extracted from unstructured. The system
10 adds
three additional platform layers not present in Today's Web: Knowledge
Indexing and
Classification Layer, wherein information from both structured and
unstructured sources are
semantically. encoded; .Knowledge Representation Layer, wherein associations
are created
223

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
that allows maintenance of a self correcting or healing Semantic Network of
knowledge
objects; and Know ledge Ontology and l~nference Layer, wherein new connections
and
properties are inferred in the Semantic Network. At the Logic Layer a
knowledge-base is
created that allows for programmability .at a semantic level. At the
Application Layer,
server-side scripts are used in association with the knowledge-base. These
scripts
dynamically generate knowledge objects based on user input, and may include
,semantic
commands for retrieval, notifications and logic. This Layer may also include
Smart Agents to
optimize the handling of semantic user input. The Presentation Layer of the
system 10
preserves the semantics that are tracked from the bottommost layers.
Presentation at this
Layer is dynamically generated on the client computer system and completely
customizable.
>3y the maintenance, integration and use of semantics in all teelmology
layers, the
present invention creates a virtual Web of actionable "objects" that directly
correspond to
"things" that humans interact with physically or virtually or, in other words,
as familiar
"Context Templates." As opposed to Today's Web, which is a dumb Web of
documents, the
present in ~,ention provides for a smart virtual Web of actionable objects
that have properties
and relationships, and in which events can dynamically cause changes in other
parts of the
virtual Web.
The present invention provides a programmable Web. Unlike Today's Web which is
a dumb Web of documents, the Web of the present invention is programmable akin
to a
database- it is able to process logic and rules, and will be able to initiate
events.
While Today's Web is encoded fir human, and thus is focused primarily on
presentation of static information, the virtual Web of the present invention
is encoded
primarily for machines, albeit ultimately presented to humans as the end of
the knowledge
delivery chain. The present invention provides an intelligent, learning Web.
This means that
the virtual Web of the present invention will be able to learn new connections
and become
smarter over time. The Web is dynamic, virtual and self authoring, thereby
providing much
224

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
more power to knowledge-workers by intelligently and proactively making
semantic
connections that Today's Web is unable to provide, thereby leading to a
reduction in and
w eventual elimination of information loss.
The Web of the present invention is a self healing Web. Unlike Today's web
which
has to be manually maintained by document authors, the present
invention,provides a- Web
that is self maintained by machines. This feature rectifies broken links
because the Web will
fix disconnections in the netv~ork automatically.
Finally, as will be set forth in greai;er detail below, the various
embodiments of the
present invention incorporate some or all of the axes of knowledge acquisition
described
above to provide substantial advantages over existing systems directed to
Today's Web or
tlm conceptual Semantic Web.
C. SYSTEI11 ARCHITECTURE AND TECHNOLOGY CONSIDERATIONS
I. SYSTEM O 6BR VIEI1'
The present invention is directed to a system and method for leno~~rledge
retrie~ral,
management and delivery. This system and method is referred to herein by the
trademarked
term Information Nervous SystemTM. With reference to FIGURE 7, at its highest
level the
system 10 includes a server 20 comprised of several components that work
together to
provide context and time-sensitive semantic information retrieval services to
clients 30
operating a presentation platform (e.g., a bro~wser) via a communication
medium 40, such as
the Internet or an intranet. The server components preferably include a
Knowledge
Integration Server (KIS) 50 and a Knowledge Base Server (KBS) 80, which may be
physically integrated or separate. Within the system, all objects or events in
a given hierarchy
are active Agents 90 semantically related to each other and representing
queries (comprised
of underlying action code) that return data objects for presentation to the
client according to a
predetermined and customizable theme or "Skin." This system
contemplates.~v~ide variety of
applications, as well as various means for the client to customize and "blend"
Agents and the
22s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
underlying related queries to optimize the presentation of the resulting
inforniation. Each of
the preferred components of the system 10 of the present invention, as well as
the interaction
among the components, is described in greater detail below.
2. SI'STEMARCHITECTURE
The end-to-end system architecture for the Information Nervous System of the
present invention is shown with reference to FIGURE 8. FIGURE 8 illustrates
how the
present invention provides multiple client access means of communication,
between the
Information Nervous System XML Web Service (KIS) and Smart Agents. In the
preferred
embodiment, this occurs via the Information Agent. In an alternative
embodiment, the
communication may occur programmatically via an Enterprise Knowledge Portal
(e.g.,
Today's Web access browser) or via an SI7K layer that enables programmatic
integration
with a custom client.
The system architecture for the KI S of the Information Nervous System,
including
components thereof, are shown with reference to FIGURE 9a These components are
described ,in greater detail below.
TECIIN()L~t~ 3'.STACIfS
The significant differences between Today's Web and the conceptual Semantic
Web
are further highlighted by reference to the technology stacks of each as shown
with reference
to FIGURE 10. FIGURE 10 is a side-by-side comparison of the high-level
descriptive
platform layers of Today's Web and the equivalents (where applicable) in the
Information
Nervous System of the present invention. FIGURE 10 illustrates how scenarios
in Today's
Web map to scenarios in the Information Nervous System in certain instances,
thus providing
users with a logical migration path, but also highlights aspects of the
Information Nervous
System that do not exist in Today's Web.
226

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
4. SYSTEMHETEROGENEITY
Heterogeneity is an advantage of tine present invention. In the preferred
embodiment,
the KIS Agency XML Web Service is portable. This means that it supports open
standards
such as XML, XML Web Services that are interoperable (e.g., that employ the WS-
I standard
for interoperability), standards for data storage and access (e.g., SQL and
ODBC/JDBC) and
standard protocols for the information repositories from which the DSAs gather
data
(e.g., LDAP, SMTP, HTTP, etc.), etc.
For.example, i.n a preferl-ed embodiment, a KIS (on which an Agency is
running) is
able to:
~ Gather its "people" metadata from an LDAP store (using an LDAP DSA). This
allows it to support Microsoft's Windows 2000 Active Directory, Sul's
Directory
Server, and other Directory products that support LDAP. This is preferable to
havlllg a platform-specific Active Directory DSA that uses platform-specific
APIs
to gather "people" metadata.
~ Gather its email metadata from an SMTP store (for email from any source or
for
the system inbox). This allows it to support Microsoft Exchange Lotus Motes,
and other email servers (which support SMTP). This is preferable to having a
platform-specific Microsoft Exchange Email DSA or a Lotus Notes Email DSA.
~ Gather its "event" metadata from a calendar store supporting ~an open
standard
like iCalendar and use a protocol such as Calendar Access Protocol (CAP). This
allows it to support any event repository that supports the iCalendar or CAL
protocol standard. This is preferable to having a platform-specific Microsoft
Exchange Calendar (or Event) DSA, a Lotus Notes Calendar DSA, etc.
In an alternative embodiment, the KIS Agency may be configured to extract
metadata
stoxed in a proprietary repository (via an appropriate DSA).
To achieve heterogeneity, in the preferred embodiment, for client-server
communications, the system 10 uses XIV1L Web Service standards that work in an
interoperable manner (across platforms). These include appropriate open and
interoperable
standards for SOAP, XML, Web Services Security (WS-Security), Web Services
Caching
(WS-Caching), etc.
227

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In the preferred embodiment of the present invention, the semantic browser
(also
referred to by the trademarked term Information AgentT"s) is able to operate
Cross-platform
and in different environments, such as Windows, .NET, JZEE, Unix, etc. This
ability is
consistent with the notion of a semantic user experience in that users do not
arid should not
care about what "platform" the browser is running on or what platform the
Agency (server) is
running on. The semantic browser of the present invention provides users with
a consistent
experience regardless whether they are "ta.lking" to a Windows (or .NET)
server or a J2EE
server. Users are not required to take any extra steps while installing or
using the client based
on the platform on which any of the Agencies they are interacting with is
running.
The Iliformation Agent preferably uses open standards for its Skins and other
presentation effects. These include standards such as XSLT, SVG, and
proprietary
presentation formats that work across platforms (e.g., appropriate versions of
Flash MX/ActionScript).
A sample, heterogeneous, end-to-end implementation of a preferred embodiment
of
the Information Nervous System of the present invention is shown with
reference to
FIGURE 1 f. FIGURE 11 illustrates the preferred embodiment of the Information
Nervous
System and illustrates the heterogeneous, cross-platform context for the
present invention.
The components shown in FIGURE 11 are described in greater detail below.
S. SECURITY
The preferred embodiment of the Information Nervous System provides support
for
all aspects of security: authentication, authorization, auditing, data
privacy, data integrity,
availability, and non-repudiation. This is accomplished by employing standards
such as
WS-Security, which provides a, platform for security with XML Web Service
applications.
Security is preferably handled at the protocol layer via security standards in
the XML Web
Se~ice protocol stack. This includes encrypting method calls from clients
(semantic
browsers) to servers (Agencies), support for digital 'signatures,
authenticating the calling user
22s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
before granting access to an Agency's Semantic Network and XML Web Service
methods,
etc.
The preferred embodiment that the present invention supports local (client-
side)
credential management: This is preferably implemented by requiring users to
enter a list of
their usernames and passwords that they use on multiple Agenci-es (within an
Intranet) or
over the Internet. The semantic browser aggregates inforniation from multiple
Agencies that
may have different authentication credentials for the user: Supported
authentication
credentials optionally include , common schemes such as basic authentication
using a
username and password, basic authentication over SSL, Microsoft's .NET
Passport
authentication service, the new Liberty Alliance authentication service,
client certificates
over SSL, digest authentication, and integrated Windows authentication (for
use in Windows
environments).
In the preferred embodiment, with the users'' credentials cached at the
client, the
semantic browser uses the appropriate credentials for a given Agency by
checking the
supported authentication level and scheme for the Agency (which i~ part of the
Agency's
schema). For example, if an Agency supports integrated Windows authentication,
the
semantic browser invokes the XML Web Service method with the logon handle or
other
identifier for the current user. If the Agency supports only basic
authentication over SSL, the
semantic browser passes either the usernarrne and password or a cached copy of
the logon
handle (if the client was previously logged on and the logon handle has not
expired) in order
to logon. The preferred embodiment employs techniques such as logon handle
caching, aging
and expiration on the KIS in order to speed up the authentication process (and
logon handle
lookups) and in order to provide more security by guarding against hijacked
logon handles.
The Agency XML Web Service preferably supports different authentication
schemes
either .implicitly (if the feature is natively supported by the server
operating system or
application. server) or at the application-level by the XML Web Service
implementation
229

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
itself. Alternative embodiments of the KIS Agency's XML Web Service preferably
employ a
variety of authentication schemes such as basic authentication, basic over
SSL, digest,
integrated Windows authentication, and client certificates over SSL, and
integrated .NET
passport authentication.
S G. EFFICIENCYCONSIDERfITlOiVS
Client-Side and Server-Side Query and Object Caches. The present invention
provides for query caches, which are responsible for caching queries for quick
access. On the
client, the client-side query cache caches the results of SQML queries with
specified
arguments. The cache is preferably configured to purge its contents after a
predetermined
amount of time (e.g., a few minutes). The amount of time is preferably set by
modeling
system usage and arriving at an opfimal value for the cache time limit. Other
parameters may
also be considered, such as the data arrival rate on the Agency (in the case
of per-Agency
caches, which is another implementation option), the usage model (e.g.,
navigation rate) of
the user, etc.
Caching improves performance beczuse the client does not have to needlessly
access
recently used servers as the user navigates the semantic environment. In the
preferred
a:~
embodiment, the client employs standard XML Web Service Caching technologies
(e.g., WS-Caching). Ill~addition, on the client, there is preferably an object
cache. This cache
caches the results of each SQML resource and is tagged with the resource
reference (e.g., the
file path, the URL, etc.). This optimizes SQML processing because the client
can get the
XML metadata for an SQML resource directly From the object cache, without
having to
access the resource itself. The resource may be the local file system, a local
application
(e.g., Microsoft Outlook), or an Agency's XML Web Service. Like the query
cache, the .
object cache maybe configured to~ purge its contents after a set amount of
time (e.g., a few
minutes).
230

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In an alternative embodiment, on the server, the .server-side query cache
caches the
category results for XML arguments. This speeds up the query response time
because the
server does not have to ask the KDM to categorize XML arguments (via the one
or more
instances of the KBS that the KIS is configured to get its domain knowledge
from) on each
query request. In addition, the server can cache the SQL equivalents of the
SQML arguments
it receives from clients. This speeds up the query response time..because the
server would not
have to convert SQML arguments to SQL each time it receives a request from a
client. In the
preferred embodiment, aggressive client-side caching is, employed and server-
side caching is
avoided unless it clearly improves performance. This is because client-side
caching scales
better than server-side caching since the client caches requests based on its
local context.
virtual, I~ista-ibuted Queries. Tlne present invention employs virtual,
distributed
queries. This is consistent with its "dynamic linking" and "user-controlled
browsing"
functionality. The system does not require static networks that link-or
massive individual
databases that house-all the metadata for the system. This precludes the need
for manual
auth(7Tlllg and maintenance on a local or global scope. In addition, this
precludes the need for
integrated (or universal) storage, wherein all the metadata is required to be
stored on a~single
metadata store and accessible through one database query interface (e.g.,
SQL). Rather, the
present invention employs the principle of "Dynamic Access" via its use of XML
Web
Services to dynamically distribute queries across 'various Agencies (in a
context and time-
sensitive manner), and to aggregate the results of those queries in a
consistent and user-
friendly manner on the client.
D. SYSTEM COMPONENTS AND OPERATION
1. AGENCIES AND AGENTS
The present invention introduces a unique approach to using Agencies and
Agents to
retrieve, manage and deliver knowledge.
231

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
a. Agencies
In a preferred embodiment of the present invention, the Agency is an instance
of the
IW owledge Integration Server (KIS) 50 and is the invention's equivalent of a
Web site. An
Agency is preferably installed as a Web application (on a Web server) so as to
expose XML
Web Services. An Agency will preferably include an Agency administrator. In a
preferred
embodiment of the present invention, an Agency has the following primary
components:
~ A flag indicating whether the Agency supports or requires authentication (or
both). If the Agency requires authentication, the Agency will require basic
user
information and a password and will store information on the type of
authentication it supports. For Agencies that store user information, the
Agency
will also require user subscription infornzation (for subscription to Agents
on a
specific Agency).
Stnictured stores of semantic: objects (documents, email messages, etc.)-
Corresponding to schemas for tine respective classes.
~ Runtime components that respond to semantic queries-Components return XML
to the calling application and provide system services for all the information
retrieval features of the semantics browses.
Server-Side User State. In the prefen-ed embodiment of the present invention,
Agencies support server-side User State, which associates related concepts
including
"people" metadata and user authentication. Server-side User State facilitates
many of the
implementation details of the present invention, including the storage of user
favorites (by
semantic links between people objects and information objects), the inference
of favorites in
order to generate new links (e.g., recommendations), Annotations (that map
users' comments
to information objects), and the inference of "experts" based on semantic
links that map users
to information (e.g., posted emails, annotations, etc.). Server-side User
State is preferably
used with some Context Templates like "Experts," "Favorites,"
Recommendations," and
"Newsmakers." '
Client-Side User State. The Information Agent (semantic browses) preferably
supports roaming of local client-side User State. This includes users'
Semantic Environment
232

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
and users' credentials (securely transferred). In the preferred embodiment,
users are able to
easily export their client-side User State to another machine in order to
replicate their
Semantic Environment onto another machine. This is preferably achieved by
transferring
users' Agent list (recent and favorites), the metadata for the Agents
(including the SQML
buffers), users' local security credentials, etc. to an XML format that
serializes all this state
aiid enables the state to be easily transferred. Alternatively, an XML schema
may be
developed for all the local client-side User State. Caching the User State on
a server and
synchronizing the User State using common synchronizationtechniques can also
facilitate
roaming. The semantic browser preferably downloads and uploads all client-side
User State
onto the server, rather than storing the state locally (in an XML file or a
proprietary store like
the Windows registry).
b. Agents
An Agent is the main entry point into the Semantic Network of the present
invention.
An Agent preferably consists of a semantic filter query that returns XML
information for a
particular semantic object type (e.g., documents, email, people, etc.). In
other words, an
Agent is preferably configured with a specific object type (described below).
Agents can also
be configured with a Context Template (described below). In this case, the
query will return
an object type, but it will incorporate the semantics of the Context Template.
For example,
Agents configured with a "Headlines" Context Template will be sorted by time
and
,20 relevance, etc. Agents are also used to filter notifications, alerts and
announcements. Agents
can be given any name. However, in the prefer-ed embodiment of the present
invention, the
naming format for most Agents is:
<Agentobjecttype>.<semanticqualifier>.<semanticqualifier>
Agents can be named arbitrarily. However, examples of Agent names include:
AILAII
Email.All
233

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Documents.Teclmology. Wireless.80211 B.AII
Events.Upcoming.NextThirtyDays.All
There will also be Domain Agents (see below) that may follow a different
naming
convention (see below). At the semantic browser of the present invention, a
fully qualified
Domain Agent name will have the format:
<Agentobj ecttype>.<semanticdomainname>.<categoryname>
[Agency=<Agency url>, kb=<kb url>]
For example, the Email Domain .Agent on the Agency http://research.Agency.asp
configured with the category wireless.all from the lmowledge-base
ABC.comlkb.asp with the
semantic domain name industries.informationtechnology will be fully named as:
Email.Industries.InfonnationTechnology.Wireless.All
[Agency=http://researchlAgency.asp, kb="http:l/abccorp.comlkb.asp"
The semantic browser of the present invention is preferably configurable to
use only
the Agent name or to include the "Agency" and "kb" qualifiers.
Agent Types. There are three primary types ~f Agents created on server 20:
Standard
Agents, Compound Agents, and Domain ~sgents. A Standa~°d Agent is a
standalone Agent
that encapsulates structured, non-semantic queries, i.e., without domain
knowledge (or an
ontology/taxonomy mapping). For example., on the server, the Agent
All.PostedToday.All is
a simple Agent that is resolved by filtering all objects based on the
CreationTime property.
Standard Agents can also be more complex. For example, the Agent
All.PostedByAnyMemberOfMyTeam.All may resolve into a complicated query that
involves
joins and sub-queries from the Objects table and the Users table (see below).
A Compound Agent contains other Agents and allows the Agency administrator to
create queries that generate results that are the UNION or the INTERSECTION of
the results
of their contained Agents (depending on the configuration). Compound Agents
can also
contain other Compound Agents. In the presently preferred embodiment, Compound
Agents
contain Agents from the same Agency. Ffowever, the present invention
anticipates the
234

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
integration of Agents from different Agencies. By way of example, a Compound
Agent
All.Technology.Wireless.All might be created by compounding the following
Agents:
~ Documents.Technology.Wirele~;s.All
~ Email.Teclunology.Wireless.Al1
~ People.Experts.Technology.Wireless.All
. As described above, a Dorrrain Agent is an Agent that belongs to a semantic
doIllalll.
A Domain Agent is initialized with an Agent query, just like any other Agent.
However, this
query includes the CATEGORIES table, which is populated by the K.lowledge
Domain
Manager (see below). While the preferred embodiment of the present invention
utilizes a
KBS 80 having proprietary ontologies corresponding to a private Semantic
Envirolm~ent, the
present invention contemplates integrated support of ontology interchange
standards that will
enable an Agency to connect to one or more custom private TABS, for example
within an
organization where the Agency was previously initialized with a proprietary
ontology for that
organization.
An e~arrlple of a De~main Agent i 9 Email.Technolog~r.'~6pireless.t~ll. This
agent is
preferably created with a knowledge source URL such as:
category://technology.wireless.all a ABC.com/marketingknowledge.asp
This knowledge source URL corre:>ponds to the Technology.Wireless.All category
for the default domain on the knowledge base installed on the
ABC.com/marketingknowledge.asp Web service. This is resolved to the following
HTTP
URL:
http://ABC.com/marlcetingknowledge.asp?category=''techrlology.wireless.all."
In this
example, a fully qualified version of the category URL may be:
category:l/technology.wireless.all@abccorp.comimarketingknowledge.asp?se
manticdomainname="InformationTechnology"
In this case, the category URL is qualified with the domain names.
°Domain Agents are preferably created via a Domain Agent Wizard, and
the Agency
administrator is able to add Domain Agents i:rom the KBS 80 to the Semantic
Network of the
235

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
present invention. The Domain Agent Wizard allows users to create Domain
Agents for
specific categories (using a category URL) or for an entire semantic domain
name. In the
latter case, the Agency is preferably configured to automatically create
Domain Agents as
new categories are added to the semantic domain on the KBS. This feature
allows domains
and categories to remain dynamic and therefore easily adaptable to the user's
needs over
time. When Domain,Agents are managed i:n this fashion, the Agency is
configurable so as to
remove Agents that are no longer in the semantic domain. Essentially, in this
mode, the
Domain Agents are synchronized with the CATEGORIES table (which in turn is
synchronized with the CATEGORIES list at the relevant KBS by the Knowledge
Domain
Manager, described below).
A Domain l~gent is initialized vrith ~ ~sti-uctured query that filters the
data the Agent
manages based on a category name or URL. In this situation, the structured
query is identical
to the queries for Standard Agents. An example of a resultant query for a
category Agent is:
SELECT OBJECT FROM OBJECTS WHERE OBJECTID 1N (SELECT
1 ~ OBJECTID FROM SElYIAT~TTICLI7VI~S WHERE PREDICATET~PEID=50
AND SUBJECT=1000 AI'1D O>3fECTID lint (SELECT O)3JECTID FROM
.CATEGORIES WHEF',E ~ URL LIKE
category:l/technology.wireless.all@ABC.com/kb.asp?domain="marketing")) '~
In this example, the "belongs to the category" predicate type ID is assumed to
have the
value~50, and the category objectid is assumed to have the value 1000. This
query can be
translated to English as follows:
Select all the objects in the Agency that belong to the category whose object
has an objectid value of 1000 and whose URL is
category://technology.wireless.all@abecorp.comlkb.asp?domain="marketing"
This in turn translates to:
Select all the objects in the Agency of the category
category://technology.wireless.all@abccorp.com/kb.asp?domain--"marketing"
236

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The Domain Agent Wizard asks the user whether he or she wants to name the
Agent
based on the short category name or a friE:ndly version of the fully qualified
category name.
An example of the latter is: Marketing.Technology.Wireless.All [@ABC]. The
fully
qualified Domain Agent naming convention is:
<objecttypename>.<semanticdomainname>.<categoryname>.all [@KB Name].
.,
In this example, the Domain Agent, name i;>:
Eniail.Marketing.Technology.Wireless.All [@ABC].
Blenders. Blenders are users' personal super-Agents. Users are able to create
a
Blender and add and remove Agents (across Agencies) to and from the Blender.
This is
analogous to users having their own "Personal Agency". Blenders are preferably
invoked
~nly on the system client since they includf< Agents from multiple Agencies.
The client of the
present invention aggregates all objects from a Blender's Agents and presents
them
appropriately. Blenders preferably include all manipulation characteristics of
other types of
Agents, e.g., drag and drop, Smart Lens (see below). A Blender can contain any
type of
Agent (e.g., Standard Agents, Search Agents, Special Agents, as well as other
Blenders).
The present invention provides for a Blender Wizard, which is a user interface
designed to facilitate users in creating Blenders. FIGURES 12-14 show exemplar
screenshots
of aspects of the Blender Wizard user interface according to a preferred
embodiment of the
present invention. FIGURE 12 is a lsample Information Agent screenshot showing
a Tree
View of a sample Semantic Environment and a sample of the "Add Blender" wizard
that
allows users to create and manage a new Blender. FIGURE 13 shows the second
page of the
Add Blender wizard where users enter the name and description of the Blender
and
optionally select information object type :filters. FIGURE 14 shows the third
page of the
sample Add Blender wizard in accordance with a preferred embodiment of the
present
. invention. In this example, users add and rf;move Agents from the Semantic
Environment to
237

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
or from the Blender. When the "Add Agents" option is selected, the "Open
Agent" dialog is
displayed from which users can add a new Agent, Blender or Agency to the new
Blender.
Breaking News Agents. A Breaking News Agent is a specially tagged Smart Agent.
In addition to the option of having time-criticality being defined by the
Agency
administrator, the user has the option of indicating which Agents refer to
infonmation that he
or she wants to be alerted about. Any information being displayed will show
alerts if there is
breaking news that relates to it on a Breaking News Agent. For example, a user
will be able
to create an Agent as: "All Documents Posted on Reuters today" or "All Events
relating to
computer technology and holding in Seattle, in the next 24 hours"' as Breaking
News Agents.
This feature functions in an individual way because each Breaking News Agent
is personal
"breaking" is subjective and depends on the user). For example, a user in
Seattle perhaps
would want to be notified on events in Seattle in the next 24 hours, events on
the West Coast
in the next week (during which time he or she can find a cheap flight), events
in the United
States in the next 14 days (the advance notice for most U.S. air carriers to
get a modestly
priced cross-continental flight), events in Europe in the next month (likely
because he or she
needs that amount of time to get a hotel reservation), and events anywhere in
the world in the
next six months.
In a preferred embodiment, the present invention automatically checks the
Semantic
Enviromnent for breaking news by queryin~; each Breaking News Agent or by
querying the
"Breaking News" Context Template. It will do this for all objects displayed in
the semantic
browser window. If a Breaking News Agent indicates that there is breaking
news, the
Information Agent object Skin so indicates by flashing the window or by
showing a user
interface that clearly indicates that there is an alert that relates to the
object. When the user
clicks on the breaking news icon, a breaking news pane or a Context Palette
for the
"Breaking News" Context Template is displayed allowing the user to see the
breaking news,
select the Breaking News Agent (if there are multiple with breaking news),
select predicates,
238

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
and select other options: An exemplar pane of a Breaking News Agent user
interface is
shown in FIGURE 15. This sample user interface illustrates the popup menu in
the context
Results Pane. The sample shows a similar context pane as a Smart Lens (Agent-
Object)
popup context Results Pane (discussed below) except that the Agent is a
Breaking News
Agent.
Default Agents. In an alternative embodiment, each Agency exposes a list of
default
Agenfs. Default Agents are similar to. the default page on a Web site; authors
of the Agency
determine which Agents they want users to always sees. Alternatively, on the
client,wDefault
Agents may be invoked when users click on the root of the Information Agent's
Environment
(which preferably corresponds to a "Home Agent," for example, the equivalent
of the "Home
Page" on Today's Web browser). Combined Default Agents niay also be configured
by
users.
Default Special (or Context) Agenta. In the preferred embodiment, the client
or the
Agency support a Default Special or Context Agent that maps to each Context
Template
(discussed below). These Agents preferably use the appropriate Context
Template without
any filter. For example, a Default Special Agent called "Today" returns all
items on all
Agencies in the "recent" and "favorites" lists (or on a configured list of
Agencies) that were
posted today. In yet another example, the Default Special Agent called
"Variety" shows
random sets of results for every Agency in 'the Semantic Environment
corresponding to the
"variety" Context Template.
Default Special Agents preferably function as. a starting point for most users
to
familiarize themselves with the Information Nervous System of the present
invention. In
addition, Default Special Agents retain the same functionality as Smart
Agents, such as use
of drag and drop, copy and past, Smart Lens, Deep Information, etc.
Horizontal Decision Agents. W the preferred embodiment, Agents utilized by the
client to assist with user interaction, including:
239

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Schedule Agent: The Schedule Agent intelligently ranks events based on the
probability that particular users would want to attend the event.
~ Meeting Follow-up Agent: Tlue Meeting Follow-up Agent intelligently notifies
users when the time has come to have a follow-up meeting to one that occurred
in
the past. The Inference Engine (see below) monitors relevant semantic activity
to
determine whether enough change has occurred to warrant a follow-up meeting.
Users preferably use the previous meeting object as an Tnformation Object
Pivot
to find the relevant knowledge <;hanges (such as new documents, new people
that
might want to attend, etc.)
~ Task Follow-up Agent. The Task Follow-up Agent sends recommendations to
users in response to tasks users perform (such as readirig a document, adding
an
event to their calendar, etc.). Tl.te Agent ensures that users have constant
follow-
up. The recommendations are based on users' profile, and the Agent preferably
uses collaborative filtering to determine recommendations.
0 customer Follow-up Agent. The Customer Follow-up Agent sends notifications
to users based on customer activity. The Agent intelligently determines when
the
user needs attention (based on email received from the user, new documents
that
might aid user service, etc.)
Puhlie a~e~-~u~ L~cal Agent. Agent:9 that are created by the Agency
administrator are
"Public Agents." Agents created and managed by users are "Local Agents."
Local:. Agents
can refer to remote Agencies via SQML that includes references to Agency XML
Web.
Service URLs, or can refer to local Agencies that run a local instance of the
KIS with a local
metadata store.
Saved Agents-Users' My Agents :List. In the preferred embodiment, users are
able
to save a copy of an invoked Agent or a query result as a local Agent. For
example, users
may drag and drop a document on their hard drive to an Agent folder to
generate a semantic
relational query. Users could save that result as an Agent named
"Documents.Technology.Wireless.RelatedToMyDocument." This will then allow the
user to
navigate to that Agent to see a personalized semantic query. Users would then
be able to use
that Agent to create new personal Agents, and so on. Personal Agents can also
be
240

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
"published" to the Agency. Other users are preferably able to discover the
Agent and to
subscribe to it.
In the preferred embodiment, a local Agent is created by a "Save as Agent"
button
that appears on the client anytime a semantic relational query result is
displayed. This is
analogous to users saving a new document. Once the Agent is saved, it is added
to the users'
My Agents list. An Agent responds to a semantic query based on the semantic
domain of the
Agency on which it is hosted. Essentially,, a semantic query to an' Agent is
analogous to
asking whether the Agent "understands the query." The Agent responds to
a.guery to the best
of its "understanding." As a further illustration, an Agent 'that manages
"People" responds to
a semantic query asking for experts for a document based on its own internal
mapping of
people in its semantic domain to the categories in that domain.
Alternatively, the system client may be configured ,to use non-semantic
queries. In
this case, the Agency will use extracted keywords for the query. All Agents
support
non-semantic queries. Preferably only Agents on 'Agencies that belong to a
semantic domain
rvill support semantic queries. In other words, semantic searches degrade to
searches.
Each Agent has an attribute that indicates whether it is "smart" or not. A
Smart Agent
is preferably created on an Agency if that Af;ency belongs to a semantic
domain. In addition,
a Smart Agent only returns objects it fully "u.nderstands." In the preferred
embodiment, when
an Agency is installed, there are several default Smart Agents that the Agency
administrator
may optionally choose to install, including:
~ All.Understood.Al1
~ Documents.Understood.All
~ Email.Understood.All
For example, Email.Understood.Al1 emly returns email objects that the Agency
can
semantically understand based on its semantic domain (or ontology).
241

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The present invention preferably includes the capability for users to display
all
objects and only those the Agency understands
Search Agents. A Search Agent is an Agent that is initialized with a search
string. In
the preferred embodiment, on invocation, the client issues the search request.
A Search Agent
S is configurable so as to search any part of the Semantic Environment,
including:
~ Frequently Used Agents
~ Recently Used Agents
~ Recently Created Agents
~ Favorite
~ All [Saved] Agents
~ Deleted Agents
~ Agents on the local area network
o Agents on the Global Agency Directory
~ Agents on any user-customized Agency directories
~ All Agents in the entire Semantic Environment
The client issues the search request based on the scope of the Search Agent.
If users indicate
that they want the search to cover the entire Semantic Environmaent, the
client issues the
request to all Agents in the Semantic Environment Manager (see below) and all
Agents on
the local area network, the Global Agency Directory and user-customized Agency
Directories.
Server-Side Favorite Agents. In yet an alternative embodiment, the Agency
supports
User States support Favorite Agents. In the analogous context of Today's Web,
a Web site
allows users to customize their favorite links, stocks, etc. When initially
queried, an Agency
displays both its Default Agents and the Favorite Agents of the calling user
(if there is a User
State).
Smart Agents. A Smart Agent is a standalone Agent that encapsulates
structured,
semantic queries that refer to an Agency via its XML Web Service. In the
preferred
embodiment, user on the client are able to create and edit Smart Agents via a
"Create Smart
242

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Agent" wizard that allows them to browse the Semantic Environment via the Open
Agent
dialog, and add links from specified Agencies. Essentially, this corresponds
to users creating
the SQML query from the user interface. In. the preferred embodiment, the user
interface only
allows users to add links from the same Al;ency resource. However, users can
create Agents
. of the ame categories across Agencies, in. addition to Special Agents and
Blenders (which
are also preferably cross-Agency). The user interface allows the user to add
links using
existing Smart Agents as Inforniation Object Pivots provided that the Smart
Agent refers to
the same Agency for the current query. FIGURE 16 illustrates a preferred
embodiment
showing the Open Agent dialog with the user interface controls for selecting
link (predicate)
templates, the links themselves, and the objects. FIGURES 17-19 illustrate the
Tree View of
a sample Semantic Envirornnent involving- the Open Agent dialog. FIGURE 17
shows the
Open Agent dialog allowing users to browse the Semantic Environment and open
an Agent.,
FIGURE 18 illustrates a way of navigating Agencies in the Semantic Environment
and the
"Open Agent" dialog with the "Small Preview" view. FIGURE 19 illustrates an
"Open" tool
on the toolbar showing new options to open Agents form the Semantic
Environment or to
import regular information (e.g., from the file system) to the Semantic
Environment by
creating Dumb Agents.
The link templates essentially allow the user to navigate predicate for the
current
object type using predefined filters, thus allowing the user to avoid going
through all the
predicates for the object type. Examples of link templates include:
~ All
~ Breaking News (links that refer to time-sensitivity, e.g., "posted in the
last")
~ Categorization
~ Definite (non-probabilistic links)
~ Probable (probabilistic links)
Annotations
243

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In the preferred e117bOd11nellt, the Open Agent dialog allows the user to
select the
object to "link to" and, depending on the type of the object, allows the user
to browse the
object (e.g., from a calendar control if it is a dateltime, from a text box if
it is text, from the
file system if it is a file or folder path, etc.) The wizard user interface
also allows the user to
S preview the results of the query. A temporary SQML entry is created with the
current
predicate list and that is loaded in a mini-browser window within the wizard
dialog box. The
user is able to add and remove predicates, and will also have the option of
indicating whether
he or she wants a union (an "OR") or an intersection (an "AND") of the
predicates. The user
interface will also check for duplicate predicates.
Once the user finishes the wizard to create the Smart Agent, the Smart Agent
is added
to the Semantic Environment and the SQMI, is also saved pith the associated
object entry. In
tloe preferred embodiment, the user can, later browse the Smart Agent using
the Agent
property inspector property sheet. This allows the user to view the simple
Semantic
Environment properties (e.g., name, description, creation time, etc.) and also
to view the
resource URL (the WSDL LJRL to the EMI, Web Service of the Agency being
queried) and
the predicate list. The user can edit the list from the property sheet.
Default Smart Agent. A Default Snnart Agent is similar.to a Default Special
Agent
except that it is based on information object types and not on Context
Templates. By way of
example, "Docul-lients" would return all documents on all Agencies in the
users' Semantic
Environment; "Email" would return all email messages in user's Semantic
Environment, etc.
Special Agent. A Special Agent is a Smart Agent created by users based on a
Context
Template (see below). A Special Agent is preferably initialized with an Agent
name, albeit
without a specific Agent reference. For example, a Special Agent
"Email.Technology.Wireless.All" may be created even if there are no Agents of
that name in
the Semantic Enviromnent. Like a Search Agent, a Special Agent is scoped to
search for any
Agent with its name on any part of the Semantic Environment. In the preferred
embodiment,
244

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
when a Special Agent is invoked by users, the client searches for any Agents
that bear its
name. If or when it finds any Agents 'with the name, the client invoke the
Agent.
In the preferred embodiment, users enter parameters consistent with a Context
Template, indicating the category fillers (if required) and what Agency(ies)
to query. These
can be manually entered using the Open Agent dialog, or users can indicate
that they want to
query the "recent" Agencies, "favorite" Agencies, or both. In an alternative
embodiment,
users~have the choice of selecting categories (if required) that are in the
union or intersection
of the selected Agencies, or all categories known to the Global Agency
Directory. In yet an
alternative embodiment, users are able to select the information type (as
opposed to a
Context Template) and keywords to search (as opposed to predicates or
categories).
I~-efault Special Agents. In the preferred embodiment, the system client
installs
Default Special Agents that map to all supported Context Templates. By way of
example, in
the preferred embodiment, Default Special .gents including the following:
Headlines
Breaking News
Conversations
Newsmakers
Upcoming Events
Discovery
History
All Bets
Best Bets
Experts
Favorites
Classics
Recommendations
Today
Variety
Timeline
Upcoming Events
245

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Guide
Custom Special Agents. In contrast to user-created Special Agents, Custom
Special
Agents are Special Agents specially developed and signed in order to guarantee
that the
Special Agents 'are safe, secure, and of higlx-performance. The present
invention provides for
. a plug-in layer to allow organizations and developers to create their own
custom blenders. An
example of a custom blender is "All.CriticalPriority.Al1 that relates to my
most recent
documents or email.." This Custom Blender may be implemented by an SQML file
with a
resource entry as follows:
<resource type= "nervana:url"
agent://all.criticalpriority.all@localhost>
clink predicate= "nervana:relevantto"
type= "ueivana:localsenxanticref'
recentdocuments >
</link>
~ clink operator= "or"
type= "nervana:localsemanticref"
recentemail>
</link>
</resource>
In the preferred embodiment, the Presenter (see below) resolves . lie "link"
entry
locally and initiates XML Web Service requests to the target resource with XML
arguments
corresponding to the newest documents or c°mail messages. This allows
the target Agent to
focus on responding to semantic queries purely with XML filters without
knowing the
semantics related tv ,filter origination. In an alternative embodiment, a
Custom Blender such
as the above example is a Default Agent.
Vertical Decision Agents. Vertical Decision Agents are Agents that provide
decision-support for vertical industry scenarios.
Agent Schema. Agents operate within specified parameters and exhibit
predetermined characteristics that comprise the Agent schema. Agent schemas
may vary
246

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
widely with being equally applicable within the technology of the present
invention. By way
of example only, the Agent schema of the preferred embodiment of the present
invention is
shown in FIGURE 20. The present invention specifically contemplates the
addition of further
fields. For example, fields for category URL (or path) and Context Template
name can be
added to the Agent schema to provide the client and server quick access to the
category and
Context Template the Agent represents (if applicable). This is helpful for the
Semantic
Environment Manager to provide different views ~of Agents (by category, by
context, etc.).
This complements the existence of these fields in the SQM.L..for the Agent
(expressed via
attributes and/or predicates). The AgentT~rpeIDs included in the preferred'
embodiment are
shown in FIGURE 21. The AgentQueryT;ypeIDs included in the preferred
embodiment are
shown in FIGURE 2,2.
In the preferred embodiment, SQL query formats are used. However, multiple
query
forn~ats, for example XQL, XQuery, etc., are contemplated within the scope of
the present
invention.
The ISIS SO preferably hosts an Agents table (for server-side Agents) in its
data store
corresponding to this schema. FIGURE 23 illustrates sample semantic queries
that
correspond to Agent names showing how s~°rver-side Agents are
preferably configured on the
KIS of the present invention.
As explained in greater detail below, Agents may optionally include their own
Skins.
An Agent Skin is represented as an URL to an XSLT file or equivalent Flash MX
or
ActionScript. If the A,gent's Skin URL is not specified, a default Skin for
the Agent's object
type is presumed.
Agent Query Rules. Each server-side Agent query must be specified to return
the
OBJECTID column. Each table has this column for it is what links the Objects
table with the
tables for the derived object type. Objects and other tables are described in
greater detail
below.
247

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Because each Agent query can form the basis of a sub-query, cascaded query or
a
join, it is preferable that each query follow this format. By way of example,
the query for
News.All will be may appear as "SELECT OBJECT1D FROM NEWS" (where "NEWS" is
the name of the table hosting metadata for news articles, with the "news"
schema). As a
result, the server 10 can then use this query as part of a complex query. For
example, if the
user drags and drops a document onto the cogent, the server might execute this
query as:
SELECT OBJECTID FROM NEWS WHERE OBJECTID IN (SELECT
OBJECTID FROM SEMANTICLI'.NKS WHERE SUBJECTID IN (50, 67,
89) AND LINKSCORE > 90)
This example assumes that the document is classified to belong to categories
in the
CATEGORIES table with object identifiers 50, 67, and 89 and that a link
probability of 0.9 is
the threshold to establish that a document belongs to a category. In this
example, the
document is used as a filter for the News.Al1 query and the query text is used
as part of the
complex query.
Ha~rin~ a consistent standard for queries allows the semantic query processor
to
merge queries until they finally have to be presented. For example, each call
to the semantic
query processor must indicate what object: type in which to return the
results. The query
processor then returns XML information consistent~with the schema for the
requeste4d object
type. In other words, the query processor preferably returns, schema-specific
results for
presentation. Each query is stored at the semantic layer (to return an
OBJECTll~). To use the
last example, when the user invokes the News.All Agent, the browser calls the
query
processor on the Agency XML Web Service. The query processor will then invoke
the query
and filter it with the 'News Article' object type, as such:
SELECT * FROM NEWS WHERE OBJECTID IN (SELECT OBJECTID
FROM NEWS)
248

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
This returns all the fields for the News schema. The browser (via the
Presenter) displays the
information using the XSLT (or a presentation tool such as Flash MX or
ActionScript) for
either the Agent Skin or for a user-specified. Skin (which will override the
Agent Skin).
Query Virtual Parameters. Agf.nt queries preferably contain special Virtual
Parameter. A typical example may include: '%USERNAME%. TIa this example, the
Semantic
Query Processor (SQP) resolves the Virtual Parameter to a real argument before
invoking the
query.,An Agent People.MyTeam.All is configured with the SQL query:
SELECT * FROM USERS WHERE Division IN (SELECT Division FROM
USERS WHERE Name LIKE %USERNAME%)
In this example, the Agent name includes "MyTeam" even though the Agent can
apply to any user. The °IoUSERNAME% variable is resolved to the actual
calling user's
name by the SQP. The SQL call is resolved to as follows:
SELECT * FROM USERS WHERE Division IN (SELECT Division FROM
USERS WHERE Name LIKE JohnDoe)
In this examplep JcahnDoe is assunmd to be tlm user name of the caller.
Simple Agent Search. Each Agent will support simple search functionality. In
the
preferred embodiment, a user is able to right-click on a Smart Agent in the
Information
Agent and hit "Search." This will bring up a dialog box where the user enters
search text.
This creates the appropriate SQML with the associated predicate, e.g.,
"nervana:contains".
The present invention provides a simple, fast way for users to search Agents
(and create
Smart Agents from there) without going through the "Create Smart Agent" wizard
and
selecting the "contains text" predicate (which alternatively achieves the same
result).
Agency Agent Views. An alternative embodiment of the present invention
includes
Agency Agent Views. An Agency Agent View is a query that filters Agents based
on
predefined criteria. For example, the Agent view "Documents" returns only
Agents that
manage.,objects of the document semantic c:fass. The Agent view "Reuters News"
returns a
249

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
list of Agents that manage news objects with "Reuters" as the publisher.
Agency Agent
Views are impoutant in order to give users an easy way to navigate through
Agents. The
Agency administrator is able to create and delete Agent views.
Agent Publishing and Sharing. The preferred embodiment makes it easy for
Agents
S to be published and shared. This is prefi°rably implemented by
serializing the Semantic
Environment into an XML document containing the recent and Favorite Agents,
their
schema, their SQML buffers, etc. and publishing the document to a publishing
point. This
XML document niay also be emailed to colleagues, friends, etc. in order to
facilitate the
propagation and sharing of local (user-created) Agents. This is analogous to
how Web pages
are published today and how web URL.s and' links are shared by sending links
and
attachments via enlail.
Z. ICNOI VLEDGE INTEGRATION SER VER
The Knowledge Integration Server (KIS) 50 is the heart of the server-side of
the
systeixa 10. The KIS semantically integrates data from multiple diverse
sources into a
Semantic Network and hosts Agents that provide access to the network. The KIS
also hosts
semantic XML Web Services to provide clients with access to the Semantic
Network via
Agents. To users, a KIS installation may be viewed as an Agency. The KIS is
preferably
initialized with the following properties:
~ Agency Name. Nanie of the Agency (e.g., "ABC")
~ Agency Friendly Name. Full name of the Agency (e.g., "ABC Corporation")
~ Agency Description. Description of the Agency
~ Agency , System User Name. User name of the Agency. Each Agency is
represented by a user on the directory of the enterprise (or Web site) on
which it is
installed. The system user name is used to host the system inbox (through
which
users will publish documents, email and annotations to the Agency). For
authentication, the Agency must be installed on a server that has access to
the
system user account.
2so

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Agency Authentication Support Level. Indicates whether the Agency supports
or requires user authentication. An Agency can be configured to not support
authentication (in which case it is open to all users and does not have any
User
State), to support but not require authentication, and to require
authentication, in
which case it preferably indicates the authentication encryption type.
~ Agency User Directory Type., This indicates the type of user. directory the
Agency authenticates users against and where the Agency gets its user
information frog. For example, this could be an LDAP directory, a Microsoft
Exchange 2000 User Directory, or a Lotus Notes User Directory on the Windows
2000 Active Directory, etc.
~. ~ Agency User Directory Name. This indicates the server name of, the Agency
user directory (e.g., a Microsoft Exchange 2000 server name).
~ Agency User Domain Name. 'Chis indicates the name of the user domain for
authentication purposes. This field is optional and included only if the -
Agency
supports authentication.
~ Agency User Group Name. This indicates the name of the user group for
authentication purposes. For example, an Agency might be initialized with the
domain name "US Employees" and the group name "Marketing." In such a case,
the Agency will first check the e.~ser nanm to ensure that the user is a
member of
the user group, and then forward authentication requests to the user directory
authenticator indicated by the user directory type. If the calling user is not
a
member of the user group, the authentication request is denied. This field is
only
valid if the Agency supports authentication.
~ Data Store Connection Name. This indicates the name of the connection to a
database store. This could be represented as, say, an ODBC connection name on
Windows (or a JDBC name, etc.). The KIS will use the database referred to by
the
connection name to store, update, and maintain its tables (see below).
Dynamic Properties Evaluation. The Agency XML Web Service preferably
exposes methods to return dynamic properties such as the list of semantic
domain
paths the server currently supporia or "understands." This allows users to
browse
Agencies on the client using their supported semantic domain paths or
ontologiesltaxonomies.
As illustrated with reference to FIGURE 24, the KIS 50 preferably includes the
following
main components: a Semantic Network 5:?, a Semantic Data Gatherer 54, a
Semantic
2s1

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Network Consistency Checker 56, an Inference Engine 58, a Semantic Query
Processor 60, a
Natural Language Parser 62, an Email ~~nowledge Agent 64 and a Knowledge
Domain
Manager 66.
a. Semantic Nehvork
The Semantic Network is the core data component of the KIS. The Semantic
Network
links objects of the defined schemas of thE: present invention together in a
semantic way via
database tables. The Semantic Network consists of schemas and the Semantic
Metadata Store
(SMS). The Semantic Network is preferably comprised of two data schemas:
Objects and
SemanticLinks. Additional data schemas m.ay be included based on system
requirements and
enterprise needs. The SMS is preferably a standard database (SQL Server,
Oracle, DB2, etc.)
where all S~IllalltlG data is stored and updated via database tables. The SMS
preferably
includes tables for each primary object type (described below).
By way of example, a sample Semantic Network directed towards an enterprise
situation is shown with reference to FIGUEZE 25? which illustrates the
relationship bet~~reen
business users of the present invention and. the various sources of and
results of knowledge
retrieval, management, delivery and presentation.
~bjects. The Objects table contaivs every object in the Semantic Netwark. The
"Object" can be thought of as the "base class" from which everysemantic object
type will be
derived. The preferred schema of the Object type is shown with reference~to
FIGURE 26.
The ObjectID is a unique identifier that tags the object in the Semantic
Network. Every
object in the system will have a schema that is an extension of the Object
schema.
Alternatively, semantic object types (e.g., document, email, event, etc.) will
have only the
ObjectID field. When a query is invoked, the query processor can then
aggregate information
from the Object table and the specific semantic table to form the final
results. The former
approach (having each schema be an extension of the Object schema) results in
better
runtime performance since joins are avoided. However, the latter approach,
while
252

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
computationally more expensive, results in less wasted storage. The
ObjectTypeID is
preferably a number that resolves to a string that describes the hierarchy of
the object type,
e.g., "documents\documents"; "documents\analyst briefs"; and
"events~rneetings."
The SourceID refers , to the identifier for the Semantic Data Adapter (SDA)
from
which the object was gathered. The Semantic Data Gatherer (SDG) uses this
information to
periodically check whether the object still exists by requesting status
inforn~ation from the
SDA from which the object was retrieved.
SemanticLinks. The SMS preferably includes a SemanticLinks schema (and
corresponding database table) that will store semantic links. These links will
annotate the
objects in the other data tables of the SMS and will preferably constitute the
data model for
the Semantic l~Tetwork. Each semantic link will have a semantic link ID. The
SemanticLinks
table preferably includes the field names and types as shown with reference to
FIGURE 27.
The SubjectID and SubjectTypeID are the object ID and object type ID of the
object being
linked from. The ObjectID and ObjectTypeID are the object ID and object type
ID of the
object being linked to. The Lin7cScore preferably ranges from 0 to 100, and
represents the
semantic strength of the link as a probability. These fields are exemplary
only; more
predicates are contemplated based on the particular object type as well as the
user's desire to
semantic links. The preferred embodiment: of the present invention provides
the predicate
type IDs shown in FIGURE 28. The present invention contemplates the addition
of further
predicate type IDs.
By way of example, the semantic link "Steve reports to Patrick" will be
represented
in the table with a subject ID corresponding to Steve's ID in the Users table,
a predicate type
of PREDICATETYPEID REPORTSTO (see table below), Patrick's object ID in the
Users
table, a link score of 100 (indicating that it is a "truth" and that the link
is not probabilistic)
and a Reference Date that qualifies the link.
253

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The KIS creates, updates, and maintains database tables for each object type
(via the
SMS). The following illustrates preferred but nonexclusive list of primary and
derived object
types:
Person ,
S User
Customer
Category
Document
Analyst Brief
Analyst Report
Case Study
White Paper
Company Profile
o E_Book
E-Magazine
Email Message
Email Annotation
Email Nears Posting
o Email Distributi~n List
~ Email Public Folder
Email Public Folder Newsgroup
News Article
Event
Meeting
Corporate Event
Industry Event
TV Event
Radio Event
Print Media Event
Online Meeting
Arts and Entertainment
Event
Online Course
Media
Book
254

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Magazine
~ Multimedia
~ Online Broadcast
~ Online Conference
Object types are preferably expresses as hierarchical paths. The path can be
extended,
e.g., "events\meetings" can be extended with "qualified Meetings,"
e.g., "events\meetings\company meetings." This schema model is indefinitely
extensible arid
configurable.
Virtual Information Object Typc~s. Virtual Information Object Types are object
types that do not map to distinct object ty~~es, yet are semantically of
interest to users. An
example is the "Customer Email" object type, which derives from the "Email"
object type.
This object type is "virtual" in tliat it does not have a distinct schema and,
as a consequence,
does not have a distinct table in the SMS on the KIS. Rather, it uses the
"Email" table on the
SMS, since it derives from the "Email" object type. Even though it 1S Ilot a
distinct object
type, users will be interested in browsing and searching for "Customer Email"
as though it
were indeed distinct.
In the preferred embodiment, Virtual Object Types are implemented by storing
the
metadata in the appropriate table on the SMS (in this case, the "Email" table,
since the object
type derives from "Email"). However, the resolution of queries for the object
type is
accomplished differently from regular queries for distinct object types. When
the server SQP
receives a semantic query request (via the: XML Web Service) for a virtual
information
object type (such as "Customer Email"), ii: resolves the request by joining
the tables that
together form the object type. For instance, in the preferred embodiment, in
the case of
"Customer Email," the server will resolve in query with the SQL sub-query:
SELECT OBJECTll~ FROM EMA.IL WHERE OBJECTID 1N (SELECT
OBJECT117 FROM CUSTOMERS WHERE EMAILADDRESS IN (SELECT
EMAILADDRESS FROM EMAIL)
2ss

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
This query corresponds to "Select all objects from the Email table that have
an email address
value that is also in the Customers table." This assumes that "Customer Email"
refers to
email that is sent by or to a customer. Other definitions of the virtual
object type are also
possible and the query resolution is prei:erably consistent with the
definition. The SQP
preferably applies this sub-query to all queries for "Customer Email." This
sub-query
essentially filters the Email table for those email messages that are from
customers. This
returns the desired result to the user with the illusion that there is a
"Customer Email" table
when there really is not.
The present invention contemplates a variety of schemas associated with each
object
type. Other schemas are in development that will have comparable applicability
to the
present invention. The "Document" schema, for example, may be extended with
fields from
the Dublin Core schema (http://www.cis.Ohio-state.edulcgi-
bin/rfc/rfc2413.html) and other
industry standard schemas. hn yet another example, "News Article" schema may
be an
extension of the NewsML schema (http:~%www.newsml.org). By way of example
only9
preferred user object schema made in accordance with the present invention are
shown with
reference to FIGURE 29. All schemas preferably have as an identical subset the
fields of the
Object schema. MailingAddressTypeIDs preferably associated with the User
(person) object
schema includes those shown with reference to FIGURE 30.
By way of example only, the preferred category object schema made in
accordance
with the present invention is shown with reference to FIGURE 3-l :v
By way of example only, the preferred document object schema made in
accordance
with the present invention is shown with reference to FIGURE 32. The
"DocumentCategory"
field refers to a proprietary category that is tagged with the document (by
the document data
source) and not to a semantic category managed by the KIS itself. The
"DocumentFormatTypeID" field refers to the type of document. The Print Media
Type IDs
256

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
of the preferred embodiment are shomi in FIGURE 33, and the preferred
FORMATTYPEID
are shown in FIGURE 34.
By way of example only, the preff;rred email message list object schema made
in
accordance with the present invention is shown with reference to FIGURE 35.
Email
Priorities are preferably 0, 1, or 2, corresl>onding to low, medium, and high
priority. The
EmaiITypeID preferably includes EMAILTYPEID~EMAIL,
EMAILTYPEID NEWSPOSTING and EMAILTYPEID EMAILANNOTATION
(values 1, 2 and 3). Exemplar tables showing the email distribution list and
email public
folder object scheriias of a preferred embodiment of the present invention are
shown in
FIGURES 36 and 37, respectively. In the preferred embodiment, the
PublicFoIderTypeID
includes tl5ose shown in FTGURE 3S.
By way of example only, the preferred event object schema message list object
schema made in accordance with the present invention is shown with reference
to
FIGURE 39. FIGURE 40 shows the events types of a preferred embodiment of the
present
invention.
By way of example only, the prefa~rred media object SCheIna lllessa~e list
object
schema made in accordance with the present invention is shown with reference
to
FIGURE 41. FIGURE 42 shows the media types of a preferred embodiment of the
present
invention.
By way of example, FIGURES 43-45 illustrate additional samples showing how
objects are categorized and utilized in the preferred embodiment of the
present invention.
FIGURE 43 illustrates root object container types. FIGURE 44 illustrates a
hierarchical
schema for qualified abject types. FTGURE 45 illustrates samples of native
container object
type predicates. All types except the Person and Customer types preferably
inherit all
predicates from the root type "All Information." The present invention
provides for native
257

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
container object type predicate templates, for example including for: All;
Breaking News;
Categorization; Author; Amiotations; Definite Links; Probabilistic Links; and
Popular.
b. Semantic Data Gatherer
In the preferred embodiment, the Semantic Data Gatherer (SDG) is responsible
for
adding, removing, and updating entries in the Semantic Network via the SMS.
The SDG
consists of a list of XML Web Service references. These form an Infornlation
Source
Abstraction Layer (ISAL). Each of these references is initialized to gather
data from via a
Data Source Adapter (DSA). A data source adapter is an XML Web Service that
gathers
inforniation from a local or remote semantic; data source for a give object
type. It then returns
the XML corresponding to object entries at the data source. All DSAs
preferably support the
same interface via which the SDG will gather XML data. This interface includes
methods to:
~ Retrieve the XML metadata for objects for a given start and end index (e.g.,
objects 0 through 49).
~ Check whether there any objecla have been added or deleted since a
particular
date/time (on the DSA's time clack).
o Fetch the XML metadata for objects added or deleted since a particular
date/time
(on the DSA's time clock)
~ Check whether an object still e~;ists in the semantic data source - by
examining
the XML metadata for the object (passed as an argument)
If each call to the DSA XML Web Service will be stateless, the API should'
include
information, preferably via a string with command parameters,which qualifies
the request
For example, a DSA for.an email inbox includes parameters such as the name of
the user
whose inbox is to be gathered. A DSA for a. Web site or document store will
have to include
information on the URL or directory path to be crawled.
Each DSA is required to retrieve infornlation in the schema for its object
type.
Because a DSA must be implemented for a particular object type, the SDG will
expect XML
for the schema for that object type when it invokes a gather call to the DSA.
25s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The SDG is responsible for maintaining the integrity and consistency of all
the
database tables in the SMS (the Semantic Network). In this embodiment, the SDG
is also
referred to as a Semantic Network Manager (SNM). The database tables
preferably do not
contain redundant or stale entries. Because the SDG retrieves objects with
well-known
schemas the semantics of each of the object types is understood, 'and the SDG
maintains the
consistency of the tables accordingly. F'or example, the SDG preferably does
not add
redundant Document XML metadata to the DOCUMENTS table. The SDG uses the
semantics of dacuments to check for redundancy. In the preferred embodiment
this is
accoiilplished ,by comparing the author name, creation date/time, file path,
etc. The SDG also
performs this check for other tables (e.f;., EVENTS, CUSTOMERS, NEWS, etc.).
For
example, the SDG W 11 perform redundancy checking for events by examining the
title, the
location, and the date/time. Other tables are maintained accordingly. The SDG
will also
update objects in the database tables that have been changed.
The SDG is also preferably responsible for cleaning up the database tables.
The SDG
periodically queries the DSA to determine whether all of the objects in each
table managed
by the DSA still exists. Far example, for a DSA that retrieves documents, the
SDG will pass
the XML metadata to the DSA Web service and query whether the object still
exists. The
DSA attempts to open the URL for the document. If the document does not exist
anymore,
the DSA will indicate this to the SDG. Individual DSAs, and not the SDG, are
responsible
for object validation to avoid security restrictions that are data source
specific. For example,
there might be data source restrictions that prevent remote access to local
resources. In such a
case, only the DSA XML Web Service (which is preferably running locally,
relative to the
data source) will have access to the data source. Alternatively, some DSAs
might run on the
Agency server, alongside the SDG and other server components, and retrieve
their data
remotely.
259

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Having the DSAs handle object validation also provides additional efficiency
and
..
security in that the DSA prevents the SDG from knowing the details of~how to
open each
data source to check whether an object still exists. Since the DSA needs to
know this (since it
retrieves the XML data from the data source and therefore has code specific to
the data
source), it is more appropriate for the DSA: to handle this task.
The SDG preferably maintains a gather list that will point to DSA XML Web
Service
URLs. The ICIS administrator is able to add, delete, and update DSA entries
from the SDG
gather list. Each gather list entry is preferably configured wish:
1. The name and XML Web Service reference of the DSA. This essentially will
refer
to a combination of the data source, the object type, and a reference to the
XML
Web Service that implements the DSA (e.g., via a WSDL web service URL).
Examples include:
a. Microsoft Exchange 2000 Email DSA. This DSA will gather email XML
metadata froze a Microsoft Exchange 2000 Inbox or Public Folder
b. Microsoft Exchange 2a~00 Calendar DSA. This DSA will gather event
XML metadata from a Microsoft Exchange 2000 Calendar
c. Microsoft Exchange 2000 Users DSA. This DSA will gather
users/people XML metadata from a Microsoft Exchange 2000 Directory
d. Microsoft Exchange 2000 Email Distribution List DSA. This SDA will
gather email distribution list metadata from a Microsoft Exchange 2000
Directory
e. Lotus Notes Inbox. This DSA will gather erriail XML metadata from a
Lotus Notes Inbox or Public Folder
~ Siebel CRM Database. This DSA will gather customer XML zri~etadata
~ from a Siebel CRM system " ,
g. Web site. This DSA will gather document XML metadata from a Web site
h. File Directory or Share. This DSA will gather document XML metadata
from a file directory or share
i. Saba E-Learning LMS Repository. This DSA will gather. E-Learning
XML metadata from a Saba Learning Management System (LMS)
repository
260

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
j. Microsoft Sharepoint Document DSA. This DSA will gather document
XML metadata from a Microsoft Sharepoint server workspace
k. Reuters News Repository. This DSA will gather News Article XML
metadata from a Reuters news article repository
2. The description of the DSA gather entry.
3. A string indicating initialization. information for the DSA.
4. The gather schedule - this indicates how often the SDG should 'crawl' the
DSA
to gather XML anetadata.
In a preferred embodiment, the Agency is initialized with a user directory
domain and
group niame. In this case, the SDG preferably automatically enters a gather
list entry for the
user directory DSA. For example, if the Agency is configured...with a Exchange
2000 User
Directory with Domain Name "Foo" and Address Book or group name "Everyone,"
the SDG
creates a gather list entry with the Exchange 2000 Users DSA (initialized with
these
parameters). Alten~atively, the Agency can be configured to obtain its user
directory from
any email application server (e.g., Microsoft Exchange or Lotus Notes). The
SDG initializes
gather list entries ~~rith an Email Inbox and Calendar DSA for the system user
(and Email
Knowledge Agellt, described below). These three gather list entry DSAs
(Users,.Inbox, and
Calendar) are initialized by default. The Inbox is preferably used to store
Agency email
postings and annotation and the Calendar DSA is used to store events posted to
the Agency
by users. Other custom DSAs can be added by the Agency administrator.
The SDG also keeps track of the la~;t time the SDA reported to it that objects
have
been added or deleted to or from the data source. This dateltime information
is preferably
based on the SDA's clock. Each time the SDA reports that there is new or
deleted data, the
SDG will update the dateltime information in its entry for the SDA and gather
all the new or
deleted information in the SDA. The SDG will then update the database tables.
The SDG preferably maps the XML information it receives from the SDAs to the
Semantic Network of the present invention. The SDG stores all the XML metadata
in the
261

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
database tables in the SMS. W addition, the SDG parses the XML it receives
from the SDA
and, where necessary, IIlapS Se111at1t1C links to specific XML fields. The SDG
adds or updates
semantic links .in cases where the XML 'includes information that "links"
objects together.
For example, the schema for an email object preferably includes fields
including "From,"
"To," "Cc," "Bcc," and ''Attachments." In the case of the "From," "To," "Cc"
and "Bcc"
columns, the fields in the XML refer to ernail addresses (separated by
delimiters such as ' ;"
or "," or a space). In the case of the "Attachments" column, this field will
refer to the file
paths of the tiles that are attached to the ernail message (separated by
delimiters such as ",").
This raw XML is stored in the EMAIL database table, along with the other
columns. Iri
addition, the SDG parses the fields of the email object and adds semantic
links to other
objects that are .identified by the content; of those feelds. For example9 if
the "to" field
contains "JOhIl C! fOfl.COITI" and the attachments field contains the string
"c:\foo.doc,
c:\bar.doc," the SDG will process the email as follows:
1. Find any ohjlect in the USERS table with the email address "john~foo.com."
Also, search for other USER objects with email addresses in the FROM, T0, CC,
and BCC fields.
2. If anyobjects are found, add a semantic link entry to the SEMANTICLINI~S
table with the email object id as t:he subject and the appropriate predicate
type id.
In this case, the predicate PREDICATETYPEID~CREATOR refers to the
originator of the email message. 'The predicate PREDICATETYPEIDySENTTO
is used to link the email object and the USER objects referred to by the
contents
of the "to" field in the email XM:L metadata. The predicate
PREDICATETYPEID COPIEDTO and
P~EDICATETYPEID BLINDC~OPIEDTO are used to link objects in the "cc"
and "bcc" Eelds in similar fashion.
In the case of attaclunents, the SDG extracts the XML metadata for the
attached
documents. If an XML object with the file path already exists in the SMS (or,
in other words,
the Semantic Network), the SDG will update the metadata. If the XML object
does wot
already exist, the SDG creates a new document object with the XML metadata.
The SDG
262

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
will adds an entry to the SEMANTICLINKS table. with the email object ID as the
subject, the
new document's object ID as the subject, and the predicate
PREDICATETYPEID ATTACHEDTO. This allows the user to be able to navigate from
an
en pail message to its attachments and then use the attachments as pivots to
continue to
browse the Semantic Network, for example using semantic tools like the Smart
Lens
(discussed below).
The SDG does not create any objects in the event for which it does not find
user
objects that match the entries in the XML fields. Preferably, the SDG gathers
information
from a Directory SDA when a user is; manually added to the Agency. The Agency
administrator preferably adds users, to the Agency via the user group on the
Agency
properties. ,.
The following illustrates an example of mapping raw email XML metadata to the
Semantic Network.
<email from="john@foo.com"
to=g°nosa~nez-~rana.net°'
cc-6'steve car nervana.net"
bcc-"patrick cr nervana.net"
subject="Meeting this Friday"
body="Let us meet an Friday at 2pm"
attachments="c:\foo.doc; c:\bar.htm" >
</email>
is converted to the object graph illustrated in FIGURE 46.
c. Semantic Nehvork Gor~sistency Checker .
The Semantic Network Consistency Checker (CC) complements the consistency
checking that is performed by the SDG. As described above, the SDG maintains
the integrity
of the database tables by precluding the addition of redundant entries into
the Semantic
Network (from various data sources). The CC also ensures the consistency of
the OBJECTS
and SEMANTICLINKS tables. The CC periodically checks the OBJECTS table to
ensure
263

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
that each object exists in the native table (preferably by checking the
OBJECT>D field
value). For example, a document object entry in the OBJECTS table preferably
also exists in
the DOCUMENTS table (with the same object ID). The CC removes any object in
the
OBJECTS table without a corresponding object iii the native table (DOCUMENTS,
S EVENTS, EMAIL, etc.) and vice-versa.
The CC is also responsible for maintaining the COIISISteIICy of the
SEMANTICLINKS
table. The semantics of this table are preferably as follows: A semantic link
cannot exist if
either its subject ("linked from") or its object ("linked to") do not exist.
To illustrate this, if
object A links to object B with predicate P, and either A or B is deleted, the
link should be
deleted. The CC periodically checks the SEMANTICLINKS table. If any of the
subjects or
objects has been deleted, the CC deletes the semantic lime entry.
Consistency checks may be implemented in code in the KIS itself or as stored
procedures or constraints at the database level.
d. Infea-enc~ Engine
I S The Inference Engine is responsible for adding semantic links to the
Semantic
Network. The Inference Engine employs Inference Rules, which consist of a set
of heuristics,
to add semantic links based on ongoing semantic activity. The Inference Engine
is preferably
.;
allowed to remove semantic links. Decision Agents (described below) use the
Inference
Engine to assist knowledge-workers in:making decisions.
The >iiference Engine. operates'by mining the SeInaIltlC Network and adding
new
semantic links that are based on probabilistic inferences. For example, the
Inference Engine
preferably monitors the Semantic Network and observes patterns in how ~ email
is sent, the
type of email sent and by whom. The inference Engine infers from this
information
background information, such as the expertise of the user, related to various
subject matter
2S categories within the monitoring purview of the Inference Engine. For
example, the Inference
Engine adds semantics links with the predicate PREDICATETYPEID EXPERTON to
264

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
indicate that a user is an expert in a particular category. The subject in
this case will be a user
object and the object will be a category object. To infer this, the Inference
Engine is
preferably configured to observe semantic; activity for at least a certain
period of time (e.g.,
two weeks), or to.only infer links after users have sent at least a certain
predetennined
number of messages or authored a certain number of documents. The Inference
Engine infers
the new link by keeping statistics on the PREDICATETYPEID CREATOR and
PREDICATETYPEID CONTRIBUTOR links.
By way of example, the Inference Engine may infer that users are an expert on
a
category if:
~ Of all categories of email messages they have written, this category is one
of the
top N (configurable).
o They have written email messages on the same category an average of M times
or
more per week (configurable).
~ They have written at least O email messages (configurable) in the past P
111011ths
1 S (configurable).
h/tore sophisticated infez°ence models ovith which to accurately infer
this data are
contemplated. For example, probability distributions as well as statistical
correlation models
rnay be employed. Preferably these models will be developed on a per-scenario
basis over
time.
The Inference Engine is also responsible for removing links that it might have
added.
For example, if an employee changes jobs, he or she might "cease" to be an
expert on a
specific category (relative to other employees). Once the Inference Engine
detects this (e.g.,
by observing email patterns), it removes semantic links that indicate that the
person is an
expert on the category.
Inferred semantic links are important for scenarios that involve probabilistic
semantic
queries. For example, in one embodiment of the present invention, using the
Information
Agent,..users may drag and drop a document from,their file-system onto an
Agent (say,
265

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
People.Research.All). In this case, users will want to know the people in the
Research
department that are experts on the document. The browser will then invoke an
SQML query
with the Agent as resource (or subject), 'the predicate nervana:experton, and
the document
path as the object. The Presenter will then retrieve the XML metadata for the
document and
call the XML Web Service, residing on the Agency that hosts the Agent, with
the
predicate ID and the document's XML metadata as arguments. The server-side
semantic
query processor on the Agency processes this XML Web Service call and
translates the call
to a SQL query consistent with the data model of the Semantic Network. In this
example, the
call is preferably resolved as follows:
1. For all semantic domain entries in the KDM, call the corresponding KBS to
categorize the document.
2. Map the returned categories to cafegory objects in tlae Semantic Network
(by
comparing URLs)
3. Invoke a query using the query of the People.Research.All Agent as a sub-
query.
In this example, the final query appears as follows:
SELECT ~ FI~OI~ TJSERS WHEI~LE DEP~.R'Tl~/IEhIT LIhE °~RESEARCI-
Ig'
AND OBJECTID IIV (SELECT OBJECTff~ FROM SEMANTICLINKS
WHERE OBJECTTYPEID = 32 AND PREDICATETYPEID = 98 AND
SUBJECTID IN (SELECT OI3JECTID AS SLTBJECTID FROMr'
CATEGORIES WHERE OBJECTID IN (34, , 5G, 78)) 'AND
LINKSCORE >. 90 )
This query assumes that the object type ID :for the user object type is 32,
the predicate type
ID value for PREDICATETYPEID EXPER'TON is 98, the document belonged to
categories
with the object ID 34, S6, and 78 and that the semantic link score threshold
is 90.
e. Server-Side Semantic Query Processor
The server-side Semantic Query Processor (SQP) responds to semantic queries
from
clients of the KIS. The SQP is preferably the main entry point to the Semantic
Network on
the KIS (or Agency). The SQP is exposed via the Agency's XML Web Service. The
SQP
266

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
processes direct Agent semantic queries and generic (client-generated)
semantic queries with
semantic link filters (see below). For quE;ries with server-side Agent
filters, the Information
Agent passes the Agent name and object index arguments to the SQP to be
invoked. For
example, the browser may ask for objects 0-24 on Agent
Documents.Teclmology.Wireless.All. In this example, the SQP looks up the Agent
query in
the Agents table and invokes the query onto the database that hosts the
Semantic Metadata
Store (SMS). The~Agent query is pref i-ably stored as SQL or another well-
known query
format like XQuery or XQL. The SQP may convert the query fornlat to a format
that the
database (that holds all the tables) understands. Because most commercial
databases
understand SQL, it will preferably operate as the default Agent query format.
The Agent query preferably follows th~-query rules described above. Therefore,
the
query returns the object ID rather than the schema fields for the Agent's
object type. In the
above-described example, Documents.Tec;hnology.Wireless.All invokes the Agent
query
"SELECT .OBJECTID FROM DOCUMENTS WHERE ..." The SQP is responsible for
issuing a query that is filtered with the Agent query, but which retun~s the
actual metadata for
the object type (in this case, the "document" object type). In this example,
the query appears
as follows:
SELECT * FROM DOCUMENTS WHERE OBJECTID IN (SELECT
OBJECTID FROM DOCUMENTS WHERE ...)
This query returns the data columns for the "document" schema For all the
objects
with an object ID that matches those in the original Agent query. The SQP
reviews the
metadata results of the database query and translates them to well-formed XML
using the
appropriate schema for the object type of the Agent (in this case,
"document"). In the event
that the database supports raw XML retrieval, the SQP optimizes the query by
asking the
database to give it XML results. This results in better performance since the
SQP does not
267

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
have to perform the extra translation step. The SQP passes the XML back to the
caller via the
Agency's XML Web Service.
The SQP preferably handles more complex queries that are passed by the
semantic
browser,(or other client of the XML Web Service). By way of example, such
queries may
take the form of
the following XML
Web Service API:
String
InvokeSemanticQuery(
Integer BeginIndex,
Integer Endh~dex,
String AgentName, '
Integer NumberOfLinks,
String OperatorNames[],
String LinkPredicateNames[],
String LinkTypeNames[]
1S String LinkObjects[]);
In this example, the "[)" symbols refer to arrays. The API takes a zero-based
begin index, a
zero-based end index, an optional Agent name, an integer indicating the number
of semantic
links, an array of operator names, an array of lime predicate names, an array
of link type
names, and an array of strings that refer to the link objects. If the Agent
name is NULL (""),
the SQP processes the query "as is"; without any preconceived Agent filter.
This will be the
case with queries that are wholly generated form the client. The arrays are
variable sized
because the "NumberOfLinks" parameter indicates the size of each array. The
operator
names include valid predetermined operators, including logical operators,
which can be used
to qualify queries in SQL or other query formats. Examples include tenn:or and
tem~:and.
The ~ link predicate names may include one or more predefined predicates ,
(e.g.,
:.
tenn:relevantto, term:reportsto, termaentto, tenn:annotates, term:annotatedby,
terni:withcontext, etc.).. The link type names indicate the type of link
objects. Common
examples include term:url and term:object. In the case of term:url, the link
object string
268

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
refers to a well-formed URL comprising objects://.. , or Agent:!/.... In the
case of
teen:object, the argument will be a well-formed XML metadata instruction
referring to a
object defined within the present invention. This object is preferably
resolved from the client
or from another Agency. The API returns a string that contains the XML results
(in addition
to the return value for the XML Web Service method call itself.
By way of example, the SQML with the data:
<resource type---"term:url"
Agent:/fall.criticalpriority.all@abc.com/Agency.asp>
clink predicate="terni:relevantto"
type----"tenn,:obj ect"
object:!l4576 >
</1 ink>
clink operator--"or"
predicate--"term:intersects"
' type--"tenn:url"
Agent://email.wireless.all cr abc.comlAgency.asp>
</link>
</resource>
is resolved on the Agency located at the Web service on abc.com/Agency.asp to:
2p InvokeSemanticQuery(
0,
24,
"all.criticalpriority.all",
2,
f "tenn:and", "term:or" },
{ "term:relevantto", "term:intersects" },
{ "term:object", "tenn:url" },
{ "object://4576", "Agent://email.wireless.all@abe.com/Agency.asp" } );
This is preferably resolved to a SQL query:
SELECT TOP 25 * OBJECTS WHERE OBJECTID IN (SELECT
OBJECTID FROM OBJECTS WHERE CREATIONDATETIME='02/26!02'
269

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
AND (OBJECTID [RELATEDTO] [OBJECT WITH ID 4576]) AND
OBJECTID IN (SELECT OBJECTS FROM EMAIL WHERE CATEGORY
[IS] 'WIRELESS')
This SQL example uses shorthand to illustrate the type of query that will be
generated by the
SQP. The SQP retrieves the XML and returns it to the caller. ThIS XML is in
the form of
SRML (or Semantic Results Markup Language), which is the XML meta-schema
definition
for sela~antic query results in the preferred embodiment of the invention.
Sample A shown in
the Appendix hereto is a sample SRML semantics results buffer or document.
This is a
sample of tile XML that an Agency return,> in response to a semantic query:
The client Skin
takes these results and generates presentation form them (using XSLT and/or
script), based
on the properties of the Skin and the Agent (object Skin/Context Skirl/Blender
Skin), the
amount of display area available, disability conslderatloll5 and other Skin
attributes.
f: NatirralLangzragePcnser
The Natural Language Parser (NLP) preferably converts natural language text to
either an API call that the SQP understands or to raw SQL (or a similar quer~r
format) that
can be processed by the database. The Natural Language Parser is passed text
directly from
the semantic browser or by email via the En;~ail Knowledge Agent (see below).
g. Ernail Knowledge Age-.nt
The KIS preferably includes one primary publishing component, referred to as
the
Email Knowledge Agent (or Enterprise Information Agent (EIA)). This Agent
functions, in
essence, as a digital employee, and preferably includes a unique email address
(e.g., a custom
name selected by the Agency administrator). The Email Knowledge Agent
complements
existing publishing tools such as Microsoft Office, SharePoint, etc. by adding
a "Fire and
Forget" InethOd of publishing information a:nd sharing knowledge. This is
especially useful
in cases where the person publishing the infomnation does not know who might
be interested
in it:
270

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
In a preferred embodiment of the present invention, users send email to the
Email
Knowledge Agent to publish comments, amotations, documents, attachmeilts, etc.
The Email
Knowledge Agent extracts meaning from the email and properly adds it to the
Semantic
Network. Other users are able to access published information via Agents of
other platform
presentation tools such as drag and drop, tine Smart Lens, etc. (discussed
below).
The Email IW owledge Agent 1S a Sy5te111 C0111pO11eI7t that is created by the
Agency
administrator. The system user name is indicated when the server is first
installed. The
system user preferably corresponds to an email user in the enterprise email
system (e.g.,
Microsoft Exchange, Lotus Notes, etc.) In this embodiment, the Email Agent has
its own
mailbox, calendar, address book, etc. These in turn correspond to the objects
on the Email
Server for the system user. When the server is installed, the KIS installs the
appropriate DSA
for the system inbo~ (depending on the email application). The KIS preferably
automatically
adds a gatherer list entry in the SDG indicating that the system inbox should
be periodically
crawled for email.
>3ecause the Email Knowledge Ager~t is a first-class email addr~ssq it als~~
ser~re.~ as a
notification source and a query source (for natural-language and instant
messaging).
Notifications from an Agency are preferably sent by the Email Knowledge Agent
(indicating
that there is new and relevant information the user might be interested in,
etc.). The Email
Knowledge Agent may also receive email from users as natural language queries.
These
messages are parsed by the SQP and processed. The XML results are preferably
sent to the
user as an HTML file (with the appropriate default Skin) generated with XSLT
processed
over the XML results of the natural-language query.
Because the Email Knowledge Agent is a regular familiar component or
"employee," '
the Agency administrator preferably adds the address to distribution lists.
This step allows
the SDG to semantically index all the email in these distribution lists,
thereby populating the
Semantic Network by seamlessly integrating the Email Knowledge Agent into
distribution
271

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
lists useful to users. This is a very seamless way of integrating the digital
Information
Nervous System of the present invention with the way people already work in an
organization.
Annotations. The Email Knowledge Agent is preferably used to publish
alu~otations.
In the present 111Ve11t10I1, almotations are preferably email messages. In the
preferred
embodiment, the annotation object type is a subclass of the email object type.
This allows
usersvto use email, typically the most common publishing tool, to amiotate
objets in the
semantic.browser. Users are able to amlotate objects and add attaclunents to
the annotations.
These attachments are semantically indexc°d by the SDG on the KIS. This
makes possible
scenarios where a user is able to navigate; from, say, a document, to an
annotation, to its
document attachment, to an article on Reuters to an industry event that starts
next week.
The process described for semantically indexing email (by mapping the email
XML
schema to the Semantic Network) also applied to annotations. However, in the
case of
annotations in a preferred embodiment of the present invention, additionally
processing is
1 S desirable. Specifically, evhen the user clicks "Annotate" on an object in
the Presenter window
in the semantic browser (described below), the browser loads the registered
email client on
the local machine (e.g., Microsoft Outlook, Microsoft ~utlook Express, etc.).
The "to"' field
is populated with the address of the systerrl user for the Agency that hosts
the object. The
subject field is populated with a special string, fox example, "annotation:
object=[objectid)".
When the email arrives in the Email Knowledge Agent's inbox, the DSA for the
email inbox
will pick it up (e.g., via a server event). Tlle SDG retrieves the new email
XML metadata
from the DSA by receiving an event, or from the DSA the next time it asks the
DSA for more
data. In a preferred embodiment, this polling process occurs frequently. The
DSA returns the
XML metadata of the email object, oblivious to the fact that the email object
refers to an
email object type or an annotation object type. The SDG processes the email
XML metadata,
and examines the "subject" field. If the SDG "sees" the "annotation:" prefix,
it knows that
272

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
the email is actually an annotation, and proceeds to extract the object ID
argument from the
siibject text. The SDG updates the Semantic Network for remaining email
messages (adding
each message to the OBJECTS and EMAIL tables, adding semantic links for the
"from,"
"to," "cc," "bcc," and "attachments" fields, where necessary, etc.). ~W the
preferred
embodiment, the SDG performs an extra step. Specifically, it adds a semantic
link entry that
links the email object with the object indicated by the object ID argument in
the subject text
(with the PREDICATETYPEID_ANNOTATES predicate).
With the present invention, an annotation is treated as another semantic link
with a
special predicate. As a result, all the semantic features apply to
amiotations, such as semantic
navigation via semantic links, semantic queries, etc. For example, a user can
query for all
annotations written by every member of his of her team in the last six -
months. This can be
accomplished in the semantic browser by dragging, for example, the Agent
Annatations.All
on top of the Agent People.MyTeam.All and then sorting the results, or by
creating a Smart
Agent, which in turn invokes the "Create Smart Agent" wizard to create the
query.
1 S Via. ~~~a~v~l~eP~c ~~D21CIPDt ~.vrxe~crgm°
The Knowledge Domain Manager is the component on the KIS that is responsible
for
adding and maintaining domain-specific inl:elligence on the Semantic Network.
The KDM
essentially "annotates" the Semantic Net~,vork with domain-intelligence. The
KDM is
initialized with URLs associated with one or more instances of the Knowledge
Base Server
(KBS), which in turn effectively stores "knowledge" for one or more semantic
domains. The
KBS has ontology and categories corresponding to taxonomy for each semantic
domain that
it supports. In addition, an Agent with a semantic domain (connected to a KBS)
responds to
semantic queries. If an Agent does not belong to a semantic domain, it cannot
correspond to
semantic queries (that' require an ontology or taxonomy). Rather, it only
responds to
keyword-based queries (albeit it will still provide context and time-sensitive
retrieval
services, but the available contexts will be limited).
273

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Each entry in the KDM is a semantic domain entry. The semantic domain entry
has
tile URL to the KBS and a semantic domain name. The semantic domain name maps
to a
specific ontology on the KBS. In the preferred embodiment of the present
invention,
semantic domain names follow the convention:
<Top Level Domain Name>\<Secondary Level Domain Name>......
Examples of semantic domain names include:
~ Industries
~ Industries\Phannaceuticals\LifeSciences
~ Industries\InformationTechnology
~ General\Sports.Basketball\NBA
General\Sports.Basketball\CBA,
Alternatively, semantic domains names can be referred to as "domain paths" as
long
as they are fully qualified. Full qualification is achieved by adding an
Internet domain name
prefix to the beginning of the path. This indicates the "owner" or "source.'-'
of the semantic
domain. For example, "Nervana.NET\Industries\I'hannaceuticals" refers to
"Industries\Phannaeeuticals" semantic domain according to the
"NE1~~~A~TA,NET'9 Internet
domain name. In another example, "Reuters.com\Sports\Basketball" refers to
"Sports\Basketball" on "Reuters.com." Using this approach, domainrt\names and
paths are
~ maintained globally unique.
The Knowledge Domain Manager (KDM) periodically requests each KBS in its
domain entry list for the categories in tl-~e knowledge domain. The KDM is
preferably
implemented as an XML Web Service on the KIS. The KDM includes configuration
options
for each semantic domain entry. One of theae options may iyclude the schedule
with which
the KDM will update the Semantic Network with domain-specific intelligence
corresponding
to the semantic domain entry. For example, the Agency administrator may
configure the
KDM (via the KIS) to crawl a semantic domain on a KBS every day at lpm. The
update
274

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
schedule ,should be. consistent with hover often the administrator believes
the ontology or
taxonomy on the KBS changes.
The KIS preferably invokes the KDM periodically and asks it to update the
CATEGORIES table. In the preferred embodiment, the KDM calls the KBS (via an
XML
Web Service API call) to obtain updateei categories for the semantic domain
name in the
semantic domain entry, which corresponds to a particular taxonomy. An example
of an API
call follows: GetCategoriesForSemanticDomain (String SemanticDomainName). The
KBS
returns an XML-based list of all the categories in the semantic domain
referred to by the
semantic domain name: This XML list is consistent with the CATEGORIES schema
shown
above (category URL, name, description, the KBS URL and the semantic domain
name). The
KDM updates the CATEGORIES table with this information. For category entries
that
already exist in the table, the KDM updatca the name and description. For new
entries, the
KDM requests a new object ID from the object manager and assigns that to the
category
entry. Since, in the preferred embodiment, a category is an "object," it
inherits from the
1~ Objeca type and therefore has an object ID.
The KDM synchronizes the' CATEGORIES table to the CATEGORIES list on the
KBS (for a particular semantic domain) by deleting entries in the CATEGORIES
table not
present in the new list after examining the URL of the category entries and
obtaining the
relevant KBS URL and semantic domain name. If a semantic domain entry is
deleted from
the KIS, the KDM deletes all category entries with a correspondipg semantic
domain name .
and KBS URL. Essentially, this will be akin to ridding the Agency of existing
knowledge.
The KDM periodically categorizes all "knowledge objects" in the Semantic
Network
based on its semantic domain entries. When new objects are added to the
Semantic Network
by the SDG, the SDG requests that the KDM categorize the objects. The KDM
enumerate all
KBS instances in its semantic domain entries and invokes XML Web Service calls
with the
27s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
XML of the object as the argument. In the preferred embodiment, the KBS
returils a result in
an XML buffer similar to:
<results>
<result categoryurl="category:/Ifoo" '
score--"91" >
<result categoryurl-"category://bar"
score="93" >
<result categoryurl="category:!/foobar" '
score=" 100" >
</results>
This information indicates the semantic categorization weights of the XML
object for
the categories in the semantic domain on t:he KBS. In a preferred embodiment
of the present
invention, the semantic domain entry is initialized with a threshold (0-100)
indicating the
minimum weight that the KDM should request from the KBS. The KBS returns
scores that
exceed the predeterniined threshold. The KDM annotates the Semantic Network
based on
these categorization results. This is pre:Ferably accomplished by adding or
updating a
semantic.link with the predicate type ID of "belongs to category" with the
object ID ~f the
category in the result. The KDM will update the SEMANTICLINKS table. 'Assuming
by way
of example that the object that is categorized has an object ID value of 56,
the update query
appears as follows:
UPDATE SEMANTICLINKS SET LINKSCORE - 91 WHERE
OBJECTll~=56 AND PREDICATETYPEID = 67 AND SUBJECTID IN
(SELECT OBJECTID AS SUBJECTID FROM CATEGORIES WHERE
URL LIKE "CATEGORY://FOO")
The KDM periodically scans and categorizes all the "knowledge objects"
(documents, news articles, events, email, etc., preferably not including
objects like people)..
This process preferably occurs even if an object in the Semantic Network has
previously
been categorized as the KBS might have become "smarter" and therefore provides
superior
276

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
categorization. In such a case, the results could change even if the same
categorization
request is repeated. This will occur, for example, if the ontology on the KBS
has been
updated. Thus, in the preferred enlbOd1111ent, categorization will be
perfornled both when an
object is added to the Semantic Network by the Semantic Data Gatherer and
periodically to
S ensure that the Semantic I~Tetwork has the most up-to-date domain knowledge.
i. O.tlrer Components
The Favorite Agents 1\~anager. On Agencies that support User States, a
Favorite
Agents Manager manages a list of per-user favorite Agents. h the preferred
embodiment, the
Favorites Agent Manager stores a mapping of user names to favorite Agents in a
UserFavoriteAgents table
C'~mp~und Agent IVgannger. A Compound Agent Manager W anages the creation,
deletion, and update of compound Agents. As described above, compound Agents
are Agents
that are comprised of other Agents in the system, and are initialized to
return the union or
intersection of the query results in the contained Agents. The Compound Agent
Manager
n Manages all compound Agents in the system and leaps compound Agents to the
Agents they
contain via the ColnpoundAgentMap table.
The Compound Agent Manager exposes functions to create compound Agents,
delete,
rename, add to and remove Agents from them, and indicate whether a union or an
intersection is desired. Compound Agents can be added to other compound
Agents. On
invocation, the semantic query processor asks the Compound Agent Manager for
its
compound query. The Compound Agent Manager navigates through its Agent map
graph and
returns a complex query of all the queries of all Agents that it contains. If
Agents are deleted,
compound Agents "pick up" the new state when they are invoked, ignoring the
Agent query.
In other word's, the Compollndlllg of queries is only done for Agents that
still exist. If the
compound Agent observes that one of its Af;ents has been deleted, it will
delete the entry
from its map.
277

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
User Profile Manager. The User Profile Manager (UPM) preferably uses the
Inference Engine to infer the user's profile on an ongoing basis. The UPM
annotates the
Semantic Network based on feedback from users as to 'their explicit
preferences. In the
preferred embodiment, this process involved use of the PREDICATEID
ISINTERESTEDIN
predicate. The UPM infers semantic links and amotate the Semantic Network with
the
PREDICATEID ISLIKELYTOBEINTER:ESTEDIN predicate. All query results to the user
will be qualified (out-of band) with a query to the Semantic Network for the
PREDICATEID_ISLII~ELYTOBEINTERI~STEDIN predicate. Query results are based on
the user's habits, as the Inference Engine learns them over time.
Alternatively, the UPM may be configured with user profile information stored
in the
User State Store (USS). This is infonnati~on manually entered at the client
indicating the
user's preferences. This information is transferred and stored at the server
that the user is
interacting Wlth. These preferences are tied to different schema. For example,
for documents,
the schema may be based on the preferred categories. For email messages, the
schema may
1 i be based on preferred categories, authors, or attachments. These are two
of many possible
examples. The UPS annotates the Semantic Network based on the manually entered
information in the USS.
Server Notification Manger. The Server Notification Manager (SNM) is
responsible for hatching server-side notifications and forwarding them to
users. Ill, the
preferred embodiment, users register for se3:-ver-side notifications at the
Agent level. Each
Agent is capable of firing notifications o~f its query results. The Server
Notification Manager
determines how to filter the query results and format them for delivery via
email, voice,
pager or any other notification mechanism, e.g., the Microsoft .NET Alerts
notification
services. The Server Notification Manager maintains information on the last
time users
"read" the notification. This is preferably indicated from the client via a
user interface. The
27s

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
SNM preferably only notifies a user whe;n there is new information on the
Agent since the
last "read" time for the particular user.
Agent Discovery. Using nairlticast-based Agent discovery, each Agency sends
multicast announcements indicating its presence on the local multicast
network. The Agency
administrator sets the multicast TTL. The present invention preferably uses
either use the
Session Announcement Protocol (SAP) with a well-known port of 9875 and a TTL
of 255, or
a proprietary announcement port with a customizable TTL. For details on SAP,
see
http:l/sunsite:cnlab-switch.ch/ftp/doc/standard/rfc/29xx/2974, which is
incorporated by
reference.
The Information Agent preferably includes a listener component that receives
S.~AP
announcemelts. In the preferred embodiment, the announcements are sent as XML
and will
include the following information ..
~ The server ID (this is a unique icientif er)
~ The server'URL (this is the HTTP URL to the Agency's XML Web Service)
~ 'The announcement period (T) - t111s Indicates the time bete~reer~ each
announcement ' .
o Whether there are any new Agents in the Agency since the last announcement
and ,
the last Agent creation time (on the Agency's clock)
Each Agency sends the XML announcement and uses Forward Error Correction
(FEC) or Forward Erasure Correction to encode the packet. This makes the
system robust to
dropped packets. Alternatively, the Agc,ncy can be configured to send the XML
announcements several times in succession (per announcement).
The Information Agent multicast listener exposes directory-like semantics to
the
Semantic Environment Manager. The listener aggregates all the XML
announcements from
the Agencies from which it receives announcements. It will also cache the last
time it
received an announcement from each Agency. The listener flags Agencies that it
thinks
might be dead or inactive. It does this when it has not heard from the Agency
for a time
279

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
longer than the Agency's announcement period. The listener might be configured
to wait for
several periods before flagging the Agency as inactive. This will handle the
case of dropped
announcements (due, perhaps, to traffic congestion). The listener will update
the Agency list
in the Semantic Environment Manager each time it receives amiouncements,
The Semantic Environment Manager periodically inquiries of the listener
whether
there are any new Agents. The Semantic .Environment Manager checks the Agency
list and
asks each Agent that is active whether it has new Agents. The Semantic
Environment
Manager qualifies this request with the Agency's last Agent creation time
maintained locally
and the current time based on the Agency's clock. The Agency responds and also
sends the
new value of the last Agent creation time. The Semantic Environment Manager
caches this
value in the Agency entry: If there -are new Agents, the br~vvser inform the
user via a dialog
box and asks the user whether he or she wants to view the new Agents.
The present inventioyalso supports Agency announcements using a peen-to peer
Agent CIISCOV~I'y. In this model, announcements are sent either to a directory
server that all
1 ~ clients check or directly to the clients aria a standard peer-to-peer
publishing protocol.
FIGURES 47-53 are exemplar screenshots showing aspects of Agent management by
the KIS. FIGURES 47-50 illustrate a sample KIS Agency administration manager
showing
server-side Agent views and server-side Agents. FIGURE 51 further illustrates
sample
administration user interface elements for managing SDG (crawl) tasks, system
tasks (e.g.,
the Inference Engine), the system Agent Email (e.g., inbox), calendar and
contacts DSA and
all the SMS data tables (objects, semantic links, categories, etc.). FIGURE 52
illustrates a
sample. of the "Server -Properties" dialog of the present invention in the KIS
Agency
administration manager. The dialog illustrates how the server administrator
can set~server
properties such as the server name, the display name, the SMS Data
Store.properties, the
KDM properties (e.g., the knowledge domain path) arid the user DSA properties.
FIGURE 53
illustrates a sample of the "Server Statistics" dialog in the KIS Agency
administration
2so

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
manager of the preferred embodiment. The dialog illustrates the display of
statistics such as
the total number of server-side Agents (Standard Agents and. Blenders), the
total number of
server-side Standard Agents, the total number of server-side Blenders, the
total number of
server-side Agent-views, the total number of server-side Agent subscriptions,
the total
number of infonnati'on objects stored on the server, the total number of
semantic links, the
total number of users on the server (Agency) and the total number of user
groups.
3. IC1V0 if'LEDGE $ASE SER I'ER
The Knowledge Base Server (KBSI is the server that hosts knowledge for the
KIS. In
most applications, many instances of the KIS will be deployed, but only few
(or one) KBS
will be deployed for any given organization. This is because KBS can be reused
(they are
domain-specif c but data-independent). For example, a pharmaceutical firm
might deploy one
KB,S initialized with a pharmaceuticals ontology, but have several KIS
installations; perhaps
per employee division or per employee group. The KIS preferably includes the
fbllowing
components:
1 ~ 1. One or more ontologies that correspond to one or more semantic
(knowledge)
domains. A semantic domain is referred to using a semantic domain name. This
is
a name that refers to a domain path within a semantic hierarchy. Examples are
Industries.Teclwology, Industries.Phannaceuticals.LifeSciences, and
General.Sports.Basketball. These names or paths may also be globally and
uniquely qualified (e.g., with Internet domain names) as previously discussed.
2. One or more taxonomies that correspond to the supported semantic domains.
These taxonomies contain a hierarchy of category names.
3. A categorization engine that take a piece of text or XML and the semantic
domain
name.with which. the categorization is to be performed, and returns the
categories
in that domain that the text or XML belong to, along with the categorization
scores (on a scale of 0-10 or, preferably, 0-100).
4. An XML Web Service that exposes APIs to add new supported semantic domains
(and corresponding ontologies and taxonomies), to enumerate the categories for
a
given semantic domain, and to categorize a text or XML data blob.
2s1

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
5. An XML Web Service reference to another KBS frOlll Whlch the KBS gets its
knowledge. In this mode, the KBS acts as a proxy. The KBS can be initialized
to
act as a proxy and to get i.ts supported semantic domains, ontologies, and
taxonomies from another KBS.
S As explained above, the KIS (via the KDM) periodically sends XML objects to
the
KBS to categorize them for a given semantic domain.
4. ~ INFORMATIONAGENT (SEMANTIC $ROif~SER PLATFORM
n. Ove~~hiew
The system client, in the preferred embodiment the Information Agent of the
present
invention, includes the semantic browses components and user interface that
provide a
semantic user experience. In the preferred embodiment, the Information Agent
provides the
following high-level services:
~ Allow users the power of context and time-sensitive semantic information
retrieval via local and remote Information Agents.
~ Allow users to discover information on local and remote Agencies that are
exposed via Agents thl-ough the XI~L Web Ser~rice of the present inventiono
This
111fOm1at1~n 1S preferably classified lnt0 well-kll~Wn SeIllantlC CIaSSeS
SLICK aS
documents, email, email distribution lists, people, events, multimedia, and
customers.
~ Allow users to browse a semantic view of infornzation found via Agents of
the
present invention.
~ Allow users to publish information to an Agency.
~ Allow users to dynamically link infornlation on their hard-drive, local
network or
a specific Agency with information found on Agents from another Agency. This
facilitates dynamic e-linking and user-controlled browsing.
An advantage of the Infornation Agent of the present invention is that,users
open up
Agents similar how users open up documents from their file-system namespace.
The
Information Agent will have its own environment that opens up semantic
"worlds" of
information. For example, ABC company may have an internal KIS Agency that has
Agents
for internal documents, email, etc. In addition, third-parties may host
Agencies on the
2s2

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Internet to hold iriforniation on industry reports, industry events, etc. In a
preferred
embodiment of the present invention, ABC company employees open Agents to
discover
information on the v~ternet that relates to their work as well as to
semantically relate
inforn~ation that is internal to ABC company to information that is external
but relevant to
ABC company.
b. ' Client Coygtrration
In the preferred embodiment, the system client is able to semantically link
information found locally as well as on remote Agencies. This is preferably
accomplished
through the use of an exposed Semantic Environment comprised of Agencies from
a Global
Agency Directory, Agencies on the local area network (published wia multicast
or a peer-to-
peer publishing system) and Agencies from a custom Agency Directory using
Agent
Discovery. The preferred client configuration is based on a framework having
Agents and
local Agencies, and includes a Semantic Enviromnent Manager, which manages
locally
saved Agents and Favorite Agents, essentially integrating the history and
favorites
metaphors, The Semantic Environment Manager uses Semantic ~uer~' Documents
vrithin tlm
Semantic Environment to present knowledge to users via the Semantic
Environment
Browser. The client configuration will also include the Agent Discovery
information (e.g.,
Agency lists, Agency directory information, etc.).
c. Client Framework Specification
Overview. The client framework specification provides floe service
infrastructure for
the Infornlation Agent user interface, and defines basic services and
interfaces, includes core
user interface components, and- provides an extensible, configurable
environment for the
main building blocks of the user interface of the Inforn~ation Agent. This
section described
the client framework specification according to a preferred embodiment of the
present
invention. The Framework Core defines base services, configuration,
preferences and
security mechanist's. The Core User Interface Components define the user
interface services
283

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
and modules that support server and Agent configuration, control and
invocation, and some
configuration for the Semantic Browser Framework. The Core User Interface
COlIIpOIlelltS
are implemented as a Windows Shell extension and associated user interface
(described
below). The Semantic Browser Framework provides base query and results
management
services, and the framework for results presentation. The specifics of the
user interface
related to semantic object presentation are preferably configurable and
extensible; even
default presentation support is provided as a pre-installed "extension." The
Semantic
Browser Framework is preferably implemented as a set of behavior extensions to
existing
platforms used in Today's Web (e.g., Internet Explorer), and leverages the
supported XML,
XSLT, HTML/CSS and DOM functionality.
C~nt~~t. The ~ client framework builds upon semantic services c~iiiponents of
the
present invention including semantic quexy support, context and tlllle-
SeI1s1t1Ve 52111ant1C
processing and linking of information, etc. 'The client framework is
preferably built as a shell
extension and platform (e.g., Internet Explorer) extensions, which provides
functionality to
users in the context of their e:~istin g tools and environment. For example,
the Information
Agent may be implemented as a Shell Extension (which extends the Windows Shell
and.
employs the standard Explorer view and user interface models). In an
alternative
embodiment, the present invention is equally applicable in a standalone
semantic browser
application.
Requirements. The preferred requirements for the client framework relate to
flexibility and extensibility. This ensures that the user interface can be
easily and quickly
adapted as there are more information object types, user profiles, etc.
Included are the
following:
~ Provide support for Skins to manage the entire set of query results.
~ Allow for a wide range of approaches, include lists, tables, timed slides,
etc.
~ Provide a screen-saver (or equivalent) mode.
~ Provide support for Skins that can be associated with an object class.
284

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
~ Ensure that there is a default Skin that can handle all classes.
~ Skins should be as simple as XSLT, but should allow script support, and
possibly even code (with appropriate security restrictions).
~ Provide support fox browsing the Semantic Environment in the results view
(to complement the Agent Tree View), including Agents (Smart, Dumb, and
Special), Agencies, and Blenders.
Provide well-defined interfaces between components, and ensure that all
communication must occur via t:he framework.
~ Provide a solid security model throughout the framework
Framework 'ore
Semantic Environment Manager (SEM). The SEM manages the creation, deletion,
updating and browsing of Agents, Blenders, and Agencies on users' local
machines. In
addition, the SEM is responsible for listening to Agency multicast
announcements, browsing
Agencies on the enterprise directory (e.g., via LDAP), browsing Agencies on a
custom
directory, and browsing Agencies on the Global Agency Directory.
The SEM includes a storage layer that stores the metadata of every Agent on
the
system, including all the .Agent attributes (such as, the Agent name,
desA~ription, cre,ati~rn time,
last usage time, the Agent type (Smart, Dumb, Special, etc.), the information
object type the
Agent represents (for Agents created based on information type), the context
type the Agent
represents (for Special Agents or Agents created based on a Context Template),
the attributes
of the Agent, a reference to the XSLT or other script file that represents the
Agent's Skin
(including filter/sort preferences and other presentation schemes), the
notification
information and method (if requested for the Agent), and tlae buffer or file-
pathlURL to the
Agent's SQML query. The Information Agent (semantic browser) may store this
Agent
metadata in a local database, a store like the Windows registry, ox in an XML
file store on the
local f le-system.
2s5

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The SEM also uses the Agent attribute to indicate whether an Agent is a
Favorite
Agent. In addition, the SEM automatically deletes Agents that are not
favorites and which are
older than a configurable age limit (e.g., two weeks).
The Information Agent's Shell Extension and other components (such as the
toolbar
S and the Open Agent dialog) employ the SEM to provide Agent creation,
deletion, browsing,
updating, and management of Agents via its user interface.
Preferences Manager. This component manages all client-side preferences,
providing services to persist the preferences, communicates with servers as
needed to share
preferences or support roaming, and supports, setting and obtaining preference
values from
other components.This component has associated user interface as well as some
more
specific preferences user interface components. The preferences are divided
1I1t0
sub-components, and may abstract the preferences for associated client
classes. These
include:
~ Core Preferences. This includes basic configuration such as user profile and
1 S persona inforgnati~n.
o Skin Preferences. This also associates preferred Skins with object classes,
as
well as the,preferred list Skin and screen saver Skins. There may be
additional
Skin-related preferences settings. .
This component also manages the set of locally available Skins. Downloadable
Skins are
preferably managed through this component.
Notification Manager. Notifications provide a means to indicate to users that
there is
new information available on a given Smart Agent. Users optionally configure a
specific
Smart Agent to support or provide notifications (it will be OFF by default for
most Smart
Agents), and will also configure how to present notifications to users. These
notifications are
presented by the Notification user interface component.
286

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
The Notification Manager is responsible for managing background, polling
queries
for the appropriate set of Smart Agents. The Live Information Manager is a
parallel
component that provides similar services to the Results Browser.
The Notification Manager gathers the list of Smart Agents marked for
notification,
and'~periodically polls the associated servers for new information. "New" is
defined as "since
the last poll [or query]." Each time the poll responds, it includes a
timestamp indicator that
the Notification Manager must persist, associated with the Agent.
The user interface associated with configuring the Notification Manager is
preferably
implemented in coordination with the Agent .Tree View. This enables
notifications
(e.g., a "Notify" popup menu option of each Smart Agent). The Notification
Manager may
also support alterlatives for notifying the user when there are new results
available. Some
options include a display style (e.g. bold, colored, etc.) for the Agent in
the Agent Tree View,
a reminder dialog, audio notification, or more exotic actions like email, IM
or SMS
notification.
I S client-Side Sec~a~-ity. Client-side security issues relate to extension
code and Skins.
The Skins are preferably XSLT, but may also support script. In addition, the
generated
HTML may include references to ActiveX components and behaviors. The
presentation
sandbox may include security ' restrictions that prevent Skins from running
potentially
malicious code via script. For example, th.e implementation may completely
disallow any
unsigned code (including ActiveX and DHTML behaviors).
All client=server communication with Agencies are preferably hidden from the
published interfaces (for Skins), which third parties will customize to
provide custom Skins.
By isolating the functionality outside of the primary client runtime, the risk
of security
compromise can be reduced.
2s7

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Core User httetface Contpottettts
Agent Tree View. This is a Shell Extension Tree View that supports much of the
core user interface for controlling and invoking Agents.
Semantic Environment Browsing User Interface. This provides user interface to
allow users to browse the Semantic Environment. An example of this is the
"Open Agent
Dialog." This complements the Agent Tree View, which also displays a
hierarchical view of
the namespace (see screenshots).
Agent Inspector. This provides user interface to view the properties or edit
(in the
case of user-created Smart Agents) an individual Agent, Blender or Agency.
Browser Host. This is preferably a "wrapper" on the semantic browser core
(e.g., the
Internet Explorer browser runtime), which allows the presentation of a custom
view of the
Agents, Agencies, and Blenders in the Agent Tree View. It preferably does not
have any user
interface itself, but is a bridge component between the Shell Extension and
the Browser
Framework. ThIS C~IIIpOnellt is also preferably responsible for coordinating
certain browser
functionalit~r with the V~indo~~rs Shell usea° Interface, including in
particular the na~rigation
("back/forward") mechanism, in order to provide a seamless "backlforward" user
experience
(wherein the user only has to deal with one "back/forward" history list).
Core Preferences UI. This provides a user interface for preferences related to
Semantic Environment, server, persona and Agent management, as well as any
other
miscellaneous preference settings. This preferably includes primitive property
sheet dialog,
possibly divided up into separate sheets by i:unctional area. In the preferred
embodiment, this
should be a tabbed dialog user interface. . ,
Skin Preferences UI. This provides a user interface for preferences related to
Skin
management. This is preferably a property sheet dialog. The list of available
Skins should be
presented as a list, for selection. This user interface allows users to set
the current Skins, as
distinct from the default Skins. It preferably allows users to make the
current Skin be the
2ss

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
default. For per-Agent Skin preferences, this preferably allows users to
select a Skin for the
currently selected or opened Agent.
Notification UI. The user interface associated with configuring the
Notification
Manager is preferably implemented in coordination witlx the Agent Tree View.
The
Notification Manager may also support alternatives for notifying users when
there are new
results available. Some options include a display style (e.g. bold, colored,
etc.) for the Agent
in the Agent Tree View, a reminder dialog, audio notification, or more exotic
actions like
email, lM or SMS notification. In the preferred embodiment, the user interface
should
include a tabbed dialog (or equivalent) to allow users to select out of the
aforementioned
notification schemes (and the like).
Screen saver. The user interfacE: preferably provides a special modality to
the
Results Browser that function like a screen saver, filling the screen in a
theater-mode display.
In the preferred embodiment, special Skins. should be used. for.the screen-
sfaver mode. These
Skins could emphasize a dynamic display that can leverage a larger screen
area, but could
l~ also use larger fonts and more v~!idely paced layout.
Bnowser Fnanzew~rk
Results Browser. The Results Browser is responsible for displaying the results
of
queries, and the information on any local rc;sources opened. The Results
Browser preferably.
obtains one or more XML files from the Query Manager and merges these into a
single XML '
file that represents a list of objects. The list itself may be filtered or
sorted as an initial step.
The list as a structure is transformed by a special class of Skin (an XSLT
transform sheet,
possibly including some script) that handles lists. The list-Skin creates the
primary DHTML
(or the like) structure, e.g., a list, a table or perhaps a timed sequence.
Object Skins manage
the individual DHTML items that present thc; information for each object
instance. List-Skins
may handle the dispatch of individual object Skins (mapping object class to
Skin), but the
Results Brower preferably provides default mappings of class to Skin for
simplicity.
289

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Useis may prefer a given form of presentation, and may choose default Skins
(both
4
for the list as well as for object classes). The original query (i.e. the
SQML) may also include
parameters that indicate which Skins should be used (especially which List-
Skin). These will
be passed to the Results Browser along with the results. The Results Brower
uses the
S facilities of the Skin Manager to select the right Skin to apply. Different
rules may be
employed for how user preferences and Agent (author) preferences are combined
and
prioritized.
When query results are composed of multiple distinct XML files, the Results
Browser
must merge these into a single XML document to provide a seamless user
experience. The
preferred embodiment provides for handling additional results dynamically.
This dynamic
update mode .is preferably implemented by using a different template or
perhaps a script
method within the XSLT template. Alternatively, the list Skins may require a
behavior (or
local runtime component) to manage the logic of adding to the document with~ut
disturbing
user context.
l~ Querf l~~ab~ager (~r client-Site Semantic Query Pr~ces~a~r). The Query
Manager
is responsible for handling the communication with the server(s), executing
the requests for
information and gathering the XML result;. The resulting XML is passed to the
Results
Browses for presentation to users.
The Query Manager preferably provides the services to support the Smart Lens
functionality. When a Smart Lens request is made, the results are returned as
XML and are
passed~to the Results Browses, preferably marked to indicate that they are
Smart Lens results
for a given object. Tlie Query Manager preferably includes the following sub-
components .
that provide individual services to fulfill the query requests.
~ SQML Interpreter. This component must decompose passed SQML into a set of
requests, possibly with linked resources. Each request or resource link
resolves to
a resource with an associated protocol (e.g. HTTP, or one of a number of local
pseudo-protocols like outlook: or document:), and is dispatched to the
associated
290

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
protocol handler. A given SQML file may include a mix of network and local
resource types.
Resource Handler Manager. This is,preferably a central registration mechanism
for resource handlers. It is a minimal layer that associates protocols and
pseudo
protocols with handlers, and simplifies the dispatch of resource requests.
~ Resource Handlers. These are components that encapsulate the specifics of
accessing the resources from a given "server." A resource handler does not
resolve any linked resources. '.Chis is preferably the responsibility of the
SQML
Interpreter (i.e. the SQML Interpreter will have already resolved linked
resources
and provided the associated meta data as part of the resource request to this
handler). When the resource is a Semantic Web service, the component
preferably
bundles up the request and issuc;s it via http. When the resource is a local
resource
(e.g. a document: or Outlook: re;source), the resource handler handles the
resource
directly. For documents, the resource handler passes the document (a file:
IJRL)
to the semantic meaning e~straction9 summarization, and categorization engine
to
extract meta-data. For email, the resource handler extracts messages from the
exchange server, or local .PST files. Note that when there are links on a
local
resource, the local resource handler must perform the processing that filters
results for semantic relatedness. This may be custom to the handler for
efficienc~fy
2,p but a eentral, generic Relatedness Engine gill provide services for most
cases.
o Relatedness Engine. This provides a place to gather the logic for comparing
'. objects for relatedness. The comparison is preferably dependent on the,;
mix of
schemas involved, but is otherwise a simple operation-given two objects,
provide a measure of relatedness.
Filter/Sort Manager. The FilteriSon Manager supports the application of
filters and
sorts to the lists of results provided to the Results Browser. The Filter/Sort
Manager
leverages the services of the FilteriSort Preferences component to obtain user
preferences for
current settings. The main function of this component is to resolve general
preferences,
per-Agent preferences, and any settings defined in the actual results (this
may or may not be
supported). This component is notified by the Filter/Sort Preferences
component when users
change the currently applied filters and sorts. Because the associated user
interface is part of
291

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
a tool bar associated with the Shell Extension (i.e. its right-pane view), but
the application of
the functions happens in the Results Browser space, the control is typically
indirect.
Lens Mode. When a Smart Lens is invoked, the Results Browser must generate
Lens
requests (queries) for objects that users choose. The queries are asynchronous
so that users
S can select Smart Lens queries for various objects and view the results as
they are returned.
A suggested user interface for this is to reserve some real-estate for a Smart
Lens icon. When
in Smart Lens mode and the user clicks (or hovers) over the Smart Lens icon, a
query is
4~
issued, and the icon changes to indicate that the query is' in progress. When
results are
returned, they are handled by the Results Browser and dedicated Smart Lens
templates in the
Skins, and the Smart Lens icon for an abject changes to indicate that xesults
are available.
Clicking or hovering over the icon again will display the Smart Lens results
in a Skin specific
manner (see sample Smart Lens pane user interface). If the query is returned
quickly enough,
then the whole function preferably feels like; a popup activated by a hover or
single click.
Deep Info View. If Deep Information is not available in the original results,
this
component generates the associated query. The query is preferably
asynchronous. When .
results are returned to the Results Browser, they are processed through the
appropriate Skin
(using a special Deep Information template for each Skin), and the resulting
HTML is
incorporated into the results document under the associated object. The
primary Skin for the
schema inserts a Deep Information element in the HTML for the object so that
the Results
Browser knows where to incorporate the results. When Deep Information is
available
(whether as part of the original results or in response to a Deep Information
query), the Skin
either displays it directly or will indicate i:hat it is present, and some
Skin-defined user
interface will allow users to enable the display (e.g. as a popup window).
Context Info Manager. For object s currently displayed in the Results Browser,
certain notifications are preferably provided by default. Two classes of new
or additional info
will be provided to users:
292

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
1. Additional results that were added to the server since the user made the
original
request. This is especially usc;ful for things such as headlines or active
email
threads. The results are handled by the Results Browser, by inserting the new
objects into the view.
2. Context Templates and related information that would be of interest to the
user.
This is generated by additional queries to a specific Agent (Smart Agent,
Special
Agent, Blender or Agency), using a particular object as 'context. The results
axe
handled similarly to the way that Deep Inforn~ation View and Smart Lens Mode
results are handled, by processing the XML returned from the query, and
inserting
the resulting HTML into the existing HTML for the object. The Skin controls
the
display mechanisms and UI. An example of related information is "Breaking
News" associated with the object.
Skin Manager. Maintain user preferences for list Skins, object Skins, and
dependencies between list and object Skins (certain ~bject Skins may only make
sense for a
given list-Skin). The Skin Manager' also maintains parameters for each Skin
that indicate
constraints for the Skin, e.g. how much screen real-estate it requires, or
modalities it best
applies to. Considerable intelligence is preferably built in that assists the
Results Browser to
choose Skins for a range of screen and window si~,e constraints, as well as
for modalities,
accessibility, language and other constraints. Initial versions will likely be
much simpler.
Skin Templates. This describes the structure of a Skin and how it is applied
from
within the Results Browser. A Skin is preferably XSLT templates that convert
the~~results
XML to XHTML (andlor other languages like SVG) or proprietary presentation
platforn~s
like Flash MX and ActionScript. The templates can also insert styling
information, e.g. for
CSS styling. The resulting presentation code (e.g., XHTML) can restrict the
inclusion of
code, for security reasons. Framework code in the Results Browser invokes the
Skins. The ,
preferred embodiment includes the following classes of Skins:
~ List Skins (or layout Skins). A list Skin is used to transforni a list of
objects
returned from a query into some overall presentation structure. This may be a
simple list, a table, or a timed sequence of slides. List Skins are not schema
or
object specific, although they may only support certain Skins, which can work
293

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
within the constraints that the associated presentation form defines. E.g., a
list
Skin that defines a table layout may require, or prefer, object Skins that can
produce information in a small rectangular format.
~ Object Skins. Object Skins are schema specific, and generate the
presentation for
an individual abject of a given information object type (or information
class). It is
possible to define a Skin for the; generic super-class (or any other super-
class) that
can serve as a default Skin for a range of derived classes or subclasses
(presumably by omitting some details).
~ Context Skins. Context Skins are tied fo a particular Context Template, and
' ~ generate the presentation that v~ill most effectively convey the context
indicated
by the template.
~ Blender Skins. Blender Skins are designed to present the results from
Blenders,
These Skins should allow the user to view the results via the Agents contained
in
the Blender, via information obj ect type, or via a merged view that displays
all tlae
results as though they came from one source.
Skins preferably model constraints ;ouch as modality and presentation display
area by
handling the constraints (passed as parameters either statically or
dynamically by events
within the browser core itself). This is preferably supported by ii~iposing a
restriction that list
Skins must specify only acceptable object Skins. In an alternative approach,
object Skins
may be designed for a given list Skin, and the Results BrowserlSkin Manager
chooses object
Skins for the current list Skin.
List Skin Details. Users may choosf~ a single list Skin fox the current view
and make
it the default. List Skins may also be associated with individual Agents, in
which case the
generic default is overridden. The Results Browser invokes the list Skin to
process the list of
~25 results, although the list Skin preferably does not actually Izandle the
individual objects. It
creates some per-object instance in the framework presentation (e.g., a timed
entry in a
sequence, or a cell in a table, or an item in a list), and then the object
Skins will fill in the
details.
Object Skin Details. The object Skins convert a particular schema to XHTML.
Support for asynchronous query results for things like Deep Information and
Context
294

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Template inforn~ation are provided by invoking associated templates from the
Results
Browser (through the DOM) on the query results'XML, and then inserting the
resulting
XHTML into the, results document through DOM interfaces. There are preferably
several
individual templates within an object Skin, including: .
~ . Primary schema template. This is the main piece that generates XHTML, for
default display. This must create: the wrappers for Deep Information, Smart
Lens
information, Context Template information content, and any script that
provides
user control over the associated display.
~ Deep Information template. This template handles the meta-infornzation for
Deep Infornlation. It may be called for inline deep info provided with
original
results, or it may be called to handle asynchronously requested Deep
Information.
Either way, it preferably generates XHTML in some form, which is inserted
under
the wrapper element for Deep Information. The insertion probably happens in .
XSLT for inline deep info, and is effected through DOM insertion for Deep
Information query results.
~ Context information template. This template handles the results-information
for
context inforn~ation query results. It generates XHTML in some form, which is
inserted under the ~~rrapper element for lure info. The insertion is effected
tlarough
DOM insertion for Deep Information query results.
o Smart Lens information templatte. This template handles the results-
information
for Smart Lens query results. It: generates XHTML in some form, which is
inserted under the wrapper element for live info. The insertion is effected
through
DOM insertion for Deep Information query results.
In the preferred embodiment, the template cannot modify the other contents of
the
XHTML (even for the same object), so it will. be up to the Results Browser to
coordinate the
user interface changes that indicate when Deep Information, live inforniation
or~Smart Lens
results are available. The framework requires certain icons to be used (also
for consistency),
and for~.these to have regular names or element types, which will allow the
Results Browser
to find and ,modify them as needed. In addition, the Results Browser can
create and raise
events to indicate the state changes. The template-generated script can
respond to these
events, and display the associated information as desired.
295

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Default Skins. In the preferred embodiment, a set of default Skins is
provided. This
preferably includes Skins for the basic object classes and a small set of list-
Skins that allow a
variety of views of query results. Preferable; list-Skins include:
~ A detailed list display (like the Windows Explorer details view)
~ A tabular Icon view (again, like the Windows Explorer Icon view, but
somewhat
richer)
~ A timed presentation view.
e. Client Framework
In the, preferred embodiment, the sy:atem client includes Shell Extensions, a
Presenter,
and Skins used by the Presenter to display information with context and
meaning.
Shell Extension. An Explorer Shell Extension is a Microsoft Windows software
component that extends the ~Jind~ws Shell with custom code. Shell Extensions
allow
applications to use the Shell as a custom client, and also provide services
such as clean
integration with the desktop, the file-system, Internet Explorer, etc.
Examples of default shell
extensions include "My Documents," "M~r Computer," "My Network Places,"
"P~ecycle
Ein," and "Internet Explorer." '
The use of a Shell Extension in the preferred embodiment of the present
invention has
several advantages:
1. It provides a very clean way to provide a user; experience that seamlessly
integrates with how knowledge-workers currently browse for information. In
turn,
this obviates the need to develop a proprietary client and allows for non-
standard
integration with Microsoft's Internet Explorer, "My Documents," etc.
2. It embraces Today's Web and provides a migration path for the transfer of
content
in Today's Web to the Information Nervous System of the present invention. For
example, users preferable drag and drop documents from. their hard drive (via
Microsoft Explorer) or from the Internet (via Internet Explorer) into remote
Agents on the Shell Extension of the present invention. This is difficult and
non-intuitive with a proprietary client. Nevertheless, the present invention
contemplates portability to a proprietary client or to the equivalent of Shell
296

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
Extension on non-Windows operating system and operating systems for
non-personal computer devices.
The Shell Extensions of the present invention provide a view of users'
Semantic
Environment (e.g.; history, favorites and oi:her views). In the preferred
embodiment, the Shell
S Extension provides for the following:
1. Allows users i:o open an Agent, a document, a folder, or an address on the
semantic browser's Semantic Environment. For an Agent, the client displays a
custom "Open Agent" dialog box that allows users to browse the semantic
browser's Semantic Environment. This preferably includes Agents in users' My
Agents list, Agencies on the Global Agency Directory, Agencies on the local
area
network (announcing via multicast), sand Agencies on any custom Agency
;:~
Directory that users have confic;ured. [INSERT RELEVANT SCREEN SHOTS
ON UI] Opening an Agent .results in the client displaying the results of the
query
~f that Agent. Opening a document opens the XML metadata for that document,
consistent with the schema for the document object type. Opening a folder
opens
the XML metadata for a file-system folder.,Users are able to open the
immediate
or deep contents of the folder via the folder itself. Opening an address
all~ws
users to enter an~r address to be opened lair the client f~-ame~uorko This
includes
URLs (which open the XML metadata for the document), documents on the file-
system, Agents, or objects (see "URL Naming Conventions" below}. In the case
of Agents, the Agent URL is preferably entered as follows: Agent:l/<Agent
name>@<Agency name>.<domain name>. This is analogous to the http://<URL>
naming convention for HTTP UF:Ls. The Agent:// prefix is required in this case
because the Open Address option can open any address. In the case of the "Open
Agent" option, users preferably do not need to add the prefix; the client
framework automatically canonic:alizes the URL to include the prefix. This is
similar to how users are able to enter "www.foo.com" into Today's browser
without the qualifying http:// prefix.
It is anticipated that the client allows users the ability to open other
objects, for
example, Microsoft Outlook .PST files.
2. Allows users to browse, subscribe, and unsubscribe to or from Agents on a
given
Agency that supports User State.
297

CA 02555280 2006-08-03
WO 2004/075466 PCT/US2004/004674
3. Allows users to save invoked Agents or semantic query results into the
My Agents list.
4. ~ Allows users to create Blenders, and to add and remove Agents to and from
Blenders (including via drag and drop).
S. Notifies users when there are new Agencies on any of the Agency directories
(for
example, the Global Agency Directory, the Local Area Multicast Network or any
custom Agency Directories) since the last time they checked
6. Notifies users when there are any new Agents on any particular Agency since
the
last time they checked
7. Provides drag and drop access to relational semantic queries for objects in
the
Semantic Environment. The Shell Extension allows users to drag and drop a
document from the Semantic Environment (either on,a local drive, the network
neigliborhood, the Intranet, or the Internet) to a shell folder representing
an Agent.
This triggers a remote procedure call to the X1VIL VJeb Service for the given
1-S Agency with the document metadata as the argument.
8. Provides "paste" access to objects copied to the system clipboard. The
present
invention uses the system clipboard to allow users to copy any object for
later
access. In addition, the clipboard allows users to copy objects from other
applications, for eacample, Microsoft Office application: (e.go~ email items
from
Outlook), from multimedia applications, and to copy data from any application.
9. Allows users to select an Agent as a Smart Lens. A Smart Lens allows users
to
view objects in the results view based on context from an Agent or any object
that
can be copied to the system clipboard. For example, ordinarily, if a document
object is in the results view and users hover over the link representing the
object,
the object metadata is displayed. If, however, a Smart Lens is selected (for
example by pasting it onto the results sheet), and users hover over the
object,
information that relates the object in the Smart Lens and the object
underneath the
cursor is displayed. For example, if users copy "People.Research.Al1" to the
clipboard and paste it as a Smart :Lens, then hover over a document; metadata
may
be displayed in a balloon popup as follows: "Found 15 people in
People.Research.All that are experts on this document." Other examples are
"Found 3 people that might have written this document" and "Found 78 email
messages relating to this object posted by people in People.Research.All".
Users
decide whether to invoke any of the links in the metadata in the balloon
popup. In
an alternative embodiment, the popup may be displayed in a sidebar and does
not
298

DEMANDE OU BREVET VOLUMINEUX
LA PRESENTE PARTIE DE CETTE DEMANDE OU CE BREVET COMPREND
PLUS D'UN TOME.
CECI EST LE TOME 1 DE 3
CONTENANT LES PAGES 1 A 298
NOTE : Pour les tomes additionels, veuillez contacter 1e Bureau canadien des
brevets
JUMBO APPLICATIONS/PATENTS
THIS SECTION OF THE APPLICATION/PATENT CONTAINS MORE THAN ONE
VOLUME
THIS IS VOLUME 1 OF 3
CONTAINING PAGES 1 TO 298
NOTE: For additional volumes, please contact the Canadian Patent Office
NOM DU FICHIER / FILE NAME
NOTE POUR LE TOME / VOLUME NOTE:

Representative Drawing

Sorry, the representative drawing for patent document number 2555280 was not found.

Administrative Status

2024-08-01:As part of the Next Generation Patents (NGP) transition, the Canadian Patents Database (CPD) now contains a more detailed Event History, which replicates the Event Log of our new back-office solution.

Please note that "Inactive:" events refers to events no longer in use in our new back-office solution.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Event History , Maintenance Fee  and Payment History  should be consulted.

Event History

Description Date
Inactive: IPC expired 2019-01-01
Time Limit for Reversal Expired 2014-02-18
Application Not Reinstated by Deadline 2014-02-18
Inactive: Abandoned - No reply to s.30(2) Rules requisition 2013-05-22
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2013-02-18
Inactive: S.30(2) Rules - Examiner requisition 2012-11-22
Letter Sent 2012-03-12
Reinstatement Requirements Deemed Compliant for All Abandonment Reasons 2012-02-16
Inactive: Office letter 2012-01-13
Inactive: Delete abandonment 2011-12-09
Inactive: Delete abandonment 2011-12-08
Inactive: Reversal of dead status 2011-12-08
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2011-02-17
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2011-02-17
Letter Sent 2010-03-05
Reinstatement Requirements Deemed Compliant for All Abandonment Reasons 2010-02-17
Reinstatement Request Received 2010-02-17
Request for Examination Received 2010-02-17
Reinstatement Requirements Deemed Compliant for All Abandonment Reasons 2010-02-17
All Requirements for Examination Determined Compliant 2010-02-17
Time Limit for Reversal Expired 2010-02-17
Request for Examination Requirements Determined Compliant 2010-02-17
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2009-02-17
Inactive: Abandon-RFE+Late fee unpaid-Correspondence sent 2009-02-17
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2009-02-17
Letter Sent 2008-03-06
Inactive: Single transfer 2007-12-18
Inactive: Office letter 2007-10-25
Inactive: Cover page published 2006-10-04
Inactive: Courtesy letter - Evidence 2006-10-03
Inactive: Notice - National entry - No RFE 2006-10-02
Application Received - PCT 2006-09-08
National Entry Requirements Determined Compliant 2006-08-03
Application Published (Open to Public Inspection) 2004-09-02

Abandonment History

Abandonment Date Reason Reinstatement Date
2013-02-18
2011-02-17
2011-02-17
2010-02-17
2009-02-17
2009-02-17

Maintenance Fee

The last payment was received on 2012-02-16

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
NERVANA, INC.
Past Owners on Record
NOSA OMOIGUI
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Description 2006-08-03 239 15,099
Drawings 2006-08-03 91 15,097
Description 2006-08-03 144 8,854
Description 2006-08-03 300 15,233
Drawings 2006-08-03 10 2,105
Claims 2006-08-03 2 52
Abstract 2006-08-03 1 71
Cover Page 2006-10-04 1 41
Notice of National Entry 2006-10-02 1 192
Courtesy - Certificate of registration (related document(s)) 2008-03-06 1 108
Reminder - Request for Examination 2008-10-20 1 117
Courtesy - Abandonment Letter (Request for Examination) 2009-05-26 1 165
Acknowledgement of Request for Examination 2010-03-05 1 177
Courtesy - Abandonment Letter (Maintenance Fee) 2011-12-12 1 173
Courtesy - Abandonment Letter (Maintenance Fee) 2011-12-08 1 173
Notice of Reinstatement 2012-03-12 1 163
Courtesy - Abandonment Letter (Maintenance Fee) 2013-04-15 1 172
Courtesy - Abandonment Letter (R30(2)) 2013-07-17 1 165
PCT 2006-08-03 1 58
Correspondence 2006-10-02 1 28
Fees 2007-02-16 1 36
Correspondence 2007-10-25 2 35
Fees 2007-11-15 1 36
Fees 2010-02-17 3 105
Correspondence 2012-01-13 1 16
Fees 2012-02-16 2 98