throbber
United States Patent
`5,584,024
`{11} Patent Number:
`Dec. 10, 1996
`[45] Date of Patent:
`Shwartz
`
`
`19;
`
`00
`
`[54]
`
`INTERACTIVE DATABASE QUERY SYSTEM
`AND METHOD FOR PROHIBITING THE
`SELECTION OF SEMANTICALLY
`INCORRECT QUERY PARAMETERS
`
`FOREIGN PATENT DOCUMENTS
`0287310
`10/1988 European Pat. Off.
`........ GO6F 15/40
`0387226
`9/1990 European Pat. Off.
`........
`
`
`Japan secsssessessssccccssssenseensee GO6F 7/28
`63-219034
`9/1988
`
`[75]
`
`Inventor: Steven P. Shwartz, Orange, Conn.
`
`OTHER PUBLICATIONS
`
`.
`[73] Assignee: Software AG, Germany
`
`[21] Appl. No.: 217,099
`[22]
`Filed:
`Mar. 24, 1994
`[51]
`Int. Choeen GO6F 17/30; GO6F 17/27
`[52] US. Che cccccccscsusecsecce 395/604; 395/922; 395/757;
`364/274.2; 364/275.4; 364/283.3; 364/DIG. 1;
`364/972.2; 364/974.6; 364/DIG. 2
`[58] Field of Search ou... 395/600, 922;
`364/419.01, 419.07, 974.6, 972.2, 274.2,
`974.7. 275.1. 275.4, 283.3. 282.1
`”
`”
`™
`~
`.
`
`[56]
`
`.
`References Cited
`
`U.S. PATENT DOCUMENTS
`3/1985 Shaw et al. sasscssssscsereresenee 364/300
`4,506,326
`.. 364/300
`8/1987 Thompsonetal. ..
`4,688,195
`
`.. 3647200
`8/1987 Grant
`rssssssseeen
`4,689,737
`5/1988 Katayamaetal........
`"364/419
`4.736.296
`
`3/1989 Hikita et al. wu.
`.. 364/200
`4,811,207
`... 364/200
`5/1989 Tennantetal.......
`4,829,423
`
`.. 364/900
`6/1989 Deerwesteret al.
`.
`4,839,853
`
`3/1990 Loatmanetal. .
`«. 364/419
`4,914,590
`... 364/300
`5/1990 Touetal.......
`4,930,071
`
`
`w 364/419
`5/1990 Ohiiraetal.......
`4,931,935
`7/1990 Miyamotoetal...
`.. 364/513
`4,943,933
`-- 364/900
`11/1990 Amirghodsietal.
`4,974,191
`. 364/419
`2/1991 Asakawa...
`4,994,967
`
`
`
`-- 364/419
`3/1992 Carlgren et al
`5,099,426
`......
`w+ 395/161
`ooreos 0toes ouck et al.
`ee“71993 5 oe et a
`™ soe
`
`”
`al.
`3237502
`81993 White ein ef
`5237,
`ite et al.
`......
`.. 364/419
`
`5,255,386
`10/1993 Prager..........
`... 395/600
`"364/419
`5,265,014
`11/1993 Haddock et al
`.. 395/600
`5,265,065
`11/1993 Turtle ........
`
`.
`5,349,526
`9/1994 Potts, Sr. et al.
`364/419.1
`....essesssseesesses 395/600
`5,386,556
`1/1995 Hedim et al.
`
`
`
`Wu, “A Knowledge-Based Database Assistant With A Menu
`Based Natural Language User—Interface” 10 Oct. 1993,
`JEICI: Trans. Inf. & Syst. V. E76-D N. 10 pp. 1276-1287.
`(List continued on next page.)
`Primary Examiner—Wayne Amsbury
`Assistant Examiner—Jack M. Choules
`.
`.
`:
`Auomey,Agent,orFirmHowrey & Simon; C. Scott
`,
`,
`[57]
`ABSTRACT
`th
`:
`A datab
`tem
`includ
`that
`atabase query system includes a query assistant
`permits the user to enter only queries that are both syntac-
`tically and semantically valid (and that can be processed by
`an SQL generator to produce semantically valid SQL).
`Through the use of dialog boxes, a user enters a query in an
`intermediate English-like language which is easily under-
`stood by the user. A query expert system monitors the query
`asitis meine built, and using information apoee structure
`OF
`the database,it prevents the user
`trom building seman-
`tically incorrect queries by disallowing choicesin the dialog
`boxes which would create incorrect queries. An SQL gen-
`«erator is also provided which uses a set of transformations
`and pattern substitutions to convert the intermediate lan-
`guage into a syntactically and semantically correct SQL
`query.
`
`The intermediate language can represent complex SQL
`queries while at the same time being easy to understand. The
`intermediate language is also designed to be easily con-
`verted into SQL queries. In addition to the query assistant
`and the SQL generator, an administrative facility is provided
`which allows an administrator to add a conceptual layer to
`the underlying database makingit easier for the user to query
`the database. This conceptual layer may contain alternate
`ae
`names for columnsand tables, paths specifying standard and
`.
`ve
`:
`complex joins, definitions for virtual tables and columns,
`and limitations on user access.
`
`27 Claims, 26 Drawing Sheets
`
`User
`
`
`
`
`
`3
`
`Database
`
`A
`d
`m
`1
`a
`i
`s
`t
`
`F°
`

`r
`
`
`
`10
`
`Query
`Assistant
`
`Q
`u
`e
`r
`Esperant
`y
`Language
`Query
`s
`,
`20
`t
`SQL
`e
`Generator
`m
`
`
`
`Page | of 63
`
`GOOGLEEXHIBIT 1022
`
`GOOGLE EXHIBIT 1022
`
`Page 1 of 63
`
`

`

`5,584,024
`Page 2
`
`OTHER PUBLICATIONS
`
`Wu et al, “KDA: A Knowledge-Based Database Assistant
`With Query Guiding Facility” 5 Oct. 1992, pp. 443-453,
`IEEE Transactions On Knowledge & Data Eng. V. 4 N. 5.
`Cha, “Kaleidoscope: A Cooperative Menu Guided Query
`Inerface (SQL Version),” 1990, IEEE, Artifical Intelligence
`Applications.
`Whitaker and Bonnell “Functional Modelling Of Intelligent
`Systems Using A Blackboard Model” 1992, pp. 1 to 12, The
`Journal Of Knowledge Eng. V 5, N. 1.
`Winston, P., “Language Understanding,” Artificial Intelli-
`gence, 9:291-334 (1984).
`Rich, E., “Natural Lanugage Interfaces,” Computer, pp.
`39-47 (Sep. 1984).
`Manferdelli, J. L., “Natural Language Interfaces: Benefits,
`Requirements, State of the Art and Applications,” A/ East,
`Oct. 1987.
`Schank, R. C., et al, “Inside Computer Understanding: Five
`Programs Plus Miniatures,” 14:354-372, LEA, Publishers,
`Hillsdale, NJ (1981).
`Hendrix, G., “The Lifer Manual: A Guide to Building
`Practical Natural Language Interfaces” (Technical Note
`138); SRI International, Feb. 1977.
`
`Hendrix, G., “Human Engineering for Applied Natural Lan-
`guage Processing” (Technical Note 139); SRI International,
`SRI Project 740D32 CTC, Feb 1977.
`Kao, M., et al, “Providing Quality Responses with Natural
`Language Interfaces: The Null Value Problem,” JEEE 14:7,
`959-984,Jul., 1988.
`
`Chapter 6, “Queries,” Building Access Z Applications, 1995.
`Chapter 8, “Using Query by Example,” Using Access 2 for
`Windows, Sp. Ed.
`Chapter 9, “Querying Your Data,” Inside Paradox 5 for
`Windows, 1994.
`
`Cinque,L., et al, “An Expert Visual Query System,” J. Vis.
`Lang. and Comp., 2:101-113 (1991).
`
`Meng,W., et al. “A Theory of Translation From Relational
`Queries to Hierarchial Queries,” JEEE Transactions on
`Knowledge and Data Engineering, 7:2, 228-245, Apr. 1995.
`Jakobson, G., et al, “CALIDA: A System for Integrated
`Retrieval from Multiple Heterogeneous Databases,” Pro-
`ceedings of the 3rd Int'l] Conf. on Data and Knowledge
`Bases:
`Improving Usability and Responsiveness,
`Jun.
`28-30, Jerusalem, Israel.
`
`Page 2 of 63
`
`Page 2 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 1 of 26
`
`5,584,024
`
`
`
`
`
`USTO- STATE| ZIP_|SALESNAME CITY |CREDIT_|BALANCE
`
`
`
`
`
`
`OQ
`
`|TBterertoa[MBFT fTSmse
`
`
`2|Barn Door
`Furniture
`
`[Boston
`| 3iBond Dinettes
`22827|~~ 4f_—«50000
`500
`| {Carroll Cut-Rate |Los Angeles
`23019
`50000
`|
`
`
`pemaetaeparece eee
`5
`
`
`eeEeSalvage
`
`Ce,
`Furniture
`
`/—GiistaDesigns—[StamfordJOT|2es6]5] —soanoa0
`
`
`
`zeaeo]|so000[
`FIG. 1A
`
`1]American
`
`New Haven
`
`|CT
`
`16516
`
`1]
`
`65000
`
`85000
`
`New York
`
`NY
`
`1101
`
`co
`
`50000
`
`75000
`
`Showrooms
`
`
`
`PRODUCTS
`PRO- GROUP_|TYPE_} ABC_}PRICE |VENDOR|NAME ALT_
`
`
`
`
`
`
`
`DUCT# ID)|CODID # |VENDOR
`
`
`#
`
`|____ColonialBedroomSet|100]600jB_s|Save]]SCS
`
`
`
`
`
`Set
`|___4{5Pc.LivingRoomSet]100]500/As[|4805|tC
`|___5\Crib/DresserSet__[100]400[B_[oes]Ssi]si(itisCd
`
`|BunkBed_|100] 00|r]SC
`
`|7)3Pe.DiningRoomSei100_s00|A___|005]al!——*d
`
`
`|84Po.OfficeSet_—|200300fB_|005]
`[achitsDesk[___t00fooo|_a0gf_——sfSS
`
` a
`
`
`Tables Set
`
`Page 3 of 63
`
`Page 3 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 2 of 26
`
`5,584,024
`
`
`
`po VENDORS
`
`
`
`CODE_TEXT
`-
`| 100/Home Furnishings
`Office Furnishings
`
`|@wmNT”n
`
`
`uvenile Furnishings
`Occasional Furnishings
`
`
`Page 4 of 63
`
`Page 4 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 3 of 26
`
`5,584,024
`
`Oo:
`
`ooooo1}
`
`USTO
`FREIGHT_
`SHIP_
`STATUS
`O
`MER#
`PERSON
`
`DOLLARS=-)
`DATE
`
`i
`aa}1992-41-15]
`pe
`
`
`
`
` [COysryMmkeOaoDhb™NPh|CO[COJ[xSINheONETRON2OOR1pseePSSAESooPSEP[SOPTTleoTEPTFSISLAPoLUELTarEONTED?|DP[OP[SSES|aePP[DPLyPIDQP(OleIPI[OmpSESay[OeWi}WuNIPONE|oe1T'1vryONyoTINYPENTPODPONJOINTSTLOLNTPONTOTOLocaD>{|SD?D/|am/H|ari~mawefmEm|OD1OD|GD|Od|OD|OD|[OD|ODJFDIDFf—|[|—1D[HDMH|HDLDID[D/H|-—1HJINIeINTPeUTNyctOla=D2DIDININAUNIQUIQNNTODEQNUIONIIONION
`
`
`O}1|Oweeeeoeeeii—I1o—_—1HI—a—~[7
`
`aoOo|[LOTTLO[eeILO|O[LO|SD/OtO[OO[LOTANTOITNFloLO|eLON|TICOFCOLL<Gwolrcoce|N[09[I[ONPCOTRENFLOF<CVO][COFCO
`
`
`
`lOspOlOlae/[SlOlOlqofjosolololaojoxfeemwefelefeeeeeeeeeeeeeieeeeieenenmemeeePISPOPEJOSSJOJOOOO[SO[OSsOjOsolfojsOlololjolojol|oloDB11S[CO[SO[ONS[OLS[OOOlS[SPJOlOl/Sslaol/Olql/Olsiqgloso/oelcoiaINIAINS[OO[OE[SO[OfSl[OlClOJOlOl/Sl[Sl[OsOl[OSslol/OSsljolOoiol/oloclosjoloals|oSOOO[SOOlOOslOEJlOse[Os[OPO 1aLo[=LoIO|oOLCO(MILOj[LOfLOl/mIaIloiqWOlOlO/Ol(/Cl/oO!oO[Od|D>1S?|D>[DID[D/HIDD|/DIDIDIMD/[DIN|[DHIDIN([D!IDIN1Di
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`<——WD——|YKLO[COPTIT[MOLO
`
`TIN[OOPSPOLOIRM[DWIDLOl[THINl[oOlplolOlrRlO!HD/O[—IN/eolst[tojoo[rm[a[amSPSJOlSlOQliQlpCpePosel(TPoCICINININAINENQIAIN
`
`
`
`
`
`
`
`=r—N+NSNScoNNS—_——_bheed
`
`
`|6B
`
`O
`pe
`
`|||p
`
`e
`Pe
`
`|B
`
`o
`
`1992-2-24
`
`1992-3-27
`
`39540] 124
`47320| 124
`
`6010] 124
`3225
`12005] 124
`36240]
`
`25110
`
`1992-3-22
`1992-6-28
`1992-10-10
`
`124
`1992-4-10
`4
`124, 4]--1992-7-29
`124
`1) 1992-11-12
`1244 st} 1992-5-15
`124
`1
`1992-8-22
`a)
`
`1992-6-25
`
`1992-8-25
`
`2 1
`
`24
`3} 1992-11-24
`1244 3]: 1992-1-24
`1244 3}: 1992-4-26
`3]
`1992-7-29
`124
`
`62
`
`1992-2-27
`
`1992-5-26
`
`6150
`
`—_——
`
`<<|
`
`FIG. 1F
`
`Page 5 of 63
`
`Page 5 of 63
`
`
`
`
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 4 of 26
`
`5,584,024
`
`LINE_ITEMS
`
`ORDER#
`
`Qo.
`
`CmcoLL~GO
`
`<a©WwW
`
`10000
`
`—)
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`100000
`
`FIG. 1G
`
`Page 6 of 63
`
`thTONEeepmERNEEOD[PLOF<TN09[et[00Pe[eeeeeRPeIe
`Te.=—_!
`
`lacWWCerOHeTNTOTTo~~oO
`eeetO~OQ©ao
`stSTToeoPmIONTC
`oOl™NNonNN
`TINOPS[LS[alSISOL/LO[wofro|w[rnfolml(o
`Seeeeeiefieeeeeeme
`
`
`spojpoloasloqojolo|l|c!|coPIOPOLO[OPOLOlSOjoVGiololselol/olqclJoloClOlOlO/OjOslOliel/@lWVsIoClolol/os/ol/ol[ol|oSIOlOlOlOsOlOloleo{CIOOOfoo/OsOJOOsoOiql/ol/elolioljo!lco
`
`
`
`
`
`DjlOlO(OOJeeerecyeae
`TTIONODO09109[OO(OOPtPSstpt[se
`_—
`
`a>OocLum<==
`
`woTesNoo[9[REN
`
`4
`
`—_——
`
`2
`
`4
`
`1 N
`
`3
`
`Page 6 of 63
`
`
`
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 5 of 26
`
`5,584,024
`
`
`
`LINE_ITEMS
`
`|aF
`T||[
`
`
`
`tooooze]foSC
`ee
`of
`eySC~—~SYSC“‘CSSC~*
`
`
`
`FIG. 1G (Continued)
`
`Page 7 of 63
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ORDERED}
`ORDERED
`roo,tCCSC~‘“S
`Proooor)atSSCSCCSSCS
`FC
`a|
`0|
`iooooie]af
`
`aAt
`
`o000g]a]ofTF
`2|
`tooo]fCSSCS
`
`Ai
`
`oooaza]a]CSCC
`tooooz|afCSCSCiYSC;C;*~CS
`rroooaas|ifCi
`Ftooon2e)af
`
`Page 7 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 6 of 26
`
`5,584,024
`
`Query Builder
`
`Tables
`
`pst|DBooOrder
`
`—
`Conditions
`
`Figure 2A
`
`Tables
`
`CUSTOMER.DB
`
`Query Builder
`
`Sort Order
`
`NAME
`STATE
`
`Figure 2B
`
`Page 8 of 63
`
`Page 8 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 7 of 26
`
`5,584,024
`
`SELECT
`NAME
`STATE
`BALANCE
`
`FROM
`
`CUSTOMER.DB
`ORDER BY
`NAME
`
`Figure 2C
`
`Conditions
`CREDIT > 50000
`
`STATE
`
`
`
`
`Connector Operator—ExpressionField
`
`Co CT
`
`Figure 2D
`
`Page 9 of 63
`
`Page 9 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 8 of 26
`
`5,584,024
`
`
`
`Query Builder
`
`|
`
`Tables
`CUSTOMER.DB
`
`
`
`Fields
`
`NAME
`
`
`STATE
`BALANCE
`
`
`NAME
`
`STATE
`
`Conditions
`
`
`
`CREDIT > 50000
`
`
`Sort Order
`
`
`
`
`
`Figure 2E
`
`
`
`AME
`STATE {BALANCE
`
`I
`CT
`85000
`>3 @m =O°om S oO=.QO=a © =S
`
`
`Block
`|CD
`
`
`
`orch And Patio
`Figure 2F
`
`Page 10 of 63
`
`Page 10 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 9 of 26
`
`5,584,024
`
`Tables
`CUSTOMER.DB
`
`Query Builder
`Fields
`
`Sort Order
`
`NAME
`STATE
`
`Conditions
`
`CREDIT > 50000
`
`
`
`Group B
`SALESPERSON#
`
`Having
`SUM(BALANCE)> $80,000
`
`Figure 2G
`
`
`
`Join Tables
`
`
`
`ORDER.DB
`CUSTOMER.DB
`
`
`
`
`
`ORDER#
`CUSTOMER#
`
`CUSTOMER#
`NAME
`
`
`
`
`
`
`ORDER_DATE
`CITY
`
`
`
`
`ORDER_DOLLARS
`STATE
`
`
`
`FREIGHT_DOLLARS
`ZIP_CODE
`
`
`
`SALESPERSON#
`SALESPERSON#
`
`
`
`
`SHIP_DATE
`CREDIT
`
`
`
`STATUS
`BALANCE
`
`
`
`
`Figure 2H
`
`Page 11 of 63
`
`Page 11 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 10 of 26
`
`5,584,024
`
`order by 2 desc;
`
`Natural Language
`File Questions Report Column/Table Configure Query Graph Help
`Natural Language
`: What were the 5 most commondefects last month?
`Whatwere the 5 defects that occurred the most in June, 1991
`Defect
`Count
`Contamination
`1213
`Damagein handling
`516
`Surfacefinish
`423
`Bad soldering
`315
`Cracked board
`273
`: Show the SQL
`List the query.
`Query for: What were the 5 most commondefects last month?
`select repair.def_cd, count(repair.mod_pn)
`from repair
`where repair.tstr_strt>='6/1/1991'
`and repair.tstr_strt<'7/1/1991'
`group by repair.def_cd
`
`Figure 3A
`
`Page 12 of 63
`
`Page 12 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 11 of 26
`
`5,584,024
`
`File Edit Questions Notes Topics Configure
`Questions
`Edit Question
`
`Showall
`Questions
`
`Hel
`
`Browse
`Questions
`
`eachfactory.
`
`Which products are manufacturedin Biloxi?
`How manyrepairs did we perform last week?
`List the top 5 defects last month.
`Comparetotal defects this month to last month.
`Whichstation performed the most repairs?
`List all the sourcesof bolts.
`Whosupplies the best panels?
`Whenwascontrolplan z-557 updated?
`How many units were producedafter 6/1/91
`When is xz989 duefor calibration?
`Showtheyields for each factory.
`Pie chart the total units produced by
`
`Figure 3B
`
`Page 13 of 63
`
`Page 13 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 12 of 26
`
`5,584,024
`
`Administrator
`
`
`
`“7
`!
`
`
`
`
`moment
`Natural
`Developer
`
`
`
`
`
`System
`Language
`Toolkit
`
`
`
`
`Interface
`
`
` Oracle
`Meaning
`DBMS
`Representatiion
`Tables
`
`
`
`
`Database
`Expert
`System
`
` Retrieval
`!
`Generator
`Generator
`
`
`Specification
`
`Navigator/
`MQL
`
`MQL
`
`Oracle SQL
`
`SQL
`
`Fig. 4
`
`Page 14 of 63
`
`Page 14 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 13 of 26
`
`5,584,024
`
`User
`
` 10
`
`Q
`u
`e
`r
`y
`
`S
`
`y
`
`S
`t

`m
`
`A
`d
`m
`i
`n > [Conceptual
`Layer
`
`2
`
`Ss
`
`2
`
`t
`0
`r
`
`FIG. 5
`
`Page 15 of 63
`

`Assistant
`
`Esperant
`Language
`Query
`
`|
`
`
`
`SQL
`Generator
`
`
`
`3
`
`Database
`
` Query
`
`Page 15 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 14 of 26
`
`5,584,024
`
`SALESPEOPLE
`
`VENDORS
`
`CODES
`
`CUSTOMERS
`
`@
`
`@
`
`PRODUCTS
`
`ORDERS
`
`LINE_ITEMS
`
`FIG. 6
`
`Page 16 of 63
`
`Page 16 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 15 of 26
`
`5,584,024
`
`Query Assistant Expert System 12 Query Assistant 10
`
`Blackboard
`
`13
`
`Query Assistant
`User Interface
`(QAUI)
`
`(QAES)
`
`FIG. 7
`
`Page 17 of 63
`
`Page 17 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 16 of 26
`
`5,584,024
`
`50
`
`User Initiates
`Query
`
`|
`
`52
`
`Blackboard is
`initialized
`
`
`
`
` QAESprovides
`a list of all selectable
`
`tables, columns, and/or
`
`
`
`Intermediate Lang.
`operationsto the
`
`representation is
`
`
`updated
`64
`
`
`
`Intermediate Lang.
`
`
`
`QAUI
`representation is
`
`
`distinguishes
`
`cleared
`
`nonselectables
`
`
`
`QAUI creates the correct
`
`dialog box and requestslist
`of selectable, tables,
`columns and/or operations
`
`
` Blackboardis
`
`
`updated with
`user's choice
`
`
` Did
`
`
`
`user select
`
`to clear the
`query?
`
`
`FIG. 8
`
` Did
`
`user select to
`
`
`Page 18 of 63
`
`Page 18 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 17 of 26
`
`5,584,024
`
`File Que
`
`Options Window Help
`
`SQL Query
`
`User Query
`
`Fig. 9
`
`Page 19 of 63
`
`Page 19 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 18 of 26
`
`-—
`
`5,584,024
`
`121d
`
`121a
`
`121
`
`EE
`
`
`
`120
`
`
`
`
`
`
`"Show|Template . 122a
`
`@| Show...
`© For... © SortedBy...
`Run Query
`122b
`
`
`
`
`0) With % ofTotal... NY
`[Cancet|
`129
`
`
`
`
`121c
`121b
`
`
`
` Computation...
`Select Items For Show Clause
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Min|None|
`[ff|ffPOSH
`128
`124
`430h
`
`130c
`
`fi
`
`129
`
`FIG. 10A
`
`Page 20 of 63
`
`
`
`127b
`
`
`
`
` 125
`
`
`
`
`a30¢
`190d 130g
`
`123
`
`126
`
`130a
`
`130b
`
`an
`
`SelectAll
`Columns
`Tables
`
`
`
`MLRe HE COUNT OF CUSTOMERS
`
`
`CREDIT LIMIT
`CUSTOMER BALANCE
`
`CUSTOMERCITY
`CUSTOMER NAME
`
`Description
`
`a M
`
`odify Selected Columns
`
`—
`
`elete All
`
`Count
`
`Ave
`
`Page 20 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 19 of 26
`
`5,584,024
`
`121
`
`120
`
`Grate Show.Che|
`"Show ..."" Template[RunQuery_|122a
`© For... © Sorted By ...
`Run Query
`@ Show...
`
`CO With % of Total...
`
`Select Items For Show Clause
`
`Tables
`
`Columns
`
`Select All
`
`HE COUNT OF CUSTOMERS
`
`Min
`
`Description
`
`Customer Records.
`
`Modify Selected Columns
`CUSTOMERBA
`
`sy
`
`130
`
`129
`
`FIG. 10B
`
`Page 21 of 63
`
`Page 21 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 20 of 26
`
`5,584,024
`
`Create "Show..." Clause
`"Show..." Template
`@ Show...
`© For... © Sorted By...
`
`C) With % of Total...
`
`Select Items For Show Clause
`
`Tables
`
`Columns
`
`420
`
`a
`
`y
`
`130b
`
`CUSTOMER BALANCE
`CUSTOMER CITY
`
`USTOMER NAME
`
`
`
`Description
`
`The Customer's credit limit.
`
`Modify Selected Columns
`
`THE AVERAGE CUSTOMER BALAN
`
`FIG 10C
`
`Page 22 of 63
`
`Page 22 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 21 of 26
`
`5,584,024
`
`Computation
`
`|
`
`Mini
`O Intimum
`
`
`
`Select a column
`
`
`oO Total
`
`
`
`© Average O Maximum
`
`
`
`Tables
`Columns
`THE COUNT OF CUSTOMERS|
`
`USTOMERBALANCE
`
`
`USTOMER CITY
`YUSTOMER NAME
`
`,USTOMER NUMBER
`
` PRODUCTS
`
` Computation:
`
`135
`
`FIG 10D
`
`Page 23 of 63
`
`Page 23 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 22 of 26.
`
`5,584,024
`
`
`
`Create "Sorted By..." Clause
`
`
`
`R
`
`"Show ..." Template
`© Show...
`© For...
`@ Sorted By...
`un Query
`
`
`
`C1) With % of Total...
`
` Columns
`
` USTOMERCITY
`
`USTOMER NAME
`
`
`Select Items Already in the Show Clause
`
`
`THE AVERAGE CUSTOMER BALANCE
`
`
`
`
`
`
`
`Modify Selected Columns
`
`
`
`
`
`
`we
`
`140
`
`FIG 10E
`
`Page 24 of 63
`
`Page 24 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 23 of 26
`
`5,584,024
`
`Create "For..." Clause
`
`@ For...
`C1 With % of Total...
`
`O Sorted By .
`
`Run Query
`
`Backup
`
`Choose one of the following
`
`THAT HAVE
`THAT DO NOT HAVE
`
`select
`
`151
`
`FIG 10F
`
`Page 25 of 63
`
`Page 25 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 24 of 26
`
`5,584,024
`
`Create "For..." Clause
`
`"Show ..."" Template
`
`2 Ouer
`
`
`© Show... O Sorted By...[RunQuery|Query@ For...
`
`
`
`
`
`
`
` C] With % of Total...
`
`
`© Minimum
`
`
`
`
`
`
`PRODUCTS
`
`
`
`Description
`
`
`O Total
`
`Back
`
` .
`
`© Average O Maximum
`
`Columns
`
` Customer Records.
`
`FIG 10G
`
`160
`
`Page 26 of 63
`
`Page 26 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 25 of 26
`
`5,584,024
`
`402
`
`404
`
`Tokenize Word List }<——— Intermediate
`Language Query
`
`Convert by
`pattern substitution
`
`410
`
`Generate
`CREATE VIEW
`
`
`406
`
`matched patterns?
` YES
`
`NO
`
`
`Recursively call
`
`SQL generator
`for each view
`
`A Generator
` Convert to internal
`
`412
`
`£3
`
`format
`
`Convert WHEREby 416
`pattern subsitution
`
`
`
`YES
`
`
`matched patterns?
`
`NO
`
`418
`
`
`
`Convert table
`references
`
`Add ORDER BYcol.
`to SELECT
`
`Convert dates
`
`420
`
`422
`
`424
`
`FIG. 141A
`
`Page 27 of 63
`
`Page 27 of 63
`
`

`

`U.S. Patent
`
`Dec. 10, 1996
`
`Sheet 26 of 26
`
`5,584,024
`
`FIG. 11B
`
`426
`
`y
`Expand virtual
`columns
`
`428
`
`Create FROM Clause
`
`4
`
`30
`
`Convert ORDER BY
`to positional notation
`
`4
`
`32
`
`Compute joins paths
`
`434
`
`436
`
`FROM clause
`
`Add tables to
`
` 438
`
`440
`
`Add SELECT DISTINCT
`if necessary
`
`442
`Add GROUP BYand
`SUM if necessary
`
`Add COUNT(*)
`if necessary
`
`644
`
`Convert internal
`format to SQL
`
`————& SQL QUERY
`
`Page 28 of 63
`
`Page 28 of 63
`
`

`

`5,584,024
`
`1
`INTERACTIVE DATABASE QUERY SYSTEM
`AND METHOD FOR PROHIBITING THE
`SELECTION OF SEMANTICALLY
`INCORRECT QUERY PARAMETERS
`
`2
`In this example, the SELECT command defines which
`fields to use, the WHERE command defines a condition by
`which database records are selected, and ORDER BY key-
`5 words define how the output should be sorted. The FROM
`keyword defines in which tables the fields are located.
`Unfortunately, only a relatively small percentage of infor-
`mation required can besatisfied with such simple SQL
`BACKGROUND OF THE INVENTION
`The invention relates to a database querying tool, and 10 Most information needs, even very simple queries, require
`specifically to a database querying tool which will guide a
`complex SQL queries. For example,
`the SQL statement
`
`user to interactively create syntactically and semantically required to generatealist of orders that have more than two
`correct queries.
`products on backorder,is:
`
`
`(2)
`
`SELECT T1.ORDER#, TI.ORDER_DATE, T1.ORDER_DOLLARS
`FROM ORDERS T1
`WHERE 2 <(
`SELECT COUNT(*)
`FROM PRODUCTS T2, LINE_ITEMS T3
`WHERE T3.QTY_BACKORDERED> 0
`AND T2.PRODUCT# = T3.PRODUCT#
`AND T1.ORDER# = T3.ORDER#)
`
`30
`
`3
`
`This SQL statement contains two SELECTclauses, one
`End user workstations are being physically connected to 25
`nested with the other. For a user to know thatthis informa-
`central databases at an ever increasing rate. However, to
`tonaaet needs an sol eeinvolving this type of
`access the information contained in those databases, users
`nesting (known as a correlated
`subquery) implies some
`must create queries using a standardized query language
`understanding by the user of the relational calculus. How-
`hich j
`:
`is
`S
`4
`L
`which
`in most
`instances is
`Structured Query
`Language ,, ever, except for mathematiciansand peoplein the computer
`(SQL). Mostinformation system organizations considerit lo
`field, few users have this skill. The following are some
`unproductive to try and teach their users SQL. Asa result
`examples of database queries that require more complex
`there is an increasing interest in tools that create SQL for the
`SQL constructs:
`user using more intuitive methods of designating the infor-
`GROUP BY: Approximately 75% of all ad hoc queries
`mation desired from the database. These tools are generally 35 Tequire a GROUP BYstatement in the SQL. Examples
`called SQL Generators.
`include:
`Show total sales by division.
`Most SQLG
`t
`the market tod
`ear to hid
`
`
`
`
`
`ost Generators onthemarketSQL today app ° Show January sales of bedroom sets to Milford Furniture.
`the complexities of SQL from theuser. In reality, these tools
`Subqueries: The following are examples of database
`accomplish this by severely limiting the range of informa- 40 queries that require subquery constructs which appear as
`tion that can be retrieved. More importantly, these tools
`nested WHERE clauses in SOL:
`make it very easy for users to get incorrect results. These
`Show customersthat have children under age 10 and do
`problemsarise out of the reality that SQL is very difficult to
`not have a college fund.
`learn and use. Existing technologies designedto shield users
`Show orders that have more than 2 line items on backo-
`from the complexities of SQL can be grouped into three 45
`rder.
`categories: point-and-shoot menus; natural language sys-
`HAVING:The following are examples of database que-
`tems; and natural language menu systems. Each of these
`ties that require the HAVING construct:
`three categories of product/technology have architectural
`Show ytd expenses by employee for divisions that have
`deficiencies that prevent them from truly shielding users
`total ytd expenses over 15,000,000.
`from the complexities of SQL.
`Show the name and manager of salesmen that havetotal
`outstanding receivable of more than $100,000.
`CREATE VIEW:Thefollowing are examples of database
`queries that require the
`Limitati
`f
`SOL As An E
`CREATE VIEWsyntax:
`imitations of S Canewee nd User Query
`Show ytd sales by customer with percent oftotal.
`;
`;
`;
`Whatpercent of my salesmen have total ytd sales under
`SQLis, on the whole, very complex. Some information
`$25,000?
`requirements can be satisfied by very simple SQLstate-
`
`ments. For example, to produce from a databasealist of UNION:Thefollowing are examples of database queries
`customer names and phones for New York customers sorted
`that require the UNIONconstruct:
`:
`:
`60
`by zip code, the following SQL statement could be used:
`Show ytd sales for Connecticut salesmen compared to
`
`New York salesmen sorted by product name.
`Show QI sales compared to last year Q1 sales sorted by
`salesman.
`Thus, common information needs require complex SQL
`that is likely to be far beyond the understanding of the
`business people that need this information.
`
`d)
`
`SELECT NAME, PHONE
`FROM CUSTOMERS
`WHERE STATE = ‘NY’
`ORDERBY ZIP_CODE
`
`
`65
`
`Page 29 of 63
`
`Page 29 of 63
`
`

`

`5,584,024
`
`3
`A greater problem than the complexity of SQL is that
`syntactically correct queries often produce wrong answers.
`SQL is a context-free language, one that can be fully
`described by a backus normal form (BNF), or context-free,
`grammar. However, learning the syntax of the language is
`not sufficient because many syntactically correct SQL state-
`ments produce semantically incorrect answers. This problem
`is illustrated by some examples using the database that has
`the tables shown in FIGS. 1A-G.If the user queries the
`database with the following SQL query:
`
`4
`producean incorrectresult. When the Line_Item table is not
`included in the query, the proper result is obtained. Unless
`the users understand the manner in which the database is
`designed and the way in which SQL performsits query
`operations, they cannot be certain that this type of error in
`the result will or will not occur. Whenever a query may
`utilize more then two tables, this type of error is possible.
`Most information systems users would be reluctant to use
`a database query tool that could produce twodifferent sets
`of results for what to them is the same information require-
`
`3)
`
`SELECT CUSTOMERS.NAME, SUM(ORDERS.ORDER_DOLLARS),
`SUM(LINE_ITEMS.QTY_ORDERED)
`FROM CUSTOMERS, ORDERS, LINE_ITEMS
`WHERE CUSTOMERS.CUSTOMER# = ORDERS.CUSTOMER#
`AND ORDERS:ORDER# = LINE_ITEMS.ORDER#
`
`The following results are produced:
`
`
`20
`
`NAME
`
`1 American Butcher Block
`2 Barn Door Furniture
`3 Bond Dinettes
`4 Carroll Cut-Rate
`5 Milford Furniture
`6 Porch and Patio
`7 Railroad Salvage
`8 Sheffield Showrooms
`9 Vista Designs
`
`SUM(ORDER__
`DOLLARS)
`
`SUM(QTY__
`ORDERED
`
`119284
`623585
`51470
`53375
`756960
`1113400
`85470
`101245
`61790
`
`22
`52
`19
`29
`48
`89
`28
`26
`25
`
`25
`
`30
`
`The second column ofthis report appears to show thetotal
`order amount for each customer. However, the numbersare
`incorrect. In contrast, the following query
`
`ment (i.e. total order dollars for each customer). Virtually
`every known database query tool suffers from this short-
`coming.
`A more formal statementof this problem is that the set of
`acceptable SQL statements for an information system is
`muchsmaller than the set of sentences in SQL. This smaller
`set of sentences is almost certainly not definable as a
`context-tree grammar.
`
`Point-And-Shoot Query Tools
`
`Most SQL generator products are “point-and-shoot”
`query tools. This class of products eliminates the need for
`users to enter SQL statements directly by offering users a
`series of point-and-shoot menu choices. In response to the
`user choices, point-and-shoot query tools create SQLstate-
`ments, execute them, and present the results to the user,
`
`4)
`
`SELECT CUSTOMERS.NAME, SUM(ORDERS.ORDER_DOLLARS)
`FROM CUSTOMERS, ORDERS
`WHERE CUSTOMERS.CUSTOMER# = ORDERS.CUSTOMER#
`
`
`produces the correct result:
`
`NAME
`
`SUM(ORDER_DOLLARS)
`
`1 American Butcher Block
`2
`Barn Door Furniture
`3
`Bond Dinettes
`4
`Carroll Cut-Rate
`5 Milford Furniture
`6
`Porch and Patio
`7
`Railroad Salvage
`8
`Sheffield Showrooms
`9 Vista Designs
`
`83169
`129525
`51470
`53375
`111240
`222680
`85470
`101245
`61790
`
`Both SQLqueries are syntactically correct, but only the
`second produces correct numbers forthe total order dollars.
`The problem arises from the fact that before performing the
`selection and totaling functions, the SQL processor performs
`a cross-productjoin on all the tables in the query. In thefirst
`query above,
`three tables are used: Customer (a list of
`customers with customer data): Order(a list of orders with
`dollar amounts); and Line__Item (alist of the individual line
`items on the orders). Since the Order table has the total
`dollars and there are multiple line items for each order, the
`joining scheme of the SQL processor creates a separate
`record containing the total dollars for an order for each
`instance of a line item. Whentotaled by Customer,this can
`
`45
`
`50
`
`55
`
`60
`
`65
`
`appearing to hide the complexities of SQL from the user.
`Examples of this class of product
`include Microsoft’s
`Access, Gupta’s Quest, Borland’s Paradox, and Oracle’s
`Data Query.
`Although such products shield users from SQL syntax,
`they either limit users to simple SQL queries or require users
`to understand the theory behind complex SQL constructs.
`Moreover, because they target the context-free SQL gram-
`mar discussed above, it is easy and commonforusersto get
`incorrect answers. A point-and-shoot query toolis illustrated
`below with several examples showing a generic interface
`similar to several popular query tools representative of this
`genre. The screen of FIG. 2A appears after the user has
`chosen the customertable of FIG. 1A outofa pick list. This
`screen showsthe table chosen and three other boxes, one for
`each of the SELECT, WHERE, and ORDER BYclauses of
`the SQL statement.If the user selects either the ‘Fields’ box
`or the “Sort Order” box,a list of the fields in the customer
`table appears. The user makes choicesto fill in the “Fields”
`and “Sort Order” boxes. In this example, the user chooses to
`display the NAME. STATE, and BALANCEfields, and to
`sort by NAMEand STATE.This produces the screen of FIG.
`2B.
`
`the user can choose to view the SQL
`At any time,
`statementthat is being created as shown in FIG. 2C. There
`is a one-to-one correspondence betweenuserchoices and the
`
`Page 30 of 63
`
`Page 30 of 63
`
`

`

`5,584,024
`
`5
`SQL being generated. To fill in the WHERE clause of the
`SQLstatement being compiled, the user chooses the “Con-
`ditions” box andfills in the dialog box of FIG. 2D to enter
`a condition. This produces the completed query design
`shown in FIG. 2E. The user then chooses the “OK” button
`to run the query and see the results shown in FIG. 2F.
`For queries that involve only a simple SELECT, WHERE,
`and ORDERBY statement for a single table, a user can
`readily create and execute SQL statements without knowing
`SQLor even viewing the SQLthat is created.
`Unfortunately, only a small proportion of user queries are
`this simple. Most database queries involve more complex
`SQL. Toillustrate this point, consider a user who wishesto
`see the same information as in the above example, but to
`limit the data retrieved to customers of salespersons with
`total outstanding balanceof all the salesperson’s customers
`greater then $80,000. If the user realizes that this query
`requires two additional SQL clauses (a GROUP BY clause
`and a HAVINGclause) the query (shown in FIG. 2G) can be
`readily constructed. However, few users are sufficiently
`familiar with SQL to do so.
`Most point-and-shoot query tools cannot handle other
`complex SQL constructs such as subqueries. CREATE
`VIEW and UNION.Theyoffer no way (other than entering
`SQLstatements directly) for the user to create these other
`constructs. Those products that do offer a way to generate
`other complex constructs require the user to press a “Sub-
`query” or “UNION” or “CREATE VIEW” button. Of
`course, only users familiar enough with the relational cal-
`culus to know how to break a query up into a subquery or
`use another complex SQL construct would know enough to
`press the right buttons.
`Additional complexity is introduced when data must be
`retricved from more than onetable. As shown in FIG. 2H,
`the user may be required to specify how to join the tables
`together. The typical user query will involve at least three
`tables. Problems that can arise in specifying joins include:
`the columns used to join tables may not have the same
`name;
`
`the appropriate join between two tables may involve
`multiple columns;
`there may be alternative ways of joining two tables; and
`there may not be a wayofdirectly joining two tables,
`thereby requiring joins through other tables not otherwise
`used in the query.
`In summary, point-and-shoot query tools shield users
`from syntactic errors, but still require users to understand
`SQLtheory. The othercritical limitation of point-and-shoot
`menu products is that they target
`the context-free SQL
`language discussed above. A user seekingtotal order dollars
`could as easily generate incorrect SQL statement (3) as
`correct SQL statement
`(4) above. Thus,
`these products
`generate syntactically correct SQL, but not necessarily
`semantically correct SQL. Only a user that understands the
`relational calculus can be assured of making choices that
`generate both syntactically correct and semantically correct
`SQL. However, most information system users do not know
`relational calculus. Moreover, when queries require joins,
`there are numerous way of making errors that also produce
`results that have the correct format, but the wrong answer.
`
`Natural Language Query Tools
`
`Natural language products use a different approach to
`shielding users from the complexities of SQL. Natural
`language products allow a user to enter a request for
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`information in conversational English or some other natural
`language. The natural language product uses one mechanism
`to deduce the meaning of the input, a second mechanism to
`locate database elements that correspond to the meaning of
`the input, and a third mechanism to generate SQL.
`Examples of natural language products include Natural
`Language from Natural Language Inc. and EasyTalk from
`Intelligent Business Systems (described in U.S. Pat. No.
`5,197,005 to Shwartz et al.).
`FIG. 3A shows a sample screen for a natural language
`query system which showsa user query, the answer, another
`query requesting the SQL, and the SQL.
`The sequence of int

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket