Claims
- 1. An application and a context-based help system operating on a computer, the application including a plurality of components that operate to effectuate application functions, each component of the application being constructed to describe a current context of the component representative of a current state of the component, at least some of the components being active at any one time, the help system including a help engine that operates to receive the current context from each active component, to dynamically build a current overall context of the application based on each received current context, to locate help topics based on the current overall context, and to filter and prioritize the located help topics.
- 2. The application and help system of claim 1 wherein the help topics include topics on a member of a group consisting of help, suggested samples, suggested next steps, suggested templates, suggested libraries, and combinations thereof.
- 3. The application and help system of claim 1 wherein each component describes the current context thereof to the help engine as the component becomes active and the help engine incorporates such current context from such active component with current context from all other active components to dynamically build the current overall context of the application.
- 4. The application and help system of claim 1 wherein when an active component becomes inactive, the help engine removes the current context of such inactive component from the current context of all other active components to dynamically build the current overall context of the application.
- 5. The application and help system of claim 1 wherein each application describes the current context thereof in a context message.
- 6. The application and help system of claim 1 wherein each application describes the current context thereof by way of a member selected from a group consisting of at least one string-based keyword, at least name/value attribute pair, and a combination thereof.
- 7. The application and help system of claim 6 wherein the help engine employs each keyword to locate the help topics, and each attribute to filter and prioritize the located help topics.
- 8. The application and help system of claim 1 wherein the current context described by each component is dynamic and is based on current conditions with regard to the component.
- 9. The application and help system of claim 1 further comprising a selection service constructed to sense whenever a component of the application becomes active or inactive and to notify the help engine of such active or inactive component, wherein the notified help engine obtains the current context from the newly active component or discards the current context from the newly inactive component.
- 10. A method in combination with an application including a plurality of components that operate to effectuate application functions, each component of the application being constructed to describe a current context of the component representative of a current state of the component, at least some of the components being active at any one time, the method for providing dynamic help and comprising:
receiving the current context from each active component; building a current overall context of the application based on each received current context; locating help topics based on the current overall context; and filtering and prioritizing the located help topics.
- 11. The method of claim 10 further comprising sensing that a component of the application has become active or inactive, and comprising obtaining the current context from the newly active component or discarding the current context from the newly inactive component.
- 12. The method of claim 10 comprising locating help topics based on the current overall context in one or more help libraries.
- 13. The method of claim 10 further comprising displaying the filtered and prioritized help topics.
- 14. The method of claim 10 comprising receiving the current context from each active component including a member selected from a group consisting of at least one string-based keyword, at least name/value attribute pair, and a combination thereof.
- 15. The method of claim 14 comprising locating help topics based on each keyword of the current overall context and filtering and prioritizing the located help topics based on each attribute in the current overall context.
- 16. The method of claim 14 wherein each of the components of the application has a priority value, the method comprising:
receiving the current context from each active component including the priority value thereof; dividing out all the keywords of the received current contexts and all the attributes of the received current contexts and identifying each keyword with the priority value of the component from which the keyword originated; processing each of the divided-out keywords by:
searching the divided-out keyword in at least one help library; receiving one or more help topics in response thereto; and storing each of the received help topics in a list along with the priority value of the divided-out keyword, whereby after processing all of the divided-out keywords the list is a complete list including all received help topics from all searches of all of the divide-out keywords in all of the help libraries along with a priority value for each received help topic; and filtering each help topic in the complete list according to each of the divided-out attributes; and sorting the filtered help topics in the complete list according to the priority value of each help topic.
- 17. The method of claim 16 wherein dividing out all the keywords includes removing duplicates of keywords.
- 18. The method of claim 16 further comprising removing duplicates of received help topics from the complete list.
- 19. The method of claim 16 further comprising displaying the sorted help topics, wherein the displayed help topics are available to be perused.
- 20. The method of claim 16 wherein each received help topic in the complete list includes a set of attributes, the method comprising filtering each help topic in the complete list by comparing each divided-out attribute (‘context attribute’) to each attribute of the help topic (‘topic attribute’), wherein each context attribute and each topic attribute includes a name and a value, and wherein each attribute comparison can have one of three results: an exact match, where the name and value of the topic attribute matches the name and value of the context attribute; a mismatch, where the name of the topic attribute matches the name of the context attribute but the value of the topic attribute differs from the value of the context attribute; and a non-match, where the name of the topic attribute differs from the name of the context attribute.
- 21. The method of claim 20 comprising, after comparing each context attribute to each topic attribute of the help topic, keeping the help topic on the complete list if any comparison results in an exact match.
- 22. The method of claim 20 comprising, after comparing each context attribute to each topic attribute of the help topic, keeping the help topic on the complete list if no comparison results in a mismatch.
- 23. The method of claim 20 comprising, after comparing each context attribute to each topic attribute of the help topic, removing the help topic from the complete list if no comparison results in an exact match and at least one comparison results in a mismatch.
- 24. The method of claim 20 comprising, in the course of comparing each context attribute to each topic attribute of the help topic, incrementing the priority value of the help topic each time a comparison results in an exact match.
- 25. The method of claim 20 comprising, in the course of comparing each context attribute to each topic attribute of the help topic:
maintaining an exact match flag and a mismatch flag for the help topic; setting the exact match flag if any comparison results in an exact match; setting the mismatch flag if any comparison results in a mismatch; and examining the exact match flag and the mismatch flag of the help topic once all the topic attributes of the help topic have been compared to the context attributes to decide whether to keep the help topic on the complete list; the examination comprising:
keeping the help topic on the complete list if the exact match flag is set; removing the help topic from the complete list if the exact match flag is not set and the mismatch flag is set; and keeping the help topic on the complete list if the exact match flag is not set and the mismatch flag is not set.
- 26. The method of claim 20 comprising, after comparing each context attribute to each topic attribute of the help topic, removing the help topic from the complete list if any comparison results in a mismatch with regard to an attribute and no exact match with regard to such attribute.
- 27. The method of claim 20 comprising, in the course of comparing each context attribute to each topic attribute of the help topic:
maintaining an exact match list and a mismatch list for the help topic; for each comparison of a topic attribute and context attribute that results in an exact match:
placing the attribute name thereof in the exact match list; and determining whether the attribute name is in the mismatch list and if so, removing the attribute name from the mismatch list; for each comparison of a topic attribute and context attribute that results in a mismatch:
placing the attribute name thereof in the exact match list if the attribute name is not already in the exact match list; and examining the exact match list and the mismatch list of the help topic once all the topic attributes of the help topic have been compared to the context attributes to decide whether to keep the help topic on the complete list; the examination comprising removing the help topic from the complete list if any attribute name remains in the mismatch list.
- 28. A computer-readable medium having stored thereon computer-executable instructions for effectuating an application and a context-based help system operating on a computer, the application including a plurality of components that operate to effectuate application functions, each component of the application being constructed to describe a current context of the component representative of a current state of the component, at least some of the components being active at any one time, the help system including a help engine that operates to receive the current context from each active component, to dynamically build a current overall context of the application based on each received current context, to locate help topics based on the current overall context, and to filter and prioritize the located help topics.
- 29. The medium of claim 28 wherein the help topics include topics on a member of a group consisting of help, suggested samples, suggested next steps, suggested templates, suggested libraries, and combinations thereof.
- 30. The medium of claim 28 wherein each component describes the current context thereof to the help engine as the component becomes active and the help engine incorporates such current context from such active component with current context from all other active components to dynamically build the current overall context of the application.
- 31. The medium of claim 28 wherein when an active component becomes inactive, the help engine removes the current context of such inactive component from the current context of all other active components to dynamically build the current overall context of the application.
- 32. The medium of claim 28 wherein each application describes the current context thereof in a context message.
- 33. The medium of claim 28 wherein each application describes the current context thereof by way of a member selected from a group consisting of at least one string-based keyword, at least name/value attribute pair, and a combination thereof.
- 34. The medium of claim 33 wherein the help engine employs each keyword to locate the help topics, and each attribute to filter and prioritize the located help topics.
- 35. The medium of claim 28 wherein the current context described by each component is dynamic and is based on current conditions with regard to the component.
- 36. The medium of claim 28 further having stored thereon computer-executable instructions for effectuating a selection service constructed to sense whenever a component of the application becomes active or inactive and to notify the help engine of such active or inactive component, wherein the notified help engine obtains the current context from the newly active component or discards the current context from the newly inactive component.
- 37. A computer-readable medium having computer-executable instructions thereon for implementing a method in combination with an application including a plurality of components that operate to effectuate application functions, each component of the application being constructed to describe a current context of the component representative of a current state of the component, at least some of the components being active at any one time, the method for providing dynamic help and comprising:
receiving the current context from each active component; building a current overall context of the application based on each received current context; locating help topics based on the current overall context; and filtering and prioritizing the located help topics.
- 38. The medium of claim 37 wherein the method further comprises sensing that a component of the application has become active or inactive, and comprising obtaining the current context from the newly active component or discarding the current context from the newly inactive component.
- 39. The medium of claim 37 wherein the method comprises locating help topics based on the current overall context in one or more help libraries.
- 40. The medium of claim 37 wherein the method further comprises displaying the filtered and prioritized help topics.
- 41. The medium of claim 37 wherein the method comprises receiving the current context from each active component including a member selected from a group consisting of at least one string-based keyword, at least name/value attribute pair, and a combination thereof.
- 42. The medium of claim 41 wherein the method comprises locating help topics based on each keyword of the current overall context and filtering and prioritizing the located help topics based on each attribute in the current overall context.
- 43. The medium of claim 41 wherein each of the components of the application has a priority value, the method comprising:
receiving the current context from each active component including the priority value thereof; dividing out all the keywords of the received current contexts and all the attributes of the received current contexts and identifying each keyword with the priority value of the component from which the keyword originated; processing each of the divided-out keywords by:
searching the divided-out keyword in at least one help library; receiving one or more help topics in response thereto; and storing each of the received help topics in a list along with the priority value of the divided-out keyword, whereby after processing all of the divided-out keywords the list is a complete list including all received help topics from all searches of all of the divide-out keywords in all of the help libraries along with a priority value for each received help topic; and filtering each help topic in the complete list according to each of the divided-out attributes; and sorting the filtered help topics in the complete list according to the priority value of each help topic.
- 44. The medium of claim 43 wherein dividing out all the keywords includes removing duplicates of keywords.
- 45. The medium of claim 43 wherein the method further comprises removing duplicates of received help topics from the complete list.
- 46. The medium of claim 43 wherein the method further comprises displaying the sorted help topics, wherein the displayed help topics are available to be perused.
- 47. The medium of claim 43 wherein each received help topic in the complete list includes a set of attributes, the method comprising filtering each help topic in the complete list by comparing each divided-out attribute (‘context attribute’) to each attribute of the help topic (‘topic attribute’), wherein each context attribute and each topic attribute includes a name and a value, and wherein each attribute comparison can have one of three results: an exact match, where the name and value of the topic attribute matches the name and value of the context attribute; a mismatch, where the name of the topic attribute matches the name of the context attribute but the value of the topic attribute differs from the value of the context attribute; and a non-match, where the name of the topic attribute differs from the name of the context attribute.
- 48. The medium of claim 47 wherein the method comprises, after comparing each context attribute to each topic attribute of the help topic, keeping the help topic on the complete list if any comparison results in an exact match.
- 49. The medium of claim 47 wherein the method comprises, after comparing each context attribute to each topic attribute of the help topic, keeping the help topic on the complete list if no comparison results in a mismatch.
- 50. The medium of claim 47 wherein the method comprises, after comparing each context attribute to each topic attribute of the help topic, removing the help topic from the complete list if no comparison results in an exact match and at least one comparison results in a mismatch.
- 51. The medium of claim 47 wherein the method comprises, in the course of comparing each context attribute to each topic attribute of the help topic, incrementing the priority value of the help topic each time a comparison results in an exact match.
- 52. The medium of claim 47 wherein the method comprises, in the course of comparing each context attribute to each topic attribute of the help topic:
maintaining an exact match flag and a mismatch flag for the help topic; setting the exact match flag if any comparison results in an exact match; setting the mismatch flag if any comparison results in a mismatch; and examining the exact match flag and the mismatch flag of the help topic once all the topic attributes of the help topic have been compared to the context attributes to decide whether to keep the help topic on the complete list; the examination comprising:
keeping the help topic on the list if the exact match flag is set; removing the help topic from the list if the exact match flag is not set and the mismatch flag is set; and keeping the help topic on the list if the exact match flag is not set and the mismatch flag is not set.
- 53. The medium of claim 47 wherein the method comprises, after comparing each context attribute to each topic attribute of the help topic, removing the help topic from the complete list if any comparison results in a mismatch with regard to an attribute and no exact match with regard to such attribute.
- 54. The medium of claim 47 wherein the method comprises, in the course of comparing each context attribute to each topic attribute of the help topic:
maintaining an exact match list and a mismatch list for the help topic; for each comparison of a topic attribute and context attribute that results in an exact match:
placing the attribute name thereof in the exact match list; and determining whether the attribute name is in the mismatch list and if so, removing the attribute name from the mismatch list; for each comparison of a topic attribute and context attribute that results in a mismatch:
placing the attribute name thereof in the exact match list if the attribute name is not already in the exact match list; and examining the exact match list and the mismatch list of the help topic once all the topic attributes of the help topic have been compared to the context attributes to decide whether to keep the help topic on the complete list; the examination comprising removing the help topic from the complete list if any attribute name remains in the mismatch list.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/304,107, filed Jul. 10, 2001 under docket number ‘180599’ and entitled “CONTEXT-BASED HELP ENGINE AND DYNAMIC HELP WINDOW”, the subject matter of which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60304107 |
Jul 2001 |
US |