A content author provides content to be displayed, including some content elements for which display is conditional on the state of the machine in which the content will be viewed. The conditional statements controlling the display of these content elements, in one embodiment refer to states provided by a state monitor. The state may refer to the state of any aspect of the viewing environment, including hardware, software, firmware, user preferences, software operating modes, and any other detectable state. The resulting content is optionally combined with other similar content via a structural transform. This content is transformed with a presentation transform. One of the transforms checks the states and resolves the conditional statements included by the content author. The result of the transforms is presentation data. A display of this presentation data includes the content which, according to the conditional statements and the state of the viewing environment is appropriate for display.
|
1. A method of providing state-dependent content to a user's computing environment comprising:
accepting authored pre-transformation content in a content file comprising conditional content to be displayed by the user's computing environment only under a certain condition relating to at least one state of the computing environment;
determining said at least one state of the computing environment;
evaluating conditional statements in said authored pre-transformation content relative to said at least one state to determine what conditional content will be displayed; and
producing presentational content for display by the computing environment by at least one structural transform of said accepted authored pre-transformation content based on said determination, wherein said at least one structural transform comprises adding or removing conditional content to or from said pre-transformation content to tailor it to different computing environment states.
11. A method of producing state-dependent content for display by a user's computing environment comprising:
authoring pre-transformation content to be displayed by the user's computing environment;
adding to the pre-transformation content at least one conditional marking of some portion of said pre-transformation content to be displayed under a certain condition relating to at least one state of the computing environment;
delivering said conditionally marked pre-transformation content in a content file for the production of presentational content for display by the computing environment by a structural transformation of the conditionally marked pre-transformation content based on an evaluation of said at least one conditional marking relative to the current value of said at least one state, wherein said structural transformation comprises adding or removing content to or from said pre-transformation content to tailor it to different computing environment states.
13. A computing system comprising a processor configured to provide state-dependent content to a user's computing environment (hereinafter computing environment) comprising:
content storage configured to accept authored pre-transformation content in a content file comprising conditional content to be displayed by the computing environment only under a certain condition relating to at least one state of the computing environment;
at least one state monitor configured to determine said at least one state of the computing environment;
an evaluator configured to evaluate conditional statements in said authored pre-transformation content relative to said at least one state to determine what conditional content will be displayed; and
a transformer configured to produce presentational content for display by the computing environment by at least one structural transform of said accepted authored pre-transformation content based on said determination, wherein said at least one structural transform comprises adding or removing conditional content to or from said pre-transformation content to tailor it to different computing environment states.
21. A computing system comprising a processor configured to produce state-dependent content for display by a user's computing environment comprising:
a content acceptor configured to accept authored pre-transformation content in a content file to be displayed by the user's computing environment;
a conditional marking adder configured to add at least one conditional marking of some portion of said authored pre-transformation content to be displayed under a certain condition relating to at least one state of the computing environment; and
a content deliverer configured to deliver said authored conditionally marked pre-transformation content in the content file for the production of presentational content for display by the computing environment by a structural transformation of the conditionally marked pre-transformation content based on an evaluation of said at least one conditional marking relative to the current value of said at least one state, wherein said structural transformation comprises adding or removing pre-transformation content to or from said pre-transformation content to tailor it to different computing environment states.
2. The method of
3. The method of
4. The method of
combining said accepted authored pre-transformation content with additional content by at least one structural transform defining how said combination should occur.
6. The method of
7. The method of
8. The method of
9. The method of
10. A computer readable storage medium having stored thereon a plurality of computer-executable instructions, a co-processing device, and a computing device on which the method of
12. A computer readable storage medium having stored thereon a plurality of computer-executable instructions, a co-processing device, and a computing device on which the method of
14. The computing system of
15. The computing system of
a structural transformer configured to combine said accepted authored pre-transformation content with additional content by at least one structural transform defining how said combination should occur.
16. The computing system of
17. The computing system of
18. The computing system of
19. The computing system of
20. The computing system of
|
The subject matter described herein is related to the subject matter disclosed in co-pending application Ser. No. 10/754,984 filed on Jan. 9, 2004 entitled “System and Method for Context Sensitive Searching.” The subject matter described herein is also related to co-pending U.S. patent application Ser. No. 10/819,661, entitled “Presentation-Independent Semantic Authoring of Content,” and U.S. patent application Ser. No. 10/819,607 entitled “In-Place Content Substitution via Code-Invoking Link,” both filed on the same date as the present application.
This invention relates in general to the field of information technology. More particularly, this invention relates to a computing environment context to facilitate state-dependent selection and presentation of content to a user. Such adaptive content may be utilized in, e.g., a help system for software applications.
In certain contexts, such as help systems for software applications, where information is presented to a user of a computer system, the information discusses the state of the machine. For example, when a user inquires as to how to change a specific setting for a printer attached to a printer running an operating system, the operating system's associated help system may provide the user with help information regarding changing the setting. The help content presented may require the user to have knowledge about and understand details about the setup and current functioning of the user's computer system. For example, the help content may ask how the printer is attached (e.g. local or networked), what version of some software application is running on the user's computer, or other details dependent on the setup and functioning of the user's computer, and may guide the user based on the answers to these questions. Providing help information in the alternative based on some detail of the user's computer system may be done by including all the information in the help content (e.g. “if the printer is a networked printer” will be followed by directions on changing the setting for a networked printer, but the same help screen may include “if the printer is a local printer” and directions on changing the setting for a local printer.) Providing help information in the alternative may also be accomplished by requesting that the user make a selection (e.g. “is the printer a networked or local printer?”) and then presenting the applicable help information to the user.
In either instance, the user in such a situation is required to have some sophistication in knowing the setup of their computer system and the current state of the computer system. This requirement produces some confusion and dissatisfaction with less sophisticated users and requires additional time for even sophisticated users who are consulting the help system.
Additionally, help information may be related to certain higher-level tasks which are the domain of a computer system administrator, and not the lay user. This help information should riot be viewable by the lay user.
In prior art help systems, state-dependent content could be viewed, however, the functionality for providing this adaptable content had to be built into the application which was being queried used for the content. This introduced some security concerns, because a viewer could be modified to allow a user to view content which the user should not view. Additionally, having the viewer determine which content should be displayed requires the viewer to access certain state information about the computer system, which may introduce privacy concerns and complexity. An additional drawback is that each viewer would need identical functionality to view some item of content or the content could not be reused.
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.
In order to allow for states of the user's computing environment to be reflected in the content presented to the user, conditional marking is used by a content author. This conditional marking is used with respect to certain elements of content. The conditional markings are evaluated to determine which elements of content the user will see when the user requests to see the content. For example, help content will be modified according to the conditionality in the help content to allow the user to see help content which is more closely tailored to the current situation on the user's computer.
In one embodiment, the content presented to the user is determined by accepting content including conditional content (content with conditions applied to the display of that content) and the conditions, including at least one state condition describing the user's environment (such as user's state, the state of the user's machine, or the state of the user's application) are evaluated. The resulting content can then be used for display to a user.
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 so that different elements of the content are displayed to a user based on the state of the user's computer system environment.
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,
State Monitors
In one embodiment, the information describing the state of the user's computer system is provided by state monitors.
As described in application Ser. No. 10/754,984 filed on Jan. 9, 2004 entitled “System and Method for Context Sensitive Searching,” state monitors can be used to monitor the state of the computing environment and use the individual states of the various components of the environment, including hardware, software, firmware, user preferences, software operating modes, and any other detectable state to provide a context to searches for information such as help information. State information can include any information about the user, the state of the user's machine, and the state of application(s) being run by the user.
A collection of monitors is used to provide state information. Each monitor tracks information about a particular state including whether it is currently true or false. States may be very simple like having a printer attached or complex like having an HP 770 printer attached that has low toner and is the current user's default printer. In one embodiment, the only states that are monitored are ones that have been explicitly requested by some application.
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, and make 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.
One type of monitor may be an installed hardware monitor. The monitor may be used to indicate a state of specific hardware installed in the local computing environment. Based on the hardware monitors, results, such as the presentation of data resulting from help searches, may be modified. The modification may be of the form of an exclusion of search result data from presentation to the user. The modification may also involve the use of logical Boolean functions such as AND, OR and NOT in relation to data and the state of other monitors.
Monitors can be used in a logical manner as well to sense the combined condition of multiple states within a computing environment to enhance searches. Given a search for information concerning the printing of a file to a printer, the search may use the state monitors for both the presence of a CDRW as well as the type of printer connected to the user's system under a logical AND function. Thus, where help information would normally only provide information concerning printing a file to a printer, but the file to be printed may be resident on the CDRW in the user's environment, the hardware monitors for the CDRW and the printer under the logical AND function may indicate that not only information concerning generic file printing may be appropriate, but also information that specifically relates to printing a file from a CDRW to the specific type of printer which the monitor indicates is attached to the computer system may be relevant to the user. Other logical functions (NOT, OR, etc.) may also be used to combine state monitor information.
Use of the State Information to Provide State-Dependent Information
The pre-transformation content files 200 include content which is conditioned on a state/context of the computer system in which it is to be displayed. For example, the pre-transformation content may include instructions for administrators, as in the following pseudo code example:
Changing A Password -
In order to change a password, select the Change
Password option in the session management menu. Type
in the User ID and the current password in the
indicated fields. A new prompt will ask you for the
new password in an additional field. This new
password will need to be typed in twice in order to
take effect.
<para condition=“IsAdmin”>
If the current password has been lost by a user, an
administrator may reset the password by opening the
Reset User Password menu in the administration menu,
which will be viewable only when logged on as an
administrator. Enter the User ID and a new password
in the indicated fields.
</para>
<para condition=NOT(“IsAdmin”)>
If you have forgotten your password, please consult an
administrator.
</para>
The header (“Changing a Password”) and the first paragraph will appear whenever the state-independent content is viewed. The second paragraph (surrounded by <para condition=“IsAdmin”> and </para> in the pseudo code) will appear if the content is rendered where the state of the “IsAdmin” monitor is true, indicating that the user who will view the content is an administrator. If the state of “IsAdmin” is false, then the last paragraph will be displayed to the user. Thus, state-dependent content is presented only in the correct context for its display.
As another example, pre-transformation content files 200 can also include conditional references based on the presence or absence of certain hardware. Thus, a user who looks for help in printing will be given help instructions for the specific printer which is attached to the user's computer system. A user who requests help in saving a file will receive instructions on saving the file to whichever of: a hard disk, a floppy disk, a CDRW, or an external storage device is attached to the user's computer. In the above pseudo code, the state “IsAdmin” has a value of true or false. In one embodiment, all states have values of true or false. In other embodiments, states may contain varied values, for example, with a “PrinterCondition” state having a number of possible values (e.g. “off”, “out-of-paper”, “busy”, or “ready”, among others.)
The way this information is presented to a user is via the transformations shown in
A presentational transform 230 is then applied to the resulting structurally-transformed content file 220. Again, inputs to this include transform data (presentational transform data 240) and state information 260. The final result of this presentation transform 230 is presentation content data 250. This presentation content data 250 is presentation data in a format which can be used on the user's computer system. For example, where the user's computer system has the ability to display data in HTML (hypertext markup language) format, the presentation content data may be in HTML format.
With reference again to
The evaluation of conditional statements may also be performed in the presentational transformation 230. In this case, the non-applicable content may be hidden from the user, however it may still be present in the presentation content data 250, for example as hidden or invisible text. The source for the presentation content data 250 may therefore include that non-applicable content. Depending on the viewing options, the option may be provided to a user to view hidden text. This allows a user flexibility, to see what the content would have been in other situations. In another embodiment, the presentation transform 230 functions as a “cold filter” in which content gets excluded from the presentation content data 250 and is not viewable.
The transformation(s) as shown in
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.
Chandrashekar, Sridhar, Reddish, Andrew D., Rogerson, Dale E., McRoberts, J. Shane, Dong, Wenlong
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5263167, | Nov 22 1991 | International Business Machines Corporation | User interface for a relational database using a task object for defining search queries in response to a profile object which describes user proficiency |
5319580, | Nov 24 1990 | Renesas Electronics Corporation | Diagnostic support system and diagnostic system of equipment |
5602990, | Jul 23 1993 | Fujitsu Siemens Computers LLC | Computer system diagnostic testing using hardware abstraction |
5701469, | Jun 07 1995 | Microsoft Technology Licensing, LLC | Method and system for generating accurate search results using a content-index |
5715468, | Sep 30 1994 | RPX Corporation | Memory system for storing and retrieving experience and knowledge with natural language |
5819089, | Sep 28 1989 | Computer Associates Think, Inc | Portable and dynamic distributed transaction management method |
5850446, | Jun 17 1996 | Hewlett Packard Enterprise Development LP | System, method and article of manufacture for virtual point of sale processing utilizing an extensible, flexible architecture |
5911776, | Dec 18 1996 | Unisys Corporation | Automatic format conversion system and publishing methodology for multi-user network |
5999179, | Nov 17 1997 | Fujitsu Limited | Platform independent computer network management client |
6038598, | Feb 23 1998 | Intel Corporation | Method of providing one of a plurality of web pages mapped to a single uniform resource locator (URL) based on evaluation of a condition |
6041287, | Nov 07 1996 | Reliance Electric Technologies, LLC | System architecture for on-line machine diagnostics |
6189002, | Dec 14 1998 | DTI OF WASHINGTON, LLC | Process and system for retrieval of documents using context-relevant semantic profiles |
6249784, | May 19 1999 | Nanogen, Inc.; NANOGEN, INC | System and method for searching and processing databases comprising named annotated text strings |
6253326, | May 29 1998 | ACCESS CO , LTD | Method and system for secure communications |
6260035, | Jul 19 1996 | Microsoft Technology Licensing, LLC | Intelligent user assistance facility for a software program |
6260037, | Feb 09 1999 | International Business Machines Corporation | Method and computer program product for implementing skip key processing for database grouping queries involving aggregate operations by using one or more indices |
6262730, | Jul 19 1996 | Microsoft Technology Licensing, LLC | Intelligent user assistance facility |
6263440, | Jul 10 1998 | LENOVO SINGAPORE PTE LTD | Tracking and protection of display monitors by reporting their identity |
6327590, | May 05 1999 | GOOGLE LLC | System and method for collaborative ranking of search results employing user and group profiles derived from document collection content analysis |
6456234, | Jun 07 2000 | Apple Inc | System and method for proactive content delivery by situation location |
6473800, | Jul 15 1998 | Microsoft Technology Licensing, LLC | Declarative permission requests in a computer system |
6487553, | Jan 05 2000 | LinkedIn Corporation | Method for reducing search results by manually or automatically excluding previously presented search results |
6493702, | May 05 1999 | GOOGLE LLC | System and method for searching and recommending documents in a collection using share bookmarks |
6519592, | Mar 31 1999 | GOOGLE LLC | Method for using data from a data query cache |
6529909, | Aug 31 1999 | Accenture Global Services Limited | Method for translating an object attribute converter in an information services patterns environment |
6535896, | Jan 29 1999 | International Business Machines Corporation | Systems, methods and computer program products for tailoring web page content in hypertext markup language format for display within pervasive computing devices using extensible markup language tools |
6539396, | Aug 31 1999 | Accenture Global Services Limited | Multi-object identifier system and method for information service pattern environment |
6557008, | Dec 07 1999 | International Business Machines Corporation | Method for managing a heterogeneous IT computer complex |
6562076, | Aug 31 1998 | Xerox Corporation | Extending application behavior through active properties attached to a document in a document management system |
6585778, | Aug 30 1999 | International Business Machines Corporation | Enforcing data policy using style sheet processing |
6628304, | Dec 09 1998 | Cisco Technology, Inc. | Method and apparatus providing a graphical user interface for representing and navigating hierarchical networks |
6633867, | Apr 05 2000 | International Business Machines Corporation | System and method for providing a session query within the context of a dynamic search result set |
6650998, | Mar 11 1996 | AT&T Corp. | Information Search System for enabling a user of a user terminal to search a data source |
6658625, | Apr 14 1999 | International Business Machines Corporation | Apparatus and method for generic data conversion |
6691106, | May 23 2000 | Intel Corporation | Profile driven instant web portal |
6788313, | Sep 28 2000 | International Business Machines Corporation | Method and apparatus for providing on line help for custom application interfaces |
6795868, | Aug 31 2000 | ACTIAN CORP | System and method for event-driven data transformation |
6810395, | Nov 22 1999 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method and apparatus for query-specific bookmarking and data collection |
6820135, | Aug 31 2000 | ACTIAN CORP | Modeless event-driven data transformation |
6857102, | Apr 07 1998 | Fuji Xerox Co., Ltd.; Xerox Corporation | Document re-authoring systems and methods for providing device-independent access to the world wide web |
6892196, | Dec 22 1999 | Accenture Global Services Limited | System, method and article of manufacture for a user programmable diary interface link |
6906719, | Oct 12 2002 | BEIJING ZITIAO NETWORK TECHNOLOGY CO , LTD | System and method for content-based querying using video compression format |
6968332, | May 25 2000 | Microsoft Technology Licensing, LLC | Facility for highlighting documents accessed through search or browsing |
6968333, | Apr 02 2000 | Microsoft Technology Licensing, LLC | Soliciting information based on a computer user's context |
6976017, | Feb 27 2001 | Verizon Patent and Licensing Inc | Method and apparatus for context based querying |
6990629, | Jul 27 1999 | Google Inc | Publishing system for intranet |
6996776, | May 16 2000 | International Business Machines Corporation | Method and system for SGML-to-HTML migration to XML-based system |
6996781, | Oct 31 2001 | BADGER I, LLC | System and method for generating XSL transformation documents |
7039861, | Mar 29 2002 | Ricoh Company, LTD | Presentation data-generating device, presentation data-generating system, data-management device, presentation data-generating method and machine-readable storage medium |
7047498, | May 07 1999 | KNOA SOFTWARE, INC | System and method for dynamic assistance in software applications using behavior and host application models |
7096424, | Sep 09 1998 | Ricoh Company, Ltd. | Automatic adaptive document printing help system |
7120622, | Jun 10 2002 | Xerox Corporation | Authoring tools, including content-driven treetables, for fluid text |
7162697, | Aug 21 2000 | OPENTV, INC | System and method for distribution of interactive content to multiple targeted presentation platforms |
7174370, | Apr 17 2001 | FIORANO TECHNOLOGIES INC | System and methodology for developing, integrating and monitoring computer applications and programs |
7177403, | Sep 24 2001 | TELEWARE, INC | Event driven multi-media communication management system |
7185274, | Dec 07 1999 | Microsoft Technology Licensing, LLC | Computer user interface architecture wherein users interact with both content and user interface by activating links |
7263522, | Jul 23 2001 | Hewlett-Packard Development Company, L.P. | System and method for user adaptive software interface |
7305380, | Dec 15 1999 | GOOGLE LLC | Systems and methods for performing in-context searching |
7472349, | Jun 01 1999 | Oracle International Corporation | Dynamic services infrastructure for allowing programmatic access to internet and other resources |
7506257, | Jun 30 1999 | Microsoft Technology Licensing, LLC | System and method for providing help contents for components of a computer system |
7519578, | Oct 03 2003 | Microsoft Technology Licensing, LLC | Ubiquitous search framework |
7523095, | Apr 29 2003 | International Business Machines Corporation | System and method for generating refinement categories for a set of search results |
7716158, | Jan 09 2004 | Microsoft Technology Licensing, LLC | System and method for context sensitive searching |
20020015056, | |||
20020073057, | |||
20020087535, | |||
20020138479, | |||
20020169856, | |||
20020184401, | |||
20020194166, | |||
20030037076, | |||
20030059001, | |||
20030144911, | |||
20030217052, | |||
20030220908, | |||
20030229900, | |||
20040083431, | |||
20040107193, | |||
20040194141, | |||
20050050000, | |||
20050065773, | |||
20050097188, | |||
20050114757, | |||
20050131920, | |||
20050229099, | |||
20050229252, | |||
20080140705, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 07 2004 | Microsoft Corporation | (assignment on the face of the patent) | / | |||
Aug 13 2004 | CHANDRASHEKAR, SRIDHAR | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015066 | /0613 | |
Aug 13 2004 | ROGERSON, DALE E | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015066 | /0613 | |
Aug 13 2004 | MCROBERTS, J SHANE | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015066 | /0613 | |
Aug 13 2004 | DONG, WENLONG | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015066 | /0613 | |
Aug 13 2004 | REDDISH, ANDREW D | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015066 | /0613 | |
Oct 14 2014 | Microsoft Corporation | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034541 | /0477 |
Date | Maintenance Fee Events |
Apr 01 2013 | ASPN: Payor Number Assigned. |
Apr 01 2013 | RMPN: Payer Number De-assigned. |
Jul 25 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 02 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Aug 03 2022 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 15 2014 | 4 years fee payment window open |
Aug 15 2014 | 6 months grace period start (w surcharge) |
Feb 15 2015 | patent expiry (for year 4) |
Feb 15 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 15 2018 | 8 years fee payment window open |
Aug 15 2018 | 6 months grace period start (w surcharge) |
Feb 15 2019 | patent expiry (for year 8) |
Feb 15 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 15 2022 | 12 years fee payment window open |
Aug 15 2022 | 6 months grace period start (w surcharge) |
Feb 15 2023 | patent expiry (for year 12) |
Feb 15 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |