`(12) Patent Application Publication (10) Pub. No.: US 2009/0094179 A1
`Jager
`(43) Pub. Date:
`Apr. 9, 2009
`
`US 20090094179A1
`
`(54) CLASSIFYING ENVIRONMENT OF A DATA
`PROCESSING APPARATUS
`
`(75) Inventor:
`
`Ivo Ruben Jager, Amstelveen (NL)
`
`Publication Classi?cation
`
`(5 1) Int. Cl.
`G06E 1/00
`
`(200601)
`
`Correspondence Address:
`FENWICK & WEST LLP
`SILICON VALLEY CENTER, 801 CALIFORNIA
`STREET
`MOUNTAIN VIEW, CA 94041 (US)
`
`(73) Assignee:
`
`PALM, INC., Sunnyvale, CA (U S)
`
`(21) Appl, NO;
`
`11 $68,925
`
`(22) Filed;
`
`Oct. 8, 2007
`
`(52) US. Cl. ........................................................ .. 706/21
`
`(57)
`
`ABSTRACT
`
`Data processing apparatus is disclosed comprising: a sensor
`module con?gured to sense a ?rst pro?le comprised of one or
`more attributes of an environment of said data processing
`apparatus; and a classi?cation module con?gured to assign a
`prediction factor to each of said one or more attributes of said
`?rst pro?le and to store each said attribute and assigned
`prediction factor as a stored pro?le.
`
`1 O2
`\
`
`Environment
`
`7
`
`Input
`
`f104
`
`1 O6
`
`208
`
`1 12
`\
`Action
`
`promes
`
`1 14
`
`.
`
`.
`
`.
`
`Classlflcatlon
`
`Learning
`
`J1 10
`
`Output
`
`1
`
`Google Inc., Nest Labs, Inc., and Dropcam, Inc.
`GOOG 1006
`IPR of US Pat. No. 8,315,618
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 1 0f 8
`
`US 2009/0094179 A1
`
`“5
`
`Environment
`
`7
`
`Input
`
`104
`-/
`
`106 W Classifrcatron
`
`.
`
`.
`
`.
`
`7
`
`114
`
`/1 10
`
`Learning
`1
`
`‘
`Output
`J \
`208
`
`FIG. 1
`
`112
`\\
`Action
`
`m
`
`Observed
`environment
`
`Created
`Profile
`
`302
`
`304
`
`306
`
`J314
`
`- - - 1316
`ID 1
`ID 2
`ID 3
`Total match:
`33.3%
`33.3%
`33.3%
`100%
`
`308
`
`310
`
`312
`
`FIG. 3
`
`2
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 2 of 8
`
`US 2009/0094179 A1
`
`200
`
`Screen
`
`226”
`
`Keyboard
`
`RF interface
`
`218
`Processor /
`
`216~/
`
`/ Memo
`
`W
`
`206
`
`//
`
`/, Input
`
`Classification J
`
`d
`
`'
`
`//
`204, // Learning
`.
`21O,///— Action
`212//
`
`Profiles
`database
`
`,/’_
`
`208
`
`/228
`
`Output V
`_/
`/214
`/
`
`__ Bluetooth Module/Environment
`Sensor
`
`/
`f
`202
`
`FIG. 2
`
`3
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 3 of 8
`
`US 2009/0094179 A1
`
`S402
`Receive observed profile /
`
`8404
`Set counter g = 0 f
`
`_ Set counter g =g+1; / S406
`' Get stored pr 'Ie(g)
`|
`Set counter h = 0; f 5408
`Set score = 0
`|
`Set counter h = h + ‘I; Get / $410
`> attribute(h) of stored
`pr0file(g)
`
`Attribute(h)
`in observed
`profile ‘.7
`
`Add attribute (h)
`prediction factor to score
`
`I
`
`8416
`
`Subtract attribute(h) /
`prediction factor from score
`
`8418
`
`NO
`
`YES
`
`FIG. 4(a)
`
`4
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 4 0f 8
`
`US 2009/0094179 A1
`
`S420
`
`NO
`
`YES
`
`Select pro?le with highest score /S422
`
`Output highest score profile to
`learning module and action module
`
`/ S424
`
`FIG. 4(b)
`
`5
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 5 0f 8
`
`US 2009/0094179 A1
`
`Receive highest score and f 8502
`observed profile
`
`Score <
`
`similariév
`
`threshoi ?
`
`S504
`
`YES
`
`S506 \ Capture new profile
`
`Assi _n normalised
`pre iction factors
`|
`Store new profile
`
`$510k
`
`stop
`
`fs514
`
`\ S513
`
`|
`
`_
`
`[8516
`
`Get attributeh? in [S518
`observed pro ile
`
`S520
`
`YES
`
`/S522
`
`Add attribute to highest score
`profile & assign prediction factor
`
`in
`
`FIG. 5(a)
`
`6
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 6 of 8
`
`US 2009/0094179 A1
`
`Add learning factor to
`attribute prediction factor
`
`fsszs
`YES
`Sum prediction factors
`
`S530
`Calculate J
`normalisation factor
`I
`
`0 /S532
`
`'
`
`15534
`
`I
`r=r+1
`|
`Prediction factor(j) /5536
`normalised
`
`NO
`
`Store updated fs540
`pro?le
`
`FIG. 5(b)
`
`7
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 7 0f 8
`
`US 2009/0094179 A1
`
`gri'v'irr‘ilktmem @ ® @
`@ @ @
`
`Recorded
`profile
`
`Final score:
`33.3%
`
`FIG. 6
`
`706
`
`ZQQ
`
`704
`E
`
`708
`
`702
`4f
`ID 1
`Observed
`environment \—/
`716 710
`J
`Highest
`VAIHZ
`714
`Total match:
`score
`ID 1
`720
`33.3%
`profile
`33.3%
`708
`:
`71813
`,
`3 722
`Updated
`F D V é C
`profile (+10
`ID 2
`ID 1
`ID 3
`ID 4 f 724
`learning)
`433
`43.3
`33.3
`10 J
`
`A "
`
`726
`
`Updated O \____/ O O 1
`profile
`ID 1
`ID 2
`ID 3
`ID 4
`Total match
`normalized
`33.3%
`33.3%
`25.6%
`7.7%
`48.7%
`C V" <3 G
`ID 1
`ID 2
`ID 3
`ID 4
`Total match:
`33.3%
`33.3%
`19.7%
`13.6%
`60.5%
`730
`> \728
`736
`
`2nd iteration
`examp|e
`
`F‘
`732
`
`734
`
`8
`
`
`
`Patent Application Publication
`
`Apr. 9, 2009 Sheet 8 of 8
`
`US 2009/0094179 A1
`
`Stored profile
`Pr0?le(1)
`Profilei2)
`
`Pro?leli)
`
`Pro?leln)
`(camera in use)
`
`Action
`Observed behaviour
`Initiate silent mode
`Silent mode, smartphone off
`Calls from certain telephone numbers Ignore call from the certain
`not answered
`telephone numbers
`None - action set by user
`Forward business calls to
`office telephone
`Decativate vibration alarm
`
`None — pre-set action
`
`FIG. 8
`
`9
`
`
`
`US 2009/0094179 A1
`
`Apr. 9, 2009
`
`CLASSIFYING ENVIRONMENT OF A DATA
`PROCESSING APPARATUS
`
`BACKGROUND
`
`[0001] 1. Field
`[0002] The present invention relates to apparatus and
`method for classifying the environment of a data processing
`apparatus.
`[0003] 2. Description of the Related Art
`[0004] Users of communications devices such as cellular
`telephones, smartphones, personal digital assistants (PDAs)
`and data processing apparatus in general often have such
`devices With them at all times. HoWever, While it is convenient
`to have a communications device present at all times it can be
`intrusive, for example if telephone calls are received Whilst in
`a meeting or business telephone calls received Whilst at home.
`A user may Wish to only receive SMS text messages or voice
`mail during such times but may forget to con?gure the com
`munications device to respond to only text messages or take
`voicemail.
`[0005] It is also the case that the times When a user Would
`not Wish to be disturbed, such as When in a meeting or by
`business calls When at home are often characterized by the
`user being in a particular location, With particular people
`and/or When the user is exhibiting particular behavior or a
`particular type of use of the device. Such things may be
`considered to represent the environment of the user and the
`communications device.
`[0006] Aspects of the present invention Were made With the
`foregoing in mind.
`
`SUMMARY
`
`[0007] VieWed from a ?rst aspect disclosed is a data pro
`cessing apparatus comprising a sensor module con?gured to
`sense a ?rst pro?le comprising one or more attributes of an
`environment of the data processing apparatus; and a classi?
`cation module con?gured to assign a prediction factor to each
`of the one or more attributes of the ?rst pro?le and to store
`each attribute and assigned prediction factor. VieWed from a
`second aspect, a method of operating data processing appa
`ratus comprises sensing a ?rst pro?le comprising one or more
`attributes of an environment of the data processing apparatus;
`assigning a prediction factor to each of the one or more
`attributes of the ?rst pro?le; and storing each attribute and
`assigned prediction factor.
`[0008] Data processing apparatus con?gured or operated in
`accordance With the foregoing aspects may sense attributes of
`the data processing apparatus environment such as cellular
`telephone cell sites, ambient light and/or noise, and/or the
`presence of other devices by sensing their Bluetooth signals,
`as non-limiting examples. At a given moment, the attributes in
`the environment of the data processing apparatus may be
`sensed and stored by the data processing apparatus.
`[0009] Assigning a prediction factor to each attribute in a
`stored pro?le provides a value against Which attributes of later
`observed environment pro?les may be compared to deter
`mine if an observed environment pro?le is the same or similar
`to a stored environment pro?le. If the same or a similar
`environment to a stored environment is ob served then the data
`processing apparatus settings, or settings of a communica
`tions device incorporating the data processing apparatus, may
`be set to be consistent With settings previously set for the
`stored environment pro?le.
`
`[0010] In this Way, a communications device incorporating
`such data processing apparatus may be automatically con?g
`ured according to its environment. Thus, in an of?ce environ
`ment an observed pro?le may match a stored pro?le Which is
`the pro?le When the user is at their desk, or in a conference
`room. The communications device may be automatically
`con?gured in accordance With an operational mode associ
`ated With the stored pro?le.
`[0011] The classi?cation module may be con?gured to
`automatically determine a value for the correlation betWeen
`the ?rst pro?le and one or more stored pro?les and store the
`?rst pro?le if each of the correlation values is less than a
`threshold level. In this Way, the data processing apparatus
`may automatically determine if an observed pro?le is differ
`ent from the stored pro?les and store the observed pro?le.
`Thus, a neW observed environment may be automatically
`stored thereby automatically building a database of environ
`ments for the data processing apparatus.
`[0012] Optionally, or additionally, a user of the data pro
`cessing apparatus may initiate storing of an observed pro?le.
`Additionally, the classi?cation module may be con?gured to
`normaliZe each assigned prediction factor to the number of
`attributes in the ?rst pro?le. For example, each assigned pre
`diction factor may be a number N divided by the number of
`attributes in the ?rst pro?le. By making the prediction factors
`a function of the number of detected attributes, the same
`absolute level of the prediction factors may be maintained
`independently of the number of attributes in the ?rst pro?le.
`[0013] The classi?cation module may be con?gured to
`determine each of the correlation values based on a difference
`betWeen the presence of one or more attributes in the ?rst
`pro?le and the presence of one or more attributes in each of
`the one or more stored pro?les. In this Way, it may be deter
`mined to What extent an observed pro?le is similar to stored
`pro?les.
`[0014] In one embodiment the classi?cation module may
`be con?gured to determine each correlation value based on
`adding and subtracting prediction factors; and to add a pre
`diction factor if associated With an attribute of the stored
`pro?le for Which a corresponding attribute is present in the
`?rst pro?le and subtract a prediction factor if associated With
`an attribute of the stored pro?le for Which a corresponding
`attribute is not present in the ?rst pro?le. In this Way, the
`similarity betWeen an observed (?rst) pro?le and a stored
`pro?le is based on the prediction factors for those attributes
`present in both the ?rst pro?le and the stored pro?le.
`[0015] The data processing apparatus may further comprise
`a learning module. The classi?cation module may be con?g
`ured to determine a best match stored pro?le, the best match
`stored pro?le being the stored pro?le having the highest cor
`relation value With the ?rst pro?le. The learning module may
`be con?gured to update the best match stored pro?le deter
`mined by the classi?cation module for the highest correlation
`value being equal to or exceeding the threshold value and not
`being the maximum correlation value. Thus, a stored pro?le
`may be updated based on the ?rst pro?le Where the ?rst pro?le
`is similar to the stored pro?le, but not identical. In this Way,
`stored pro?les may be adapted and modi?ed to take into
`account gradual changes in an environment.
`[0016] The learning module may be con?gured to update
`the best match stored pro?le by adding to the best match
`pro?le an attribute of the ?rst pro?le not present in the best
`match stored pro?le. Optionally, or additionally, the learning
`module may be con?gured to modify the prediction factor of
`
`10
`
`
`
`US 2009/0094179 A1
`
`Apr. 9, 2009
`
`each attribute present in the best match stored pro?le. In this
`Way a stored pro?le may be gradually modi?ed and updated
`if the environment corresponding to that stored pro?le gradu
`ally changes overtime.
`[0017] The learning module may be con?gured to add a
`learning factor to each prediction factor of each attribute
`present in both the best match stored pro?le and the ?rst
`pro?le. The learning factor may increase the prediction factor
`(importance) of attributes Which are present in both the best
`match pro?le and the ?rst pro?le, and decrease the prediction
`factor (importance) of those that are not. A “remove” thresh
`old may be set such that an attribute having a prediction factor
`less than the “remove” threshold is removed from the stored
`pro?le. The learning module may be con?gured to normalize
`learning factors of the stored best match pro?le. In addition,
`in one embodiment using percentage values the formula
`(l00%/number of detected attributes) *learning factor may be
`used to derive a learning factor Which provides an equal
`amount of change due to updating distributed over all modi
`?ed attributes.
`[0018] In one embodiment, the data processing apparatus
`comprises an action module con?gured to perform an action
`associated With said best match stored pro?le. Such an action
`might be to inhibit incoming telephone calls, sWitch calls to
`voicemail or some other device setting.
`[0019] In one embodiment, a computer program comprises
`computer program elements Which are implementable in a
`general data processing apparatus (for example a computer)
`to con?gure data processing apparatus and implement a
`method for such data processing apparatus in accordance
`With the foregoing.
`[0020] The features and advantages described in the speci
`?cation are not all inclusive and, in particular, many addi
`tional features and advantages Will be apparent to one of
`ordinary skill in the art in vieW of the draWings, speci?cation
`and claims. Moreover, it should be noted that the language
`used in the speci?cation has been principally selected for
`readability and instructional purposes, and may not have been
`selected to delineate or circumscribe the disclosed subject
`matter.
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`[0021] Other advantages and features Will be more readily
`apparent from the folloWing detailed description and the
`appended claims. The detailed description Will make refer
`ence to the folloWing ?gures:
`[0022] FIG. 1 is a schematic illustration of one embodiment
`of an architecture of a disclosed system;
`[0023] FIG. 2 is a schematic illustration of one embodiment
`of a mobile communications device;
`[0024] FIG. 3 is a schematic illustration of one embodiment
`of a stored pro?le created from an observed pro?le;
`[0025] FIG. 4 is a process How control diagram for one
`embodiment of a classi?cation module;
`[0026] FIG. 5 is a process How control diagram for one
`embodiment of a learning module;
`[0027] FIG. 6 is a schematic illustration shoWing a ?nal
`match score for one embodiment of an observed pro?le and
`stored pro?le;
`[0028] FIG. 7 is a schematic illustration shoWing iterations
`of one embodiment of an updated stored pro?le based on an
`observed pro?le; and
`
`[0029] FIG. 8 illustrates one embodiment of a pro?le/ac
`tion concordance table.
`
`DETAILED DESCRIPTION
`
`[0030] A preferred embodiment is noW described With ref
`erence to the ?gures Where like reference numbers indicate
`identical or functionally similar elements.
`[0031] The embodiments are, by Way of example only, and
`With reference to the accompanying ?gures introduced above.
`[0032] A general overvieW of the operation of an embodi
`ment Will noW be described With reference to the functional
`architecture illustrated in FIG. 1. Environment sensor mod
`ules 102 are con?gured to sense a value of one or more aspects
`or features of the environment at a particular time or in a
`particular time WindoW. An aspect or feature is something in
`the environment that can be sensed and a value assigned to it.
`An aspect or feature With an assigned value is termed herein
`an attribute of the observed environment.
`[0033] The value may be a logical value such as true or
`false, Which merely indicates the presence or absence of an
`aspect or feature in the environment, or it may be a numeric
`value indicating the amount of something in the environment,
`for example. The environment may be a physical environ
`ment, a processing or executing environment such as a com
`puter application that is being run on a data processing appa
`ratus or the state of a data processing apparatus, or a
`combination of tWo or more, for example.
`[0034] Input module 104 is con?gured to collect attribute
`values from the environment sensors 102. This may be done
`automatically or triggered by user input. One or more
`attributes sensed at the same time or Within the same time
`WindoW form an environment pro?le, Which may be consid
`ered a “snapshot” of the environment. The input module 104
`forWards the observed pro?le to classi?cation module 106.
`The classi?cation module 106 compares the attributes of the
`forWarded observed pro?le With pro?les stored in pro?les
`database 114.
`[0035] The classi?cation module 106 assigns a default pre
`diction factor to each attribute in a pro?le the ?rst time the
`pro?le is created. At a later time the input module 104 may
`collect attributes of the environment observed by sensors 102.
`Classi?cation module 106 may compare the neWly observed
`pro?le to see if its attributes match any of the stored pro?les.
`The pro?le and best match score is passed to output module
`108 Which distributes it to learning module 110 and action
`module 112. Action module 112 evaluates the pro?le and
`matching score and may initiate an associated task or state for
`the data processing apparatus associated With the stored pro
`?le providing the best match, for example.
`[0036] If the observed pro?le is different from any of the
`stored pro?les but suf?ciently closely matching, the learning
`module 110 uses the differences to adapt and adjust a stored
`pro?le, such as a stored pro?le having the closest match to the
`observed pro?le, by adjusting the prediction factors associ
`ated With the presence of one or more of the attributes in the
`stored pro?le. In this Way, stored pro?les may be automati
`cally adapted and adjusted based on differences betWeen
`observed pro?les and stored pro?les. Thus, stored pro?les
`may be gradually adapted and adjusted to take into account
`changes in the environment. If no suf?ciently closely match
`ing stored pro?le is found then the learning module 106 may
`initiate storing of the observed pro?le in the pro?les database,
`as a neW pro?le.
`
`11
`
`
`
`US 2009/0094179 A1
`
`Apr. 9, 2009
`
`[0037] In a particular embodiment, the data processing
`apparatus comprises a communications device such as a
`smartphone. In this embodiment the presence of Bluetooth
`devices in an environment of a smartphone is sensed. A smart
`phone is a mobile communications device Which provides
`functions in addition to voice and/or data communications,
`for example it may provide address book functionality or run
`applications such as Word processor applications or other
`application softWare.
`[0038] For simplicity and clarity of description the folloW
`ing description refers to a smartphone in Which only Blue
`tooth signals are sensed, although it Will be evident to a person
`of ordinary skill in the art that other aspects of the environ
`ment may be sensed by the smartphone dependent on What
`sensor modules or sensing operations are included in the
`smartphone.
`[0039] FIG. 2 is a schematic illustration of a smartphone
`200 con?gured in accordance With an embodiment of the
`present invention Which senses Bluetooth protocol Wireless
`signals in the environment of the smartphone 200. Example
`smartphones include 12, 20, or 24-key keypad smartphones.
`Other example smartphones include smartphones having
`mechanical or on-screen character keypads in a keyboard
`type layout. By Way of example, such keyboard type layouts
`include a ‘QWERTY’ (having, inter alia, ‘Q’, ‘W’, ‘E’, ‘R’,
`‘T’, ‘Y’, keys successively in a roW), ‘AZERTY’,
`‘QWERTZ’, ‘QZERTY’, Dvorak, or double-byte keys key
`pad layout.
`[0040] Smartphone 200 comprises a screen 224, a keyboard
`222, an RF interface 220, a processor 218 and a memory 216,
`all of Which are connected to a data bus 226. Stored in
`memory 216 are an environment classi?cation application
`program 228 and an environment pro?les database 214. Also
`included in smartphone 200 is a Bluetooth module 202 Which
`provides Bluetooth communication and Bluetooth sensing.
`Bluetooth is a loW poWer Wireless communications protocol
`for Wirelessly communicating betWeen devices such as com
`puters, printers and communications devices. The protocol is
`governed by the Bluetooth Special Interest Group (SIG).
`[0041] The keyboard 222 enables a user of the smartphone
`200 to enter text data and commands into the smartphone 200.
`The processor 218 is con?gured to run the environment clas
`si?cation application 228 Which is stored in memory 216 and
`provide a graphical user interface to the user on the screen
`224. The RF interface 220 is con?gured to provide Wireless
`communication With other devices for example Within a cel
`lular radio telephone netWork. It is noted that the keypad can
`be mechanical or on-screen and may in some instances com
`prise a combination thereof, e. g., an on-screen haptic keypad
`or touch sensitive keypad. The processor 218 may run envi
`ronment classi?cation application 228 automatically as a
`background routine during operation of smartphone 200, or in
`response to a user input through, for example, keyboard 222.
`[0042] Environment classi?cation application 228 com
`prises an input module 204 Which receives Bluetooth identi
`?er information from the Bluetooth module 202 and passes it
`to classi?cation module 206. The classi?cation module 206
`compares the information from input module 204, processes
`the information and provides an output to output module 208.
`Output module 208 then passes the result of the classi?cation
`module to learning module 210 and action module 212.
`[0043] When a Bluetooth enabled device has its Bluetooth
`module turned on it periodically transmits from its Bluetooth
`module a signal announcing its availability for communica
`
`tion. The signal comprises a Bluetooth identi?er for the
`device Which is unique to each device. The Bluetooth identi
`?er may be in the form of a Bluetooth module’s MAC (Media
`Access Control) address, Which has the format xxx.xxx.xxx.
`xxx. It is noted that one embodiment, the ‘x’s can be integer
`number values. In an environment Where there are a number
`of Bluetooth enabled devices operating, a number of Blue
`tooth identi?ers may be transmitted. For example, Where
`there are three Bluetooth devices operating, signals compris
`ing respective identi?ers xxx.xxx.xxx.xxl ; xxx.xxx.xxx.xx2;
`and xxx.xxx.xxx.xx3 may be present.
`[0044] Bluetooth module 202 of smartphone 200 may
`detect each Bluetooth identi?er in the environment and
`thereby sense the presence and communications availability
`of the three other Bluetooth enabled devices. Additionally,
`Bluetooth module 202 may also transmit its oWn identi?er,
`for example xxx.xxx.xxx.xx4. In the currently described
`embodiment, the Bluetooth value is a logical value true or
`false indicating the presence or not of a Bluetooth device in
`the environment.
`[0045] During execution of environment classi?cation
`module application 228, input module 204 acquires from
`Bluetooth module 202 a “snapshot” of the observed Blue
`tooth identi?ers detected by the Bluetooth module. The snap
`shot may be made at an instant in time or over a short time
`period. Acquisition of the snapshot may be under control of
`the classi?cation application 228 itself, or in response to a
`user input, for example via a function button on keyboard 222.
`The creation of a neW Bluetooth pro?le in accordance With an
`embodiment of the invention Will noW be described With
`reference to FIG. 3 and With reference to the process How
`control diagrams of FIGS. 4 and 5.
`[0046] FIG. 3 illustrates an environment 300 in Which
`Bluetooth identities ID1 302, ID2 304 and ID3 306 are
`present, and form an observed environment pro?le 314. If this
`is the ?rst time that this combination of Bluetooth identities
`are sensed as present in an environment, a neW pro?le is
`created 316 by the environment classi?cation application and
`stored in pro?les database 214. The created pro?le 316 com
`prises the Bluetooth identities, 308, 310, 312 and their pre
`diction factors. The prediction factors are made equal to each
`other and are normaliZed to add up to 100%, and, therefore, in
`the illustrated example each prediction factor is 33.3%. Each
`Bluetooth identity and its associated prediction factor is an
`attribute of the created pro?le 316.
`[0047] The stored pro?les may be provided and stored With
`an identity label or stored in de?ned memory locations in
`pro?les database 214. For illustrative purposes in this descrip
`tion the pro?les may be considered to be labeled and stored
`numerically as pro?le(1) .
`. .pro?le(g) .
`. .pro?le(m). Within
`each created and stored pro?le each attribute is identi?ed.
`Again, for illustrative purposes in this description the
`attributes may be considered to be labeled and stored numeri
`
`cally as attribute(l) .
`.
`. attribute(h) .
`.
`. attribute(n).
`[0048] In the currently described embodiment the creation
`of a neW pro?le results from operation of both the classi?ca
`tion module 206 and the learning module 210. Operation of
`the classi?cation module 206 and the learning module 210
`Will noW be described With reference to the process How
`control diagrams 400 and 500 illustrated in FIGS. 4 and 5,
`Which provide merely one example of hoW the classi?cation
`module 206 and learning module 210 may be implemented.
`[0049] The classi?cation module 206 receives an observed
`pro?le from the input module 204, S402. A counter g is
`
`12
`
`
`
`US 2009/0094179 A1
`
`Apr. 9, 2009
`
`assigned the value Zero, S404, and then incremented by 1 at
`step S406. Stored pro?le “pro?le(g)” is retrieved from pro
`?les database 214 via the classi?cation module 206, S406. A
`counter “h” is then assigned the value Zero, together With a
`variable “score” Which is also assigned the value Zero, S408.
`The variable “score” indicates the correlation level or simi
`larity of the observed pro?le 314 With a stored pro?le, and is
`updated during operation of the classi?cation module 206.
`[0050] Counter “h” is incremented by 1 and the attribute(h)
`of pro?le(g) is made available for comparison With the
`attributes in the observed pro?le 314, S410. Attribute(h) of
`pro?le(g) is then compared With the attributes of the observed
`pro?le 314, S412. If attribute(h) is found in the observed
`pro?le 314 then that process control ?oWs to step S414 Where
`the prediction factor assigned to attribute(h) is added to the
`“score” value. If attribute(h) is not found in the observed
`pro?le 314 then the prediction factor for attribute(h) is sub
`tracted from the “score” value, S416. If the counter value “h”
`reaches the maximum value “m”, Where “m” is the number of
`attributes in the stored pro?le, S418, process control ?oWs to
`step S420. If the counter value “h” is not the maximum value
`“m” process control ?oWs back to step S410, h incremented
`by one and the next attribute retrieved. If counter g:n at step
`S420 the process control ?oWs to step S422. At step S422 the
`stored pro?le having the highest score is selected, and output
`to both learning module 210 and action module 212, S424.
`The best match pro?le is the pro?le having the highest score
`of all, and Will lie in the range —100 to 100. From the forego
`ing description of one example of the operation of the classi
`?cation module 206, a person of ordinary skill in the art Will
`readily understand hoW a correlation level or similarity score
`is derived for an observed pro?le and respective stored pro
`?les.
`[0051] The operation of learning module 210 Will noW be
`described With reference to the process How control diagram
`500 illustrated in FIG. 5. The stored pro?le With the highest
`score (best match score) is received by the learning module
`210 together With the observed pro?le, Which becomes the
`“pro?le to learn from” for the learning module, S502. It is
`then determined Whether the score is less than a “similarity
`threshold”, S504. The “similarity threshold” may be pre-set
`and/ or modi?able by a user of the smartphone incorporating
`the environment classi?cation application 228. A suitable
`“similarity threshold” is 30%, although other values may be
`used at the application implementer’s or user’s discretion.
`[0052] If the highest score is less than the similarity thresh
`old then process control ?oWs to step S506 Where a pro?le
`capture signal is established and the observed pro?le is
`treated as a neWly created pro?le. Normalized prediction
`factors are assigned to each attribute such that the prediction
`factors add up to 100%. The neW pro?le is in effect created as
`described With reference to FIG. 3 above, and is then stored in
`pro?les database 214, S510. If the score is equal to or greater
`than the similarity threshold the score is checked to see if it
`equals 100% and there is a perfect match betWeen the
`observed pro?le and the highest scored pro?le, S512. If there
`is a perfect match, the learning module then stops, S514.
`Optionally, the learning module may be con?gured to stop for
`a similarity less than 100% in Which case the test at S512
`Would be against a score loWer than 100%.
`[0053] Before continuing With the description of the pro
`cess ?oW control diagram 500 reference Will be made to FIG.
`7, Which is a schematic illustration of hoW a stored pro?le is
`updated based on a different observed pro?le. An observed
`
`environment pro?le 702 includes Bluetooth identities ID1
`704, lD2 706 and lD4 708. In the described example a highest
`score pro?le 710 comprises Bluetooth identities ID1 712, lD2
`714 and ID3 716. The correlation betWeen the observed envi
`ronment pro?le 702 and the highest score pro?le 710 has been
`determined to be 33% by the classi?cation module 206.
`[0054] The observed pro?le 702 and highest score pro?le
`710 are compared and for each attribute that is present in both
`pro?les a learning factor of 10 is added to the attribute’s
`prediction factor to form an updated pro?le 724. Thus, ID1
`704 and lD2 706 have their prediction factors increased to
`43.3 de?ning neW attributes 718 and 720. ID3 708 remains
`unchanged as there is no corresponding attribute in the
`observed pro?le 702.
`[0055] Attribute 708 (ID4) in observed pro?le 702 is not
`present in the highest score pro?le and so is added to updated
`pro?le 724, and the prediction factor initialiZed to the leam
`ing factor 10 to form attribute 722 of updated pro?le 724. The
`prediction factors of the updated pro?le 724 are normaliZed to
`100% by summing the prediction factors of the updated pro
`?le and dividing the sum by 100 to derive a prediction factor.
`The sum may be considered to be the total con?dence value
`for the pro?le. Each prediction factor is then divided by the
`normaliZation factor to derive a percentage prediction factor.
`In the described example:
`
`Total con?dence:Sum:43.3+43.3+33.3+10:129.9;
`
`Normalization facto1:129.9/100:1.299;
`
`43.3/1.299:33.3%
`
`33.3/1.299:25.6%; and
`
`10/1.299:7.7%.
`
`[0056] This gives a 48.7% match or con?dence factor as
`Would be derived by the classi?cation module 206. If
`observed pro?le 702 should occur again the resultant updated
`pro?le 728 Would have attributes ID1 730 and lD2 732 With
`prediction factor 33.3%, ID3 734 With prediction factor
`19.7% and lD4 726 With prediction factor 16.6%. Thus, after
`tWo iterations the updated pro?le sloWly begins to adapt to
`lD4 708 being present in the environment Which used to have
`ID3. Thus, the prediction factor for lD4 increases and the
`prediction factor for ID3 diminishes resulting in a decreasing
`prediction factor for ID3 and an overall ever increasing
`matching score for the pro?le. The matching score increases
`to 60.5%. Thus, environment classi?cation application
`through the learning module 210 adapts stored pro?les to
`changing environmental conditions.
`[0057] At step S514 a counter i is initialiZed to Zero, and
`then incremented by 1, S516. Attribute(i) of the observed
`pro?le is made available for comparison With the attributes in
`the highest scored pro?le, S518.