throbber
Classy
`te _
` Sp _ ee 5500920
`NUMBER
`
`UTILITY
`SERIAL
`ssoMUI
`
`
`
`NUMBER
`SERIAL NUMBER
`FILING DATE CLASS
`SUBCLASS.
`
`
`
`2308 |
`
`oS 31G, GS
`09 #0 #94
`APPLICANTS
`_
`
`
`
`
`
`*
`
`PATENT
`
`JULIAN MH. KUPIEC., CUPERTINO, CA.
`
`cstatebe
`
`*
`
`ME CORT THEI tf eit DATAkewe E # #3 SB oe okt ch i ok ds ce ch ch oe eee :
`
`THIS“ieFLEA IS A CON OF
`VERIFIED
`Meydye
`
`Go/126, 170 09/2B3493 ABN
`
`.
`
`*
`
`x
`
`
`
`
`*tPOREIGN/PCT APPLICATIONS ###%48 aaa aa
`VERIFIED
`
`Moly V0
`
`
`
`
`
`
`
`spe ee
`
`
`
` "IAEESYNeeIE
`
`|
`:
`FORETOAM FILING LICENSE GRANTED 11/04/34.
`
`
`ATTORNEY'S
`
`
`.|FILING FEE
`CLAIMS|RECEIVED
`Foreign priority claimed
`Ll yes
`QW) no
`DOCKET NO,
`
`GW no
`35 USC 119 conditions met D yes
`
`Rp}
`
`ner’s tnifiais
`
`
`
`Verified and Aetnenieases
`
`SEMANTIC CO-OCCURRENCE FILTERING FOR SPEECH RECCGN ITEOAN AND SIGNAL
`TRANSCRIPTION APPLICATIONS
`
`
`
`U.S. OEPT. of COMM.-Pat. & TM Office PTO-SI6L (rev. 10-78)
`
`
`
`
`
`
`PARTS OF APPLICATION
`TM) Von@e
`o
`FILED SEPARATELY
`|
`Co Adplicationy examine)1Y.9
`
`
`“NOTICE OF ALLOWANCE, MAILED
`CLAIMS AVLOWED
`
`,
`oe
`
`
`
`
`GAGS=|Be.MienaesA.Sheraas\PASID
`OD, Micnpes A SHOR)
`Total Claims
`Print Claim,
`2 Zz.
`Z
`a ame
`
`ISSUE FEE
`
`Oe‘ahPER
`‘|
`Nn
`x
`
`
`
`Print Fig.
`Amount Due
`Date Paid
`Sfiot
`io
`
`
`PRIMARY EXAMINER
`i
`
`GROUP 2300 issue\){/]
`
`
`BATCH
`
`Primary Examiner|NUMBER
`Label
`,
`PREPARED FOR ISSUE
`|
`Area
`
`|e
`
`:
`DRAWING
`Sheets Drwg.| Figs. Drwg.
`
`
`
`
`Form PTO-436A
`; (Rev, 8/82)
`
`WARNING:
`
`Theinformation disclosed herein may be restricted. Unauthorized disclosure may be prohibited
`by the United States Code Title 35, Sections 122, 181 and 368. Possession outside the U.S.
`Patent & Trademark Office is restricted to authorized employees and contractors only.
`
`|
`
`DISH, Exh. 1018, p. 1
`
`(RACE,
`aeee|
`
`DISH, Exh. 1018, p. 1
`
`

`

` ISSUE
`CLASSIFICATION
`
`PATENT
`
`
`
`UTILITY
`PATENT DATE
`seria J)/1 26179
`
`
`
`NUMBER
`NUMBER
`
`
` SERIAL NUMBER
` TEEN
`FPRTIE
`
`OB/126, 270
`
`go / 2B se
`
`SUBCLASS
`
`: 'i
`
`:
`
`i ‘
`
`MH. EMPIEC. CUPERTING, CA.
`
`
`
`INTINUIMG DATAS+
`Pic deka
`VERIELED
`.
`
`
`
`
`
`
`
`GRA
`
`
`
`
`
`
`rs -eeaseryeepasemreiesinaryerrors|
`
`
`INODEP,
`FILING FEE
`ATTORNEY'S
`|
`
`C yes no
`Foreign priority claimed
`| RECEIVED
`CLAIMS
`DOCKET NO,
`
`
`
`35 USE 119 conditions met a y
`& noa ferty
`
`
`
`
`
`“Exartiner’s tnitials
`Verified and Acknowledged
`
`
`
`DAVID Bh. ISLE
`TOWNSEND AND TOWNSEND KHOURIE AND CREW
`
`ETE
`3
`nH
`20TH FLOCE
`
`*
`
`:
`
`.
`
`,
`
`Ue
`
`,
`
`
`
`agreeoseoeneMEST
`
`
`
`
`
`
`
`Applications Examiner
`|” NOTICE OF ALLOWANCEMAILED
`CLAIMS ALLOWED
`Total Claims
`Print Claim
`
`PARTS OF APPLICATION
`FILED SEPARATELY
`
`4
`:
`
`.
`Assistant Examiner
`
`|
`
`
`
`
`
`DRAWING
`ISSUE FEE
`
`
`
`_
`
`Sheets Drwg.|Figs. Drwg. Print Fig.
`
`
`
`
`
`ISSUE
`BATCH
`Primary Examiner|NUMBER
`
`
`
`
`Label
`PREPARED FOR ISSUE |
`:
`nannies
`Area
`
`
`WARNING:Theinformation disclosed herein may be restricted. Unauthorized disclosure may be prohibited
`by the United States Code Title 35, Sections 122, 181 and 368. Possession outside the U.S.
`
`
`Patent & Trademark Office is restricted to authorized employees and contractors only.
`
`
`
`4
`‘orm PTO-436A
`Rev. 8/92}
`
`
`
`(FACE)
`. DISH, Exh. 1018, p. 2
`
`
`DISH, Exh. 1018, p. 2
`
`

`

`
`
`
`
`
`
`
` gts‘ye AAye
`
`
`
`
`
`
`
`14. a
`
`tgLn.
`
`6 1
`
`7. a
`
`a, |:Se
`et
`20.
`ee
`
`_
`| a
`
`oe
`
`21.
`22.
`
`23.
`
`24.
`
`25,
`
`26.
`
`27. a
`
`
`
`28.
`
`29,
`
`30.
`
`
`
`ae
`
`ee
`
`a
`
`
`31.
`a
`32,
`(FRONT)
`
`
`DISH, Exh. 1018, p. 3
`
`4 STD 170
`
`Date
`Entered
`or
`Counted
`
`
`
`
`
`
`
`papers.
`
`
`
`DISH, Exh. 1018, p. 3
`
`

`

`
`
` PATENT APPLICATION
`
`
`
`ametateRYte"SY
`
`.

`&
`
`
`
`
`
`anarteieeemmeimamnsy(-emyermrnenntaanetentatnaaneaterfateennelncattiemimiratcatannettoee
`
`3
`:
`
`
`
`‘errriantataararttrerneattenttANEet SeNRRrURENnAnRinUtimiearenA cenateaaienemenmteaagampomamenegesonraneananenetaeeaeeRe
`
`
`
`
`
`‘=vemartumenreeminervenaenauteniastsanranatetansanrettntttntrttenterfteanathangsanepuntetetttPPHanRyerenteanAeacahcnamrmemeavanatamarteeeeettenarwateatnaecaretteenssaereatetetetat
`
`
`
`
`
`
`ormalDrawings (11sols) cet_{
`PIOGRAN: HAR 19 1996
`
`
`
`
`
`setemerngntsemetereeeA,
`
`
`
`
`
`
`
`\srrserertorereaanverstinmertereeetraysaaanassermtsishintsnithahNAa?Leielemaneeaieenndeammiemagamamuaeemamaeaentaetenemeaues
`
`m/3i6619 AANA
`__
`~ 08316619
` . Date ve
`
`
`
` - CONTENTS nore “tsa ~
`
`*
`
`
`
`
`
`
`
`
`i
`
`
`
`
`eermetcmnsitannehinethe/SanettitesnAestttmatatnAtitttetntantirensRenitatenetsPeereeeaetennantasNAAR‘sresremenem-motnettentnratlannetteyeti
`
`
`
`aanenaeettntenttAeeERAO hRONEERRSeetARERRterminai
`
`
`
`(FRONTS
`
`~ DISH, Exh. 1018, p. 4
`
`DISH, Exh. 1018, p. 4
`
`

`

`
`
`No. 13188-71
`Attorney Docket
`Xerox Docket No. D/93288
`
`SEMANTIC CO-OCCURRENCE FILTERING
`FOR SPEECH RECOGNITION AND SIGNAL TRANSCRIPTION APPLICATIONS
`
`Inventor:
`
`Julian Kupiec
`10079 Craft Drive
`Cupertino, California 95014
`British citizen
`
`Assignee:
`
`XEROX CORPORATION
`800 Long Ridge Road
`Stamford, Connecticut 06904
`New York corporation
`
`Entity:
`
`Large
`
`eeep
`
`TOWNSEND and TOWNSEND KHOURIE and CREW
`Steuart Street Tower, 20th Floor
`One Market Plaza
`San Francisco, California 94105
`(415) 543-9600

`
`C0000
`
`DISH, Exh. 1018, p. 5
`
`DISH, Exh. 1018, p. 5
`
`

`

`The files reproduced in this appendix represent
`unpublished work that is Copyright ©1993 Xerox Corporation. All
`rights reserved. Copyright protection claimed includes all forms
`and matters of copyrightable material and information now allowed
`by statutory or judicial law or hereafter granted,
`including
`without limitation, material generated from the software programs
`which are displayed on the screen such as icons, screen display
`looks, etc.
`
`006002
`
`DISH, Exh. 1018, p. 6
`
`DISH, Exh. 1018, p. 6
`
`

`

`Attorney Docket No. 13188-71
`Xerox Docket No. D/93288
`
`SEMANTIC CO-OCCURRENCE FILTERING SOFTWARE PROGRAM
`
`SOURCE CODEFILE#1
`
`THIS FILE INCLUDES CODE FOR:
`READING IN PHONETIC INDEX FILES
`QUERY CONSTRUCTION
`SCORING
`
`906003.
`
`
`
`DISH, Exh. 1018, p. 7
`
`DISH, Exh. 1018, p. 7
`
`

`

`te3-¥*- Package: USER; Syntax: Common-Lisp; Base: 10 -*-
`
`6-Sep~-93 17:93:56 from source pnonetic-corpus
`j¢7 File converted on
`pif. Original source (dsk}<project>markov>phonetic>phonetic-corpus.;i68 created
`00:47:15
`
`giz. Copyright {c) 1989, 1992, 1993 by Xerox Corporation
`
`(provide "PHONETIC-CORPUS")
`
`(in-package "“USER")
`
`jj: Shadow, Export, Require, Use-package, and Import
`
`forms should follow here
`
`(defvar *buffer-is-a-word* nil}
`
`(defvar *interval-wd-vec* nil)
`
`(defvar *moby-hashtable* nil)
`
`(defvar *moby-to-reduced* ’(("_" "wd-sep")
`(wye-y" "skip")
`("/6/" “ae")
`("4 (ey) /" "eh" )
`("/[@Q]/" “er2")
`("/A/" "ao2")
`("fel/" “ey")
`("ses "ah2")
`("bp "sil2-b")
`("ses/" "ch")
`("d" 4sil2-d")
`("/E/" "eh")
`("fis “tiy")
`(mpm wen)
`("g" "sil2-g")
`("h® "hh2")
`("/hw/" wi}
`cM /t/" "ih2")
`("fal/" fay")
`("/dZ/" "Sh")
`(MH §sil2-k")
`qeye Wyo")
`Cm! m2")
`("/N/' "ng2")
`«"n" “n2")
`("/oi/" Soy")
`("/A/™ tao2")
`("/AU/" “awn)
`"fos" “ao2")
`("fou/" Sow")
`(fas “uw2")
`(s/o/" oh")
`(tp" "sil2-p")
`('r" "rt)
`("/s/" "“sh2")
`("s" Ms")
`cesT" "th")
`("/D/" ah")
`c"t" "si1l2-t")
`(8/@r7" Mer2")
`(ym myity
`("wit Mw}
`(ssy/" ty")
`("/2/" "sh2")
`("f2/" way
`("2" “ay
`crea" "foreign")
`("N" "foreign")
`(eRe "foreign")
`("/x/" “foreign")
`("/y/" “foreign")
`("y¥" “£oreign")
`("wt
`tw)
`
`("ae won)
`
`qeyn typ ty
`
`~
`
`;
`
`;
`
`fixable commer error
`
`fixable common error
`
`S80004
`
`DISH, Exh. 1018, p. 8
`
`DISH, Exh. 1018, p. 8
`
`

`

`("e" “eh")
`
`("a"® "ae")
`
`(Mg weg)
`
`))
`
`;
`
`fixable common error
`
`; fixable common error
`
`;
`
`/&/ fixable common error
`
`. mostly common Error
`
`(defvar
`
`(defvar
`
`(defvar
`
`*pocket-fsm* nil)
`*pocket-phone~fsm* nil)
`
`*pocket-phone-vector* nil)
`
`(defvar
`
`*pocket-vector* nil)
`
`(defvar
`
`*proximity* 10)
`
`(defvar
`
`*query-results* nil)
`
`{defvar
`
`{defvar
`
`*stop-hashtable* nil)
`
`*wds-buffer* (make-array 100 :element-type ‘string-char :fill-pointer 0
`
`:adjustable t))
`
`(defvar
`
`*any-phone* nil)
`
`(defvar
`
`*code-stream* nil)
`
`(defvar
`
`{defvar
`
`(defvar
`
`*coded-pocket-vector* nil)
`*confusion-class~fsms* nil)
`
`*confusion-mat rix-map*
`*((siy (siy :in2 sey :y))
`(:dh2 (:iy :ih2 :eh :ah2 :ae tuw2 :uh :er2 tey tr ty tn2))
`(:eh (:ih2 teh :ae :ah2 :er2 rey tay))
`(:ae (:eh tae tay saw))
`{sah2 (:ih2 :eh :ae :ah2 :uw2 tuh :a0o2 :er2 :ay soy t:aw tow 3:12
`(tuw2 (:iy :in2 suw2 sy))
`(suh (:ih2 tuh :ah2))
`(:ao2 (:ah2 :ao2 :ay taw :ow :w))
`(:er2 {({:ih2 :eh s:ah2 ser? :r)}
`(sey (:iy :ih2 seh :ey))
`{ray (:ao2 tay soy))
`(soy (roy))
`{:aw (:aw))
`(sow (:ah2 tuw2 :ao2 saw sow :12))
`(:12 (:ah2 tuw2 :ao2 sow :12 tw in2))
`(ir (:ih2 suw2 :a02 :er2 say ir tw))
`(sy (:iy ty)
`(rw (:ao2 :12 :w))
`(sm2 (:ah2 im2 in2 ing2 :sil2))
`{in2 (:ih2 san2 :12 in2 tm2 i:ng2 :sil2-b :dx :sii2))
`(ng? {in2 ingZ))
`(:ch (:ch))
`(:jh (:ch t:jn :sh))
`(:s (:s iz tsh2 :f :th))
`(rz (:s :2 tsh2 :th))
`(:sh2 (:ch :sh2)})
`(:f (:f :th))
`(iv (:n2 sf
`rv orth :8112))
`(:th (:f sth :si12))
`(:dh (:n2 tv sah t:sil2-b :sil2-d :dx :sil2))
`(rhh2 (:hh2))
`(:sil2-b (:sil2-b :sil2-p))
`(:sil2-d (:sil2-b :sil2-d :sil2-t :si12))
`{:sil2-g (:sil2-b :sil2-g))
`(:sil2-p (:hh2 :sil2-b :sil@-d :sil2-p :sil2-))
`{ssil2-t
`(:ch :jh is :sil2-d :sil2-p :sil2-t :si1i2))
`(:sil2-k (:jh ts thh2 :sil2-d :sil2-g :sil2-p :sil2-t
`(:dx (:n2 sdx))
`(:sil2 (siy :12 ty iw oim2
`
`:n2))
`
`.
`
`tn2 ing2 :s :2 :v ith :dh thh2 :dx :5i112))))
`
`:sil2-k :si12))
`
`(defvar
`
`*consonant-hashtable* nil)
`
`(defvar
`
`*consonant-letters*
`"{#\b #\c #\d ENS a\g a@\5 a\j #Nk #\l Xm B\n zip #\q \s e\t #\v
`
`#\x #\2))
`
`(defvar
`
`*debugi* nil)
`
`500005.
`
`
`
`DISH, Exh. 1018, p. 9
`
`DISH, Exh. 1018, p. 9
`
`

`

`(defvar
`
`*file~hashtable* nil)
`
`{defvar
`
`(defvar
`
`(defvar
`
`*foot~pocket* nil}
`
`*foot~pocket-code-file* "foot-pocket.codes")
`
`*foot-pocket-to-reduced* /(("p" :sil2-p)
`("t"™ :si12-t)
`("k" ssil2-k)
`("b" :s112-b)
`("d" 3:sil2-d)
`("g" tsil2-g)
`("Cc ich)
`qe tjh)
`(*s" ts)
`("S"
`tsh2)
`{"z" iz)
`("Z2"
`:sh2)
`cree :f)
`("tT") sth)
`(myn tv)
`("D"
`idh)
`(th tbh2)
`("n" 32)
`("m"
`:m2)
`("G"
`ing2)
`("N"
`sn2)
`cm" sm2)
`("L" 212)
`cmb" 412)
`(re tr)
`("tw")
`sw)
`(ty ay)
`qari
`:iy)
`("re :ih2)
`("eM seh)
`("ant
`rey)
`chee tae)
`("a" :ao02)
`cw saw)
`qeye tay)
`quan :ah2}
`("o" :a02)
`co" roy}
`(%o"
`tow)
`("0" suh)
`("um suw2)
`("R"
`:er2)
`("x" sah2y
`(hE rih2y
`("X"
`:er2)))
`
`<
`
`{defvar
`
`*foat-pocket-to~reduced~hashtable* nil)
`
`(defvar
`
`*fricative-fsm* nil)
`
`(defvar
`
`(defvar
`
`*grolier-fsm-mode* t)
`
`*group-vector™ nil)
`
`(defvar
`
`*hmm-state-hashtable* nil)
`
`-
`
`(defvar
`
`.
`
`oh
`
`rsil2-g
`
`*hmm-state-list*
`(:iy :ih2 :eh tae :ah2 :uw2 tuh :a0o2 :er2 sey :ay :oy :aw tcw 3:12
`
`tjh is tz ish2 :f sv rth :dh thh2 :b :d :¢ tp it
`
`:k sdx tsil2
`
`trosy rwoim2 in2 ing2
`:sil2~b :sil2-d
`
`:sil2-p :sil2-t :sil2-k :wd-sep)})
`
`(defvar
`
`*hypo-hashtable* nil)
`
`(defvar
`
`*letter-codes-file* "“letter.codes")
`
`(defvar
`
`(defvar
`
`*letter-count-file* “letter-count-vector.lisp")
`*letter-counts-for-states* nil)
`
`(defvar
`
`*nasal-fsm* nil)
`
`~
`
`vuGO6
`
`
`
`
`
`
`
`
`
`ie en rerenennntigtmnaten rsnnatepmmanmananaqaeaaptanantthatetAranenettitersntnnninamtteenseratteementsNhatreeertantaetapa
`
`
`
`
`
`
`
`
`
`DISH, Exh. 1018, p. 10
`
`DISH, Exh. 1018, p. 10
`
`

`

`{(defvar *nr-foreign-words* nil)
`
`{defvar *nr-format-errors* nil)
`
`(defvar *nr-grolier-wds* nil)
`{defvar *nr-hyphenations-ignored* nil)
`
`(defvar *nr-outputs* (+ 2
`
`(-
`
`(char-code #\z2)
`(char-code #\a))))
`
`(defvar *nr-states-per-phone* 2)
`
`(defvar *phone-hashtable* nil)
`
`b)
`d)
`g)
`Pp)
`t)
`k)
`:sil2)
`zssil2)
`zsil2)
`:sil2)
`:sil2)
`:sil2)
`rdx)
`sil2)
`jh)
`rch)
`
`(defvar *reduced-phones* ‘(("b" :
`ign
`("p" ‘
`("t" 3
`("ks
`("bel"
`("del"
`("gcl"
`("pel"
`("tcl"
`("kel"
`("dx"
`("g" :
`("3h
`("ch""
`("st
`("sh*
`("z"
`("zh"
`qnge
`("the
`("ve
`("dh
`("me
`("n"
`:n2)
`ing2)
`("ng"
`("em"
`tm2)
`n2)
`(ten"
`("eng"
`ing2)
`:n2)
`(nx
`:12)
`qe"
`tr)
`qtr"
`tw)
`(tye
`zy)
`(sy
`:hh2)
`(*hh"
`thh2)
`("hv
`+12)
`("elt
`tiy)
`(wiy"
`:ih2)
`("ih*"
`(“eh"
`:eh)
`sey)
`("ey"
`sae)
`(“ae"
`:ao2)
`(“aa"
`saw)
`("aw"
`("ay"
`say)
`:ah2)
`("aht
`("ao"
`:ao2)
`soy)
`("oy
`sow)
`("ow
`(*uh"
`uh)
`ruw2)
`Caw"
`fuw2)
`(“ux
`:er2)
`("er"
`sah2)
`("ax
`:ih2)
`(ix
`(“axr"
`zer2)
`(“ax-h" :ah2)
`:sil2)
`(“epi"
`:sil2)
`(“pau"
`("he
`:sil2)))
`
`(defvar *sonoranct-fsm* nil)
`
`(defvar *stop-fsm* nil)
`
`*
`
`-
`
`vuG00"
`
`arrcNleR
`
`DISH, Exh. 1018,p. 11
`
`DISH, Exh. 1018, p. 11
`
`

`

`(defvar *stop-list*
`’ {"a* "about" "above" "after" “also" Nalin "although" wan" Wand" "any" “sre” Mast "ast Wyytt
`"be" "hecause"™ "*hefore"™ "hetween" "but" "by" Hot Moan "eould" Wu Hen Neach"
`“elther"
`
`wae
`
`Won
`
`"some"
`
`“where”
`"
`"|
`
`you
`
`neu "fort “from "further" "g" wpe "have! "het
`
`ther" "here" this" "him "however"
`
`ALE" Mint Ninto"™ "is" "Eto" NES au CPPU “may" “met
`
`tmicht™ "my" "hn “now!

`“of™ Non" "one" Yor "other" "our" "out" Hon qt Hy wet "she" "should" "since"
`
`"such" "t" “than" “that "the" "then" "there" "therefore" “these" “this" “those”
`"through" "thus" ftom my “"ontil" "up" *uson' &y"
`"wl Uwas! "were!" "what" ‘when
`.
`“whether"™ "which" "while" "with" "who" "will" "within" "without" "would" "x" "y"
`
`“your wot) )
`
`(defvar *tim-phone-list*
`1 (ph agn hgh "pr ee eke bel "del" "gel" "pel" "tel" "kel" "dx "gn "Sh" "ch" "st "she
`.
`Hohe wen "EA Hey ayn Hig Wy "ng" Tem! “ean "eng" toye wyu Wy Wage yt hh thy
`
`won
`
`Yalu
`
`Wiy" "ih "eh" "ey" Mae! Hagt May "ay" Nah" Hagit "oy" “ow! "yh" “uw" “ux! “ert Way
`"ix"® “axr" “ax-h" "epi" "paul "hey }
`
`(defvar *timit~to-~reduced-~phone-hashtable* nil)
`
`(defvar *use-confusion-classes* nil)
`
`*
`
`(defvar *use-nl-buf* <)
`
`(defvar *vowel-fsm* nil)
`
`(defvar *vowel-hashtabsle* nil)
`
`(defvar *vowel-phones*
`’(siy :ih2 :eh tae tan2 :uw2 t:uh :ao2 :er2 :ey :ay soy taw tow :r))
`
`(((((((
`
`(defun add-pocket-counts nil (let ((add-list ‘((:b (#\b))
`ad
`(#\d))
`g (#\g))
`Pp
`(#\p))
`t
`(#\t))
`k
`(#\K))
`ax (#\t))
`sil2 (#\b #\d #\g #\p #\t #\k)))))
`
`:
`(:
`
`some reduced phones just aren’ covered
`+7
`(dolist
`(el add~list)
`(dolist (letter (second el)}
`(dotimes (chain-index *nr~states~per-phone”*)
`(incf
`(aref *letter-counts-for-states* (char-to~op
`letter)
`
`chain-~index
`{gethash (firs = el)
`*hmm-state~hashtable*))
`
`1.0))))))
`
`{defun any-single-phone-fsm (hashtable)
`(let
`((fsm nil))
`(maphash #’ (lambda (dummy phone-fsm)
`(let nil
`(setq fsm (if fsm
`(fsm:union~fsm fsm phone-fsm)
`pnone-fsm})})
`
`hashtable)
`
`fsm) )
`
`(expr ékey (show nil))
`(defun apply-expr
`(let* ((count 0}
`(fsm (p-expr-to-fsm expr) )
`(fsm-vec (if (arrayp fsm)
`fsm
`(vector fsm))))
`{maphash #’ (lambda (key entry)
`{let
`({(found nil)
`phones~for-words}
`(setq phones-for-words (tnird entry)}
`(when show”
`(format t “~a~%" (first entry)))
`
`vo0008
`
`DISH, Exh. 1018,p. 12
`
`DISH, Exh. 1018, p. 12
`
`

`

`(1+ index)))
`(do ({index 0
`({or
`{= index (length phones-for-words) )
`found) )
`(setq found (next-word-match phones-for-words index fsm-vec
`
`key entry)))
`{when found (incf count))))
`*file~hashtable*)
`t "Nr sent hits: ~a~%$" count)))
`
`(format
`
`{defun ask~grolier (expr-list ékey (show nil)
`(show-wds t)
`(print-limit 20)
`{heap-limit 100)
`{(max~postings 5000)
`{prox 10)
`(search nil))
`
`(let* ((rval nil)
`query query~str heap conjunct-ids item doc-id nr-hits title-str title-hits)
`{setq heap (pq::make-priority-queue #’ (lambda (x y)
`(< (svref x 1)
`(svref y 1)))))
`
`(when (or
`
`(null *hmm-state-hashtable*)
`(null *grolier-fsm-mode*) }
`(setup-grolier-mode) )
`(when (null *stop-hashtable*)
`{setq *stop-hashtable* (make-hash-tas_e :test -#’ equal) )
`(mapcar #' (lambda (e1)
`(sectf
`
`(gethash el *sztop~hasntabie™)
`t)}
`
`*
`
`*stop-list*))
`(muitiple-value-setq (query-str conjunct~ids rval)
`(construct-query expr-list prox shcw show-wds) )
`(when search
`{setq query (concordance: :parse~boolean-query query-str concordance::*tdb*))}
`(format t "Searching...")
`(concordance: :phonetic-search query neap heap-limit max-postings)
`(format t "Done~%")
`(setq *the-heap* heap)
`(score=hits heap)
`{dotimes (index (pq::pq-length heap))
`{setq item (pq:pq-pop heap) )
`(setq doc-id (svref item 0))
`(setq nr-hits (svref item 1))
`(setq title-str (tdb::doc-title doc-id concordance::*tdb*))
`(setq title-hits (get-title-hits title-str))
`{format t "~&~5D: ~A Score:
`~A Title wds: ~A~%" doc-id titie-str nr-hits
`title-hits))
`(format t "Scoring...~%"))
`rval))}
`
`(print-error t))
`
`(defun char-to-op (char Soptional
`(let
`((op nil)
`(charcode (char-code char))
`(a-charcode (char-code #\a))
`(space-charcode (char-code #\Space)))
`(if (null
`(characterp char) )
`(error “ERROR: ~a not a char~%" char)
`(if (and (>= charcode a-charcode)
`(<= charcode (char-code #\z)))
`(setq op (1+ (- charcode a-charcodce))}
`(if (= charcode space-charcode)
`(setq op Q)
`(when print-error {error “ERROR: ~a is invalid char~%" char)))))
`
`op))
`
`(defun check-coverage nil
`
`(let
`
`((grolier-count 0)
`(pocket~count 0) )
`(setup-grolier-mode)
`(format t “Mapping grolier terms..~$%")
`(tdbimap-terms #’ (lambaa (word)
`(incef grolier-count)
`(let nil
`(when (= (rem grolier-count 1000)
`0)
`(format
`
`t "done ~a entries~%"
`grolier-count) )
`(when (fsm:word-to-index word
`xpocket-fsm*)
`(incf vocket-count))))
`
`concordance: :*tcab*
`
`voG009
`
`
`
`
`
`
`
`
`
`pewenene perennens creeperRitterneTntsteeitrmtataaanApinietngrttnenenetinnrpparevestatnharentalsationnuttinnantnnifatnnenreeteteamnnetnniente stringentnnerQianneSOPOT Teerent
`
`
`
`
`
`
`
`
`
`DISH, Exh. 1018,p. 13
`
`DISH, Exh. 1018, p. 13
`
`

`

`{format t "~%Nr grolier terms: ~a
`pocket-count) )
`)
`
`Nr coverea ~ar%" grolier-count
`
`(defun code~fp-word (word phones-for-word stream)
`{let nil
`(format stream "#(#(~a ~a)" (char-to-op #\Space)
`(gethash :wd-sep *hmm-state-hashtable*) )
`(phone-to-char-matches word phones-for-word stream)
`(format stream “#(~a ~a)})~%"
`(char-to-op #\Space)
`(gethash i:wd-sep *hmm~state~hashtable*))))
`
`(defun code-sentence (word-vec reduced-phones-for-sent stream)
`(let
`(word phones-for-word)
`
`777 Each word is a different obs seq
`
`(wd~index (length word-vec))
`(dotimes
`(format stream "#(#(~a ~a)" (char-to-op #\Space)
`(gethash :wd-sep *hmm-state-hashtable*))
`(setq word (filter-word (aref word-vec wd-index)))
`(setq phones~for-word (aref reduced-phones-for-sent wd-index) )
`(phone~to-char-matches word phones-for-word stream)
`(when nil
`(dotimes (char-index (length word) )
`(format stream "#(~a" (char-to-op (char word char-index)))
`.
`(dotimes (phone-index (length phones-for-word) }
`(format stream " ~a"
`(gethasn (aref phones-for-word phone-~index)
`xhmm-state-hashtable*)))
`(char-to-op #\Space)))
`(format stream ")~%"
`(Ecrmat stream "#{~a ~a))~%"
`(char-to-op #\Space)
`(gethash twd-sep *hmm-state-hashtabie*))))).)
`
`(defun code-timit nil
`
`(let
`
`*nr~states-per-phone*
`
`shmm-state-list*
`
`({state-id 0))
`(setq *hmm-state-hashtable* (make-hash-table :test #’ecual))
`(mapear #’ (lambda (el)
`(setf (gethash el *hmm-state-hashtable*)
`;State-~id)
`(incf state~id))
`*hmm-state-list*)
`(setq *timit~to-reduced-pnone-nashtable* (make-hash-table s:test
`#’ equai))
`
`(el *reduced~phones*)
`(dolist
`{setf (gethash (first ei)
`*timit-to~reduced-pnone-nashtable*)
`(second el)))
`(setgq *consonant-hashtable« (make-hash-taple :test #’equal))
`(dolist
`(el *consonant-letters*)
`{setf
`(gethash el *consonant~hashtable*)
`el})
`(setg *vowel-hashtable* (make-hash-table :test #’equai))
`(dolist
`(el *vowel-phones*)
`{setf£ (gethash el *vowe_-nashtable*)
`el})
`(setq *letter-counts-for-states* (make~array (list *nr-cutputs*”
`
`(length
`
`)
`tinitial-element 0))
`(with-open-file (*code-stream™ *letter~codes-file* :direction :output
`:if-exists inew-version)
`(maphash #’code-timit-sentence *file~hashtable*) }
`(normalize-count-vector) ))
`
`(defun code-timit-sentence (key entry)
`(let
`((word-vec (first entry))
`(phone-vec (second entry) )
`(reduced-phones~for-sent
`(make-array 0
`(dotimes (index (length phone-vec)}
`(vector-push~extend (convert-timit-phenes (aref phone-vec index) )
`reduced~phones-for-sent) )}
`for ~a ~%~+%~a~%" phone-vec
`(when *debug* (format t “Reduced phones:
`reduced-phones-for-sent) )
`(when (> (length reduced-phones-for-sent)
`a}
`
`:adiustable t :fill-pointer ©)))
`
`777 Make sure that phones do exist e.g. none for the word "a" in /makr0/sil982
`
`
`
`DISH, Exh. 1018, p. 14
`
`DISH, Exh. 1018, p. 14
`
`

`

`(fill-count-vector reduced-phones-for-sent word-vec)
`
`77 write char-to~ops to op-stream
`(code-sentence word-vec reduced-phones-for-sent *code-stream*))))
`
`(defun construct-query texpr-list proximity show show-wds)
`(let
`(lexpr-index 0)
`{conjunct-strs (make-array (length expr-list)
`sinitial-element nii))
`
`(conjunct-ids nil)
`(rval nil)
`curr-score pair word-hit score query~str stemmed-term word-present term-str count}
`{when nil
`{setq caonjunct-ids (make-array (length expr-list)
`rinitial~element
`(make-array 50 :adjustable t
`
`:fili-pointer 0))))
`
`)")
`(setq query-str *
`(if ¢hash-table-p *hypo-hashtable*)
`(celrhash *hypo-hashtable*)
`(setq *hypo-hashtable* (make-hash-table :test #’equal)))
`{dolist
`(expr expr-list)
`(when show (format t "~%expr: ~a~%" expr) )
`{setq term-str “}
`")
`(setq count 0)
`(setq word-present nil)
`(dolist
`(pair expr)
`(car pair))
`{(setq word-hit.
`(setq score (cdr pair)
`(setq stemmed-term (twol-stemmer::_ookup-stém (copy-seq word-hit)))
`(if (or
`(gethash word-hit *stop-hashtable*)
`(gethash stemmed-term *scop-hashtable*) )
`(when show (format t “~a on stcp iist -~-
`ignored~%" word-hit))
`(progn (setq word-present
`t)
`(push word-hit
`(aref conjunct-strs expr-incex) )
`(when nil
`(vector-push-extend (vector nil 0)
`; was wd-incex
`{aref conjunct-ids expr-index)))
`(setq term-str (concatenate ‘string word-nit
`
`’
`
`"
`
`“ term-str))
`
`Shouldn’t put words not recagnized by groliers in here !!!! --Must not insert nils into
`*HYPO-HASHTABLE*
`
`+
`
`(when (null stemmed-term)
`{(setq stemmed-term (copy-seq word-hit)))
`
`337 Not very good way of doing things, because word may appear in different list and get
`different
`fi; scores --+-for now keep max
`
`(setq curr-score (gethnash stemmed-term *hypo-nashctable*) )
`(if curr-score
`(when (> score curr-score)
`(setf (gethash stemmed-term *hypo-nashtable*)
`score) )
`(gethash stemmed-term *hypo-hashtable*)
`score) )
`(when (or show show-wds)
`(format t
`"~D: ~+12,3T (~D)~%" word-hit
`
`{(setf
`
`(tdb::term-freq
`
`word-hit
`
`concordance: :*tdb*) ))
`
`(inef count))))
`{when (and word-present
`(eql
`1
`(setq rval t))
`(when (> (length expr-list)
`1)
`(setq rval
`
`(length expr-list)))
`
`({ncone rval (list (if word-present
`
`nildyy))
`{setq term-str (concatenate ‘string "{
`“ term-str))
`(setq query~str
`(concatenate ‘string term-str query~str))
`{when (or show show-wds)
`(format t "Nr hits : ~a~%" count) )
`(incf expr-inaex) )
`(setq query-str (concatenate ‘string "(" (format nil "~d " proximity)
`query-str))
`
`vuGO1i
`
`DISH, Exh. 1018, p. 15
`
`DISH, Exh. 1018, p. 15
`
`

`

`= "Query : ~a~%" query-st7))
`(when show (format
`{values query-str conjunct-ids rval)))
`
`(aefun convert-foot-pocket nil (let ((state-id 0)
`(file-name "foot-pocket-no-~-markers.lisp")
`reduced~phones word)
`(format
`t "Converting Pocket Dictionary~%"}
`(when (null *foot-pocket*)
`(lead file-name) )
`{(setq *foot-pocket-to-reduced-hashtable* (make-hash-table
`stest
`#’ equal) )
`:
`
`(el *foot-pocket-to-reduced*)
`(dolist
`(setf (gethash (char (first e1)
`
`* foot-pocket-to-reduced-hashtable*)
`(second e1)))
`(setq *hmm-state-hashtable* (make-hash-table :test #’equal))
`(mapear #f (lambda (el)
`(sectf
`
`(gethash el *hmm-state~hashtable*)
`state~id)
`(incf state-~id))
`*hmm-state-list*)
`(setq *timit-to-reduced-phone-hashtable* {make-hash-table
`:
`:test
`#*ecual))
`
`(el *reduced-phones*) ,
`(dolist
`
`(setf
`(gethasr (first el)
`
`~rimit-to~reduced-pnone-hasntable*)
`(second e1)))
`(setq *consonant-nasntable* (make~hash-table :test #’equal))
`(dolist
`(el *consonant-letters*)
`(setf (gethash e: *consonant-hashtabie*)
`el))
`(setq *vowel-hasnziabie* (make-hash-table :test #' equal) )
`(dolist
`(el *vowe_l-phones*)
`(setf (gethasn el *vowel-hasntable*)
`el))
`(setq *letter-counts~for-states* (make-array (list
`
`(length
`
`»)
`rinitial-element 0))
`(with-open~file (stream *foot~pocket-code-file* :direction
`soutput
`:if-exists inew-version)
`(e_ *foot-pocket*)
`{dolist
`(setq word (filter-word (string~downcase (first
`
`(setq reduced-phones (convert-fp-werd (second
`
`(code-fp-word word reduced-phones stream)
`(fill-count-vector (vector recuced-pshones)
`{vector word))))
`
`(add~pocket-counts)
`(normalize-count-vector))}
`
`*nr-outputs*
`
`*nr~states-per-phone*
`
`*hmm-state-Llist*
`
`el))))
`
`el})}
`
`(defun convert-fp-word (fp-phones-for-word)
`(let
`(reduced-phone {reduced-phones-for-word (make-array 0
`
`O)))
`
`:adjustable t
`
`:fill-pointer
`
`(dotimes {index (length fp~phones-for-word))
`(setq reduced~phone (gethash (char fo~vhones-for-word index)
`*foot-pocket-to-reduced-hasntable*))
`
`(when (null reduced-phone)
`in hashtable~%" fp-phones-for-word
`(error "ERROR: word ~a char ~a not
`{char fp-phones~-for-word index)))
`(vector-push-extend reduced-phone reduced-phones-~for-word) }
`reduced-phones-~for-word) )
`
`(defun convert-moby-pronunciator
`
`(&key (errorstream c)
`(grolier~overlap t))}
`(let ((in-file "/project/corpora/moby-products/sronunciator/MobyPronunciator _II.cxt")
`(full-outrfile
`"/project /corpora/moby-products/pronunciator/mapped-pronunciations.txt")
`(grolier-outfile "/project/markov/phonet:ic/moby~grolier-overlap.txt")
`(error-file "/project/markov/phonetic/moby-errors.txt")
`(char-buf (make~array 100 :element-type ‘string-char :fill-pointer 0
`
`:adjustable t))
`
`a neneeetnentnestenegaarntanesintnttpentatinttntttpntteMettrentttVapinettenenpeesnntnt:sathentaetematintnmnnatintarnatten:
`
`vv001 2
`
`DISH, Exh. 1018, p. 16
`
`DISH, Exh. 1018, p. 16
`
`

`

`10
`
`t))
`
`line))
`
`(output-buf
`
`(make-array 1000 selement-type ‘string-char :fill-pe inter G
`
`:acjustable
`
`{line-number 0)
`outfile)
`(setq outfile (if grolier-overlap
`grolier-~outfile
`full-outfile})
`(fill-moby-hashtable)
`(setq *nr-format-errors* 0)
`(setq *nr-foreign-words* 0)
`(setq *nr-grolier-wds* 0)
`{(setq *nr-hyphenations-ignored* Q)
`(setq *char-buf* char-buf)
`(with-open-file (in-stream in-file :direction :input)
`(with-open-file (outstream outfile :direction :output :if-exists :new-version)
`(do ((line (read-line in-stream nil nil)
`(cread-line in-stream nil nil)))}
`((mull line))
`(read-moby~form grolier-overlap line line-number output-buf char-buf
`outstream errorstream)
`(when (= 0
`(rem line~number 1900))
`(format
`t "~a words done. Current line: ~a~%"
`
`line-number
`
`(incf line-number))))
`t "Nr total lines: ~A~%"
`line-number)
`(format
`t "Nr word format errors: ~A~%" *nx-format-errors”*)
`(format
`(format t "Nr grolier words: ~A~%" *nr-gro:ier-wds*)
`(format
`t
`"Ne hyphenations ignored: ~A~%" *nz-hypnenations-ignorea*)
`(format
`t "Nr Foreign words ignored: ~A~%" *nr-~foreiqn-words*) ))
`
`{defun convert-timit-onones (phones-for-word)
`(let
`((skipping-index 0)
`:acjustacle t :fili-sointer ¢))
`(reducec~phones-~for-word (make~array 0
`clos-posn burst-posn timit-phone reduced-chone)
`
`“
`
`.
`
`t*kel "y
`
`zy; Need tc convert Kcl followed by k to kce_-k state, and wnat about wa boundaries and
`;¢ phone that definitely don’t map to a lezter?
`(when nil
`(vector-push-~extend :wd-sep reduced-phones~for-wora) }
`(do nil
`{(= skipping-index (length phones-for-word) ))
`(setq timit-phone (aref phones~for-word skipping-index) )
`(setq reduced-phone (gethash timit-phone *timit-to-reduced-phone-nashtable*))
`(when
`(null
`reduced-phone)
`(format t "ERROR: No reduced phone for ~a~%" timit-pnone))
`(when (and (> (length phones-for-word)
`(1+ skipping-index))
`(setq clos-posn (position timit-phone ‘'("bel" "del" "gel" "pel" "tel"
`stest
`#’string=))
`(setq burst-posn (position (aref phones-for-word (1+ skipping-index) )
`f(y" wge Ng"
`"pr" wen wey
`test
`#’string=))
`(= clos-posn burst-posn) )
`(secq reduced-phone (nth clos~posn ‘(:sil2-b :sil2-d :sil2-
`:sil2-k)))
`
`q :silg-p :sil2-t
`
`{incf skipping-index))
`{incf skipping~-index)
`(vector-push-extend reduced-phone reducea-phones-for-word) )
`(when nil
`(vector-push-extend :wd-sep reduced~phones-for-word) )
`reduced-phones-for-word) )
`
`(defun decode {arg &key {name “phon"))
`{let
`(obs-vee¢ (obs-name "CURRENT-SENTENCE"} )
`(if (mull
`(setq obs-vec (rhmm:get-training-data arg)))
`(progn (setq obs-vec (make-array (+ 2
`(length arg))))
`(setf (aref obs-vec 0)
`(vector 0))
`{dotimes
`(index (length arg))
`(setf (aref obs-vec (1+ index))
`(vector
`(char-to-op (char arg index)))))
`(setf (aref obs-vec (1+ (length azg)))
`(vector 0})))
`(rhmm: set-training~data (list obs-name oos-vec)
`toverwrite t)
`(chmm:viterbi-search name obs~name)
`(dotimes (index (lengtn ops-vec) )
`(format t "~a
`~a~%"
`(op-to-char (acer {aref obs-vec index)
`O))
`
`GO00129
`
`DISH, Exh. 1018,p. 17
`
`DISH, Exh. 1018, p. 17
`
`

`

`11
`
`(nth (truncate (aref rhmm:*viterbi-states* index)
`*nr-states—-per-phone*)
`*hmm~-state~list*)))))
`
`(defun fill-count-vector (reduced~phones-for-sent word-vec)
`(let* ({attenuation 0.5)
`(center-phone-state (truncate (* 0.5 *nr-states-per-phone*) ))
`(letter-spread *nr-states~per-phone*)
`(left-spread (truncate (* 0.5 letter-spread)))
`(right-spread (- letter-spread left-spread 1))
`weight sub-phone-index word wd-len nr-phones this-phone this-phone-index
`center-wd-index low-wd-index hi-wd-index phones-for-word)
`
`¢i7¢ Right now, LETTER~SPREAD must be equal
`
`to *NR-STATES-PER~PHONE*
`
`peo
`
`otherwise there should be a map
`
`(wd-index (length reduced-phones-for-sent)}
`(dotimes
`(setq phones-for-word (aref reduced-snones-for-Sent wd-index) )
`(setq word (filter-word (aref word-vec wd~index)))
`(setq wd-len (length word) )
`(setq nr-phones (length phones-for-word) }
`(dotimes (phone-index nr-phones)
`{(setq this-phone (aref phones-for-word phone-index) )
`{setq this-phone-index (gethash this-phone *“hmm-state-hashtable*))
`(setq center-wd-index (if (= nr-phones 1)
`(round (* 0.5 (float
`(1- wd-len}})))
`(round (/
`(* (float phone-index)
`(float {l- wd-len)})
`(l- nr-phones)))))
`(setq low-wd-index (- center-wd-index left~-spread) )}
`{setq hi-wd-index (+ center-wd-index right-spread) }
`(when *debug* (format t "~a:
`"
`this-phone)}
`(de (t{index low-wd-index (1+ index)))
`({> index hi-wd-index))
`(when (and (>= index 0)
`(< index wd-len)
`(char-to-op (char word index)
`nil))
`(setq weight 1.0)
`{unless (= index center-wd-index)
`{setq weight
`(* attenuation weight) ))
`{setq sub-phone-index (+ center~phone~state (-
`
`index
`
`center-wd-index) })}
`
`index) )
`
`(when (and (>= sub-phone-incdex 0)
`(< sube-phone-index *nr-states-per-phone*) )
`(aref *“letter-counts-for-states* (char-to-op (char word
`
`(incf
`
`sub-phone-index this-phone-index)
`weight)
`(when *debug*
`(format t “~a: ~a
`weight) )))
`t "~%")))
`
`“(char word index}
`
`))
`
`)y
`
`{when *debug* (format
`
`(defun fill-moby-hashtable nil
`
`(setq *moby-hashtable* (make-hasn-table :test #’equal))
`(let nil
`(dolist
`(el *moby-to-reduced*)
`(setf (gethash (first el)
`xmoby-hashtable*)
`{second el)))))
`
`(defun fill-~phone-hmm-op-vec (model)
`(let ((nr-states (rhmm::hmm-defn-nr-stactes mode:))
`{(nr-outputs (rhmm::hmm-defn-nr-outputs model))
`this-index prob)
`ae
`
`st? don't forget
`
`:wd-sep = 1.0 op for Space
`
`000014
`
`
`
`paneeereeittreteERBa
`
`DISH, Exh. 1018, p. 18
`
`DISH, Exh. 1018, p. 18
`
`

`

`12
`
`~~ dotimes (i-state (length *hmm-state-list~))
`(dotimes (chain-index *nr-states-per-pnone*)
`(setq this-index (+ chain-index (* i~state *nr-states~per-pnone*) ))
`(dotimes (obs nr-outputs)
`(setq prob (aref *letter-counts-for-states* obs chain-incex i-state))
`(when {> 1.0E-10 prob)
`{setq prob 1.0E-10))
`(aref (aref (aref *output-matrix* 0}
`this-index)
`
`(setf
`
`obs)
`(double-float prob)}
`(when (= i-state (position :wd~sep *hmm-state-list*) )
`(setf (aref
`(aref
`(aref *output-matrix* 0)
`this-index)
`
`obs)
`(char-to-op #\Space) )
`(1£ (= obs
`(double-float 1.0)
`(double-float 0.0)))))))
`(chmm: shmm-defn-output-to-state-index model)
`(rhmm:make-output-to-state-index nr-states nr-outputs *output-matrix*)))
`
`{defun fill-phonetable (phone-vec ékey (show t))
`(let
`(this-phone phones-for-wd not-done this-fsm)
`(dotimes (wd-index (length phone-vec) )
`(setq phones-for-wd (aref phone~vec wa-incex) )
`(dotimes (ph-index (length phones-for-wd) }
`(setq this-phone (aref phones-for-wd ph-index))
`{when (null
`(gethash this-phone ‘nnone-hasntable*) )
`{setq not-done t)
`-
`t
`(when snow (format
`"NEW PHONE: ~a~%" this-phone) )
`(setq this-fsm (fsm:make-word-_Lisct-fsm (let
`({word this-ohone))
`(if not-cone
`(progn (setq not-done
`
`nil)
`
`:print-p nil))
`(setf (gethash this-«phone *phone-hashtable*)
`this-fsm}}))))
`
`word)
`
`nil))
`
`(defun filter-word (word)
`(let (ok t)
`(failure nil)
`*
`new-wd)
`(dotimes (index (length word))
`(char word index)
`(when (null
`(char-to-op
`nil))
`{unless (char= #\’
`(char word
`(setq failure t})
`(setq ok nil)))
`(when failure (format
`t
`(when (null ok)
`(setq new-wd (delete #\‘ word)))
`(if ok
`word
`new-wd) ))
`
`index))
`
`"FAILURE: ~a contains illegal chars~%" word))
`
`(defun find-group-recurrences (howmany &key (show nil)}
`(let
`((group-hashtable (make-hash-table :test +’ equal))
`key value count result group-veec start ena doc-id interval-wds (last-end -i)
`(last-wds nil)
`(last-doc-id -1))
`{(do*
`((index 0
`(1+ index)))
`((or
`(= index (length *“interval-wd-vec*}
`(null
`(svref *interval-wd-vec* index))
`(>= index howmany)})
`{setq interval-wds (svref *interval-wd-vec* index)}
`
`j3¢ There may be multiple identical words in interval vec, causing longer redundant hypothesis
`combinations (we are assuming here that words aren't repeated in the spoken query
`
`(when nil
`(setq key (copy-seq interval-wds) ))
`{(setq key (remove-duplicates interval-was :test #’string-eaual))
`{when (null key)
`"ERROR: key is mull for interval index ~A~%"
`(format t
`(setq result
`(svref *query-results* index))
`
`index) )
`

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