throbber
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
`
`USUU64-9679331
`
`(12) Ulllted States Patent
`Vcditz ct al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,496,793 B1
`Dec. 17, 2002
`
`SYSTi'Cl\?I AND Mi*:'l‘H()l)S FOR NATIONAL
`LANGUAGE SUPPORT WI'I'H EMBEDDED
`L0'CALE~SPECiF[C LANGUAGE DRIVER
`IDENTIFIERS
`
`(54)
`
`(75)
`
`(73) A _
`_
`§SIgfICCI
`
`Il'lVf-'l'll0f5l Daniel Pfllll V9ditZ. lrflllfifl. (.1/\ (U5);
`David Brett Sehnepper, Ins Gatos, CA
`(US)
`B H “d R flwan C
`[I 3
`L {l
`‘
`Vallgy’ CA (Us)
`
`{ll."[){l
`
`r ti
`Q
`it
`ii I0l'l, » CO W
`
`5.181.162 A * H1993 Smith et :1].
`5.-23ll's575 A ‘
`131994 Y°‘-'"E Cl 5”-
`-
`1
`. H
`OTHER l’UBLl(.Al IONS
`Hall, W.. Azinpt Your I’mgmm for Woridwiaic Use with
`Windotvs Inrernrnionrtiizririon Support, Mierosoll Systems
`Journal. Nov._1T)ec. 1991, pp. 29—58.
`Pet mid, C, Pttogrrmtming Windows, Second Edition, 1090,
`pp. 125-131 ((‘.|1apter 3: The Keyboard).
`I
`I
`* cued by examiner
`
`(“) Notice:
`
`Subiecl to any disclaimer, the term of this
`‘
`patent is extended or adjusted under 35
`U.S.C. l54(h) by 0 days.
`
`Primrtry Examiner—i’atrick N. Edouard
`“
`(74) A!I().i":‘1(’_}-',Ag£'iT.', or i‘~t'.rm—Darhy & Darby
`
`(57)
`
`ABSTRACT
`
`APB 21» 1993
`
`(21) Appp Na‘: 033050357
`__
`Fllccli
`(33)
`Gt)6F171’20; (1061-‘9,-'44
`Int. Cl.7
`(51)
`704,-'8; 7171137
`(52) U.S. ct.
`364E419 16 419 08
`(58) Field of qeamh
`'
`_
`304141909‘ 4l9'I9’ 4ig‘0l5 7171135‘ 146’
`4’ 8
`
`(56)
`
`,,
`‘
`.
`Referenwi’ (“fled
`u_s_ 11,411-;N'[‘ [)Q(juM[:,N‘1‘3
`
`4-'45("%9 A a W [984 Hawk 9! “L
`4,566,078 A *
`111936 Crabtree
`354.-'41o.01
`4,731,735 A *
`311988 Borgendztle at all.
`354,*'4l9.1IS
`4_.87U_.4-{J2 A *
`9.-"1089 DeLuca et al.
`...... .. 3b4.’4l9.I.()
`5,110,465 A *
`E');"l9‘.l2 Jack er al.
`
`The present invention eontprises a National Language Sup-
`port
`(NLS) system with Language Driver
`Identifiers
`(I.,DlDs)e1'ahec|dc:| aslocale-specificcleseriptors within clata
`°l’J"°"“ H“ 1‘1‘:‘i‘_“;‘f')‘*" “'“‘fll; I'M?’ b“ “_‘ ‘hf ml": “Eh?
`“5‘°'“"?°'""a"""
`‘°'3“
`”“')"'°"° °F"" °y°‘ ”‘ "
`system In several places to record the particular language
`(driver) which was used when a given data object was
`created or modified. The I.DIl) methodology of the present
`invention allows the system to intelligently process data
`objects created or modified under one language driver with
`those created or modified by :1 cliifcrent language driver. In
`the event of incompatibilities,
`the system provides error
`handling, routines, including a preferred interface for warn-
`irtg users of incompatibilities and receiving user choices in
`mspum lhmor‘
`
`31 Claims, 13 Drawing Sheets
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 1
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 1
`
`

`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 1 of 13
`
`US 6,496,793 B1
`
`1i
`
`104
`
`KEYBOARD
`
`
`
`10?
`
`102
`
`103
`
`MAIN
`MEMORY
`
`
`
`CENTRAL
`PROCESSOR
`
`111
`
`109
`
`CACHE
`MEMORY
`
`l/O
`CONTROLLER
`
`110
`
`FIG. 1A
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 2
`
`DISPLAY
`DEVICE
`
`MASS
`STORAGE
`
`PRINTING
`DEVICE
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 2
`
`

`
`U.S. Patent
`
`])ec.17,2002
`
`Sheet 2 of 13
`
`US 6,496,793 B1
`
`161
`
`INFORMATION
`
`
`
`(-150
`
`152
`
`163
`
`- 1
`
`NFOF{MATlON
`
`INFORMATION
`
`162
`
`153
`
`APPLICATION
`
`I1 ‘
`“W3
`"—"
`SOFTWARE
`\/~I
`OPERATING
`x '
`SYSTEM
`
`154
`
`|N1'Ea[:AcE
`
`..__,_
`
`USER
`
`151
`
`FIG. 1B
`
`170
`
`max
`DATABASE TABLE
`:
`———.
`~<EvvALvE%REc°Fm A
`‘ 2 “UM “Om
`jjj 173
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 3
`
`j2 2
`1j2
`
`1
`T1
`12:
`
`FIELDS
`(COLUMNS)
`175
`
`FIG. 1C
`
`
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 3
`
`

`
`SU
`
`eM
`
`tE2zo%nn$55025
`
`E2.8uv_8_._oS5N
`
`Pmomzmsowfioo
`.0:0
`
`SmHM"NEEEcomuqnozfi
`
`
`1,RE5x.H98.¢u>_EmwamgmE_,,_%EEm:.NEm$...Ho_
`
`m.52Hmomaommm_g__¢m>_¢o.
`
`MBmaoEE2;LwaiE8..........zoammmSE96
`
`
`
`
`3Ean5mowaozfimoqauzsmosazsM:f,rI!f(\\\E...
`
`3smézoommw\.m<s._m$mammfimomnomwmm“Emmuqmmacezocfimzqfi%/.Sm\mmmama
`fllll..."..1.11mmafi$.35mama
`
`
`
`EmmmhoéqxuEmmmbééommmfioéqxozoaiétzoozocqmzmmzoo2o..§....Em2oo
`
`
`
`
`
`Sll“Umas39;
`6HH¥n
`mmMWM6.,93namesmm9EXA,1.!laliCE
`
`
`EMWMai39:mgmzmfiB9:
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 4
`
`
`
`
`

`
`QMU
`
`LI-m
`
`Sm2
`
`4
`
`m
`
`
`
`M@2392:Pmmémqmgsuzfi
`
`
`
`m._._m:ozmz_39%m_m<m._Ea.3Emzozm9mmsmcma5.3mmzoz”zo_5<
`
`
`n12%Ezmomoéozfi538$¢N19328..H93E54
`
`Ewe$60..
`
`M5%2emEE
`
`
`mozéo:nzofizM102%.: hmomqV.5amaze.m..98m>_5<9.2.93.203.2:N.m.93#8..2QBm_>_§..E>_EmoéozfiEammmT:.I|..!.93#59*Q3m_>:o<
`
`
`
`
`
`
`
`fm_z<oz_m._mEm_m<m<.:a5.3fwzozm9mm.,_Em.6$3
`
`.,A6F
`6.,mmwcE
`mmm%3.K,_HAwmmonmBP
`
`C.55
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 5
`
`

`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 5 of 13
`
`US 6,496,793 B1
`
`
`
`hwmauNmmnu
`
`fiom_¥_uozVmmqgumm
`
`mmmau
`
`ommgu
`nmqau
`
`ommqu
`hmwqu
`
`ommau
`nmqnu
`
`mmqau
`
`mHq-“+mum
`ommqu
`omwUhmwau
`
`ommgu
`
`mmwgu
`
`ommnu
`mmfigu
`mmfiau
`
`hmqau
`
`ommau
`
`mmvau
`mmmqu
`
`ommgu
`
`nmvau
`
`
`
`m..._ms_n5y.OOqQB...
`
`mmmmmuou
`
`
`
`w:_m>QHQ4m_nmpmom:o:m4
`
`OHmwm
`
`afi
`
`NH
`
`mfi
`
`vfi
`
`ma
`
`wfi
`
`ma
`
`mfi
`
`ommfi
`
`Hm
`
`mm
`
`mm
`
`qm
`
`mm
`
`mm
`
`mm
`
`mm
`
`ommm
`
`Hm
`
`mm
`
`mz<H4<HH
`
`Nz<uxuzmm¢
`
`mz4u:uzmx_
`
`z<u:uzmx¢
`
`Nmmau
`
`Nmmau
`
`ommgu
`
`ommgu
`
`momma
`
`vm
`
`mm
`
`mm
`
`mm
`
`mm
`
`Nmmmzczpaom
`
`mmuzoahmom
`
`zifimmzx
`
`z4M¢<a==I
`
`:mH4o¢
`
`uHm«x<
`
`ImHz4a
`
`Nzupsa
`
`Iukza
`
`Nxmwzzflm
`
`:mHzzH¢
`
`Nxuzmxm
`
`Iuzmxg
`
`zqzxmw
`
`Nz<z¢mm
`
`z4H4¢»_
`
`mmwz<a4q
`
`NxmHz<¢m
`
`:mHom2m
`
`z4Hwm3moz
`
`NImHam3m
`
`IwHzq¢m
`
`mg:
`
`x:
`
`ms
`
`mxomwu
`
`¥mm¢m
`
`xumwu
`
`
`
`mm<moamooucmmwgamgpmwumuwucr
`
`
`wpmu_u=_w.¢mpwn.m__*oem¢_,H
`
`oe2=m:m»omu:wmmLam;#mmumu?u:vNawn.mwnmuJamcmmowucmmmgamzp
`
`
`
`
`Lom:4¢HH_mm«muLu;gwwVm_w%
`
`A>_mmqmu
`
`mu+n.Lons::co_mgw>mumu_ucw
`
`N-ompwg_u__$}Hum<muuw_m>
`
`mpmnHo
`
`
`
`Emu.6.3Eamx3....mmwméa
`
`m:?:mw:
`
`mgcmucouwuxm
`
`
`
`
`
`mmumuumELo+_wumua=pmm_+omama
`
`eozz>»
`
`mmpanmm-H
`
`mmmnmwmumgu___mugoumgwogmgesz
`gmne:cawa-mmh-v
`
`m_++
`
`Lmumwzmgucwmmuxahtugmaesz
`
`ugouwgespcwmagmamogages:
`
`;wne=c“_n-oHH~.oH
`Lwae=:#_a-©Hm-w
`
`:o_uumm:mgu
`
`uw>Lmmmm
`
`mgm_aeouc?mc_pmuwu:wmm_m
`
`mwpxnwmH-~H
`muxnfl¢fi
`
`_muo_mcopHmm<muLomum>Lmm¢¢
`
`
`
`mwpmnmfim~-mH
`
`
`
`mm_m:o_paxLu:u
`
`wuxnfimfi
`
`
`
`
`
`uvIHG“mapu__»xue.:o_uu:uo;a
`
`
`
`.m__+xuE.:o?uo:uoLamm_mLm;u
`
`uo:%_:oo
`
`umngmmmx
`
`QHQJ
`
`xgozumcmmgm
`
`muxnfimm
`
`opmnfimm
`
`map»;Nfim-om
`
`Loumcwegwpurmwmmgpwmxao
`
`mmLLmLowq_;ommou_wwm
`3.3HH...:53mm»?mm#._..¢:.Nm
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 6
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 6
`
`

`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 6 of 13
`
`US 6,496,793 B1
`
`BEGIN
`
`301
`
`LANGUAGEDEPENDENT
`FILE OPERATION
`L39
`
`ACCESS MAY BE
`.O'?,'§49EF?EEFE,f3rH
`IEE.«‘ID~0NI.‘IC READ/H/RITE.
`,-wo APFEND (EXISTING
`DATA ,5 READONM DESIRED ACCESS MODE
`
`LANG. DRIVER
`CHECKING ENABLED?
`
`302
`
`“O
`
`306
`OPEN FILE WITHOUT
`FURTHER CHECKING
`
`CHECK
`LANG. DRIVER
`
`YES
`
`CHECK LDID IN DATA
`FILE (6-9.. STORED IN
`HEADER)
`
`3% W
`
`9055 DATA FILE sTORE
`(I..:.. Know AESOUT) LANG.
`DRIVER INFORMATION?
`
`304
`
`N0
`
`BACKWAFIDS COMPATIBILITY
`
`YES
`
`305
`
`CASE OF:
`
`ZEFIO__I.DID_MSG ACCESS MODE
`
`RIO
`FIIW
`RIO
`FIJW
`
`
`
`
`SUPPRESS WARNING (‘NO DRIVER“)
`MESSAGE; OPEN FILE RIO; LEAVE
`LOCAL LDID IN DATA FILE AS ZERO
`
`311
`
`
`
`
`SUPPRESS WARNING MESSAGE?
`OPEN FILE RIW: SET LOCAL LDID IN
`DATA FILE T0 ACTIVE LDID
`
`
`
`
`
`
`IF
`DISPLAY WARNING MESSAGE;
`PFIOCEED, OPEN FILE RIO AND LEAVE
`LOCAL LDID IN DATA FILE AS ZEFIO
`
`
`
`IF
`DISPLAY WARNING MESSAGE;
`PROCEED, OPEN FILE RIW AND SET
`LOCAL LDID IN FILE TO ACTIVE LDID
`
` FIG. 3A
`
`
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 7
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 7
`
`

`
`U.S. Patent
`
`l)ec.17,2002
`
`Sheet 7 of 13
`
`US 6,496,793 B1
`
`AT THIS POINT IT IS
`KNOWN THAT THE
`FILE I5 LANG. DRIVER
`AWARE
`
`
`
`321
`
`COMPARE LDID OF DATA
`FILE T0 ACTIVE LDID
`
` PROCESS
`OR MANUALLY (USER-DIRECTED)
`
`
`AUTOMAHCALLY (TR/SNSLATE)
`
`EXCEPTION HANDLING
`
`IF
`PROCEED
`
`
`325
`
`OPEN FILE PER SPECIFIED
`MODE
`
`FIG. 3B
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 8
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 8
`
`

`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 8 of 13
`
`US 6,496,793 B1
`
`2% Language firivcr $§3a1':ifEaé far the fiie.
`flkay in View with current Language: firévaer’?
`
`Nu Language Elriver spe:::ifi:at:Hcrrt?1e f§t£:..
`, Gkay to super: fiiia anti assign the cuneni
`Languagam Eriver in it?
`
`-2 Language I3-rivar far the flit: is Encaméatéhit
`
`;; wit?! the cnxzfftni Language Ba'§'v‘e.r.
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 9
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 9
`
`

`
`emU
`
`e
`
`Ll
`
`Qm
`
`m
`
`0
`
`U
`
`M93#8..P3.28%Ha
`
`n....................:
`
`2mfizoomm
`
`
`
`mamamo“.E52.3mam_§mmqméa3zoammmsE@..wMmhomaoEaSmaoEaxohi.
`
`...7%.
`
`
`
`__...l......:....n....-........
`
`w98_MEazoumm
`Lmm.
`
`mmmzmoBea
`
`.
`
`
`6.,mamamo...Eommm.3:1ma9mBuC4.,Bmao3:67A6..FS.
`mm.K,_nmwEatmmP
`
`1mMm
`
`IME
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 10
`
`
`

`
`U
`
`toHetM
`
`m
`
`02m
`
`....uS
`
`M0.1
`
`6SU
`
`canxmzozm
`
`MH
`
`manrozmmm
`
`BH
`
`anzsemmo_
`
`.8“\\3N8
`
`am
`
`mm
`
`5&3
`
`«I.B39J,69
`
`4:).|
`
`SmaoEEG
`
`mmGE
`
`em
`
`mmm>_E
`
`
`
`zoammm:.u:@6
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 11
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 11
`
`
`
`

`
`,1,
`
`Br0
`
`SU
`
`
`
`tan.........................,m93._,..oo._93E54
`
`.92184II93$.54
`
`MNm._m.s_.3--.2I|m,BmaoSE._._m:ozm_.
`
`imEazoommZOxm_D2_H
`
`%mamsemoomm.3
`
`SumacEa
`
`n:E§_
`
`
`
`zoammm.sfiea
`
`mmm%onGEm,mmM,mamfimomxu.a2..:3mmm_>_E_I.mm9meaSmEE4Swan.5%c6.,m
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 12
`
`
`

`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 12 of 13
`
`US 6,496,793 B1
`
`Bgem
`
`I.ANGUAGE—DEPENDENT
`INTERFIEIATED FILES
`OPERATION
`500
`H
`
`50
`
`1
`
`INDEX FILE ACCE55 I5
`“’*”C"‘”" ’3E’*"’“"R”E-
`SO THAT FILE MAY BE
`UPDATED
`
`REQUEST TO .OPEN.
`DEPENDENT FILE win:
`DESIRED ACCESS MODE
`
`LANG. omvea
`cmscscwc; ENABLED?
`
`502
`
`N0
`
`506
`
`OPEN FILE WITHOUT
`FURTHER CHECKING
`
`CHECK
`1_ANG,DRn/ER
`
`CHECK LDID IN DATA
`FILE (0.
`., STORED IN
`EADEFI)
`
`DOES DATA FILE aroma
`(La, mow ABOUT) LANG.
`DRIVER INFORMATION?
`
`504
`
`N0
`
`BACKWAFIDS COMPATIBILITY
`
`YES
`
`505
`
`CASE OF:
`
`ZEFIO~_LDID_MSG
`
`
`
`SUPPRESS WARNING (‘N0 DRIVER")
`MESSAGE: OPEN FILE RM’: UPDATE LOCAL
`LDID TO ACTIVE LDID (ON 1st WRITE DPEFL)
`
`
`
` DISPLAY WARNING MESSAGE;
`IF
`PROCEED. OPEN FILE FWII AND HEBUILD
`FILE; SET LOCAL LDID T0 ACTIVE LDID
`
`FIG. 50
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 13
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 13
`
`

`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 13 of 13
`
`US 6,496,793 B1
`
`Na Lmaguiagget %':‘i.v&r speeifiaé {'13: index Fiie. Van may
`reimild film inniex We mafia? {ha t:1ment?§,,anguage
`
`Efiriver as Hag ihaa iiliflfifli lr;d3'.’;< File.
`
`FIG. 5A
`
`The Lamgigage Eiriver in: the kruiex Fiia dues mat ma-tcfi
`ymir ::u£2'a-“rs: Languaga flrivar.
`(31:33,; in rfihuiid éhe
`
`'¥a*sdm< F356 mstier {ha t::.sr'ren% Lan._guage Erivez”?
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 14
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 14
`
`

`
`US 6,496,793 B1
`
`1
`SYSTEM AND METHODS FOR NATIONAL
`LANGUAGIC SUPPORT WITH EMI3l£l)I)EI)
`I.()CALl<Z-SPICCIFIC LANGUAGl'*1 DRIVER
`IDENTIFI ERS
`
`COl’YRIGH'I' NOTICE
`
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent document or the patent
`disclosure as it appears in the Patent and Trademark Office
`patent file or records, but otherwise reserves all copyright
`rights whatsoever.
`BACKGROUND OF THE INVENTION
`
`I0
`
`15
`
`For software publishers, overseas markets comprise an
`ever-growing percentage of revenues for all major PC appli-
`cations. Traditionally, however, software products have been
`designed with little or no thought
`toward portability,
`let
`alone translating software products for overseas markets. As
`non-English speaking countries are buying more and more
`software from US. publishers,
`there is keen interest
`in
`improving the process of enabling or “internationalization",
`that is, designing and coding a software product so that it can *
`be made to function for international use.
`
`In the past, the process of providing National Language
`Support (i.e., accommodating a specific country’s language,
`conventions, and culture) was done on a more or less ad hoc
`basis—essentially retrofitting software to accommodate a
`particular locale. Merely separating the text in a user inter-
`face from one ‘s program is not an acceptable solution,
`however. Even after translating software prompts, help
`messages, and other textual
`information to the target
`languages, one still has to address basic issues of displaying
`and printing characters in the target language.
`For instance, a target language will often include charac-
`ters which are not defined by the default character set
`provided by the computer’s operating system.
`IBM-
`compatible PCs running MS-DOS, for example, can display
`and print up to 256 different characters, the first 128 char-
`acters of which include the well—l<nown 7-bit ASCII char-
`acter set. This, of course, is not enough characters to support
`all
`languages. Some languages will obviously require a
`different character set; thus, suficient means must be pro-
`vided for switching character sets.
`Other issues to consider when developing a system for
`foreign users include keyboard layout and various fonrtat
`conventions applicable for a particular country. Any use of
`currency, date, time, and the like within one‘s software must
`take into account these factors. For example. keyboards sold
`for European languages must include additional characters,
`such as letters with diacritics, and symbols, such as the
`British pound (12) sign.
`Another potentially serious problem for localizing a prov
`gram is the set of assumptions with which the underlying
`source code for the program was written. Assumptions made
`by English-speaking programmers, which were quite valid
`for the once—ubiquitous ASCII character set, often break
`down when dealing with a foreign language. For instance,
`the common programming technique of converting a char-
`acter to uppercase by simply adding the number 32 to the
`character (numeric code) is often inappropriate for non-
`ASCII characters. Similarly, one cannot rely on standard C
`functions either. For instance, one cannot use simple string
`comparison functions like the C programming language’s
`
`3-0
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`strcmp() function. Does an --5" (i.c., an "a" with a diacritic)
`sort before or after a normal “a”?
`
`One of the first serious attempts at providing National
`Language Support (NLS) for I-’(.’s was Microsoft’s MS-DOS
`version 3.3. Since MS-DOS accommodates different sets of
`256 characters for displaying and printing text, one may
`employ different characters by swapping in new character
`sets. Each such character set is referred to as a “code page";
`the code page in use at any given time is called the “active
`code page.” When installing operating system software,
`typically, a user may select a code page appropriate for his
`or her national language.
`MS-DOS also includes an API (Application Programming
`Interface) having a variety of functions related to intema-
`tionalization.
`Included are functions for
`inspecting code
`pages for determining and controlling how the keyboard,
`display, and printer handle characters. The API
`include
`functions, for instance, for inspecting and changing the
`current country code and obtaining information about the
`conventions associated with a current country code (e.g.,
`how to display dates, currency, and the like).
`Newer versions of MS-DOS also include support for
`character comparisons,
`through use of language-
`independent
`tables for sorting strings. Still, this is by no
`means a complete solution to the problem. Arabic languages,
`for instance, remain problematic. For one,Arabic is read and
`written right-to-left, not left-to-right. Also,Arabic characters
`require contextual analysis in order to determine which of
`four different shapes the Arabic characters should have
`(depending upon location in a word or phrase). Thus, a
`language may have its own special set of problems which
`must be addressed before international use.
`
`To date, clforts at localization have been largely limited to
`ensuring that a particular program, such as an operating
`system or application software, is itself enabled for a par-
`ticular country. When installing Microsofts Windows, for
`instance, a user is asked to select a country from a list of
`supported countries. Windows,
`in turn,
`installs various
`keyboard, display, and print drivers appropriate for the
`selected country. This “program centric” approach is only a
`partial solution, however.
`Consider the scenario of a corporation based in the US.
`receiving sales information from several foreign subsidiar-
`ies. Typically, such in formation would be transmitted as data
`files, such as spreadsheet or database files. In this instance,
`the information management system in the U.S. may be
`required to process data files created from a variety of
`foreign data processing systems, ones having character sets
`and conventions peculiar to a particular country. Converting
`such data files from one language to another inevitably
`results in the loss of language-specific information. Once
`converted, the information cannot be processed {e.g., adding
`and deleting information records, generating reporLs, and the
`like) and then simply reconverted back to its original form.
`Moreover, should that infonnation be inappropriately pro-
`cessed (e.g., sorting German information according to an
`English sort order), valuable data may be corrupted.
`in
`One approach to averting this problem is to agree,
`advance, on a single data format (e.g., code page 437—the
`variant used in the United States and many European
`countries) to be used by all foreign ofices ofthe corporation.
`However, this solution invites another problem: the foreign
`offices must forego their own National Language Support,
`thus compromising their own data processing needs all for
`the convenience of the U.S. office. And even with such an
`approach, the risk remains that an office may inadvertently
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 15
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 15
`
`

`
`US 6,496,793 B1
`
`3
`mix data from its locale with the agreed-upon format,
`leading to corruption or loss of data. Needless to say, the
`approach is undesirable at best.
`System and methods are needed which allow users of
`computer systems to create and freely exchange data files,
`irrespective of National Language Support requirements. In
`particular, such a system would permit a user to create an
`information file in his or her own locale without regard to the
`requirements of other systems which may need access to the
`very same data from that file. The present invention fulfills
`this and other needs.
`
`5
`
`I0
`
`SUMMARY OF THE INVENTION
`
`15
`
`invention comprises a National Language
`The present
`Support including a language configurator, for processing
`data objects in a manner which is appropriate for the
`language configuration of each object. The language con-
`flgurator provides necessary support for a data object (which
`typically stores infonnation in a particular language) so that
`the data object may be appropriately processed by the
`system.
`The system of the present invention continually checks
`and maintains correct language configuration. A descriptor
`or Language Driver Identifier (LDID) (c.g., in the form of a _
`system-comparable unit) is employed for storing in desired
`location(s) of a data object information specifying the lan-
`guage driver that was in use when the data object was
`created or modified. The LDID, which may be in the form
`of an ID byte, references a set of language driver values
`(e.g., lookup table of locales). This allows the system of the
`present invention to intelligently process data obiccts cre-
`ated or modified under one language driver with those
`created or modified by a ditferent language driver. In the
`event of incompatibilities, the system provides error han-
`dling routines,
`including facilities for warning users of
`incompatible or otherwise illegal operations.
`A data object is preferably constructed so that it embeds
`or stores the Language Driver Identilier directly within the
`object
`itself, so that
`the object
`is sell‘-contained.
`In an
`exemplary construction of the data tile, for instance, the tile
`may include a header region for storing a Local Language
`Driver ID (“Local LDlD”}. This is followed by the actual
`information or data for the object.
`The language configuration which the system currently
`operates under (i.c., during the current session) is also
`identified by the language contigurator, which maintains an
`Active Language Driver ID (Active LDID) for referencing
`a I.anguage Driver currently employed by the system (i.e.,
`for the current session). In this manner, the local LDID may
`be compared against
`the Active LDID,
`thus enabling the
`system to determine instances where the system is inappro-
`priately configured for a data object about to be processed.
`Actual language configuration is effected through one or
`more Language Drivers which,
`in turn, select
`the most
`appropriate language configuration table(s). Each driver is
`of a particular type (identified with an I..DID value} and
`references an appropriate resource file and an appropriate
`character set or code page for achieving National Language
`Support.
`
`3-0
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1/\i.s a block diagram of a computer system in which
`the present invention may be embodied.
`FIG. 1B is a block diagram of a software system of the
`present
`invention, which includes operating system (05),
`
`65
`
`4
`database management system (DBMS) and application
`software, and user interface components.
`FIG. 1C is a block diagram illustrating data objects for the
`system of FIG. 1B, which includes a database table and its
`index.
`
`FIG. 2A is a block diagram illustrating a National Lan-
`guage Support (NLS) system of the present invention, which
`includes a language identifier embedded within each data
`object.
`FIG. 2B is a diagram illustrating the overall operation of
`language driver mapping in the system of the present
`invention.
`
`FIG. 2C is a diagram illustrating the embedding of the
`language identifier of the present invention within the header
`of a data file (.DBI5 file), whereby the Iile may be associated
`with a particular language driver (referenced through a
`lookup table).
`FIGS. 3A—B comprise a flowchart illustrating a language-
`dependent file operation method of the present invention.
`FIGS. 4A—C are bitmap illustrations of exemplary dialog
`interfhces for reporting language driver information and
`receiving user choices in response thereof.
`FIGS. 5A—C are block diagrams illustrating the applica-
`tion of langu age driver identification to moreadvanced data
`objects (e.g., interrelated files).
`FIG. SD is a flowchart illustrating a method of the present
`invention for language-dependent interrelated file operation.
`FIGS. 6A—B are bitmap dialog interfaces illustrating the
`reporting of Ianguage driver information (from the method
`of FIG. 5) and receiving user choices in response thereof.
`GLOSSARY
`
`Information Inter-
`ASCII: American Standard Code for
`change; a sequence of 128 standard characters.
`Code page: A character set, such as available in MS~DOS
`versions 3.3 and later, that provides a table for relating the
`binary character codes used by a program to keys on a
`keyboard or to the appearance of characters on a display.
`Database: An organized collection of information.
`Database Management System (DBMS): System that con-
`trols the organization, storage, and retrieval of informa-
`tion in a database.
`Enabling or Internationalization: Designing and coding a
`product so that it can be made to function for international
`use. A product is enabled if a national language version
`can be created at minimal expense and if it does not
`interfere with current or planned national language sup-
`port of other products.
`File: A collection of information stored under one name on
`a disk. For example, the system tables are stored in files.
`Index: A file that determines an order in which the system
`can access the records in a tabie.
`Glyph: A graphic representation of a single character.
`Localization: Translating and adding functions to an enabled
`product
`to accommodate a country’s languages,
`conventions, and cultures.
`National l_.an.guage: A language or dialect spoken by any
`group of people.
`National Language Support: The features of a product that
`accommodate a specific country, national language, local
`convention, culture, and the like.
`National Language Version: A variant of an original product
`that implements National Language Support and is tar-
`geted to a particular market.
`Retrofitting: Redesign and modification of a product that has
`not been enabled.
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 16
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 16
`
`

`
`US 6,496,793 B1
`
`5
`Table: A structure made up of rows (records) and columns
`(fields) that contains information.
`DETAILED DESCRIPTION OF A PREFERRED
`EMBODIMENT
`
`6
`mand menus; a QBE query worksurface is also provided.
`Application software 153,
`in turn,
`includes database
`command-language applications (e.g., dBASE@
`applications), which may be executed or otherwise acted
`upon by the DBMS 154. For further description of the
`general operation of dBASl:‘,
`the reader should refer to
`(IBASE IV manuals: Getting Started, Using dBASE IV,
`Language Reference, and Programming in dBASIl IV, all
`available from Borland International, and the disclosures of
`which are hereby incorporated by reference.
`tech-
`At the outset,
`it
`is helpful to understand general
`niques for storing information in DBMS 154. In a relational
`database management system, infonrtation is organized into
`tables, such as table 170 of FIG. 1C. A.s conceptually shown,
`table 170 typically includes horizontal
`rows or records
`(tuples) 173 and vertical columns or fields 175. A database
`record includes information which is most conveniently
`represented as a single unit. A record for an employee, for
`example, may include information about the employee’s II)
`Nu mber. Last Name and First Initial, Position, Date Hired,
`Social Security Number, and Salary. Thus, a typical record
`includes several categories of information about an indi-
`vidual pcrson, place, or thing. Each of these categories, in
`turn, represents a database field. In the foregoing employee
`table, for example, Position is one field, Date Ilired is
`another, and so on. With this format, tables are easy for users
`to understand and use. Moreover, the flexibility of tables
`permits a user to deline relationships between various items
`of data, as needed.
`By employing one or more database indexes, the records
`ofa table can be organized in many different ways, depend-
`ing on a particular user's needs. As shown by index 180 of
`FIG. 1C. for example, an index may be constructed as a
`single disk file which is referred to internally by the system
`for locating and displaying records in a database file (e.g.,
`table 170). Index 180 stores two types of information: index
`key values 183 and unique record numbers 185. An index
`key is a data quantity composed of one or more fields from
`a record; keys are used to arrange (logically) the database
`[ile records by some desired order (index expression).
`Record numbers, on the other hand, are unique pointers to
`the actual storage location ofeach record in the database file.
`In this manner, an index for a database file is similar to the
`index of a book, which lists subject keys and page numbers
`that point to where the actual information is located in the
`book. Specifically, an index organizes (logically not
`physically) the records in a database file according to the
`values in one or more fields of interest. As such, an index
`may greatly speed up searching (querying) for and sorting of
`information.
`In addition to tables and indexes, DBMSs typically pro-
`vide electronic “forms” and "reports”—dcsign documents
`for entering and retrieving information of interest. A form,
`for instance, is created for simplifying data entry by pre-
`senting a user with a screen facsimile of a real-world
`document which the user is already familiar with, such as a
`purchase order. A report, on the other hand, extracts infor-
`mation of interest from one or more information tables and
`presents it in a desired format.
`Tables,
`indexes, forms, reports, and other useracreated
`objects are all data-dependent components. Specifically,
`each component contains information in a particular lan-
`guage. For components to interrelatc in a meaningful
`fashion, they must “speak the same language," or at least be
`compatible with a given language scenario. A database table
`storing information in Danish, for instance, should not be
`sorted by an index file which expects information to be in
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 17
`
`ll)
`
`15
`
`-
`
`the following description will focus on an
`For clarity,
`embodiment of the present invention operative in a database
`environment. Specifically, since most readers will have at
`least some exposure to database systems,
`it
`is helpful to
`describe the present
`invention as implemented in such
`systems. The present invention is, however, not limited to
`any particular exemplary embodiment. Instead, the teach-
`ings of the present invention may be advantageously applied
`to a variety of applications {e.g., spreadsheets,
`wordprocessors, CAD programs, and the like), operating on
`a variety of architectures (c.g., Macintosh, MS—DOS,
`Windows, NextStep, UNIX, and the like). Application of the
`principles of the present invention is particularly advanta-
`geous in those systems where information must be shared
`internationally. Therefore, the following preferred embodi-
`ment and certain alternatives are offered for purposes of
`illustration and not limitation.
`General Architecture
`The present invention may be embodied on a computer
`system such as the system 100 of FIG. 1A, which includes _
`a central processor 101, a main memory 102 (e.g., random-
`acccss memory or RAM), an inputfoutput controller 103, a
`keyboard 104, a pointing device 105 (e.g., mouse, track ball,
`pen device, or
`the like), a display device 106. and a
`non-volatile or mass storage 107 (eg., hard or fixed disk,
`optical disk, magnct0—optical disk, or flash memory). Pro-
`cessor 101 includes or is coupled to a cache memory 109 for
`storing frequently accessed information; memory 109 may
`be an on-chip cache or external cache (as shown). System
`100 may also be provided with additional
`inputfoutput
`devices, such as a printing device 108, as desired. The
`various components of the system 101] commu nicate through
`a system bus 110 or similar architecture, as shown.
`Illustrated in FIG. 1B, a computer software system 150 is
`provided for programming the operation of the computer
`system 100. Software system 151], which is stored in system
`memory 102 and on disk memory 107, includes a kernel or
`operating system 151 and a database management system
`(DBMS) 154. O3 151 is the executive or supervisor for the
`system 100, directing both task management and data man-
`agement.
`DBMS 154, on the other hand, is a software subsystem for
`storing, retrieving, and manipulating information in data-
`base tables (e.g., tables 161, 162, 163). Under the command
`of DBMS 154, the system 10-!) receives user commands and
`data through user interface 152. Interface 152 includes a
`built-in query surface or editor for accessing and processing
`database information. Additional application programs, such
`as DBMS application software 153, may be ‘‘loaded’‘ (i.e.,
`transferred from storage 107 into memory 102) for execu-
`tion by the system 100, particularly for further controlling
`the operation of DBMS I54.
`In a preferred embodiment, the system 100 is an IBM-
`compatible personal computer system, available from a
`variety of vendors (including IBM of Armonk, N.Y.), and
`operating system 151 is MS-DOS operating system
`software, available from Microsoft of Redmond, Wash.
`DBMS 154 is preferably a PC database management system
`(PC DBMS). More preferably, DBMS 154 includes
`dB/\SE® Database Management System (available from
`Borland International of Scotts Valley, Calif.) As interface
`152, dBASE provides a worksurface or ‘‘canvas’‘ and com-
`
`3-0
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`FACEBOOK, INC.
`EXHIBIT 1105
`PAGE 17
`
`

`
`US 6,496,793 B1
`
`I0
`
`15
`
`3-0
`
`35
`
`40
`
`7
`English. Thus, it is desirable to provide a means by which
`these user-created objects may interact with one another
`appropriately.
`Preferred Configuration for National Language Support
`A. Language Configuration
`the problem of configuring a system, such as system 150,
`to operate with National Language Support is multifaceted.
`For instance,
`the problem of accurately representing the
`language itself
`the characters which are needed for disw
`playing and printing the written Ianguage——is by no means
`trivial. Moreover, many countries have specific formats for
`dates, currency, and the like.
`Referring now to FIGS. 2A—B, a preferred system eon-
`figured for National Language Support will now be
`described. NLS system 200 includes the system 100 oper~
`ably coupled to a language configurator 230 of the present
`invention. More particularly, the language conliguratot‘ 230
`includes means whereby the system 100 may process data
`objects in a manner which is appropriate for the language
`configuration of each object.
`As shown in FIG. 2A,
`the language configurator 230
`provides necessary support for a data object 201 (which
`typically stores information in a particular

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