WO2015183287A1 - Determining graphic user interface name recommendations - Google Patents

Determining graphic user interface name recommendations Download PDF

Info

Publication number
WO2015183287A1
WO2015183287A1 PCT/US2014/040034 US2014040034W WO2015183287A1 WO 2015183287 A1 WO2015183287 A1 WO 2015183287A1 US 2014040034 W US2014040034 W US 2014040034W WO 2015183287 A1 WO2015183287 A1 WO 2015183287A1
Authority
WO
WIPO (PCT)
Prior art keywords
values
gui
formula
name
list
Prior art date
Application number
PCT/US2014/040034
Other languages
French (fr)
Inventor
Shir YERUSHALMI
Michael Gopshtein
David Taub
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2014/040034 priority Critical patent/WO2015183287A1/en
Publication of WO2015183287A1 publication Critical patent/WO2015183287A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Definitions

  • Providers of mobile software applications may upload mobile applications to a digital media marketplace web site or web service that serves as a distribution platform for the mobile applications.
  • the digital media marketplace will enable users to browse mobile applications, and to cause downloads of desired applications from the marketplace to the users' mobile computing devices.
  • FIG. 1 is a block diagram depicting an example environment in which various embodiments may be implemented.
  • FIG. 2 is a block diagram depicting an example of a system to determine graphic user interface name recommendations.
  • FIG. 3 is a block diagram depicting an example data structure for a system to determine graphic user interface name recommendations.
  • FIG. 4 is a block diagram depicting a memory resource and a processing resource according to an example.
  • FIG. 5 illustrates an example of determining graphic user interface name recommendations.
  • FIG. 6 illustrates an example of determining graphic user interface name recommendations.
  • FIG. 7 is a flow diagram depicting steps taken to implement an example.
  • INTRODUCTION Users of mobile devices will in some situations desire that a provider of a mobile application be able to track certain user interactions with the downloaded mobile applications. For example, a user may provide consent for a provider or an agent of the provider to collect anonymous data that will provide valuable performance information that the provider or its agent can use to make improvements to the application.
  • an application provider or an application program management service working on behalf of the provider can enable this monitoring or tracking by including with the mobile application functionality that will record key events that happen on a mobile device, such as user interactions with the application, network events, sensors data (like number of photographs taken) etc. These events can then be sent to the provider or the APM, such that the provider or APM is able to understand how users of the provider's applications are utilizing the mobile applications.
  • GUI graphic user interface
  • various embodiments described in more detail below provide a system and a method to recommend names for graphic user interfaces.
  • data is received, the data indicative of execution of an application that causes display of a GUI in a number of states.
  • a name candidates list is created.
  • the name candidates list includes values for a set of properties of the GUI.
  • user action values for the properties represented in the list are identified, and stored values in the name candidates list that are deemed dissimilar to the stored value's associated user action value are removed from the name candidates list.
  • a dissimilarity formula is utilized to ascertain the dissimilarity.
  • context change values for the properties represented in the list are identified, and stored values in the name candidates list that are similar to the stored value's associated context change value are removed from the name candidates list.
  • a dissimilarity formula is utilized to ascertain the similarity.
  • recommendation for the GUI is determined based upon the name candidates list.
  • examples described herein may present an automated and efficient manner to enable determination of GUI names for applications. Disclosed examples will enable the appointment of useful names for GUIs in situations where it would not have been useful to assign a name during development of the application or where a simplistic method of extracting a property from the GUI to use as a GUI name would not be sufficient. Examples described herein may consider
  • Examples described herein can rely recommend names for GUI based upon knowledge of GUI state changes, as well as extraction of relevant text from properties, e.g., GUI components and internal objects. Examples described herein may thus enable APMs and mobile application providers to generate relevant, useful GUI names that may provide for more effective and cost-efficient tracking of mobile application events.
  • Mobile application provider satisfaction with APMs that utilize the examples described herein should increase.
  • user satisfaction with the mobile applications and the mobile devices upon which the mobile applications are executed or displayed should increase.
  • Environment describes an environment in which various embodiments may be implemented.
  • the second section labeled “Components,” describes examples of various physical and logical components for implementing various embodiments.
  • the third section labeled “Illustrative Example,” presents an example of determining graphic user interface name recommendations.
  • FIG. 1 depicts an example environment 100 in which
  • embodiments may be implemented as a system 102 to determine graphic user interface name recommendations.
  • Environment 100 is show to include computing device 104, client devices 106, 108, and 110, server device 112, and server devices 114.
  • Components 104-114 are interconnected via link 116.
  • Link 116 represents generally any infrastructure or combination of infrastructures configured to enable an electronic connection, wireless connection, other connection, or combination thereof, to enable data communication between components 104 106 108 110 112 114.
  • Such infrastructure or infrastructures may include, but are not limited to, one or more of a cable, wireless, fiber optic, or remote connections via
  • link 116 may represent the internet, one or more intranets, and any intermediate routers, switches, and other interfaces.
  • an "electronic connection” refers generally to a transfer of data between components, e.g., between two computing devices, that are connected by an electrical conductor.
  • a “wireless connection” refers generally to a transfer of data between two components, e.g., between two computing devices, that are not directly connected by an electrical conductor.
  • a wireless connection may be via a wireless communication protocol or wireless standard for exchanging data.
  • Client devices 106-110 represent generally any computing device with which a user may interact to communicate with other client devices, server device 112, and/or server devices 114 via link 116.
  • Server device 112 represent generally any computing device configured to serve an application and corresponding data for consumption by components 104-110.
  • Server devices 1 14 represent generally a group of computing devices collectively configured to serve an application and corresponding data for consumption by components 104-110.
  • Computing device 104 represents generally any computing device with which a user may interact to communicate with client devices 106-110, server device 112, and/or server devices 114 via link 116.
  • Computing device 104 is shown to include core device components 118.
  • Core device components 118 represent generally the hardware and programming for providing the computing functions for which device 104 is designed.
  • Such hardware can include a processor and memory, a display apparatus 120, and a user interface 122.
  • the programming can include an operating system and applications.
  • Display apparatus 120 represents generally any combination of hardware and programming configured to exhibit or present a message, image, view, or other presentation for perception by a user, and can include, but is not limited to, a visual, tactile or auditory display.
  • the display apparatus 120 may be or include a monitor, a touchscreen, a projection device, a touch/sensory display device, or a speaker.
  • User interface 122 represents generally any combination of hardware and programming configured to enable interaction between a user and device 104 such that the user may effect operation or control of device 104.
  • user interface 122 may be, or include, a keyboard, keypad, or a mouse. In some examples, the
  • display apparatus 120 and user interface 122 may be combined, as in the case of a touchscreen apparatus that may enable presentation of images at device 104, and that also may enable a user to operate or control functionality of device 104.
  • System 102 represents generally a combination of hardware and programming configured to enable determination of GUI name recommendations.
  • system 102 is to, for each detection of a user action upon a GUI, cause the following actions to occur.
  • System 102 is to identify a set of user action values for each of the GUI's properties that are represented in a name
  • System 102 is to utilize a dissimilarity formula to identify stored values that are deemed dissimilar to an associated user action value. System 102 is to remove from the name candidates list stored values that are deemed dissimilar.
  • system 102 Responsive to detection of a context change state for the GUI, system 102 is to identify context change values for the properties represented in the name candidates list. System 102 is to utilize a similarity formula to identify each stored values that is similar to its associated context change value. System 102 is to then remove from the name candidates list stored values that are deemed similar to its associated context value.
  • a recommendation of a name for the GUI is generated.
  • the name recommendation is generated utilizing a name candidate from the name candidates list.
  • system 102 may be wholly integrated within core device components 118.
  • system 102 may be implemented as a component of any of computing device 104, client devices 106-110, server device 1 12, or server devices 114 where it may take action based in part on data received from core device components 118 via link 116.
  • system 102 may be distributed across computing device 104, and any of client devices 106-110, server device 112, or server devices 114.
  • components implementing detecting of user actions upon a GUI, the identifying of user action values for properties of the GUI represented in a name candidates list, the removing from the list stored values that are deemed dissimilar to an associated user action value, the detection of a context change state for the GUI, the determining context change values for the properties represented in the list, and the removing from the list of stored values that are similar to an associated context change value may be included within a server device 112.
  • a component implementing the determining of a generalized name recommendation for the GUI based upon the name candidates list may be a component included within computing device 104.
  • Other distributions of system 102 across computing device 104, client devices 106-110, server device 112, and server devices 114 are possible and contemplated by this disclosure. It is noted that all or portions of the system 102 to provide media navigation recommendations may also be included on client devices 106, 108 or 110.
  • FIGS. 2, 3, and 4 depict examples of physical and logical components for implementing various embodiments.
  • various components are identified as engines 202 204 206.
  • engines 202 204 206 focus is on each engine's designated function.
  • the term engine refers generally to a combination of hardware and programming configured to perform a designated function.
  • the hardware of each engine for example, may include one or both of a processor and a memory, while the programming may be code stored on that memory and executable by the processor to perform the designated function.
  • FIG. 2 is a block diagram depicting components of a system 102 to determine graphic user interface name recommendations.
  • system 102 includes user action detection engine 202, context change detection engine 204, and name recommendation engine 206.
  • engines 202 204 206 may access data repository 212.
  • Repository 212 represents generally any memory accessible to system 102 that can be used to store and retrieve data.
  • user action detection engine 202 represents generally a combination of hardware and programming configured to receive data indicative of execution of a mobile application that is configured to cause a display of a GUI in a multitude of states.
  • an "application” refers generally to a web application, software application, firmware application, or other programming that executes at, or accessible at, a computing device.
  • a “mobile application” refers generally to a web application, software application, firmware application, or other programming that executes at, or accessible at, a mobile computing device.
  • the terms “mobile computing device” and “mobile device” are used
  • a mobile device may be, but is not limited to, a smartphone, tablet computer, notebook computer, or any other mobile computing device configured to send and receive data, and/or otherwise communicate with a computer hosting system 102 via link 116.
  • GUI graphic user interface
  • a GUI display refers generally to any type of display caused by an application that can enable a user to interact with the application via visual properties of the display.
  • a "property" of a GUI display refers generally to a component or element within the GUI.
  • properties of a GUI display may include non-interactive text displays, interactive text displays (e.g., a text box), graphical icons, and/or secondary notation provided within the display (e.g., visual cues such as position, indentation, color or symmetry that are not part of formal notation).
  • a "state" of a GUI refers generally to a particular condition, stage, or configuration that the GUI is in, relative to another condition, stage or configuration that the GUI will be in if a property of the GUI is changed.
  • certain properties of a GUI may be changed, thereby causing a change in states of the GUI, as a result of a user performing actions upon the GUI via a user interface (e.g., a user entering text in a text box property of the GUI, or manipulating a non-textual property (e.g. a check box or drop-down menu) utilizing a mouse, touchpad, or touchscreen or other input apparatus).
  • user action detection engine 202 is configured to determine that the GUI being displayed as a result of the execution of the mobile application is in a starting state.
  • a "starting state” refers generally to an initial or first state that a GUI is in after the occurrence of a context change event within the GUI.
  • a "context change event” refers generally to a change in state of a GUI that occurs as result of an application event other than a user action upon the GUI, e.g., a user action upon a property of the GUI.
  • context change events include, but are not limited to, a GUI refresh caused by the executing application in response to a detected user action, a passage of time, input from a sensor at the mobile device, or any other stimulus.
  • user action detection engine 202 upon determining that the GUI is in a starting state, creates a name candidates list to be utilized in generating a recommendation of a name for the GUI.
  • the name candidates list is to store values for a set of properties of the GUI.
  • the name candidates list is created by writing to the list values for a set of properties of the GUI in its starting state.
  • the set of properties for which values are recorded may include, but are not limited to, a "title" displayed in the GUI, "first text” displayed in the GUI, "largest text” displayed in the GUI, and a class name utilized in the coding for the GUI.
  • the properties set may include a container, controller, or an activity-parsed class name for the GUI.
  • the properties set may include embedded objects or resources related to the GUI, e.g., xml files, image file names, etc.
  • the values are character strings, e.g., a sequence of symbols chosen from an alphabet, a digit set, or any other character set.
  • the values may be strings that are literal constants.
  • the values may include a string that is a variable declared to be a string.
  • a GUI may in some states include a property with a value of "Null", e.g. a GUI that has title property delineating a title field in the displayed GUI, but the title is left blank.
  • user action detection engine 202 is configured to detect user actions upon the GUI.
  • the user action detected may be, but is not limited to, a user activation of a button or other graphic element of the GUI, a partial or complete filling of a text field, a user confirmation of an alert provided by the GUI, or a choosing of an option from a drop-down list or other set of choices provided via the GUI.
  • user action detection engine 202 for each detection of a user action upon the GUI, is to cause the following actions to occur.
  • User action detection engine 202 is to identify a set of user action values for each of the properties
  • a "user action value” refers generally to a value for a property as the property exists following the user event.
  • User action detection engine 202 then utilizes a dissimilarity formula to identify all values stored in the name candidates list that are deemed dissimilar to the stored value's associated user action value.
  • "associated" values refers generally to values that are values for a specific property, the values having been recorded at different times. In an example, the associate values are parallel values.
  • User action detection engine 202 is to remove from the name candidates list stored values that are deemed dissimilar according to the dissimilarity formula.
  • the dissimilarity formula may be a formula that deems property values as dissimilar if the values are not an exact match.
  • the dissimilarity formula may be a formula that deems a first and a second property value (e.g.
  • Such other metrics may include, but are not limited to, whether the first and second property values are string values within a prescribed editing distance of one another, whether the first and second property values are string values within a prescribed number of delete or add operations of one another, or whether the first and second property values are string values within a prescribed number of replace operations of one another.
  • the comparison metrics to be applied also may consider combined string length of the first and second values as a factor.
  • context change detection engine 204 represents generally a combination of hardware and programming configured to detect a context change state for the GUI.
  • a context change state refers generally to any change in state of a GUI that occurs as result of an application event other than a user action upon the GUI, e.g., a user action upon a property of the GUI.
  • context change events include, but are not limited to, a GUI refresh caused by the executing application in response to a detected user action, a passage of time, input from a sensor at the mobile device, or any other stimulus.
  • context change detection engine 204 Responsive to detection of the context change state for the GUI, context change detection engine 204 is to identify context change values for the properties represented in the name candidates list.
  • a "context change value” refers generally to a value for a property as the property exists following the detection of the context change state for the GUI.
  • Context change detection engine 204 is to utilize a similarity formula to identify each stored values that is similar to its associated context change value. Context change detection engine 204 is to then remove from the name candidates list stored values that are deemed similar to an associated context value according to the similarity formula.
  • the similarity formula utilized by the context change detection engine 204 may be a mirror-image or converse of the similarity formula utilized by the user action detection engine 202.
  • the similarity formula may be a formula that deems property values as similar if the values are not an exact match.
  • the similarity formula may be a formula that deems a first and a second property value (e.g.
  • Such other metrics may include, but are not limited to, whether the first and second property values are string values within a prescribed editing distance of one another, whether the first and second property values are string values within a prescribed number of delete or add operations of one another, or whether the first and second property values are string values within a prescribed number of replace operations of one another.
  • the comparison metrics to be applied also may consider combined string length of the first and second values as a factor.
  • name recommendation engine 206 represents generally a combination of hardware and programming configured to determine, based upon the name recommendation list, a name recommendation for the GUI. In an example, the determination of the name recommendation occurs following the context change detection engine having identified a context change state for the GUI and having removed from the name candidates list stored values deemed similar to associated context change values for the GUI. In an example, the name recommendation engine 206 is to determine the recommendation of a name for the GUI utilizing a name candidate from the name candidates list. In an example, the determining the
  • recommendation of a name for the GUI includes choosing a property value from the name candidates list according to a hierarchy of preferred properties. For instance, if after the steps of paring down the list of name candidates following the user actions according to a dissimilarity formula, and paring down the list of name candidates following the identification of the context change state utilizing the similarity formula, if multiple name candidates remain on the list the recommendation can be determined according to a hierarchy of preferred property types for names.
  • the name recommendation engine would choose a property value from the name candidates list according to the preferred property - the value for the property "First Text.”
  • system 102 may cause the recommendation to be sent to a computing device
  • the recommendation may be sent to the computing device via a networking protocol.
  • the networking protocol may include, but is not limited to
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • HTTP HyperText Transfer Protocol
  • STP Simple Mail Transfer Protocol
  • XMPP Extensible Messaging and Presence Protocol
  • SIP Session Initiation Protocol
  • FIG. 3 depicts an example implementation of data repository 212.
  • data repository 212 includes mobile application data 302 including starting state data 304, user action data 310, and context change data 318.
  • Data repository 212 additionally includes a name candidates list 316 with stored values 316 for set of properties of GUI, a dissimilarity formula 314, a similarity formula 322, user action values 312, context change values 320, a preferred properties hierarchy 326, and a name recommendation 324 with a generalized name 328.
  • user action detection engine 202 receives, via a network 116 (FIG. 1 ) mobile application data 302 indicative of execution of a mobile application that is configured to cause a display of a GUI in a multitude of states.
  • User action detection engine 202 identifies starting state data 304 included within the application data 302 to determine that the GUI is being displayed a starting state.
  • user action detection engine 202 creates a name candidates list 306 to be utilized in generating or determining a recommendation 308 of a name for the GUI.
  • the name candidates list 306 is to store values 316 for a set of properties of the GUI.
  • the name candidates list 306 is created by writing to the list values for a set of properties of the GUI in its starting state.
  • user action detection engine 202 identifies user action data 310 within the application data 302 to detect user actions upon the GUI.
  • user action detection engine 202 causes the following actions to occur.
  • User action detection engine 202 identifies a group or set of user action values 312 for each of the properties represented in the name candidates list 306.
  • User action detection engine 206 then utilizes a dissimilarity formula 314 to identify all values stored 316 in the name candidates list 306 that are deemed dissimilar to the stored value's 316 associated user action value 312.
  • User action detection engine 202 removes from the name candidates list 306 stored values 316 that are deemed dissimilar according to the dissimilarity formula.
  • context change detection engine 204 identifies context change data 318 within the application data 302 to detect a context change state for the GUI. Responsive to detection of the context change state for the GUI, context change detection engine 204 identifies context change values 320 for the properties represented in the name candidates list 306. Context change detection engine 204 utilizes a similarity formula 322 to identify each stored value 316 that is similar to its associated context change value 320. Context change detection engine 204 removes from the name candidates list 306 values stored 316 in the list 306 that are deemed similar to an associated context value 320 according to the similarity formula 322.
  • the similarity formula 322 utilized by the context change detection engine 204 may be a mirror-image or converse of the dissimilarity formula 314 utilized by the user action detection engine 202.
  • the dissimilarity formula 314 and/or the similarity formula 322 may be a formula that deems property values as similar if the values are an exact match.
  • the dissimilarity formula 314 and/or the similarity formula 322 may be a formula that deems a first and a second property value (e.g. a stored value string for a property and an associated user action value for the property) as dissimilar or similar based upon metrics other than an exact match (e.g. based upon comparison of stored and associated string values according to a prescribed editing distance, number of character delete or character add operations, or character replace operations).
  • name recommendation engine 206 determines, based upon the name recommendation list 306, a name recommendation 324 for the GUI.
  • determining the recommendation 324 of a name for the GUI may include choosing a remaining stored property value 316 from the name candidates list 306 according to a preferred properties hierarchy 326.
  • determining the recommendation 324 of a name for the GUI may include creating or generating a generalized name 328 by performing a delete operation or an add operation upon a stored value 316 for a property, the stored value 316 being included in the name candidates list 306.
  • determining the recommendation 324 of a name for the GUI may include creating or generating a generalized name by performing a delete operation, an add operation, or a replace operation upon a context change value 320, e.g., a context change string value that was identified by the context change detection engine 204 after identifying the context change state for the GUI.
  • a context change value 320 e.g., a context change string value that was identified by the context change detection engine 204 after identifying the context change state for the GUI.
  • engines 202 204 206 were described as combinations of hardware and programming. Engines 202 204 206 may be
  • the programming may be processor executable instructions stored on a tangible memory resource 402 and the hardware may include a processing resource 404 for executing those instructions.
  • memory resource 402 can be said to store program instructions that when executed by processing resource 404 implement system 102 of FIGS. 1 and 2.
  • Memory resource 402 represents generally any number of memory components capable of storing instructions that can be executed by processing resource 404.
  • Memory resource 402 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of more or more memory components configured to store the relevant instructions. Memory resource 402 may be
  • processing resource 404 represents any number of processors capable of executing instructions stored by memory resource 402.
  • Processing resource 404 may be integrated in a single device or distributed across devices.
  • memory resource 402 may be fully or partially integrated in the same device as processing resource 404, or it may be separate but accessible to that device and processing resource 404.
  • the program instructions can be part of an installation package that when installed can be executed by processing resource 404 to implement system 102.
  • memory resource 402 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed.
  • the program instructions can be part of an installation package that when installed can be executed by processing resource 404 to implement system 102.
  • memory resource 402 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed.
  • the program instructions can be part of an installation package that when installed can be executed by processing resource 404 to implement system 102.
  • memory resource 402 can include integrated memory such as a hard drive, solid state drive, or the like.
  • the executable program instructions stored in memory resource 402 are depicted as user action detection module 406, context change detection module 408, and name recommendation module 410.
  • User action detection module 406 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to user action detection engine 202 of FIG. 2.
  • Context change detection module 408 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to context change detection engine 204 of FIG. 2.
  • Name recommendation module 410 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to name recommendation engine 206 of FIG. 2.
  • FIG. 5 illustrates an example of determining graphic user interface name recommendations.
  • system 102 receives, via a network 116 (FIG. 1 ) application data indicative of execution of an application that is configured to cause a display of a GUI screen 502 in a multitude of states 502A 502B 502C 502 D.
  • System 102 identifies starting state data included within the application data to determine that the GUI screen 502 is being displayed a starting state 502A.
  • system 102 creates a name candidates list to be utilized in generating or determining a recommendation of a name for the GUI screen 502.
  • the name candidates list is to store string values for a set of properties of the GUI screen 502 - a "Title” property 504, a "First Text” property 506, a "Largest Text” property 508, and a "Class Name” property 510.
  • the name candidates list is initially created by writing to the list string values for the set of properties 504 506 508 510 of the GUI screen 502 in its starting state 502A.
  • system 102 identifies user action data within the application data 302 to detect user actions upon the GUI screen 502. In this example, for each detection of a clicking upon or otherwise activating a "Next" graphic in the GUI screen, system 102 causes the following actions to occur.
  • System 102 identifies a group or set of user action string values for each of the properties
  • System 102 then utilizes a dissimilarity formula 310 to identify all string values stored in the name candidates list that are deemed dissimilar to the stored string value's associated user action string value.
  • the "First Text” property 506 has different string values ("Provide username and password” 506A, "Select Project” 506B, and “Advanced Connection Settings” 506C) when the string values are compared among different states 502A 502B 502C for the GUI 502, and therefore the "provide username and password” string value 506A for the "First Text” property 506 is removed from the name candidates list.
  • the "Largest Text” property 508 has an identical string value ("Login” 508A) when the string values are compared among different states 502A 502 B 502C for the GUI 502, and therefore the string value remains on the name candidates list throughout the series of user activation of the "Next" graphic in the GUI screen 502.
  • the "Class Name” property 510 has an identical string value ("UserManager Activity” 51 OA) when the string values are compared among different states 502A 502B 502C for the GUI 502, and therefore the string value "UserManager Activity” for the Class Name property 510 remains on the name candidates list throughout the series of user activations of a "Next" graphic in the GUI screen 502 to cause transitions between GUI states. [0051] Continuing with the example of FIG.
  • system 102 identifies context change data within the application data to detect a context change state 502 D for the GUI screen 502. Responsive to detection of the context change state 502D, system 102 identifies context change string values for the "Largest Text", and "Class Name” properties 508 510 represented in the name candidates list at that point.
  • System 102 utilizes a similarity formula to identify each stored string value that is similar to its associated context change string value. In this example, assuming the dissimilarity formula is a formula that deems two string values as similar if there is an exact match between the strings, system 102 removes from the name candidates list the "User anager Activity" string value 51 OA as it is deemed similar to its associated context string value 510B according to the similarity formula.
  • system 102 does not remove from the name candidates list the "Login” string value 508A as it is not deemed similar to its associated context string value "Welcome to BSM" 508B according to the similarity formula.
  • System 102 determines, based upon the sole remaining string value stored in the name recommendation list at this point, a recommendation 512 of "Login" 508A as the name to ascribe to the GUI screen 502.
  • determining the recommendation of a name for the GUI screen may include choosing a property string value from the name candidates list according to a preferred properties hierarchy 318.
  • the preferred properties hierarchy may include a rule that should there be multiple string values remaining in the name candidates list, the name shall be generated with a preference towards names in the following order "Title” - 1 , "First Text” - 2, "Largest Text” - 3, and "Class Name” - 4.
  • FIG. 6 illustrates another example of determining graphic user interface name recommendations.
  • a provider of an application or APM may decide that is advantageous to utilize a dissimilarity or similarity formula that does other than deems first and second property values as dissimilar or similar, respectively, based upon whether the string values for the first and second property values are an exact match as in the example of FIG 5.
  • a dissimilarity and/or similarity formula that deem a first and a second property value as similar or dissimilar based upon whether the first and second property values are string values within a prescribed editing distance of one another can be used.
  • FIG. 6 provides an example of determining graphic user interface name recommendations that is identical to FIG.
  • the "Largest Text” property 508 has different string values compared among different states 602A 602B 602C 602 D for the GUI 602.
  • the "Largest Text” property 508 has a string value of "Login Wizard (1 )" rather than “Login” as in FIG. 5.
  • the "Largest Text” property 508 has a string value of "Login Wizard (2)” rather than “Login” as in FIG. 5.
  • the "Largest Text” property 508 has a string value of "Login Wizard (3)” rather than “Login” as in FIG. 5.
  • system 102 may utilize a dissimilarity formula that does not compare to determine if exact strings match when eliminating or adding properties, but instead uses an "string distance” or “editing distance” metric as manner of quantifying how similar are two strings to one another.
  • an "edit distance” dissimilarity formula can be used which counts the number of editing actions (such as insertion of a character, deletion of a character or replacing a character) that are needed in order to transform a first value string ("Login Wizard (1 )" 608A for the "Largest text” property 508 in start state 602A to a second value string ("Login Wizard (1 )" 608A for the "Largest text" property 508 in start state 602A to a second value string (“Login Wizard (1 )" 608A for the "Largest text” property 508 in start state 602A to a second value string (“Login Wizard (1 )" 608A for the "Largest text” property 508 in start state 602A to a second value string (“Login Wizard
  • the edit distance dissimilarity formula can be used to count the number of editing actions needed to transform the second value string ("Login Wizard (2)" 608B) for the "Largest text” property 508 in start state 602B to a third value string ("Login Wizard (3)" 608C) for the "Largest text” property 508 in a next state 602C.
  • any algorithm for a "string distance” or “editing distance” formula may be used, For instance, a per-word distance dissimilarity formula may be used that counts editing operations.
  • a per-word distance dissimilarity formula utilized to evaluate an editing distance between the first value string "Login Wizard (1)" 608A and the second value string “Login Wizard (2)” 608B may determine an editing distance of "2", as the formula may determine that it is necessary to perform two operations to transform the first value string 608A to the second value string "Login Wizard (2)" 608B.
  • the two operations counted are the deletion of the character "4" and adding the character "10" as follows:
  • dissimilarity formula that deems string values as dissimilar based upon whether the first and second property values are string values within a prescribed editing distance of one another.
  • the similarity formula may be based upon whether the first and second property values are string values within a prescribed editing distance of one another.
  • dissimilarity formula and/or the similarity formula may be a formula that deems a first and a second property value as dissimilar in consideration of whether the first and second property values are string values within a prescribed number of "replace" operations.
  • the dissimilarity formula and/or the similarity formula may be a formula that deems a first and a second property value as similar or dissimilar in consideration of whether the first and second property values are string values within a prescribed editing distance (e.g. a predetermined number of "add”, “delete”, or “replace” operations) and also in consideration of a combined length of the first and second values.
  • a prescribed editing distance e.g. a predetermined number of "add”, “delete”, or “replace” operations
  • the dissimilarity and /or the similarity formulas may be structured such that output of the formula (called “diff herein) is a value between "0" and "1", where a diff of "0" indicates an exact match and a diff of "1" indicates the strings are totally different.
  • Mdff denotes a largest dissimilarity observed for a pair of strings.
  • the mdff will receive the value of diff (value of action 1 , value of action 2).
  • the diff between "value of action 1" and “new value” is calculated, and if the new diff is greater than the current mdff, the mdff is updated with new larger value.
  • the screen_change_diff is compared to another predefined limit (for example, 0.75), but this time it is expected that the diff is to be larger.
  • another predefined limit for example 0.75
  • screen_change_diff is smaller than 0.75 the candidate will be disqualified.
  • the edit distance between these two string values is 2 (one character delete and one character add are required), and the sum of their string lengths is "36", resulting in the calculation
  • the "Login Wizard (2)" 608B string would be deemed as similar to the "Login Wizard (1 )" 608A string and would not be removed from the candidates list during the transition between the starting state 602A for the GUI and the succeeding state 602B and would remain on the name candidates list following the each of the user actions that caused the transitions from starting state 602A for the GUI through the third state 602C.
  • the value of screen_change_diff is "0" as the same value of "UserManager Activity” remains at the context change.
  • the screen change diff of "0" is less than the predefined limit of "0.75", the "UserManager Activity” value for the "Class Name” 510 property cannot be the recommended name and the value is removed from the name candidates list.
  • system 102 may utilized multiple dissimilarity formulas and/or multiple similarity formulas.
  • system 102 may utilize a different dissimilarity formulas and a different similarity formula for each of the properties of the GUI.
  • system 102 may determine a recommendation 612 for a name for the GUI 602 (FIG. 6A), including creating a generalized name by performing a delete operation, add operation, or replace operation upon a stored value for a property.
  • system creates a generalized name of "Login Wizard” 614 by performing a delete operation that removes the characters "(1 )" from the stored value "Login Wizard (1 ).”
  • system 102 may creating a generalized name
  • system 102 may create a generalized name of "Login Wizard (*)" by performing a delete operation that removes the character "3" from, and adds a "*" character to the user action value "Login Wizard (3).”
  • FIG. 7 is a flow diagram of steps taken to implement a method for determining graphic user interface name recommendations.
  • FIG. 7 reference may be made to the components depicted in FIGS. 2 and 4. Such reference is made to provide contextual examples and not to limit the manner in which the method depicted by FIG. 7 may be implemented.
  • user action values are identified for properties of the GUI that are represented in a name candidates list. Stored values that are deemed dissimilar to an associated user action value according to a dissimilarity formula are removed from the list (block 702).
  • user action detection engine 202 (FIG. 2) or user action detection module 406 (FIG. 4)
  • processing resource 404 may be responsible for implementing block 702.
  • context change values are identified for the properties represented in the list. Stored values that are similar to an associated context change value according to a similarity formula are removed from the list (block 704).
  • a name recommendation for the GUI is determined based upon the name candidates list (block 706).
  • name recommendation engine 206 (FIG. 2) or name recommendation module 410 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 706.
  • FIGS. 1-7 aid in depicting the architecture, functionality, and operation of various embodiments.
  • FIGS. 1 -4 depict various physical and logical components.
  • Various components are defined at least in part as programs or programming. Each such component, portion thereof, or various combinations thereof may represent in whole or in part a module, segment, or portion of code that comprises one or more executable instructions to implement any specified logical function(s).
  • Each component or various combinations thereof may represent a circuit or a number of interconnected circuits to implement the specified logical function(s).
  • Embodiments can be realized in any memory resource for use by or in connection with processing resource.
  • a "processing resource” is an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain instructions and data from computer-readable media and execute the instructions contained therein.
  • a “memory resource” is any non- transitory storage media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. The term “non-transitory” is used only to clarify that the term media, as used herein, does not encompass a signal.
  • the memory resource can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, hard drives, solid state drives, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory, flash drives, and portable compact discs.
  • RAM random access memory
  • ROM read-only memory
  • flash drives and portable compact discs.
  • FIG. 7 shows a specific order of execution
  • the order of execution may differ from that which is depicted.
  • the order of execution of two or more blocks or arrows may be scrambled relative to the order shown.
  • two or more blocks shown in succession may be executed concurrently or with partial concurrence. All such variations are within the scope of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

In one example of the disclosure, upon detection of a user action upon a GUI, user action values are identified for properties of the GUI that are represented in a name candidates list. Stored values that are deemed dissimilar to an associated user action value according to a dissimilarity formula are removed from the list. Upon detection of a context change state for the GUI, context change values are identified for the properties represented in the list. Stored values that are similar to an associated context change value according to a similarity formula are removed from the list. A name recommendation for the GUI is determined based upon the list.

Description

DETERMINING GRAPHIC USER INTERFACE NAME RECOMMENDATIONS
BACKGROUND
[0001] Providers of mobile software applications may upload mobile applications to a digital media marketplace web site or web service that serves as a distribution platform for the mobile applications. Typically, the digital media marketplace will enable users to browse mobile applications, and to cause downloads of desired applications from the marketplace to the users' mobile computing devices.
DRAWINGS
[0002] FIG. 1 is a block diagram depicting an example environment in which various embodiments may be implemented.
[0003] FIG. 2 is a block diagram depicting an example of a system to determine graphic user interface name recommendations.
[0004] FIG. 3 is a block diagram depicting an example data structure for a system to determine graphic user interface name recommendations.
[0005] FIG. 4 is a block diagram depicting a memory resource and a processing resource according to an example.
[0006] FIG. 5 illustrates an example of determining graphic user interface name recommendations.
[0007] FIG. 6 illustrates an example of determining graphic user interface name recommendations.
[0008] FIG. 7 is a flow diagram depicting steps taken to implement an example.
DETAILED DESCRIPTION
[0009] INTRODUCTION: Users of mobile devices will in some situations desire that a provider of a mobile application be able to track certain user interactions with the downloaded mobile applications. For example, a user may provide consent for a provider or an agent of the provider to collect anonymous data that will provide valuable performance information that the provider or its agent can use to make improvements to the application.
[0010] For example, it may be useful for the provider and the users for the provider to be able to check to see what is a most popular application path is or how long it takes for the application to respond to a user click on a button. In some cases, an application provider or an application program management service working on behalf of the provider ("APM") can enable this monitoring or tracking by including with the mobile application functionality that will record key events that happen on a mobile device, such as user interactions with the application, network events, sensors data (like number of photographs taken) etc. These events can then be sent to the provider or the APM, such that the provider or APM is able to understand how users of the provider's applications are utilizing the mobile applications.
[0011] One useful way to characterize an event in a mobile application is to associate the event with a screen name or other designated name for a graphic user interface ("GUI") being displayed at the mobile application at the time of the event. Capturing performance information and conveying such information to an APM or application provider utilizing unique names for displayed GUI can be a significant challenge, however. Mobile applications are often very dynamic, such that it is difficult for the APM or the application provider to know in advance the best way to assign a GUI name. For example - if a "Buy it now" button appears in two application screens (both an "Items List" screen and "Item Details" screen), the provider and the APM will desire that reports on the application's performance clearly distinguish between the two cases such that a report viewer will know which button is being referenced without further effort. Providing mobile application GUIs with useful GUI names is made even more challenging by the occurrence that structure of a mobile application commonly varies from platform-specific version of the application to one another.
[0012] Thus, in some cases it will not be known during the development phase which properties of a GUI will be most applicable for naming the GUI, and assigning a name to a GUI by extracting properties from a production version of the GUI can be problematic as the derived name will sometimes not provide a clear meaning for the report reader, such that the reader can understand which GUI state is being discussed.
[0013] To address these issues, various embodiments described in more detail below provide a system and a method to recommend names for graphic user interfaces. In an example, data is received, the data indicative of execution of an application that causes display of a GUI in a number of states. Upon a determination that the GUI is in a starting state, a name candidates list is created. The name candidates list includes values for a set of properties of the GUI. Upon each detection of a user action upon the GUI, user action values for the properties represented in the list are identified, and stored values in the name candidates list that are deemed dissimilar to the stored value's associated user action value are removed from the name candidates list. A dissimilarity formula is utilized to ascertain the dissimilarity. Upon detection of a context change state for the GUI, context change values for the properties represented in the list are identified, and stored values in the name candidates list that are similar to the stored value's associated context change value are removed from the name candidates list. A dissimilarity formula is utilized to ascertain the similarity. A name
recommendation for the GUI is determined based upon the name candidates list.
[0014] In this manner, examples described herein may present an automated and efficient manner to enable determination of GUI names for applications. Disclosed examples will enable the appointment of useful names for GUIs in situations where it would not have been useful to assign a name during development of the application or where a simplistic method of extracting a property from the GUI to use as a GUI name would not be sufficient. Examples described herein may consider
small text changes that appear in successively displayed GUIs and may eliminate options that are not specific enough (options that refer to more than one GUI display). Examples described herein can rely recommend names for GUI based upon knowledge of GUI state changes, as well as extraction of relevant text from properties, e.g., GUI components and internal objects. Examples described herein may thus enable APMs and mobile application providers to generate relevant, useful GUI names that may provide for more effective and cost-efficient tracking of mobile application events.
Mobile application provider satisfaction with APMs that utilize the examples described herein should increase. Likewise, user satisfaction with the mobile applications and the mobile devices upon which the mobile applications are executed or displayed should increase.
[0015] The following description is broken into sections. The first, labeled
"Environment," describes an environment in which various embodiments may be implemented. The second section, labeled "Components," describes examples of various physical and logical components for implementing various embodiments. The third section, labeled "Illustrative Example," presents an example of determining graphic user interface name recommendations. The fourth section, labeled Operation," describes steps taken to implement various embodiments. It should be noted that while the present disclosure is discussed frequently herein with reference to mobile applications and mobile computing devices, the teachings of the present disclosure are not so limited and can be applied to test any software application and any computing devices.
[0016] ENVIRONMENT: FIG. 1 depicts an example environment 100 in which
embodiments may be implemented as a system 102 to determine graphic user interface name recommendations. Environment 100 is show to include computing device 104, client devices 106, 108, and 110, server device 112, and server devices 114.
Components 104-114 are interconnected via link 116.
[0017] Link 116 represents generally any infrastructure or combination of infrastructures configured to enable an electronic connection, wireless connection, other connection, or combination thereof, to enable data communication between components 104 106 108 110 112 114. Such infrastructure or infrastructures may include, but are not limited to, one or more of a cable, wireless, fiber optic, or remote connections via
telecommunication link, an infrared link, or a radio frequency link. For example, link 116 may represent the internet, one or more intranets, and any intermediate routers, switches, and other interfaces. As used herein an "electronic connection" refers generally to a transfer of data between components, e.g., between two computing devices, that are connected by an electrical conductor. A "wireless connection" refers generally to a transfer of data between two components, e.g., between two computing devices, that are not directly connected by an electrical conductor. A wireless connection may be via a wireless communication protocol or wireless standard for exchanging data.
[0018] Client devices 106-110 represent generally any computing device with which a user may interact to communicate with other client devices, server device 112, and/or server devices 114 via link 116. Server device 112 represent generally any computing device configured to serve an application and corresponding data for consumption by components 104-110. Server devices 1 14 represent generally a group of computing devices collectively configured to serve an application and corresponding data for consumption by components 104-110.
[0019] Computing device 104 represents generally any computing device with which a user may interact to communicate with client devices 106-110, server device 112, and/or server devices 114 via link 116. Computing device 104 is shown to include core device components 118. Core device components 118 represent generally the hardware and programming for providing the computing functions for which device 104 is designed. Such hardware can include a processor and memory, a display apparatus 120, and a user interface 122. The programming can include an operating system and applications. Display apparatus 120 represents generally any combination of hardware and programming configured to exhibit or present a message, image, view, or other presentation for perception by a user, and can include, but is not limited to, a visual, tactile or auditory display. In examples, the display apparatus 120 may be or include a monitor, a touchscreen, a projection device, a touch/sensory display device, or a speaker. User interface 122 represents generally any combination of hardware and programming configured to enable interaction between a user and device 104 such that the user may effect operation or control of device 104. In examples, user interface 122 may be, or include, a keyboard, keypad, or a mouse. In some examples, the
functionality of display apparatus 120 and user interface 122 may be combined, as in the case of a touchscreen apparatus that may enable presentation of images at device 104, and that also may enable a user to operate or control functionality of device 104.
[0020] System 102, discussed in more detail below, represents generally a combination of hardware and programming configured to enable determination of GUI name recommendations. In an example, system 102 is to, for each detection of a user action upon a GUI, cause the following actions to occur. System 102 is to identify a set of user action values for each of the GUI's properties that are represented in a name
candidates list. System 102 is to utilize a dissimilarity formula to identify stored values that are deemed dissimilar to an associated user action value. System 102 is to remove from the name candidates list stored values that are deemed dissimilar.
[0021] Responsive to detection of a context change state for the GUI, system 102 is to identify context change values for the properties represented in the name candidates list. System 102 is to utilize a similarity formula to identify each stored values that is similar to its associated context change value. System 102 is to then remove from the name candidates list stored values that are deemed similar to its associated context value.
[0022] Following the identification of the context change state for the GUI and following the removal from the name candidates list of stored values deemed similar to
associated context change values for the GUI, a recommendation of a name for the GUI is generated. The name recommendation is generated utilizing a name candidate from the name candidates list.
[0023] In some examples, system 102 may be wholly integrated within core device components 118. In other examples, system 102 may be implemented as a component of any of computing device 104, client devices 106-110, server device 1 12, or server devices 114 where it may take action based in part on data received from core device components 118 via link 116. In other examples, system 102 may be distributed across computing device 104, and any of client devices 106-110, server device 112, or server devices 114. In a particular example, components implementing detecting of user actions upon a GUI, the identifying of user action values for properties of the GUI represented in a name candidates list, the removing from the list stored values that are deemed dissimilar to an associated user action value, the detection of a context change state for the GUI, the determining context change values for the properties represented in the list, and the removing from the list of stored values that are similar to an associated context change value may be included within a server device 112.
Continuing with this particular example, a component implementing the determining of a generalized name recommendation for the GUI based upon the name candidates list may be a component included within computing device 104. Other distributions of system 102 across computing device 104, client devices 106-110, server device 112, and server devices 114 are possible and contemplated by this disclosure. It is noted that all or portions of the system 102 to provide media navigation recommendations may also be included on client devices 106, 108 or 110.
[0024] COMPONENTS: FIGS. 2, 3, and 4 depict examples of physical and logical components for implementing various embodiments. In FIG. 2 various components are identified as engines 202 204 206. In describing engines 202 204 206 focus is on each engine's designated function. However, the term engine, as used herein, refers generally to a combination of hardware and programming configured to perform a designated function. As is illustrated later with respect to FIG. 4, the hardware of each engine, for example, may include one or both of a processor and a memory, while the programming may be code stored on that memory and executable by the processor to perform the designated function.
[0025] FIG. 2 is a block diagram depicting components of a system 102 to determine graphic user interface name recommendations. In this example, system 102 includes user action detection engine 202, context change detection engine 204, and name recommendation engine 206. In performing their respective functions, engines 202 204 206 may access data repository 212. Repository 212 represents generally any memory accessible to system 102 that can be used to store and retrieve data.
[0026] In an example, user action detection engine 202 represents generally a combination of hardware and programming configured to receive data indicative of execution of a mobile application that is configured to cause a display of a GUI in a multitude of states. As used herein, an "application" refers generally to a web application, software application, firmware application, or other programming that executes at, or accessible at, a computing device. A "mobile application" refers generally to a web application, software application, firmware application, or other programming that executes at, or accessible at, a mobile computing device. As used herein, the terms "mobile computing device" and "mobile device" are used
synonymously, and refer generally to any portable computing device. In examples, a mobile device may be, but is not limited to, a smartphone, tablet computer, notebook computer, or any other mobile computing device configured to send and receive data, and/or otherwise communicate with a computer hosting system 102 via link 116.
[0027] A graphic user interface, or "GUI", refers generally to any type of display caused by an application that can enable a user to interact with the application via visual properties of the display. As used herein, a "property" of a GUI display refers generally to a component or element within the GUI. In examples, properties of a GUI display may include non-interactive text displays, interactive text displays (e.g., a text box), graphical icons, and/or secondary notation provided within the display (e.g., visual cues such as position, indentation, color or symmetry that are not part of formal notation). As used herein, a "state" of a GUI refers generally to a particular condition, stage, or configuration that the GUI is in, relative to another condition, stage or configuration that the GUI will be in if a property of the GUI is changed. In examples, certain properties of a GUI may be changed, thereby causing a change in states of the GUI, as a result of a user performing actions upon the GUI via a user interface (e.g., a user entering text in a text box property of the GUI, or manipulating a non-textual property (e.g. a check box or drop-down menu) utilizing a mouse, touchpad, or touchscreen or other input apparatus).
[0028] In an example, user action detection engine 202 is configured to determine that the GUI being displayed as a result of the execution of the mobile application is in a starting state. As used herein, a "starting state" refers generally to an initial or first state that a GUI is in after the occurrence of a context change event within the GUI. As used herein, a "context change event" refers generally to a change in state of a GUI that occurs as result of an application event other than a user action upon the GUI, e.g., a user action upon a property of the GUI. Examples of context change events include, but are not limited to, a GUI refresh caused by the executing application in response to a detected user action, a passage of time, input from a sensor at the mobile device, or any other stimulus.
[0029] In an example, upon determining that the GUI is in a starting state, user action detection engine 202 creates a name candidates list to be utilized in generating a recommendation of a name for the GUI. The name candidates list is to store values for a set of properties of the GUI. In an example, the name candidates list is created by writing to the list values for a set of properties of the GUI in its starting state. In an example, the set of properties for which values are recorded may include, but are not limited to, a "title" displayed in the GUI, "first text" displayed in the GUI, "largest text" displayed in the GUI, and a class name utilized in the coding for the GUI. In other examples, the properties set may include a container, controller, or an activity-parsed class name for the GUI. In other examples, the properties set may include embedded objects or resources related to the GUI, e.g., xml files, image file names, etc. In an example, the values are character strings, e.g., a sequence of symbols chosen from an alphabet, a digit set, or any other character set. In examples, the values may be strings that are literal constants. In other examples, the values may include a string that is a variable declared to be a string. In examples, a GUI may in some states include a property with a value of "Null", e.g. a GUI that has title property delineating a title field in the displayed GUI, but the title is left blank.
[0030] In an example, user action detection engine 202 is configured to detect user actions upon the GUI. In examples, the user action detected may be, but is not limited to, a user activation of a button or other graphic element of the GUI, a partial or complete filling of a text field, a user confirmation of an alert provided by the GUI, or a choosing of an option from a drop-down list or other set of choices provided via the GUI.
[0031] In an example, for each detection of a user action upon the GUI, user action detection engine 202 is to cause the following actions to occur. User action detection engine 202 is to identify a set of user action values for each of the properties
represented in the name candidates list. As used herein, a "user action value" refers generally to a value for a property as the property exists following the user event. User action detection engine 202 then utilizes a dissimilarity formula to identify all values stored in the name candidates list that are deemed dissimilar to the stored value's associated user action value. As used herein, "associated" values refers generally to values that are values for a specific property, the values having been recorded at different times. In an example, the associate values are parallel values.
[0032] User action detection engine 202 is to remove from the name candidates list stored values that are deemed dissimilar according to the dissimilarity formula. In an example, the dissimilarity formula may be a formula that deems property values as dissimilar if the values are not an exact match. As is discussed in greater detail elsewhere in this disclosure, in another example, the dissimilarity formula may be a formula that deems a first and a second property value (e.g. a stored value for a property and an associated user action value for the property) as dissimilar based upon other metrics, Such other metrics may include, but are not limited to, whether the first and second property values are string values within a prescribed editing distance of one another, whether the first and second property values are string values within a prescribed number of delete or add operations of one another, or whether the first and second property values are string values within a prescribed number of replace operations of one another. In certain examples, the comparison metrics to be applied also may consider combined string length of the first and second values as a factor.
[0033] In an example, context change detection engine 204 represents generally a combination of hardware and programming configured to detect a context change state for the GUI. As discussed previously, a context change state refers generally to any change in state of a GUI that occurs as result of an application event other than a user action upon the GUI, e.g., a user action upon a property of the GUI. Examples of context change events include, but are not limited to, a GUI refresh caused by the executing application in response to a detected user action, a passage of time, input from a sensor at the mobile device, or any other stimulus.
[0034] Responsive to detection of the context change state for the GUI, context change detection engine 204 is to identify context change values for the properties represented in the name candidates list. As used herein, a "context change value" refers generally to a value for a property as the property exists following the detection of the context change state for the GUI.
[0035] Context change detection engine 204 is to utilize a similarity formula to identify each stored values that is similar to its associated context change value. Context change detection engine 204 is to then remove from the name candidates list stored values that are deemed similar to an associated context value according to the similarity formula. In an example, the similarity formula utilized by the context change detection engine 204 may be a mirror-image or converse of the similarity formula utilized by the user action detection engine 202. In an example, the similarity formula may be a formula that deems property values as similar if the values are not an exact match. As is discussed in greater detail elsewhere in this disclosure, in other examples the similarity formula may be a formula that deems a first and a second property value (e.g. a stored value for a property and an associated user action value for the property) as similar or similar based upon metrics other than an exact match, Such other metrics may include, but are not limited to, whether the first and second property values are string values within a prescribed editing distance of one another, whether the first and second property values are string values within a prescribed number of delete or add operations of one another, or whether the first and second property values are string values within a prescribed number of replace operations of one another. In certain examples, the comparison metrics to be applied also may consider combined string length of the first and second values as a factor.
[0036] In an example, name recommendation engine 206 represents generally a combination of hardware and programming configured to determine, based upon the name recommendation list, a name recommendation for the GUI. In an example, the determination of the name recommendation occurs following the context change detection engine having identified a context change state for the GUI and having removed from the name candidates list stored values deemed similar to associated context change values for the GUI. In an example, the name recommendation engine 206 is to determine the recommendation of a name for the GUI utilizing a name candidate from the name candidates list. In an example, the determining the
recommendation of a name for the GUI includes choosing a property value from the name candidates list according to a hierarchy of preferred properties. For instance, if after the steps of paring down the list of name candidates following the user actions according to a dissimilarity formula, and paring down the list of name candidates following the identification of the context change state utilizing the similarity formula, if multiple name candidates remain on the list the recommendation can be determined according to a hierarchy of preferred property types for names. For instance, if at the time of identification of the context change state the name candidates list includes values for "Title", "First Text", "Largest Text", and "Class Name" properties, and the hierarchy of preferred properties is in the order "First Text", "Largest Text", "Title", and "Class Name", the name recommendation engine would choose a property value from the name candidates list according to the preferred property - the value for the property "First Text."
[0037] In an example, following determination of the GUI name recommendation, system 102 may cause the recommendation to be sent to a computing device
associated with an APM or a provider of the application that includes the GUI. In examples the recommendation may be sent to the computing device via a networking protocol. In examples, the networking protocol may include, but is not limited to
Transmission Control Protocol/Internet Protocol ("TCP/IP"), HyperText Transfer Protocol ("HTTP"), Simple Mail Transfer Protocol ("SMTP"), Extensible Messaging and Presence Protocol ("XMPP") and/or Session Initiation Protocol ("SIP").
[0038] FIG. 3 depicts an example implementation of data repository 212. In this example, data repository 212 includes mobile application data 302 including starting state data 304, user action data 310, and context change data 318. Data repository 212 additionally includes a name candidates list 316 with stored values 316 for set of properties of GUI, a dissimilarity formula 314, a similarity formula 322, user action values 312, context change values 320, a preferred properties hierarchy 326, and a name recommendation 324 with a generalized name 328.
[0039] Referring back to FIG. 3 in view of FIG. 2, in an example, user action detection engine 202 (FIG. 2) receives, via a network 116 (FIG. 1 ) mobile application data 302 indicative of execution of a mobile application that is configured to cause a display of a GUI in a multitude of states. User action detection engine 202 identifies starting state data 304 included within the application data 302 to determine that the GUI is being displayed a starting state. Upon determining that the GUI is in the starting state, user action detection engine 202 creates a name candidates list 306 to be utilized in generating or determining a recommendation 308 of a name for the GUI. The name candidates list 306 is to store values 316 for a set of properties of the GUI. In an example, the name candidates list 306 is created by writing to the list values for a set of properties of the GUI in its starting state.
[0040] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, user action detection engine 202 identifies user action data 310 within the application data 302 to detect user actions upon the GUI. In this example, for each detection of a user action upon the GUI according to the user action data 310, user action detection engine 202 causes the following actions to occur. User action detection engine 202 identifies a group or set of user action values 312 for each of the properties represented in the name candidates list 306. User action detection engine 206 then utilizes a dissimilarity formula 314 to identify all values stored 316 in the name candidates list 306 that are deemed dissimilar to the stored value's 316 associated user action value 312. User action detection engine 202 removes from the name candidates list 306 stored values 316 that are deemed dissimilar according to the dissimilarity formula.
[0041] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, context change detection engine 204 identifies context change data 318 within the application data 302 to detect a context change state for the GUI. Responsive to detection of the context change state for the GUI, context change detection engine 204 identifies context change values 320 for the properties represented in the name candidates list 306. Context change detection engine 204 utilizes a similarity formula 322 to identify each stored value 316 that is similar to its associated context change value 320. Context change detection engine 204 removes from the name candidates list 306 values stored 316 in the list 306 that are deemed similar to an associated context value 320 according to the similarity formula 322.
[0042] In an example, the similarity formula 322 utilized by the context change detection engine 204 may be a mirror-image or converse of the dissimilarity formula 314 utilized by the user action detection engine 202. In an example, the dissimilarity formula 314 and/or the similarity formula 322 may be a formula that deems property values as similar if the values are an exact match. In other examples, the dissimilarity formula 314 and/or the similarity formula 322 may be a formula that deems a first and a second property value (e.g. a stored value string for a property and an associated user action value for the property) as dissimilar or similar based upon metrics other than an exact match (e.g. based upon comparison of stored and associated string values according to a prescribed editing distance, number of character delete or character add operations, or character replace operations).
[0043] Continuing with the example data repository 212 of FIG. 3 in view of FIG. 2, name recommendation engine 206 determines, based upon the name recommendation list 306, a name recommendation 324 for the GUI. In an example, determining the recommendation 324 of a name for the GUI may include choosing a remaining stored property value 316 from the name candidates list 306 according to a preferred properties hierarchy 326. In an example, determining the recommendation 324 of a name for the GUI may include creating or generating a generalized name 328 by performing a delete operation or an add operation upon a stored value 316 for a property, the stored value 316 being included in the name candidates list 306. In another example, determining the recommendation 324 of a name for the GUI may include creating or generating a generalized name by performing a delete operation, an add operation, or a replace operation upon a context change value 320, e.g., a context change string value that was identified by the context change detection engine 204 after identifying the context change state for the GUI.
[0044] In the foregoing discussion of FIGS. 2-3, engines 202 204 206 were described as combinations of hardware and programming. Engines 202 204 206 may be
implemented in a number of fashions. Looking at FIG. 4 the programming may be processor executable instructions stored on a tangible memory resource 402 and the hardware may include a processing resource 404 for executing those instructions. Thus memory resource 402 can be said to store program instructions that when executed by processing resource 404 implement system 102 of FIGS. 1 and 2.
[0045] Memory resource 402 represents generally any number of memory components capable of storing instructions that can be executed by processing resource 404.
Memory resource 402 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of more or more memory components configured to store the relevant instructions. Memory resource 402 may be
implemented in a single device or distributed across devices. Likewise, processing resource 404 represents any number of processors capable of executing instructions stored by memory resource 402. Processing resource 404 may be integrated in a single device or distributed across devices. Further, memory resource 402 may be fully or partially integrated in the same device as processing resource 404, or it may be separate but accessible to that device and processing resource 404. [0046] In one example, the program instructions can be part of an installation package that when installed can be executed by processing resource 404 to implement system 102. In this case, memory resource 402 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program
instructions may be part of an application or applications already installed. Here, memory resource 402 can include integrated memory such as a hard drive, solid state drive, or the like.
[0047] In FIG. 4, the executable program instructions stored in memory resource 402 are depicted as user action detection module 406, context change detection module 408, and name recommendation module 410. User action detection module 406 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to user action detection engine 202 of FIG. 2. Context change detection module 408 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to context change detection engine 204 of FIG. 2. Name recommendation module 410 represents program instructions that when executed by processing resource 404 may perform any of the functionalities described above in relation to name recommendation engine 206 of FIG. 2.
[0048] ILLUSTRATIVE EXAMPLE: FIG. 5 illustrates an example of determining graphic user interface name recommendations. Turning to FIG. 5, in an example, system 102 (FIG. 2) receives, via a network 116 (FIG. 1 ) application data indicative of execution of an application that is configured to cause a display of a GUI screen 502 in a multitude of states 502A 502B 502C 502 D. System 102 identifies starting state data included within the application data to determine that the GUI screen 502 is being displayed a starting state 502A. Upon determining that the GUI screen is in the starting state 502A, system 102 creates a name candidates list to be utilized in generating or determining a recommendation of a name for the GUI screen 502. In this example, the name candidates list is to store string values for a set of properties of the GUI screen 502 - a "Title" property 504, a "First Text" property 506, a "Largest Text" property 508, and a "Class Name" property 510. In an example, the name candidates list is initially created by writing to the list string values for the set of properties 504 506 508 510 of the GUI screen 502 in its starting state 502A.
[0049] Continuing with the example of FIG. 5, system 102 identifies user action data within the application data 302 to detect user actions upon the GUI screen 502. In this example, for each detection of a clicking upon or otherwise activating a "Next" graphic in the GUI screen, system 102 causes the following actions to occur. System 102 identifies a group or set of user action string values for each of the properties
represented in the name candidates list. System 102 then utilizes a dissimilarity formula 310 to identify all string values stored in the name candidates list that are deemed dissimilar to the stored string value's associated user action string value.
System 102 removes from the name candidates list stored string values that are deemed dissimilar according to the dissimilarity formula.
[0050] In the example of FIG. 5, no string value has been set in any of the GUI states 502A 502B 502C 502 D for the "Title" property 504, therefore a title property was not added to the name candidates list and will not be a possibility for a name
recommendation. Assuming the dissimilarity formula for the example of FIG. 5 is a formula that deems two string values as dissimilar absent an exact match between the strings, the "First Text" property 506 has different string values ("Provide username and password" 506A, "Select Project" 506B, and "Advanced Connection Settings" 506C) when the string values are compared among different states 502A 502B 502C for the GUI 502, and therefore the "provide username and password" string value 506A for the "First Text" property 506 is removed from the name candidates list. The "Largest Text" property 508 has an identical string value ("Login" 508A) when the string values are compared among different states 502A 502 B 502C for the GUI 502, and therefore the string value remains on the name candidates list throughout the series of user activation of the "Next" graphic in the GUI screen 502. The "Class Name" property 510 has an identical string value ("UserManager Activity" 51 OA) when the string values are compared among different states 502A 502B 502C for the GUI 502, and therefore the string value "UserManager Activity" for the Class Name property 510 remains on the name candidates list throughout the series of user activations of a "Next" graphic in the GUI screen 502 to cause transitions between GUI states. [0051] Continuing with the example of FIG. 5, system 102 identifies context change data within the application data to detect a context change state 502 D for the GUI screen 502. Responsive to detection of the context change state 502D, system 102 identifies context change string values for the "Largest Text", and "Class Name" properties 508 510 represented in the name candidates list at that point. System 102 utilizes a similarity formula to identify each stored string value that is similar to its associated context change string value. In this example, assuming the dissimilarity formula is a formula that deems two string values as similar if there is an exact match between the strings, system 102 removes from the name candidates list the "User anager Activity" string value 51 OA as it is deemed similar to its associated context string value 510B according to the similarity formula. In this example, system 102 does not remove from the name candidates list the "Login" string value 508A as it is not deemed similar to its associated context string value "Welcome to BSM" 508B according to the similarity formula. System 102 determines, based upon the sole remaining string value stored in the name recommendation list at this point, a recommendation 512 of "Login" 508A as the name to ascribe to the GUI screen 502.
[0052] In other examples in which there are multiple string values contained in the name candidates list after the step of removing strings that are deemed similar to the context change string values, determining the recommendation of a name for the GUI screen may include choosing a property string value from the name candidates list according to a preferred properties hierarchy 318. For instance, referring to the properties 504 506 508 510 included in the GUI 502 of FIG. 5, the preferred properties hierarchy may include a rule that should there be multiple string values remaining in the name candidates list, the name shall be generated with a preference towards names in the following order "Title" - 1 , "First Text" - 2, "Largest Text" - 3, and "Class Name" - 4.
[0053] FIG. 6 illustrates another example of determining graphic user interface name recommendations. In some cases, a provider of an application or APM may decide that is advantageous to utilize a dissimilarity or similarity formula that does other than deems first and second property values as dissimilar or similar, respectively, based upon whether the string values for the first and second property values are an exact match as in the example of FIG 5. In a first example, a dissimilarity and/or similarity formula that deem a first and a second property value as similar or dissimilar based upon whether the first and second property values are string values within a prescribed editing distance of one another can be used. FIG. 6 provides an example of determining graphic user interface name recommendations that is identical to FIG. 5, except that the "Largest Text" property 508 has different string values compared among different states 602A 602B 602C 602 D for the GUI 602. In the example of FIG. 6, in the starting state 602A, the "Largest Text" property 508 has a string value of "Login Wizard (1 )" rather than "Login" as in FIG. 5. In the succeeding state 602B following a user action upon the GUI 602, the "Largest Text" property 508 has a string value of "Login Wizard (2)" rather than "Login" as in FIG. 5. In the succeeding state 602C following a user action upon the GUI 602, the "Largest Text" property 508 has a string value of "Login Wizard (3)" rather than "Login" as in FIG. 5.
[0054] Continuing with the example of FIG. 6, utilizing the exact match dissimilarity formula presented discussed in FIG. 5, system 102 would remove the "Login Wizard
(1 ) " option from the name candidates list as that dissimilarity formula checks for an exact equality. In the example of FIG. 6, however, system 102 may utilize a dissimilarity formula that does not compare to determine if exact strings match when eliminating or adding properties, but instead uses an "string distance" or "editing distance" metric as manner of quantifying how similar are two strings to one another. For example - an "edit distance" dissimilarity formula can be used which counts the number of editing actions (such as insertion of a character, deletion of a character or replacing a character) that are needed in order to transform a first value string ("Login Wizard (1 )" 608A for the "Largest text" property 508 in start state 602A to a second value string ("Login Wizard
(2) " 608B) for the "Largest text" property 508 in succeeding state 602B. In this example, the edit distance dissimilarity formula can be used to count the number of editing actions needed to transform the second value string ("Login Wizard (2)" 608B) for the "Largest text" property 508 in start state 602B to a third value string ("Login Wizard (3)" 608C) for the "Largest text" property 508 in a next state 602C.
[0055] Generally any algorithm for a "string distance" or "editing distance" formula may be used, For instance, a per-word distance dissimilarity formula may be used that counts editing operations. Returning to the example of FIG. 6, an editing distance dissimilarity formula utilized to evaluate an editing distance between the first value string "Login Wizard (1)" 608A and the second value string "Login Wizard (2)" 608B may determine an editing distance of "2", as the formula may determine that it is necessary to perform two operations to transform the first value string 608A to the second value string "Login Wizard (2)" 608B. In this example, the two operations counted are the deletion of the character "4" and adding the character "10" as follows:
"Login Wizard (1)" -> "Login Wizard ()" -> "Login Wizard (2)"
[0056] Assuming an algorithm that deems two strings with an editing distances between them of "4" or greater as dissimilar, in this example the "Login Wizard (1)" 608A and "Login Wizard (2)" 608B strings would be deemed as similar. Likewise, in the example of FIG. 6, the "Login Wizard (2)" 608B string and the "Login Wizard (3)" 608C string would be deemed as similar. In this example of FIG. 6 then, as was the case for "Login" string value 508A in the example of FIG. 5, the string value "Login Wizard (1)" 608A for the property "Largest Text" 508 remains on the name candidates list following the each of the user actions that caused the transitions from starting state 602A for the GUI through the third state 602C.
[0057] The previous paragraphs provide an example of a dissimilarity formula that deems string values as dissimilar based upon whether the first and second property values are string values within a prescribed editing distance of one another. In examples, the similarity formula may be based upon whether the first and second property values are string values within a prescribed editing distance of one another. In other examples, the dissimilarity formula and/or the similarity formula may be a formula that deems a first and a second property value as dissimilar in consideration of whether the first and second property values are string values within a prescribed number of "replace" operations.
[0058] In yet another example, the dissimilarity formula and/or the similarity formula may be a formula that deems a first and a second property value as similar or dissimilar in consideration of whether the first and second property values are string values within a prescribed editing distance (e.g. a predetermined number of "add", "delete", or "replace" operations) and also in consideration of a combined length of the first and second values.
[0059] In a particular example, the dissimilarity and /or the similarity formulas may be structured such that output of the formula (called "diff herein) is a value between "0" and "1", where a diff of "0" indicates an exact match and a diff of "1" indicates the strings are totally different.
Figure imgf000022_0001
"Mdff denotes a largest dissimilarity observed for a pair of strings. Looking at the example of FIG. 6, when processing the second user action (state 602B) the mdff will receive the value of diff (value of action 1 , value of action 2). For each further user action the diff between "value of action 1" and "new value" is calculated, and if the new diff is greater than the current mdff, the mdff is updated with new larger value.
Figure imgf000022_0002
If the mdff value exceeds a predefined limit (for example, 0.25) than the naming candidate is "disqualified". Upon each context switch it is expected that the value of the property is to be changed, for each property, according to the formula
Figure imgf000022_0003
The screen_change_diff is compared to another predefined limit (for example, 0.75), but this time it is expected that the diff is to be larger. Thus, in this example if
screen_change_diff is smaller than 0.75 the candidate will be disqualified. Returning to the example of "Login Wizard (1)" 608A and "Login Wizard (2)" 608B discussed with respect to FIG. 6 above, the edit distance between these two string values is 2 (one character delete and one character add are required), and the sum of their string lengths is "36", resulting in the calculation
Figure imgf000023_0001
As the calculated diff of "0.2" is less than a similarity threshold of "0.25" (the maximum distance between strings to be deemed similar in this example), the "Login Wizard (2)" 608B string would be deemed as similar to the "Login Wizard (1 )" 608A string and would not be removed from the candidates list during the transition between the starting state 602A for the GUI and the succeeding state 602B and would remain on the name candidates list following the each of the user actions that caused the transitions from starting state 602A for the GUI through the third state 602C. Continuing with the example of FIG. 6 and looking at "Class Name" 510 candidate property, the value of screen_change_diff is "0" as the same value of "UserManager Activity" remains at the context change. As in the example the screen change diff of "0" is less than the predefined limit of "0.75", the "UserManager Activity" value for the "Class Name" 510 property cannot be the recommended name and the value is removed from the name candidates list.
[0060] It is important to note that while the examples herein describe removing from a candidates list stored values that are deemed dissimilar to an associated user action value according to a dissimilarity formula, and describe removing from the name candidates list stored values that are similar to an associated context change value according to a similarity formula, implementations of this disclosure are not limited to situations where a single dissimilarity and/or a single similarity formula are utilized. In an example, system 102 may utilized multiple dissimilarity formulas and/or multiple similarity formulas. In a particular example, system 102 may utilize a different dissimilarity formulas and a different similarity formula for each of the properties of the GUI.
[0061] In an example system 102 may determine a recommendation 612 for a name for the GUI 602 (FIG. 6A), including creating a generalized name by performing a delete operation, add operation, or replace operation upon a stored value for a property. In this example, system creates a generalized name of "Login Wizard" 614 by performing a delete operation that removes the characters "(1 )" from the stored value "Login Wizard (1 )." In another example, system 102 may creating a generalized name
recommendation by performing a delete operation or an add operation upon a user action value for a property. In the latter example, system 102 may create a generalized name of "Login Wizard (*)" by performing a delete operation that removes the character "3" from, and adds a "*" character to the user action value "Login Wizard (3)."
[0062] OPERATION: FIG. 7 is a flow diagram of steps taken to implement a method for determining graphic user interface name recommendations. In discussing FIG. 7, reference may be made to the components depicted in FIGS. 2 and 4. Such reference is made to provide contextual examples and not to limit the manner in which the method depicted by FIG. 7 may be implemented. Upon detection of a user action upon a GUI, user action values are identified for properties of the GUI that are represented in a name candidates list. Stored values that are deemed dissimilar to an associated user action value according to a dissimilarity formula are removed from the list (block 702). Referring back to FIGS. 2 and 4, user action detection engine 202 (FIG. 2) or user action detection module 406 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 702.
[0063] Upon detection of a context change state for the GUI, context change values are identified for the properties represented in the list. Stored values that are similar to an associated context change value according to a similarity formula are removed from the list (block 704). Referring back to FIGS. 2 and 4, context change detection engine 204 (FIG. 2) or context change detection module 408 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 704.
[0064] A name recommendation for the GUI is determined based upon the name candidates list (block 706). Referring back to FIGS. 2 and 4, name recommendation engine 206 (FIG. 2) or name recommendation module 410 (FIG. 4), when executed by processing resource 404, may be responsible for implementing block 706.
[0065] CONCLUSION: FIGS. 1-7 aid in depicting the architecture, functionality, and operation of various embodiments. In particular, FIGS. 1 -4 depict various physical and logical components. Various components are defined at least in part as programs or programming. Each such component, portion thereof, or various combinations thereof may represent in whole or in part a module, segment, or portion of code that comprises one or more executable instructions to implement any specified logical function(s).
Each component or various combinations thereof may represent a circuit or a number of interconnected circuits to implement the specified logical function(s). Embodiments can be realized in any memory resource for use by or in connection with processing resource. A "processing resource" is an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain instructions and data from computer-readable media and execute the instructions contained therein. A "memory resource" is any non- transitory storage media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. The term "non-transitory" is used only to clarify that the term media, as used herein, does not encompass a signal. Thus, the memory resource can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, hard drives, solid state drives, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory, flash drives, and portable compact discs.
[0066] Although the flow diagram of FIG. 7 shows a specific order of execution, the order of execution may differ from that which is depicted. For example, the order of execution of two or more blocks or arrows may be scrambled relative to the order shown. Also, two or more blocks shown in succession may be executed concurrently or with partial concurrence. All such variations are within the scope of the present invention.
[0067] The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.

Claims

What is claimed is:
1. A system for recommending names for graphic user interfaces, comprising: a user action detection engine, to upon detection of a user action upon a GUI, identify user action values for properties of the GUI that are represented in a name candidates list, remove from the list stored values that are deemed dissimilar to an associated user action value according to a dissimilarity formula; a context change detection engine, to upon detection of a context change state for the GUI, identify context change values for the properties represented in the list, remove from the list stored values that are similar to an associated context change value according to a similarity formula; and a name recommendation engine, to determine, based upon the list, a name recommendation for the GUI.
2. The system of claim 1 , wherein the user action detection engine creates the name candidates list upon determining the GUI is in a starting state.
3. The system of claim 1, wherein the dissimilarity formula is a formula that deems property values as dissimilar based upon whether the values are an exact match, or wherein the similarity formula is a formula that deems property values as similar based upon whether the values are an exact match.
4. The system of claim 1 , wherein the stored values, the user action values, and the context change values include character strings.
5. The system of claim 1 , wherein the dissimilarity formula or the similarity formula is a formula that deems a first and a second property value as similar or dissimilar based upon whether the first and second property values are string values within a prescribed editing distance of one another.
6. The system of claim 1 , wherein the dissimilarity formula or the similarity formula is a formula that deems a first and a second property value as similar or dissimilar in consideration of whether the first and second property values are string values within a prescribed number of delete, add, or replace operations.
7. The system of claim 1 , wherein the dissimilarity formula or the similarity formula is a formula that deems a first and a second property value as similar or dissimilar in consideration of whether the first and second property values are string values within a prescribed editing distance and also in consideration of a combined length of the first and second values.
8. The system of claim 1 , wherein determining the recommendation includes choosing a property value from the name candidates list according to a hierarchy of preferred properties.
9. The system of claim 1 , wherein the similarity formula is a converse of the dissimilarity formula.
10. The system of claim 1 , wherein determining the recommendation includes creating a generalized name by performing a delete operation, an add operation, or replace operation upon a stored value for a property.
11. A memory resource storing instructions that when executed cause a processing resource to implement a system, the instructions comprising: a user action detection module, to
upon determining a GUI is in a starting state, create a name candidates list including string values for a set of properties of the GUI, and upon detection of a user action upon the GUI, identify user action string values for the properties represented in the list, and remove from the list stored string values that are deemed dissimilar to an associated user action string value according to a dissimilarity formula; a context change detection module, to upon detection of a context change state for the GUI, identify context change string values for the properties represented in the list, remove from the list stored string values that are similar to an associated context change value according to a similarity formula; and a name recommendation module, to determine, based upon the list, a name recommendation for the GUI.
12. The memory resource of claim 11 , wherein determining the recommendation includes choosing a property value from the name candidates list according to a hierarchy of preferred properties.
13. The memory resource of claim 11 , wherein the dissimilarity formula or the similarity formula is a formula that deems a first and a second string value as similar or dissimilar based upon whether the first and second string values within a prescribed editing distance of one another, and also based upon a combined length of the first and second string values.
14. The memory resource of claim 11 , wherein determining the recommendation includes creating a generalized name by performing a delete operation, add operation, or replace operation upon a context change value for a property.
15. A method, comprising: upon determining a GUI is in a starting state, creating a name candidates list including values for a set of properties of the GUI; upon detection of a user action upon the GUI, identifying user action values for the properties represented in the list, removing from the list stored values that are deemed dissimilar to an associated user action value according to a dissimilarity formula that determines dissimilarity based upon whether a stored value and an associated user action values are within a prescribed editing distance of one another;
upon detection of a context change state for the GUI, identifying context change values for the properties represented in the list, removing from the list stored values that are similar to an associated context change value according to a similarity formula that determines similarity based upon whether a stored value and an associated user action values are within a prescribed editing distance of one another; and determining a generalized name recommendation for the GUI by performing a delete, add, or replace operation upon a stored value included within the list.
PCT/US2014/040034 2014-05-29 2014-05-29 Determining graphic user interface name recommendations WO2015183287A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2014/040034 WO2015183287A1 (en) 2014-05-29 2014-05-29 Determining graphic user interface name recommendations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/040034 WO2015183287A1 (en) 2014-05-29 2014-05-29 Determining graphic user interface name recommendations

Publications (1)

Publication Number Publication Date
WO2015183287A1 true WO2015183287A1 (en) 2015-12-03

Family

ID=54699442

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/040034 WO2015183287A1 (en) 2014-05-29 2014-05-29 Determining graphic user interface name recommendations

Country Status (1)

Country Link
WO (1) WO2015183287A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327915A1 (en) * 2008-06-27 2009-12-31 International Business Machines Corporation Automatic GUI Reconfiguration Based On User Preferences
US20110074697A1 (en) * 2009-09-25 2011-03-31 Peter William Rapp Device, Method, and Graphical User Interface for Manipulation of User Interface Objects with Activation Regions
US20120059842A1 (en) * 2010-09-03 2012-03-08 Sap Ag Context-Based User Interface, Search, and Navigation
US20140046976A1 (en) * 2012-08-11 2014-02-13 Guangsheng Zhang Systems, methods, and user interface for effectively presenting information
US20140047365A1 (en) * 2012-08-13 2014-02-13 International Business Machines Corporation Associating ancillary information with an application user interface

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327915A1 (en) * 2008-06-27 2009-12-31 International Business Machines Corporation Automatic GUI Reconfiguration Based On User Preferences
US20110074697A1 (en) * 2009-09-25 2011-03-31 Peter William Rapp Device, Method, and Graphical User Interface for Manipulation of User Interface Objects with Activation Regions
US20120059842A1 (en) * 2010-09-03 2012-03-08 Sap Ag Context-Based User Interface, Search, and Navigation
US20140046976A1 (en) * 2012-08-11 2014-02-13 Guangsheng Zhang Systems, methods, and user interface for effectively presenting information
US20140047365A1 (en) * 2012-08-13 2014-02-13 International Business Machines Corporation Associating ancillary information with an application user interface

Similar Documents

Publication Publication Date Title
US10536419B2 (en) Searching and displaying related content to a post in an activity stream
US10884891B2 (en) Interactive detection of system anomalies
US9787798B2 (en) Generating collapsed user interface interaction sequence controls in mobile applications
WO2017054309A1 (en) Interactive control method and device for voice and video communications
JP2020038689A (en) Method and device for recommending application and method and device for displaying recommended application
US9703458B2 (en) Generating a user interface for activating multiple applications
US20140165087A1 (en) Controlling presentation flow based on content element feedback
RU2767143C2 (en) Decision-making control using machine learning in case of alerts coming from current control systems
WO2012059400A1 (en) Application recommendation
US20170168653A1 (en) Context-driven, proactive adaptation of user interfaces with rules
CN110771126A (en) Matching and attribution of user equipment events
AU2017229678A1 (en) Online techniques for assessing user interface deployments in a network-based media system
CN107111418B (en) Icon displacement with minimal disruption
CN111756832B (en) Method and device for pushing information, electronic equipment and computer readable storage medium
CN108596711B (en) Application recommendation method and device and electronic equipment
JP2011192103A (en) Evaluation device, method, and program
JP2017059184A (en) Searching device, searching method, and program
CN112445588A (en) Application task processing method, device and equipment and readable storage medium
US20180137443A1 (en) Promotion artifact risk assessment
US20190129704A1 (en) Cognitive identification of related code changes
US10157210B2 (en) Searching and accessing software application functionality using application connections
US10740119B2 (en) Identifying a common action flow
CN111581518A (en) Information pushing method and device
US9984132B2 (en) Combining search results to generate customized software application functions
CN110740074B (en) Network address detection method and device and electronic equipment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14893663

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14893663

Country of ref document: EP

Kind code of ref document: A1