IP Library Granted Patent US 7,587,378
Granted Patent B2
US 7,587,378 · App. 11/380,494 · Granted Sep 8, 2009

Embedded rule engine for rendering text and other applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,587,378
App. No.
11/380,494
Granted
Sep 8, 2009
Kind
B2
Abstract

A computing apparatus includes a display to present human-readable information and a user input facility. A rule data store contains a statement of rules governing prescribed aspects of presenting data upon the display. These aspects include those aspects subject to variation by language whenever the following changes: type of data, and/or nature of user-operation being performed involving the data. A rules engine is configured to implement the rules. One or more common programs are configured to recognize conditions for applying the rules, and in response, to invoke the rules engine.

Claims (53)

1. A handheld computing apparatus, comprising:

a display to present human-readable information;

a user input facility; and

a digital data processing apparatus coupled to the display and the user input facility and programmed to provide the following:

at least one application program module programmed to perform designated application program tasks and currently configured such that output is presented in a current operating language, the application programs module further programmed to perform operations comprising:

responsive to events requiring the application program module to present given data, before any presenting of said given data the application program determining any of: (1) if a type of said given data matches any entry of a predetermined type listing, (2) if an operation being performed by said application program upon said given data matches any entry of a predetermined operation listing;

where entries of the type listing include various data types all having the following in common: different languages would require presentation of data of said data types differently solely due to said type of data and independent of any translation;

where the entries of the operation listing include various operations having the following in common: different languages would require presentation of data undergoing any of said operations differently solely due to a nature of said operation and independent of any translation;

if said determining operation answers NO, then the application program module presenting the data;

if said determining operation answers YES, then the application program module refraining from presenting said given data and instead performing operations including invoking a rules engine as to said given data and identifying the current operating language to the rules engine and thereafter instead of presenting the given data presenting manipulated data returned by the rules engine;

a rules module prescribing rules to manipulate any of data matching said type listing or said operation listing for presentation appropriate to said current operating language, said manipulation being independent of translation;

a rules engine responsive to being invoked by any of the application programs modules to perform operations comprising identifying in said rules module each rule applicable to the given data and the current operating language, applying the identified rule to manipulate the given data for presentation appropriate to the current operating language, and returning the manipulated data to the application program module that invoked the rules engine.

2. The apparatus of claim 1 , where:

the type listing entries include all of the following data types: dates, times, currency, numbers;

the operation listing entries include all of the following operations performed by said application program module upon data: hyphenation of data, sorting of data.

3. The apparatus of claim 1 , where said different languages include any of different dialects and locales.

4. The apparatus of claim 2 , further comprising:

a selectively activated update module programmed to respond to activation by performing operations including obtaining updates from a remote location and applying the updates to the rules module, the updates including rules to manipulate any of data matching said type listing or said operation listing for presentation appropriate to one or more additional languages different than the current operating language, said manipulation being independent of translation.

5. The apparatus of claim 1 , where the type listing further includes words having predetermined constituent letters requiring font adjustments in one or more languages.

6. The apparatus of claim 1 , where the type listing further includes inherently ambiguous user keypad input with multiple interpretations and where the rules include disambiguation guidelines for resolving user input with multiple interpretations against a vocabulary in the current operating language.

7. The apparatus of claim 1 , where said rules include rules to display graphics elements appropriate to the current operating language.

8. The apparatus of claim 1 , where the rules comprise regular expressions prescribing different manipulations of input strings to output strings.

9. The apparatus of claim 1 , where said rules include rules to replace one or more text characters with one or more different characters.

10. The apparatus of claim 1 , where:

said rules include rules to reorder characters of a text string.

11. The apparatus of claim 1 , where said rules include rules to find syllable boundaries and hyphenate text as appropriate to said current operating language.

12. The apparatus of claim 1 , where said rules include rules to sort text as appropriate to the current operating language.

13. The apparatus of claim 1 , where said rules include rules to observe a format of representing one or more of the following in a manner appropriate to the current operating language: numbers, currency, date, time.

14. The apparatus of claim 1 , where said rules include rules to represent menu text of the application program module according to the current operating language.

15. The apparatus of claim 1 , where said rules include rules to represent system or program messages of the application program module in the current operating language.

16. A computer-implemented method of operating a handheld computing apparatus including a display to present human-readable information, a user input facility, and a digital data processing apparatus coupled to the display and the user input facility and programmed to provide at least one application program module, a rules module, and a rules engine, the method comprising operations of:

the application program module performing designated application program tasks and presenting output in a current operating language, the application program module performing further operations including;

responsive to events requiring the application program module to present given data, before any presenting of said given data the application program determining any of: (1) if a type of said given data matches any entry of a predetermined type listing, (2) if an operation being performed by said application program upon said given data matches any entry of a predetermined operation listing;

where entries of the type listing include various data types all having the following in common: different languages would require presentation of data of said data types differently solely due to said type of data and independent of any translation;

where the entries of the operation listing include various operations having the following in common: different languages would require presentation of data undergoing any of said operations differently solely due to a nature of said operation and independent of any translation;

if said determining operation answers NO, then the application program module presenting the data;

if said determining operation answers YES, then the application program module refraining from presenting said given data and instead performing operations including invoking a rules engine as to said given data and identifying the current operating language to the rules engine and thereafter instead of presenting the given data presenting manipulated data returned by the rules engine;

the first rules module prescribing rules to manipulate any of data matching said type listing or said operation listing for presentation appropriate to said current operating language, said manipulation being independent of translation;

the rules engine responding to being invoked by any of the application program modules to perform operations comprising identifying in said first rules module each rule applicable to the given data and the current operating language, applying the identified rule to manipulate the given data for presentation appropriate to the current operating language, and returning the manipulated data to the application program module that invoked the rules engine.

17. The method of claim 16 , the handheld computing apparatus further including a selectively activated update module, and the method further comprising:

the update module responding to activation by performing operations including obtaining updates from a remote location and applying the updates to the rules module, the updates including rules to manipulate any of data matching said type listing or said operation listing for presentation appropriate to one or more additional languages different than the current operating language, said manipulation being independent of translation.

18. The method of claim 16 , the operations further comprising charging a fee to a user of the handheld computing apparatus in exchange for providing the updates.

19. A digital data processing apparatus for use in a handheld computing device having a display to present human-readable information and a user input facility, where said digital data processing apparatus comprises circuitry of multiple interconnected electrically conductive elements arranged to provide components including:

at least one application program module programmed to perform designated application program tasks and currently configured such that output is presented in a current operating language, the application programs module further programmed to perform operations comprising:

responsive to events requiring the application program module to present given data, before any presenting of said given data the application program determining any of: (1) if a type of said given data matches any entry of a predetermined type listing, (2) if an operation being performed by said application program upon said given data matches any entry of a predetermined operation listing;

where entries of the type listing include various data types all having the following in common: different languages would require presentation of data of said data types differently solely due to said type of data and independent of any translation;

where the entries of the operation listing include various operations having the following in common: different languages would require presentation of data undergoing any of said operations differently solely due to a nature of said operation and independent of any translation;

if said determining operation answers NO, then the application program module presenting the data;

if said determining operation answers YES, then the application program module refraining from presenting said given data and instead performing operations including invoking a rules engine as to said given data and identifying the current operating language to the rules engine and thereafter instead of presenting the given data presenting manipulated data returned by the rules engine;

a rules module prescribing rules to manipulate any of data matching said type listing or said operation listing for presentation appropriate to said current operating language, said manipulation being independent of translation;

a rules engine responsive to being invoked by any of the application program modules to perform operations comprising identifying in said rules module each rule applicable to the given data and the current operating language, applying the identified rule to manipulate the given data for presentation appropriate to the current operating language, and returning the manipulated data to the application program module that invoked the rules engine.

20. The apparatus of claim 1 , further comprising:

a second rules module prescribing rules to manipulate any of data matching said type listing or said operation listing for presentation appropriate to a further language different than said operating language, said manipulation being independent of translation.

Assignments (7)
RELEASE (REEL 052935 / FRAME 0584) Recorded Jan 2, 2025
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: CERENCE OPERATING COMPANY
Reel/Frame 069797/0818 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE THE CONVEYANCE DOCUMENT WITH THE NEW ASSIGNMENT PREVIOUSLY RECORDED AT REEL: 050836 FRAME: 0191. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 19, 2022
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE OPERATING COMPANY
Reel/Frame 059804/0186 →
SECURITY AGREEMENT Recorded Jun 15, 2020
From: CERENCE OPERATING COMPANY
To: WELLS FARGO BANK, N.A.
Reel/Frame 052935/0584 →
RELEASE OF SECURITY INTEREST Recorded Jun 12, 2020
From: BARCLAYS BANK PLC
To: CERENCE OPERATING COMPANY
Reel/Frame 052927/0335 →
SECURITY AGREEMENT Recorded Nov 7, 2019
From: CERENCE OPERATING COMPANY
To: BARCLAYS BANK PLC
Reel/Frame 050953/0133 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 050836 FRAME: 0191. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY AGREEMENT. Recorded Oct 29, 2019
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE OPERATING COMPANY
Reel/Frame 050871/0001 →
INTELLECTUAL PROPERTY AGREEMENT Recorded Oct 23, 2019
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE INC.
Reel/Frame 050836/0191 →