This invention relates in general to the field of information technology. More particularly, this invention relates to a computing environment context to facilitate presentation-independent authoring of content, and to the display of such content.
When information is presented to a viewer, the work of presenting the information can be divided into two areas. The first is authoring the content which will be presented to the user. For example, when an author writes a book, the act of choosing the words to use constitutes the authoring of the content.
Choosing the way in which the content will be displayed constitutes the second part of the presentation of information. When the book is to be published, however, the words that the author has been chosen are presented in a certain typeface, a certain size, with certain line lengths and spaces between lines. These are presentation decisions.
Similarly, in a computing environment, in presenting information for display to a user, the content must be authored, and the presentation details must be decided upon.
In both the general context and in the computing environment context, the author of content may wish to specify certain details of how the content will be displayed. For example, a poet may wish to include non-standard spacing in a poem. The author of a book may wish to present a list, and have the elements of the list to each begin with a bullet or a hyphen in order to facilitate a reader's understanding of the list. In the computing environment context, a content author may also wish to have content displayed in a way which will enhance the user's understanding of the content.
For example, one important context within the computing environment context in which information is presented to a user is the help context. In the help context, help information on a topic is presented, for example for operating systems and applications such as spreadsheets, word processing, and business applications. In such a context, the content author may want to have the help content displayed in a way which allows a user to better understand it. For example, in help content where a user is instructed to input certain text, that certain text which a user is instructed to type may be presented in a different font than the rest of the text of the help content. A numbered or bullet list may be used to order information and make it more comprehensible to a user. Boldface, underlining, different colors, or other text effects may also be used.
In prior art help systems both the content to be displayed and the presentation information must be contained in the help content. Some examples of such systems are Microsoft Corporation's WinHelp system and HTML Help 1.x systems, which are or were used in certain versions of Microsoft Corporation's WINDOWS operating system. In such systems, the authoring of help content required both content authoring and a content presentation. The help content, according to such systems, is written in a format which allows both content and presentation information to both be specified. For example, in Microsoft Corporation's rich text format (RTF), used for content in the WinHelp system, the author of help content would need to author both the content and specify how it should be presented, e.g. with certain words boldfaced or underlined. Similarly, using the hyper text markup language (HTML) protocol, as the HTML Help 1 .x system did, the author of help content would need to include tags within the HTML document. These tags would specify that some piece of content should be boldface, or is an item in a bullet or numbered list.
The prior art help systems are limited, because they force a content author to also be a presentation author, even where different people may be better suited to perform these different tasks. Additionally, where different people are authoring help content, it may be difficult to maintain uniformity in the presentation style of help content. Another limitation is the necessity of authoring help content in a specific format language. It may be desirable to use one format (e.g., HTML) with help content, however, where the help content may be used in systems without the capability of displaying content in that first format, it may be necessary to use a second format (e.g., RTF) to display help content if that format is more widely available. Other types of variations in presentation based on the capabilities of the user's system may also be desired.
Additionally, a change in one an aspect of presentation after the help content is authored is difficult to perform in prior art systems which display content. As an example, after the authoring of help content is completed, a change may be required in how example text to be input by users is displayed. In the already authored help content, for example, text to be input by users was underlined by the authors of help content. Then the discovery may be made that users comprehension is increased when text to be input is displayed in a different font than the rest of the code. In order to make the change, a global search and replace may be instituted to replace all underlining commands to commands which change the font of the text. However, this will be over-inclusive, changing every instance of underlining, not just those which are used to emphasize what example text to be input by a user. An alternative way to make the change would involve examining each instance of underlining and determining whether or not it should be changed. This is obviously a time-intensive process and may introduce errors in the presentation style.
Thus, there is a need for a system and method to overcome these deficits in the prior art. The present invention addresses the aforementioned needs and solves them with additional advantages as expressed herein.
Semantic marking is used by a content author. These semantic markings are used with respect to certain elements of content. For example, some content may be marked as “help topic heading”. These semantic markings, alone or in combination, are used to determine what the presentation of the marked content will be.
In one embodiment, the presentational content (content ready for display using an interpreter of a presentational format such as hypertext markup language (HTML)) is produced by accepting semantically-marked content and applying a presentational transform. A presentational transform then transforms the semantically-marked content into a presentational format.
Semantically-marked content fragments may be combined with other semantically-marked content fragments through one or more structural transforms. The resulting combined data (a structurally-transformed content topic) is then transformed using the presentational transform.
Other features of the invention are described below.
The foregoing summary, as well as the following detailed description of preferred embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings exemplary constructions of the invention; however, the invention is not limited to the specific methods and instrumentalities disclosed. In the drawings:
Overview
According to one embodiment of the invention, an improved authoring scheme for content which is to be displayed to a user is provided. A help system will be used in this specification to describe the invention, however, the invention is not limited to use in help systems, but rather can be more widely used, for example, in other systems where content is authored to be displayed on a variety of systems or where presentation style is required to be changeable. For example, reference documentation for a software application constitute all or part of the content according to one embodiment of the invention. Tutorial materials for a software application constitute all or part of the content according to another embodiment of the invention.
Exemplary Computing Environment
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, embedded systems, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium. In a distributed computing environment, program modules and other data may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Authoring Semantically-Marked Content
The help system content is authored by a content author. Instead of describing how the content should be displayed in purely presentation terms, the content author authors the content and describes the content in functional (semantic) terms. Thus authors do not need to know how to code in a language which will specify how content should be presented. Rather, an author codes certain items of content semantically. For example, content which is example text to be entered by a user would be marked as example text, rather than as content which is to be displayed in a certain way (in a given font, or underlined.)
A schema is established with which the author of content can specify semantically certain items of content. In one embodiment, an extensible markup language (XML) schema is used to author the content. The XML schema describes the purpose of certain items of the content. The schema is not limited to establishing the semantic purpose for a word or phrase in the content. The schema can be used to specify a semantic description for all of the content, or for a specific word or a character of one word.
The following pseudocode is an example of how content may be described in semantic terms:
<option>To turn on or off automatic spelling checking, select or clear the <checkbox_name>Check spelling as you type </checkbox_name> check box. </option>
Thus, in the example pseudocode above, the content “Turn on or off automatic spelling and grammar checking” is indicated to be, semantically, a help topic heading. Similarly, two steps are indicated for the user to perform. The latter of the steps provides two possible options to be performed by the user. The content “Check grammar as you type” is indicated as being a checkbox name, however it is also part of the second option given in the second step. In the above pseudocode semantic function for a specific element is illustrated by including it between tags (e.g. the <help topic heading> and </help topic heading> tags for the help topic heading surround “Turn on or off automatic spelling and grammar checking,” which is to be considered, semantically, a help topic heading).
The indication of a semantic function for a content element, however, this can be done in a number of ways. Indicating semantic function for an element of content can be done by the content author directly by writing content with such markups or other indications of semantic function for the element as required in the selected schema. Alternatively, this can be done by using an environment which simplifies the process of marking content elements with semantic function for a content author, such as an environment which allows a user to highlight elements of content and indicate their semantic function by selecting a semantic function from a list of possibilities.
The author of the content does not need to determine how such an element with a given semantic function will be displayed, but only to author the content and to mark any content elements with semantic descriptions.
Display of Semantically-Marked Content
Once the semantic authoring of the content has been completed, it must be transformed in order to be displayed.
In order to execute such a combination of fragments of content for a single display, as shown in
With reference again to
For the elements of content which are indicated to have a certain semantic meaning in the content, the presentational transform data 240 describes how such elements should be presented. For example, Table 1 is an example of what may be included in the presentational transform data 240.
The resulting presentational content file 250 contains the content as it will be presented. This may be in any of a number of formats. For example, it may be in HTML or RTF format. When the content described by the pseudocode above is transformed according to the presentational transform data 240 as represented in Table 1, the following table provides an example of the resulting content: Check spelling as you type check box.
However, a different presentational transform data 240 yields a different presentation of content, as can be seen in Table 3, a second example of what may be included in the presentational transform data 240.
When the content described by the pseudocode above is transformed according to the presentational transform data 240 as represented in Table 3, Table 4 provides an example of the resulting content: CHECK SPELLING AS YOU TYPE check box.
CHECK GRAMMAR AS YOU TYPE check box.
Both the presentational transform data in Table 1 and Table 3 may be included in presentational transform data 240. For example, where content is transformed differently based on state (as described below), the presentational transform data in Table 1 may be used for one state, and the presentational transform data in Table 3 may be used for another state.
In one embodiment, the structural transformations (if any) and the presentational transformation occur on the user's computer system. In this way, the presentational transform data 240 may be customized for the available presentational language available for the user. For example, if a user's computer includes only RTF format display capabilities, but not HTML format display capabilities, the presentational transform data may be specific to transforming semantically-marked content to presentational content in RTF format. A server system could, for example, presentationally transform the semantically-marked content into one format for access by external systems via a web browser while retaining (without presentational transformations) the semantically-marked content for later presentational transformation by a user of the help system local to the server itself.
It can be seen in the examples in Tables 1-4 above that not only are text effects added to the content, but occasionally the content is modified in response to the presentational transformation. For example, the help topic heading in Table 2 has been transformed from only one capital letter to be displayed with initial capital letters on each word. Such text changes may be more far-reaching. For example, where an example name is given (for example, in help discussing how to address a letter) if semantically marked, the example name may be modified based on the regional settings of a user's computer or the version of the presentational transform data 240 of the user.
Additional effects may include effects such as presentational behaviors. One such presentational behavior is a popup which appears when a user hovers a cursor over a word. In this way, for example, glossary definitions may be provided. If the semantically-marked content includes the following, as exemplified in pseudocode:
This pseudocode indicates that the content includes a term (“Thesaurus”) and what the definition is of that term. Thus, with reference again to
The availability of such more-complex behaviors via the presentational transform 230 serves to point out the security benefits of using the inventive methods and systems. Because the semantically-marked content does not include the scripting or other programmatic instructions on how the presentation will be accomplished, it is acceptable to allow content providers to provide semantically-marked content without verifying their trustworthiness, as long as the presentational transformation 230 occurs under a higher level of security and using presentational transform data 240. In addition to this gain in security, providing the presentation enhancements by means of the presentational transform 230 also removes the burden of coding any such presentation enhancements from providers of content.
As can be seen from
One type of behavior data is code. In one embodiment, in order to allow content to be adapted, the content contains at least one link to code (known as a “behavior”) which can be executed to modify or add content. At a transformation time, the code invoked by the link is accessed and run, which may change the content. The use of such behaviors is detailed in co-pending, co-assigned U.S. patent application Ser. No. ZZ/ZZZ,ZZZ (attorney docket no. MSFT-2910/306008.01), filed on the same date as the present application.
One type of behavior data is based on state information regarding the user, user's computer, or application. The state information may be provided by one or more monitors which monitor a system to provide context information. Each monitor tracks information about a particular state including whether it is currently true or false. Examples of states which may be useful in determining the context of a search include hardware, software, and user preferences and controls. Hardware states may include the type, model, make, and status of hardware attached to the user computing device. Internet connection state, the local network and the presence of a shared printer, multiple displays, and the type of network are also examples of states in a computing environment. Examples of software states may be the version of operating system used or the application being run and the mode of the application such as editing a document or creating an equation for calculation in a spreadsheet. Examples of user related states include user preferences and conditions such as whether the user is a system administrator, whether the user has selected specific styles or modes in the generation or viewing of documents. Additional states representative of the computing environment may be monitored as new content is downloaded or new applications are installed. The gathering of such state information is detailed in co-pending, co-assigned U.S. patent application Ser. No. 10/754,984 (attorney docket no. 304117.01/MSFT-2861). The use of such state information is detailed in co-pending, co-assigned U.S. patent application Ser. No. YY/YYY,YYY (attorney docket no. MSFT-2901/305488.01), filed on the same date as the present application.
Conclusion
It is noted that the foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present invention. While the invention has been described with reference to various embodiments, it is understood that the words which have been used herein are words of description and illustration, rather than words of limitations. Further, although the invention has been described herein with reference to particular means, materials and embodiments, the invention is not intended to be limited to the particulars disclosed herein; rather, the invention extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. Those skilled in the art, having the benefit of the teachings of this specification, may effect numerous modifications thereto and changes may be made without departing from the scope and spirit of the invention in its aspects.
The subject matter described herein is related to the subject matter disclosed in application Ser. No. 10/754,984 (attorney docket no. 304117.01/MSFT-2861) filed on Jan. 9, 2004 entitled “System and Method for Context Sensitive Searching.” The subject matter described herein is also related to U.S. patent application Ser. No. YY/YYY,YYY (attorney docket no. MSFT-2907/305488.01), entitled “Activating Content Based on State” and U.S. patent application No. ZZ/ZZZ,ZZZ (attorney docket no. MSFT-2910/306008.01) entitled “In-Place Content Substitution via Code-Invoking Link,” both filed on the same date as the present application.