Compound application presentation across multiple devices.
Abstract
Presentation of transformation chain output on devices. The transformation chain includes one or more presentation nodes that drive rendering of output, such that a change in a value in the presentation node causes rendering to occur. In response to a change in value of the presentation node, the presentation system identifies characteristics or various devices that may be used to render the corresponding output. The presentation system identifies an appropriate device based on the identified characteristics of that device. The presentation system then facilitates rendering of at least a version of the output on the selected device, perhaps even transforming the output in a manner suitable for the selected device. In some embodiments, the transformation chain may be a compound transformation chain constructed by joining multiple constituent transformation chains.

Term
No projected expiry on record.
- Priority
- Filed
- Granted
- Today
20 claims: 3 independent, 17 dependent
- 11, - A method to facilitate the presentation of transformation chain output in devices, the method comprises:1, - Un método para facilitar la presentación de salida de cadena de transformación en dispositivos, el método comprende: an act of determining that a particular presentation node of a first instance of a first transformation chain class has changed, the first instance of the first transformation chain class comprises one or more presentation nodes that direct the output representation, the change of the particular presentation node activates an occurrence of representation;un acto de determinar que un nodo de presentación particular de una primera instancia de una primera clase de cadena de transformación ha cambiado, la primera instancia de la primera clase de cadena de transformación comprende uno o más nodos de presentación que dirigen la representación de salida, el cambio del nodo de presentación particular activa una ocurrencia de representación;an act of identifying characteristics of each of a plurality of candidate devices in which at least one version of the representation may be presented;un acto de identificar características de cada uno de una pluralidad de dispositivos candidato en los cuales se puede presentar al menos una versión de la representación;an act of selecting at least one of the plurality of candidate devices in which at least the version of the representation is represented based on the characteristics identified;and an act of facilitating the representation of at least the version of the representation on at least one selected device. un acto de seleccionar al menos uno de la pluralidad de dispositivos candidato en los cuales se representa al menos la versión de la representación basándose en las características identificadas;y un acto de facilitar la representación de al menos la versión de la representación en al menos un dispositivo seleccionado.
- 12- A computer readable storage medium that causes the one or more processors of a computer system to cause the computer system to perform a method to facilitate the presentation of transformation chain output in the devices, the method comprises:12. - Un medio de almacenamiento legible por computadora que provoca que el uno o más procesadores de un sistema de cómputo, provoquen que el sistema de cómputo realice un método para facilitar la presentación de salida de cadena de transformación en los dispositivos, el método comprende: an act of determining that a particular presentation node of a first instance of a first transformation string class has changed;un acto de determinar que un nodo de presentación particular de una primera instancia de una primera clase de cadena de transformación ha cambiado;an act of identifying characteristics of each of a plurality of candidate devices in which at least one version of the representation may be presented;un acto de identificar características de cada uno de una pluralidad de dispositivos candidato en los cuales se puede presentar al menos una versión de la representación;an act of selecting at least one of the plurality of candidate devices in which at least one version of the representation is represented based on the characteristics identified;and an act of facilitating the representation of at least one version of the representation in the at least one selected device. un acto de seleccionar al menos uno de la pluralidad de dispositivos candidato en los cuales se representa al menos una versión de la representación basándose en las características identificadas;y un acto de facilitar la representación de al menos una versión de la representación en el al menos un dispositivo seleccionado.
- 20- Un sistema que comprende:twenty. - A system comprising: one or more processors;uno o más procesadores;one or more computer readable storage media that cause the computer system to perform a method to facilitate the presentation of transformation chain output in devices, the method comprises: uno o más medios de almacenamiento legibles por computadora que provocan que el sistema de cómputo realice un método para facilitar la presentación de salida de cadena de transformación en dispositivos, el método comprende: an act of determining that a particular presentation node of a first instance of a first transformation string class has changed;un acto de determinar que un nodo de presentación particular de una primera instancia de una primera clase de cadena de transformación ha cambiado;an act of identifying characteristics of each of a plurality of candidate devices in which at least one version of the representation may be presented;un acto de identificar características de cada uno de una pluralidad de dispositivos candidato en los cuales se puede presentar al menos una versión de la representación;an act of selecting at least one of the plurality of candidate devices in which at least the version of the representation is represented based on the characteristics identified;and an act of facilitating the representation of at least the version of the representation in the at least one selected device. un acto de seleccionar al menos uno de la pluralidad de dispositivos candidato en los cuales se representa al menos la versión de la representación basándose en las características identificadas;y un acto de facilitar la representación de al menos la versión de la representación en el al menos un dispositivo seleccionado.
Independent claims3
142 paragraphs in 6 sections, as filed
The reference patent is granted based on articles 1<sup>to</sup>, 2<sup>to</sup> fraction V, 6<sup>to</sup> Section III, and 59 of the Industrial Property Law.
In accordance with article 23 of the Industrial Property Law, the present patent is valid for twenty non-extendable years, counted from the date of submission of the international application and will be subject to the payment of the fee to keep the rights in force .
Who subscribes to this title does so based on the provisions of articles 6<sup>to</sup> fraction III, 7<sup>to</sup> BIS 2 and 59 of the Industrial Property Law; articles 1<sup>to</sup>, 3<sup>to</sup> fraction V subsection a), sub subsection ii), 4<sup>to</sup> and 12<sup>to</sup> sections I and III of the Regulations of the Mexican Institute of Industrial Property; articles 1<sup>to</sup>, 3<sup>to</sup>, 4<sup>to</sup>, 5<sup>to</sup> fraction V subsection a), sub subsection ii), 16 fractions I and III and 30 of the Organic Statute of the Mexican Institute of Industrial Property; I<sup>to</sup>, 3<sup>to</sup> and 5<sup>to</sup> subsection a) and the second to last paragraph of the Agreement that delegates powers to the Deputy Directors General, Coordinator, Divisional Directors, Regional Office Holders, Divisional Deputy Directors, Departmental Coordinators and other subordinates of the Mexican Institute of Industrial Property.
This document is signed with an advanced electronic signature (FAITHFUL), based on Articles 7 BIS 2 of the Industrial Property Law; 3rd of its Regulations, and 1 section III, 2 section V, 26 BIS and 26 TER of the Agreement establishing the guidelines for the use of the Electronic Payment and Services Portal (PASE) of the Mexican Institute of Industrial Property, in the procedures indicated.
DIVISIONAL SUB-DIRECTOR OF PATENT FUND EXAMINATION OF MECHANICAL, ELECTRICAL AND INDUSTRIAL DESIGNS AND USEFUL MODELS
<img file="MX366289B_D0001.tif" />
PEDRO DAVID FRAGOSO LÓPEZ
Original string:
PEDRO DAVID FRAGOSO LOPEZ | 00001000000405457619 | Administration Service
Tax | 1052 || MX / 2019 / 621981MX / a / 2016/016418 | PCT patent title | 1048 | SEF | Page (s) | z5NcJHm2aQwVeeC23kc4jOf8FZI =
Digital stamp:
Og2IIIR1 NFXA / SmXtrk3QERffw2xuD2d2UvOg / 2p57cZ8Mjy3w5yBYOLE1 A5jAaV + xe4Pzl7qQPbPjM + aO / hNHnMn
13yl7jZRxh¡L3VBIXsKZxgTM2Bs2 / NZQu9azPCjzyyU / MY9omgqllOY1SB9yBqEOoQQd2yQxFIUfRhgwyKQORtDZFe dYL9XRIWKFVFmcSifPYCwyeADquuC / 3e + UF7rbY22KhAjRbVV1vKmoElh15HFh9aJfSMUVGUz6k1N0RUSMGsgAldZt CgGiv1pKQKIPpJIHqtaKKd9dAwdczKedhsygXnlbKUrpXRhjMXdo0nWCbGCF70ZZ4MuuM1Yw ==
MX 2019 62198
PRESENTATION OF COMPOSITE APPLICATION THROUGH MULTIPLE DEVICES
BACKGROUND
Computer technology has revolutionized the way people work, play and communicate. As computer technology has advanced, so has the diversity of devices that model such computer systems or display content of a computer system. For example, a computer system may take the form of a server support, a desktop computer, a laptop, a tablet, a smartphone, a video game console, a clock, a refrigerator, a smart home, and the like.
Along with the diversity of computer systems, the types of devices that can be used to process information entering and leaving a computer have also diversified. For example, output devices may include screens such as projectors, television monitors, three-dimensional screens, laptops, tablet computers, phones, and the like. Output devices may also include sound output, such as speakers. The output devices could also include actuators, lights, valves and the like. Input devices could include keyboards, pointing devices (such as a mouse), touch screens, microphones, video cameras, fixed cameras, three-dimensional position detectors, global positioning system monitors, light sensors, accelerometers, thermometers, compasses, and the like.
The computer systems and associated input and output devices have become very prolific and very mobile. Often, in any given place, there can be a large number and variety of devices present. For example, in an average conference room that is completely full, there could be superior projectors, television screens, laptops, tablets, smartphones, microphones, cameras, lighting and the like. The conventional paradigm is that each device runs in its own application or displays the content from a single application. When applications interact, they often interact as independent applications that interact through an application program interface.
The subject matter claimed here is not limited to modalities that solve the problems or that only work in environments such as those described above. Rather, this background is only provided to illustrate an exemplary technological area where some modalities described here can be practiced.
BRIEF DESCRIPTION OF THE INVENTION
At least some modalities described here refer to facilitating the presentation of transformation chain output in devices. The transformation chain includes one or more presentation nodes that direct the output representation, so that a change in a value in the presentation node causes the presentation to occur. In response to a change in the value of the presentation node, the presentation system identifies the characteristics or various devices that can be used for the representation of the corresponding output. The presentation system identifies an appropriate device based on the identified characteristics of that device. The presentation system then facilitates the representation of at least one version of the output on the selected device, perhaps even transforming the output into a form suitable for the selected device. In some embodiments, the transformation chain may be a compound transformation chain constructed by joining multiple constituent transformation chains.
This Brief Description is not intended to identify the main essential characteristics or functions of the subject matter claimed, nor is it intended to be used as an aid to determine the scope of the subject matter claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
In order to describe the manner in which the aforementioned characteristics and other advantages can be obtained, a more concrete description of various modalities will be presented with reference to the attached drawings. Understanding that these drawings represent only sample modalities and should not, therefore, be considered as limiting the scope of the invention, the modalities will be described and explained in detail and additional specificity through the use of the attached drawings where:
Figure 1 abstractly illustrates a computer system in which some modalities described herein can be used;
Figure 2 abstractly illustrates a simple transformation chain in which there is only one link linking a single data source and a single data objective and where a transformation represented by the link is performed automatically by a value in the source of data as input to generate a value in the data objective;
Figure 3 abstractly illustrates another example of a simple transformation chain where a transformation is performed by input values from three data sources to generate output values in two data objectives;
Figure 4 illustrates a transformation chain in the form of a combination of the transformation chain Figure 2 and the transformation chain Figure 3;
Figure 5 illustrates an example of an environment in which the principles described herein can work and that includes several devices associated with the constituent transformation chains of a compound application, and also includes input devices and output devices;
Figures 6A through 6D each illustrate the illustrative transformation chains that may be associated with the respective devices in Figure 5 (arrows through which data does not flow absent by joining with another transformation chain are illustrated with an X, and dependency elements that are not nodes in the transformation chain itself are illustrated with dashed edges);
Figure 7A shows an increased transformation chain representing the junction of the transformation chains Figures 6A and 6B;
Figure 7B shows an increased transformation chain representing the junction of the transformation chains Figures 6A and 6C;
Figure 7C shows an increased transformation chain representing the junction of the transformation chains Figures 6B and 6C;
Figure 7D shows an increased transformation chain representing the junction of the transformation chains Figures 6A and 6D;
Figure 8A shows an increased transformation chain representing the junction of the transformation chains Figures 6A, 6B and 6C;
Figure 8B shows an increased transformation chain representing the junction of the transformation chains Figures 6A, 6B and 6D;
Figure 8C shows an increased transformation chain representing the junction of the transformation chains Figures 6A, 6C and 6D;
Figure 9 illustrates an augmented transformation chain representing the junction of the transformation chains Figures 6A, 6B, and 6D¡
Figure 10 shows a flow chart of a method for preparing the facilitation of a compound application;
Figure 11 abstractly illustrates a system that can be used to perform the method of Figures 10, 12, 13 and 14, and that includes a library of transformation chain class definitions and device records, as well as a presentation service ;
Figure 12 shows a flow chart of a method for joining two instances of transformation chain classes;
Figure 13 shows a flow chart of a method for decoupling a transformation chain from a larger transformation chain;
Figure 14 shows a flow chart of a method for representing changes in the presentation of one or more transformation chain nodes in an appropriate device;
Figures 15A through 15J illustrate different user interfaces that can be experienced in a scenario referred to herein as a device scenario, in which a user will request a number of devices; Y
Figures 15K to 150 illustrate several user interfaces that can be found to change the compound application used in the device scenario of Figures 15A to 15J.
DETAILED DESCRIPTION
At least some modalities described here refer to facilitating the presentation of transformation chain output in devices. The transformation chain includes one or more presentation nodes that direct the output representation, so that a change in a value in the presentation node causes the presentation to occur. In response to a change in the value of the presentation node, the presentation system identifies the characteristics or various devices that can be used for the representation of the corresponding output. The presentation system identifies an appropriate device based on the identified characteristics of that device. The presentation system then facilitates the representation of at least one version of the output on the selected device, perhaps even transforming the output into a form suitable for the selected device. In some embodiments, the transformation chain may be a compound transformation chain constructed by joining multiple constituent transformation chains.
Some introductory discussion of a computer system will be described with respect to that of Figure 1. Next, compound device application technology will be described in the following Figures.
Computer systems are already increasingly adopting a wide variety of forms. Computer systems can be, for example, handheld devices, household appliances, laptop computers, desktops, central computers, distributed computer systems, or even devices that have not traditionally been considered a computer system. In this description and in the claims, the term computer system is broadly defined as including any device or system (or combination thereof) that includes at least one physical and tangible processor, and a physical and tangible memory capable of having in it computer executable instructions that can be executed by the processor. Memory can take any form and may depend on the nature and form of the computer system. A computer system can be distributed through a network environment and can include several constituent computer systems.
As illustrated in Figure 1, in its most basic configuration, a computer system 100 typically includes at least one hardware processing unit 102 and memory 104. Memory 104 may be physical system memory, which may be volatile, non volatile, or some combination of the two. The term memory can also be used herein to refer to non-volatile mass storage such as physical storage medium. If the computer system is distributed, the processing, memory and / or storage capacity can be distributed as well. As used herein, the term "executable module" or "executable component" may refer to software objects, paths, or methods that can be executed in the computer system. The different components, modules, engines and services described in this document can be implemented as objects or processes that are executed in the computer system (for example, as independent sequences).
In the description that follows, modalities are described with reference to the acts that are performed by one or more computer systems. If such acts are implemented in software, one or more processors of the associated computer system that performs the act direct the operation of the computer system in response to having executed computer executable instructions. For example, such computer-executable instructions can be modeled in one or more computer-readable media that form a computer program product. An example of such an operation involves the manipulation of data. The instructions executable by computer (and the manipulated data) can be stored in the memory 104 of the computer system 100. The computer system 100 may also contain communication channels 108 that allow the computer system 100 to communicate with other message processors through, for example, network 110.
The computer system 100 may also include output representation components, such as screens, speakers, lights, actuators, or the like. The computer system 100 may also include input components, such as a keyboard, a pointing device (such as a mouse or a tracking pad), voice recognition devices, and possibly also physical sensors (e.g., thermometers, systems of global positioning, light detectors, compasses, accelerometers, etc.).
The modalities described herein may comprise or use a special purpose or general purpose computer including equipment hardware, such as one or more processors and system memory, as discussed in greater detail below. The modalities described also include physical computer readable and other means for transporting or storing computer executable instructions and / or data structures. Such computer readable media can be any available media that can be accessed by a general purpose or special purpose computing system. Computer readable media that store computer executable instructions are physical storage media. Computer readable media that carry computer executable instructions are transmission media. Thus, for example, and without limitation, the embodiments of the invention may comprise at least two different kinds of computer readable media: computer storage media and transmission media.
Computer storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other storage media that can be used to store program code media desired in the form of computer-executable instructions or data structures and accessed by a general purpose or special purpose computer
A network is defined as one or more data links that allow the transport of electronic data between computer systems and / or modules and / or other electronic devices. When information is transferred or supplied through a network or other communications connection (either wired, wireless, or a combination of wired or wireless) to a computer, the computer properly sees the connection as a means of transmission. The transmission media may include a network and / or data links that can be used to transport desired program code media in the form of computer executable instructions or data structures and which are accessed by a general purpose computer or Special purpose Combinations of all of the above should also be included in the scope of computer readable media.
In addition, after reaching the various computer system components, program code media in the form of computer-executable instructional equipment or data structures can be automatically transferred from transmission media to computer storage media (or vice versa). For example, computer-executable instructions or data structures received through a network or data link can be stored in buffer memory in RAM within a network interface module (for example, a NIC), and then , eventually transferred to a computer system RAM and / or less volatile computer storage media in a computer system. Therefore, it should be understood that computer storage media can be included in the computer system components that also (or even primarily) use transmission media.
Computer-executable instructions comprise, for example, instructions and data that, when executed on a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions . The computer-executable instructions can be, for example, binary files or even instructions that undergo some translation (such as compilation) before the direct execution by the processors, such as intermediate format instructions such as assembly language, or even the source code. Although the subject has been described in specific language to structural characteristics and / or methodological acts, it is understood that the matter defined in the appended claims is not necessarily limited to the characteristics described or the acts described above. Rather, the features described and acts are described as illustrative ways to implement the claims.
Those skilled in the art will appreciate that the invention can be practiced in network computing environments with many types of computer system configurations, including personal computers, desktops, laptop computers, message processors, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, central computers, mobile phones, PDAs, locators, routers, switches, and the like. The invention can also be practiced in distributed system environments where local and remote systems, which are linked (either by wired data links, wireless data links, or by a combination of wireless and wired data links) through of a network, both perform tasks. In a distributed system environment, program modules can be located on local and remote memory storage devices.
The principles described here work through a transformation chain. A transformation chain is a set of interconnected nodes that each can represent data sources or data objectives. There are links between the nodes, each link represents a transformation. For any given link, the associated transformation receives copies of values from one or more data sources located at an input end to the link, and generates resulting values that are provided in one or more data targets located at the output end of the link. . For any given transformation, when a value in one or more of the data sources at its input end changes, the transformation is automatically reassessed, potentially resulting in changes in the value (s) of one or more data targets at the end. of output of the transformation.
In one modality, regardless of how complex the transformation chain is, the transformation can be constructed from declarative phrases expressing equations, rules, restrictions, simulations, or any other type of transformation that can receive one or more values as input and provide one or more resulting values as output. An example of a transformation chain is a spreadsheet program, where any of the cells can be a data source or a data target. An equation (that is, a transformation) can be associated with any cell to cause that cell to be a data target where the results of the equation are placed.
Just as an example, Figure 2 illustrates a simple transformation chain 200 in which there is only one link 220. In the drawing notation used throughout this description, a link will be illustrated as an arrow, with the entry end represented as the tail of the arrow, and the end end is represented as the head of the arrow. In cases where there are multiple data sources at the input end of the link, the arrow will be represented with several queues. Copies of the values of the data source (s) in the queue (s) of the arrow represent input to the transformation. In cases where there are multiple data targets affected by value (s) resulting from the transformation, the arrow will be represented with multiple heads. The values of the data targets in the arrowhead (s) represent the output of the transformation.
For example, Figure 2 illustrates a simple string transformation 200 that includes a data source 201, a data target 202, and an individual link 220. Link 220 represents a transformation performed on a coupling of the value 211 in the data source 201 to generate a value of 212 in data target 202. If value 211 changes, the transformation represented by link 220 is potentially reevaluated resulting in a change in value 212 in data target 202.
Figure 3 shows another example of a simple transformation chain 300 that includes three data sources 301, 302 and 303; two data objectives 304 and 305, and an individual link 320. Link 320 represents a transformation made in copies of the values within the data sources 301, 302 and 303, in order to generate the values in the data objectives of 304 and 305. If any of the values within the data sources 301, 302 or 303 change, the transformation link 320 is potentially reevaluated resulting in a change in the values in one or more of the data objectives 304 and 305.
Figure 4 illustrates another example of the transformation chain 400, and illustrates the principle that the transformation chains can be built together where a data source to one link can be a data target in another link, in order to create even more complicated transformation chains. For example, transformation chain 400 includes an instance 401 of transformation chain 200, and an instance of 402 of transformation chain 300. In this case, the data objective 202 of link 220 is also the data source 301 of link 320. If the value with the data source 201 changes, the transformation represented by link 220 is potentially reassessed resulting in a change in the value in data target 202, which is also a data source 301 for the next link 320. Likewise, a change in the value of the data source 301 would result in the transformation link 320 being reassessed, potentially resulting in a change in the values in one or more of the data objectives 304 and 305. The data objectives 304 and 305 can also represent data sources for other links. Consequently, in complex transformation chains, a change in value could cause propagated value changes across multiple nodes in a transformation chain through the proper automated reassessment of transformations within the transformation chain.
Although the example of the transformation chain 400 includes only two links, the transformation chains can be quite complex and involve innumerable nodes and associated links connecting the innumerable nodes. The principles described here can work regardless of the complexity of the transformation chains.
Figure 5 illustrates an environment 500 where there are six devices 501 to 506. Ellipses represent 507 flexibility in the number of devices that are present in environment 500. In fact, there may be devices that leave and enter environment 500 very dynamically . Although not necessary, each of the devices 507 can be structured as described for the computing system 100 of Figure 1.
The environment 500 does not need to be a physical environment in which all the devices are located in the same proximity, although this is usually the case. The environment 500 can be considered as any environment in which there is a group of devices through which one or more users can provide the input and multiple devices through which multiple users can be output.
Some of the devices (for example, 501 to 504 devices) help in the formation of what is only more cooperation devices with cooperation applications. Instead, devices 501 to 504 each are related to a component of a compound application. As any of the devices 501 to 504 leaves the environment 500, the compound application becomes smaller, thus resulting in a changed functionality of the application. On the other hand, since devices (such as 501 to 504 devices) allow application components to enter environment 500, the compound application actually becomes larger, which actually changes the functionality and structure. same of the compound application. According to the principles described here, the transformation chain a device can be linked to the transformation chain other devices, which translates into a large transformation chain that can be used more effectively by the augmented group of devices.
The device 505 represents an output device that can be used in the environment 500, but a compound application does not necessarily contribute a transformation chain to the larger transformation chain. For example, device 505 could be a large screen presentation. The device 506 represents an input device that can be used in the environment 500, but does not necessarily contribute a transformation chain to the larger transformation chain the application of compound. For example, device 506 could be a microphone. The presence of devices 501 to 504 causes portions of the respective associated transformation chains to contribute to the greater transformation chain the application of compound. However, devices 501 to 504 may also have input capacity and output capacity that can be used by the application of compound as a whole. The environment 500 may optionally include an external system 510, which are described below.
Figures 6A to 6D illustrate instances or classes of illustrative transformation chains 600A to 600D. The instances will have the same structure as the classes, and in this way it is considered that the illustrated forms represent the transformation classes, as well as the transformation instances. However, the instances will have a particular instance status associated with each of one or more of the nodes in the transformation chain. Consequently, elements 600A to 600D can be referred to as transformation chain classes or chain transformation instances. The term transformation chain will generally be used to refer to transformation chain classes as their associated transformation chain instances. As an example, the transformation chain instances 600A to 600D could be associated with the respective devices 501 to 504.
The illustrative 600A to 600D transformation chains are relatively simple in order to avoid obscuring the general principles described herein with an excessively complex example. That said, the principles described here apply regardless of the complexity of the transformation chain, and regardless of the number of transformation chains and associated devices that are within the environment and form the compound application.
In the notation of Figures 6A to 6D, nodes belonging to transformation class 600N (where N goes from A to D) are represented using the suffix N. For example, in Figure 6A, transformation chain 600A includes nodes 601A, 602A, 603A and 604A. The remaining elements 601B, 601C and 601D do not end with the suffix A, and therefore are not nodes within the transformation chain 600A. Instead, elements 601B, 601C and 601D represent the dependencies with other transformation chains.
Throughout Figures 6A to 6D, 7A to 7D, 8A to 8C and 9, to highlight those elements that are elements of dependence, instead of nodes in the same transformation chain, the elements of dependence are represented with limits of dotted lines. Data does not flow from a node to a dependency element, unless the transformation chain joins another transformation chain that includes a node represented by the dependency element. The fact that data cannot flow along a particular transformation is represented through the figures by the link that is marked with an X.
For example, element 601B in transformation chain 600A represents a dependency with node 601B in transformation chain 600B. The dependency element 601B is bordered with dotted lines and all the links leading to or from that dependency element 601B are marked with an X, since at this stage, the transformation chain 600A is not attached to the transformation chain 600B. The element 601C in the transformation chain 600A represents a dependency with the node 601C in the transformation chain 600C. Element 601D in transformation chain 600A represents a dependency with node 601D in transformation chain class 600D.
For its part, the 600A transformation string instance can function as an application. For example, the value of data source 601A can be used to form a transformed result as the value of data target 604A. In addition, the values of data sources 601A and 602 A can be transformed to produce the data target value 603A. If the transformation chain instance 600A is on its own, the transformations leading to and from elements 601B, 601C and 601D are not evaluated.
The 600B transformation chain includes three nodes 601B, 602B and 603B. However, the transformation chain 600B also includes dependency elements 601A, 602A, 601C and 603C that refer to a node in a different transformation chain. Again, the 600B transformation string instance can function independently as a single application. For example, the value of data source 601B can be provided through a transformation to generate the resulting value for the data objective.
602Β. The value of the 602 B data source can be provided through a transformation to generate the resulting value for the 603B data objective.
Although the 600A and 600B transformation chain instances can operate independently, Figure 7A shows a 700A linked transformation chain, which includes the 600A transformation chain attached to the 600B transformation chain. The dependency elements in each of the transformation chains are now replaced with the real node mentioned. For example, dependency element 601B of Figure 6A is now node 601B, and dependency element 601A of Figure 6B is now node 601A. All nodes that have the suffix A or B are nodes within the transformation chain 700A, and only the nodes that have the suffixes C or D are elements of dependency. For example, nodes 601 A, 602A, 603A, 604A, 601B, 602B and 603B are nodes within the increased transformation chain 700A, and the functionality of the compound application becomes somewhat better than the sum of the functionality of the individual transformation chains 600A and 600B as such.
The 600C transformation chain includes three nodes 601C, 602C and 603C. However, the transformation chain 600C also includes dependency elements 603A, 601B and 603B that refer to a node in a different transformation chain. Again, the 600C transformation string instance can function independently as a single application. For example, the value of data source 601C can be provided by a transformation to generate the resulting value for data target 602C. Also, the value of data source 601C can also be provided through a transformation to generate the resulting value for data target 603C.
Although the 600A and 600C transformation chain instances can operate independently, Figure 7B shows a 700B linked transformation chain that includes the 600A transformation chain attached to the 600C transformation chain. The dependency elements in each of the transformation chains are now replaced with the current node refers to the extent to which the dependency element refers to a node within any of the transformation chains 600A or 600C. Now all the nodes that have the suffix A or O are nodes within the transformation chain, and only those nodes that have the suffixes B or D are elements of dependency. For example, nodes 601 A, 602A, 603A, 604A, 601C, 602C and 603C are nodes within the increased transformation chain 700B. The functionality of the compound application becomes better than the sum of the functionalities of the individual transformation chain instances 600A and 6000.
Figure 7C shows a 700C linked transformation chain that includes the 600B transformation chain class joined with the 600C transformation chain class. The dependency elements in each of the transformation chains are replaced with the real node contemplated to the extent that the dependency element refers to a node within one of the transformation chains 600B or 600C.
Now all the nodes that have the suffix B or C are nodes within the transformation chain, and only those nodes that have suffixes A or D are elements of dependency. For example, nodes 601B, 602B, 603B, 601C, 602C and 603C are nodes within the increased transformation chain 700C and the functionality of the compound application becomes better than the sum of the functionalities of the chain instances of Individual transformation 600B and 600C.
Figure 8A shows a 800A linked transformation chain, which also includes 600A, 600B and 600C transformation chains also attached. The dependency elements in each of the transformation chains are replaced with the current node referred to the extent to which the dependency element refers to a node within any of the transformation chains 600A, 600B or 600C. Note that all illustrated nodes are really nodes in the transformation chain, except in the case of dependency element 601D. The functionality of the compound application becomes better than the sum of the functionality of the individual transformation chains 600A, 600B and 600C.
The transformation chain 600D includes two nodes 601D and 602 D. However, the transformation chain 600D also includes a single dependency element 603A that references a node in a different transformation chain class 600A. Again, instances of the 600D transformation string class can function independently as a single application. For example, the value of data source 601D can be provided by a transformation to generate the resulting value for data target 602D.
Although the 600A and 600D transformation chain instances can operate independently, Figure 7D shows a 700D linked transformation chain that includes the 600A transformation chain linked to the 600D transformation chain. The dependency elements in each of the transformation chains are now replaced with the actual node referenced to the extent that the dependency element refers to a node within any of the transformation chains 600A or 600D. Now all the nodes that have the suffix A or D are nodes within the transformation chain, and only those nodes that have the suffixes B or C are elements of dependency. For example, nodes 601 A, 602A, 603A, 604A, 601D and 602D are nodes within the 700D augmented transformation chain and the functionality of the compound application becomes somewhat better than the sum of the functions of the chain of 600A and 600D individual transformation.
Note that Figures 7A to 7D illustrate all possible permutations involving two and only two of the transformation chains 600A, 600B, 600C and 600D. The transformation chains 600B and 600D are not directly linked in a combination of two transformation chains, since neither of the transformation chains has a dependency element referring to a node in the other transformation chain. In addition, the 600C and 600D transformation are not directly linked in a combination of two transformation chains, since neither has a dependency reference to the other.
Figure 8 illustrates one of three possible combinations of three and only three transformation chains 600A, 600B, 600C and 600D. In particular, Figure 8A shows an increased transformation chain 800A combining the transformation chains 600A, 600B and 600C. Figure 8B shows an augmented transformation chain 800B combining the transformation chains 600A, 600B and 600D (in which all nodes are part of the transformation chain, except the dependency elements 601C and 603C). Figure 8C shows an increased transformation chain 800C combining the transformation chains 600A, 600C and 600D (in which all nodes are part of the transformation chain, except dependency elements 601B and 603B). Note that there is no combination of 600B, 600C and 600D transformation chains illustrated since the 600D transformation chain does not include dependency references to the 600B transformation chain (or vice versa), or the 600C transformation chain (or vice versa). Figure 9 illustrates a combined transformation chain 900 that includes all the combined transformation chains 600A, 600B, 600C and 600D.
Therefore, given the transformation chains 600A, 600B, 600C and 600D associated with their respective devices 501 to 504 in the environment, there are 8 possible application of compound that can be formed (corresponding to the transformation chains of Figures 7A to 7D , Figures 8A to 8C, and Figure 9). Thus, since the transformation chains of several devices are joined in and decoupled from the environment, the transformation chain itself changes, and the structure of the compound application in this way changes. For example, a change in the value of the data source 601A could have a very different impact on the transformation chain since the effects of that change are automatically propagated through one or more transformations, depending on whether the data source 601A is within the transformation chain 600a alone, within the transformation chain 700A, within the transformation chain 700B, within the transformation chain 700D, within the transformation chain 800A, within the transformation chain 800B, within the transformation chain 8000, or within the transformation chain 900.
As an example, assume that the device 501 enters the resulting environment for the first time in the transformation chain 600A used. The device 502 then enters the environment resulting in the transformation chain 600B joining the transformation chain 600A, resulting in the transformation chain 700A. Thus, the operation transformation chain changes from transformation chain 600A to transformation chain 700A. Assume now that the third device 503 enters the environment resulting in the transformation chain 600C joining the transformation chain 700A, thus resulting in the transformation chain 800A. Therefore, the operation transformation chain changes from the transformation chain 700A to the transformation chain 800A. Assume now that the 500B device exits. The 700B transformation chain would then become operational. Now assume that the device 504 enters the environment resulting in the transformation chain 600D joining the transformation chain
700Β, resulting in the 800C transformation chain becoming the operation transformation chain. Assume now that the 500C device exits, resulting in the 700D transformation chain being operational. Assume now that the device 501 goes out, resulting in the transformation chain 600D is operative. Finally, the device 504 leaves, leaving the transformation chain in the environment without operation. In this scenario, the changed structure of the operational application (and therefore changes the functionality) seven times as follows: 1) beginning with the transformation chain 600A, 2) then changing to the transformation chain 700A, 3 ) then switching to the 800A transformation chain, 4) to
<td>continuation,</td><td>Changing</td><td>to</td><td>the</td><td>chain</td><td>from</td><td>transformation</td><td>700B,</td><td> 5)</td><td>to</td>
<td>continuation,</td><td>Changing</td><td>to</td><td>the</td><td>chain</td><td>from</td><td>transformation</td><td>800C,</td><td> 6)</td><td>to</td>
<td>continuation,</td><td>Changing</td><td>to</td><td>the</td><td>chain</td><td>from</td><td>transformation</td><td>700D,</td><td> 7)</td><td>to</td>
then ending with the 600D transformation chain.
Figure 10 shows a flow chart of a method 1000 to prepare for the facilitation of a compound application represented by multiple linked transformation chain instances. The method 1000 may be performed by any of the devices 501 to 507 that are within the environment 500. Alternatively, or in addition, the method 1000 may be performed external to the devices 501 to 507, such as for example the external system 510 of Figure 5 . For example, external system 510 could be a service provided in a cloud computing environment. Regardless of where the 1000 method is performed, Figure 11 illustrates a system 1100 that can be performed by the 1000 method. Accordingly, regardless of whether the system 1100 is incorporated into one or more of the devices 501 to 507 or if the system 1100 is an external system 510 of Figure 5, or combinations thereof, method 1000 will now be described with frequent reference. to system 1100 of Figure 11.
Method 1000 includes two acts 1001 and 1002 that do not have temporary dependencies. For example, the method includes identifying dependencies between different kinds of transformation chain (act 1001). These dependencies are essentially authorizations created by the author of the class that generated the class in order to allow instances of different transformation chain classes to interoperate (subject to approval based on subsequent instances).
For example, system 1100 includes a logic component 1101 and a transformation class definition library 1110 that is illustrated as including six transformation chain class definitions 1111 to 1116. However, ellipses 1117 represent that the library of transformation chain class definition 1110 may include any number of transformation chain class definitions. As an example, assume that the transformation chain class definitions 1111, 1112, 1113 and 1114, respectively define transformation chain classes 600A, 600B, 600C and 600D of Figures 6A to 6D. Since each transformation chain class defines dependency elements, the system 1100 can use library 1110 to identify the dependencies between the different transformation chain classes.
For example, by observing the dependency element 601B of the transformation chain 600A, and the dependency element 601A in the transformation chain 600B, the logic component 1101 can identify a dependency between nodes 601A and 601B that would exist if the chain classes of transformation 600A and 600B join, or if the instances of the class join. Logic component 1101 can deduce that the authors of transformation chains 600A and 600B both agree to authorize their union (assuming that users also authorize the instance level at runtime) in these dependency elements.
Method 1000 also includes identifying (act 1002) devices that are associated with instances of any of the transformation chain classes. The devices can themselves identify the 1100 system perhaps with the device identifier, as well as potentially any kind of transformation chain that the device wishes to use. Alternatively, system 1100 may have a particular predetermined transformation class associated with each device and, therefore, may receive the device identifier. There may be some transformation chain classes that a device is authorized to use and other transformation chain classes that the device is not authorized to use.
For example, system 1100 also includes device records 1120 that include device registration as associated with various transformation chain classes. For example, device records 1120 include five device records 1121 through 1125, although ellipses 1126 represent that device records 1120 may include any number of device records. In addition, the device records 1120 may be persisted for a long time and / or may only be retained for a short time. Regardless, the 1100 system identifies several devices and finds the associated transformation chains for those devices. Just as an example, perhaps the devices 501 to 504 of Figure 5 are associated with registers 1121 to 1124. By that association, the system 1100 is able to detect that the transformation chain instances 600A, 600B, 600C, 600D (respectively, defined by the transformation chain class definitions 1111, 1112, 1113 and 1114) are, respectively, associated with these devices 501 to 504.
In some embodiments, the 1100 system itself executes a representation of an instance of the particular transformation chain class on behalf of the corresponding device. For example, by identifying that the transformation chain class 600A is associated with the device 501, the system 1100 can operate a representation of the transformation chain instance 600A for the device 501. Consequently, as the inputs are received from the device, the 1100 system identifies the change with a particular node in the transformation chain, and propagates the chains along the transformation chain. This is known as a practical approach. This practical approach has some advantages since the processing that can be downloaded to devices or systems, or clouds that have greater processing capacity than the device that is providing the input itself.
In another aspect referred to herein as a hands-free approach, the device is associated with the transformation class itself by executing the class instance. When a dependency encounters another transformation chain associated with another device, data can flow directly (for example, through the peer-to-peer network) to that device if that other device is also coupled in the hands-free approach. Alternatively, the device could flow the data indirectly to the other device (for example, through an external system or a cloud). If the external system 510 is executing the representation of the instance of the transformation chain class for that other device, it is possible that the device may instead flow the data in the external system 510 for further propagation in the rest of the transformation chain
Figure 12 shows a flow chart of a method 1200 for joining two instances of transformation classes. First, the transformation chain classes are confirmed to be of the type that can be joined (act 1201). For example, if the transformation chain classes do not refer to each other, then perhaps there is no class-based authorization to join the instances of the respective class. For example, the transformation chain class 600D cannot be linked to the transformation chain class 600B or the transformation chain class 600C, because the transformation chain class 600D does not refer to elements in the class of chain of
<td>transformation</td><td>600B</td><td>or 600C.</td><td>However, the class</td><td>from</td><td>chain</td><td>from</td>
<td>transformation</td><td>600D</td><td colspan="2">can be united with the class</td><td>from</td><td>chain</td><td>from</td>
<td>transformation</td><td>600A</td><td>why</td><td>mutually contain</td><td colspan="2">references</td><td>from</td>
<td colspan="2">dependence on each other.</td><td></td><td></td><td></td><td></td><td></td>
<td>In this</td><td colspan="3">example, however, although the class</td><td>from</td><td>chain</td><td>from</td>
<td>transformation</td><td>600D</td><td>can not</td><td>be directly attached</td><td colspan="2">to the classes</td><td>from</td>
<td colspan="4">600B and 600C transformation chain, class</td><td>from</td><td>chain</td><td>from</td>
600D transformation can be linked with the 700A, 700B and 800A transformation chains although the 700A, 700B and 800A transformation chains include one or both 600B and 600C transformation chains.
However, in an alternative mode, the author of a transformation chain class may specify additional restrictions on the union of other transformation chain classes. For example, an author may indicate a general restriction that the binding of a particular transformation class instance is not allowed if the transformation class instance is already a compound transformation chain and / or if the compound transformation chain has a particular constituent transformation chain. For example, when two instances of transformation chain are joined, system 1100 can keep track of the transformation class identities that were used to construct the compound transformation chain to that point. That list can be used to confirm whether the conditions for class-based authorization have been met.
The author could also express restrictions on the granularity of a single unit. For example, in the dependency element 601B of the transformation chain class 600A, the author could express that the union is authorized in that dependency element only if the transformation chain in which it was joined does not include a chain class of Identified transformation created by a competitor. The author could also control the data that went outside the transformation chain to another transformation chain linked by writing restrictions or conditions in the transformation that could join the dependency to each other (for example, between nodes 601A and dependency element 601B).
However, although the transformation chain class can interoperate, that does not mean that the user wants his particular instance of that transformation chain class to join with other instances of other transformation chain classes. After all, the data itself (for example, the state of the instance) can be user sensitive. Consequently, method 1200 also includes the determination that instances of different kinds of transformation chain joined together (act 1202).
The binding criteria for authorizing two instances of different transformation chain classes to join can include one or more of the following: if the user is or is not in a list of attendees at a meeting, a relationship (for example, family, friends, social networks or similar) of the users of the different devices, a communication capacity (for example, near field) between the devices, a proximity of the respective devices (for example, in the same conference room), the request of the users thereof.
For example, the union criteria could include some business criteria as the associated users of the instances are on the same team. As another example, a device can be a kiosk in a commercial space or a hotel, where a customer uses the kiosk and an assistant shop or the concierge can automatically use their device to join their transformation chain with that of the kiosk with the In order to interact with the client using the compound application. The conditions can be applied to the union criteria. For example, a button device might be able to join a client's application if the concierge does not round (perhaps detected by the concierge is not actively using the application to join with that of the clients, or they are outside the network).
Unless the instance of the transformation chain class associated with the device is started in a predetermined state defined by the class, in the practical approach, the device can then load the instance data (for example, the values in each one of the nodes of the transformation chain associated with the device) to system 1100 (act 1203). In the hands-free approach, perhaps the instance data only at the border nodes is loaded into the 1100 system.
The transformation chain instance, then, joins the rest of the transformation chain (act 1204). For example, this can be achieved by searching for the source transformation string instance for dependency elements that correspond to the nodes in the target transformation string instance. Once said dependency element is found, that dependency element is replaced with the real identified node in the target transformation chain instance, thus creating a real link between source and target transformation chain instances. This is repeated for all dependency elements found in the source transformation chain instance that identifies a node in the target transformation chain instance. If there are dependency elements found in the source transformation chain instance that do not correspond to a node in the target transformation chain instance, then the dependency elements remain elements of the dependency chain in the transformation chain instance combined.
Note that in the examples in Figures 6A to 6D, none of the classes in the transformation chain 600A to 600D include dependency elements that refer to the same class. However, the principles described herein may work even if an instance of a particular class of the transformation chain can have a dependency element referring to another node in another instance of the same class of the particular transformation chain. In addition, if allowed by a particular node is linked to, multiple nodes of one or more different transformation chain instances can join the particular node.
Once joined, the transformation chain increases, and the data flows into the increased transformation chain (act 1205), as if the transformation chain was originally created in an increased form first. For example, when an instance of the transformation chain class 600A joins an instance of the transformation chain class 600B, the result is a single instance of the transformation chain class 700A. Once an instance of the transformation chain class 600A joins an instance of the transformation chain class 600C, the result is a single instance of the transformation chain class 700B. Once an instance of the transformation chain class 600B joins an instance of the transformation chain class 600C, the result is a single instance of the transformation chain class 7000. Once an instance of the transformation chain class 600A joins an instance of the transformation chain class 600D, the result is a single instance of the transformation chain class 700D.
An instance of the transformation chain class 800A can be formed either by joining instances of the transformation chain classes 700A and 600C, or by joining instances of the transformation chain class 600A and 7000. An instance of the class of the 800B transformation chain may be formed by joining instances of transformation chain classes 700A and 600D. An instance of the transformation chain class 800C may be formed by joining instances of the transformation chain classes 700B and 600D. This joining operation can be done by joining many times to create a large chain of transformation in situations where there are many devices available for collaboration in a given environment.
Consequently, once linked (act 1204), data can flow freely (act 1205) within the augmented transformation chain, even across what used to be the boundaries between constituent transformation chains. For example, in the transformation chain 700A of Figure 7A, the data can flow freely (without the user of an application programming interface and without function calls) from node 601A to node 601B (through transformation ( es) corresponding precisely how data can flow from node 601A to node 604A (through corresponding transformation (s)).
Consequently, the system can be used to link transformations associated with a wide variety of devices in a relatively convenient and automated manner in order to increase the transformation chain of a composite application that is shared between several devices. This allows a wide variety of scenarios.
For example, consider people who arrive at a meeting in a conference room. When the first user entering the conference room with a laptop and a smartphone, a transformation chain instance associated with the smartphone joins the transformation chain instance of the laptop such that a single application It is running effectively through the first users of the smartphone and laptop. A second user enters the conference room at a later time. The second user is also invited to the meeting, and so that the user's smartphone transformation chain joins the existing composite transformation chain to further increase the transformation chain. A television screen then automatically turns on the output of some of the data associated with the board. A third user enters with a tablet computer and is also a meeting guest. Thus, the transformation chain associated with the tablet computer joins the compound transformation chain to further increase the transformation chain. Thus, as more devices join a suitable environment to join transformation chains, the application that is running on all devices is actually augmented, thus changing the functionality of the application itself. Multiple users can share in the environment so that multiple users are watching each of at least one or some of the devices.
Figure 13 shows a flow chart of a method 1300 for decoupling transformation chains. Since there is a method to join transformation chains when the devices enter an environment, there is a method to decouple the transformation chains when the devices leave the environment. First, the system determines that an instance of a transformation chain class can be decoupled (act 1301). In response, the flow of data is interrupted to and from that instance (act 1302). The decoupling criteria used to determine that the instance must be decoupled could include any criteria, but as an example, they may include one or more of a proximity of the device associated with the instance with other devices in the environment, a meeting completion status , a communication capability between the device associated with the instance and other devices in the environment, the user's request, and so on. Thus, the transformation chains can change dynamically as the devices enter and leave the environment.
In one embodiment, the system 1100 includes a presentation service of 1150. One or more nodes of the transformation chain instance that is executed can conduct the representation on one or more surrounding devices. Also, one or more devices can provide input to one or more nodes of the transformation chain instance. For example, suppose that a transformation chain instance 900 is executed in the environment 500 of Figure 5, and that the devices 501 to 504 are associated with the instances of respective transformation chain classes 600A to 600D, thus resulting in the instance of the augmented transformation class 900. Referring to Figure 9, assume that nodes 601A and 601C are input nodes and nodes 604A, 603B, 602 C and 602D are output nodes. The presentation service 1150 can select which devices can provide input to nodes 601A and 601C and, if so, what transformations will be made. In one example, the devices are associated with their respective portions of their transformation chains such that the input nodes within that respective part are provided by the corresponding device. Thus, by default, the input node 601A, which was originally part of the transformation chain 600A, could be provided with input from the device 501 (after potentially some transformation (s)). In addition, in the default case, the input node 601C, which was originally part of the transformation chain
600C, can be provided with input of device 503 (after potentially some transformation (s)). The 1150 presentation service could also select the devices that will represent the output from nodes 604A, 603B, 602C and 602D, and what transformations (if any) should be carried out.
Figure 14 shows a flow chart of a method 1400 for the output representation of a transformation chain in a multi-device environment. The method 1400 can be performed by the system 1100 of Figure 11, or perhaps by the presentation service 1150 of Figure 11. The logic component 1101 determines (act 1401) that a given node (presentation node) of a instance of a transformation string class has changed. For example, in the example, nodes 604A, 603B, 602C and 602D are output nodes, or presentation nodes.
The logic component also identifies characteristics (act 1402) of several candidate devices in which at least one version of that changed output can be presented. For example, the logic component 1101 can query the device register 1120 and / or inform the devices directly in order to determine the representation capability of each device. The characteristics of each device could also include a juxtaposition of each user with respect to the device.
Next, the system selects (act 1403) at least one of the candidate devices in which at least the representation version is represented according to the characteristics identified. The system makes the selection in order to maximize the use of the output. For example, if the output is intended for all users, and all users are physically present, the output could be represented on a larger screen. If the output is interactive and requires the input of a particular device, it is possible that the device is selected for the output.
The system determines if some transformations are applied (decision block 1404) for representation before the actual output of the device. The transformations that take into consideration the suitability of the selected device (s), where the transformations may vary depending on the device (s) selected for representation. Examples of transformations include changing a type of representation (for example, text to speech, voice to text, video to text, text to video, etc.). Transformations can also include cinematization of the output. For example, a video can be created from the entrance, in which a backdrop is provided and perhaps changed as appropriate, and the moving elements move in and out of the video.
If transformations are going to take place (Yes in decision block 1404), then those transformations are carried out (act 1405). Finally, representation is provided on the selected device (act 1406). Consequently, the compound transformation chain can take the input from any device in any form, and transform the input, if necessary, into a form that is recognized by an input node of the compound transformation chain. Thus, this entry spreads throughout the transformation chain. If the values of one or more presentation nodes change, an appropriate device can be selected to represent the output. Consequently, the most suitable device for representation can be selected without considering which device was associated with the portion of the transformation chain that contains the presentation node. For example, changes in the value of the presentation node 604A need not be represented exclusively, or even in the entire device 501 corresponding to the transformation string instance 600A. In several modalities, representation may involve converting information to some physical action that includes some type of movement. For example, the representation may include opening or closing a door, opening or closing a valve, unlocking or blocking a door, turning a television on or off, and so on.
A detailed scenario (hereinafter referred to as the device scenario) will be described with respect to Figures 15A to 15M (collectively referred to as Figure 15). This scenario is provided just as an infinite variety of scenarios that are activated by the general principles described in this document. In this scenario, a user is ordering different computing devices. The scenario involves four devices 1501, 1502, 1503 and 1504, although the scenario begins in Figure 15A with only two devices 1501 and 1502 being visible. Each of the four devices from 1501 to 1504 participates in the provision of input and output reception of a composite application.
Figure 15A introduces two devices 1501 and 1502 that are laptop computers. Assume that these two devices 1501 and 1502 are initially the only devices in the operating environment and, therefore, their respective transformation chains have joined. The transformation chain associated with device 1501 allows navigation and selection of a manufacturer. The transformation chain associated with the device 1502 allows navigation of a list of devices offered by the manufacturer, and also allows the user to change a count of any of the devices in the list.
More specifically, the device 1501 allows the user to scroll horizontally through a series of manufacturers, and select a manufacturer. In Figure 15A, device 1501 shows only three of those manufacturers labeled Seller 7, Seller 8 and Seller 9, with the user having selected Seller 8. On the other hand, device 1502 shows a horizontally scrollable list of devices that are provided by the selected vendor in device 1501. In Figure 15A, since Seller 8 is selected in device 1501, device 1502 shows a list of devices provided by Seller 8. Each item in the device list includes an image 1505 of the device, a name 1506 of the device, a cost per unit 1507 of the device, and an account 1508 of the device being ordered. The account for each device can be controlled by a corresponding displacement control.
Figure 15B shows a state of the scenario that has progressed from the state of Figure 15A, in which the user has moved to the left the list of manufacturers and also selected Seller 4. Consequently, the output from device 1502 automatically changes to display a list of the device manufactured by Seller 4. To do so, the data flowed automatically (without the use of an application program interface) from the transformation chain associated with the device 1501 to the transformation chain associated with the device 1502.
Figure 15C shows a state of the scenario that has progressed from the state of Figure 15B, in which the user has moved to the left in the list of manufacturers and also Seller 2 selected. Consequently, the output from device 1502 automatically changes to present a list of devices manufactured by Seller 2. In doing so, the data again flows automatically from the transformation chain associated with the device 1501 to the transformation chain associated with the device 1502.
Figure 15D shows a stage status that has progressed from the state of Figure 15C, in which the user has used the scroll controls 1511 and 1512 shown on the device 1502 in order to change an order account for two devices offered by Seller 2. Figure 15E shows a status of the scenario that has progressed from the state of Figure 15D, in which the user used the device 1502 to scroll right through the list of devices offered by Seller 2 and also uses the controls of displacement 1513 and 1514 presented in device 1502 in order to change an order account for two additional devices offered by Seller 2. Therefore, at this stage, the user has entered order accounts for four devices offered by Seller 2.
Figure 15F shows a stage state that has progressed from the state of Figure 15E, in which a third device 1503 is introduced into the environment. For example, the third device 1503 could be associated with a transformation chain that shows a maximum unit cost and a total cost for the entire order. Once the device 1503 is introduced into the environment, that portion of the transformation chain joins the existing compound transformation chain, thus changing the functionality of the compound application, to now send such cost data to the device 1503 . Once the transformation chain instance is linked, the data representing the accounts, and unit costs flow to that portion of the transformation chain, causing the device 1503 to be immediately filled. Note that flows also occur in the opposite direction, as device 1503 indicates a maximum unit price and, therefore, the list of devices shown in device 1502 is restricted to any device below the maximum unit price. In this case, all the devices listed above are below the maximum unit price and, therefore, there is no change in the displays on the device 1502.
Figure 15G shows a status of the scenario that has progressed from the state of Figure 15F, in which the user has used the 1515 displacement control on the device 1502 to enter an account for another device offered by the Vendor 2. The Account data and unit cost data flow in the portion of the transformation chain to the corresponding device 1503, which translates into a change in the total cost shown in the device 1503.
Figure 15H shows a stage status that has progressed from the state of Figure 15G, in which the user has adjusted below the maximum unit price to $ 987 using the 1516 displacement control on the device 1503. That maximum unit price change has derived from the transformation chain portion associated with device 1503 to the transformation chain portion associated with device 1502, causing several devices offered by Seller 2 to be removed from the list. If the user returns the higher amount, the removed items will be automatically added back to the list, perhaps returning the device 1502 to the status illustrated in Figure 15G.
Figure 151 shows a stage state that has progressed from the state of Figure 15G, in which a fourth device 1504 is introduced into the environment. For example, the fourth device 1504 could be associated with a transformation chain that shows a maximum weight of a device. Once the device 1504 is introduced into the environment, that portion of the transformation chain joins with the existing compound transformation chain, thus changing the functionality of the compound application, to now output such cost data. Once the transformation chain instance is linked, data representing the maximum weight flows from the portion of the transformation chain associated with the device 1504 to the portion of the transformation chain associated with the device 1502. The device 1502 Responds by showing 1518 A, 1518B and 1518C and 1518D overweight warnings associated with each device that is heavier than the maximum weight. Currently, in Figure 151, the weight is only 606 grams, and therefore all devices are listed with such a warning.
Figure 15J shows a stage state that has progressed from the state of Figure 151, in which the user has used the displacement control 1516 in the device 1504 in order to increase the maximum weight to more than 2 kilograms. The maximum weight change is made to flow from the portion of the transformation chain associated with the device 1504 to the portion of the transformation chain corresponding to the device 1502, resulting in the extraction of overweight warnings 1518C and 1518D (overweight warnings 1518A and 1518 B remain).
That concludes the scenario from the user's perspective. Figures 15K to 150 illustrate that at editing time, the author can declaratively change the transformations to thus change the functionality of the compound application. In Figure 15K, the user interface element 1520 is illustrated as including a declarative transformation that filters devices that have a suggested retail price of the manufacturer that is less than the value indicated by the slider 1516. Figure 15L demonstrates that this restriction has been removed and, therefore, the devices currently displayed are not filtered by the value of slider 1516.
In Figure 15M, the user interface element 1521 is illustrated as defining a highlight color used for the retail price suggested by the manufacturer. Figure 15N illustrates that the highlight color now depends on whether or not the manufacturer's suggested retail price is greater than the value indicated by the slider control 1516. If so, the highlight color changes to, for example, green . Figure 150 shows that, as the slider 1516 is increased in this situation, the behavior of the compound application has changed from a state in which the devices are removed from the list if their suggested manufacturer retail price is greater than the value of a slider 1516, to a state in which the retail price suggested by the manufacturer (as compared to the value of the 1516 slider) triggers the retail price highlighting suggested by the manufacturer.
Consequently, the presentation of transformation chain output in devices has been described, so that a change in a value in the presentation node causes the representation to occur. In response to a change in the value of the presentation node, the presentation system identifies characteristics or several devices that can be used to represent the corresponding output. The presentation system identifies an appropriate device based on the identified characteristics of that device. The presentation system then facilitates the representation of at least one version of the output on the selected device, perhaps even transforming the output into a form suitable for the selected device. In some embodiments, the transformation chain may be a compound transformation chain constructed by joining multiple constituent transformation chains.
The present invention can be modeled in other specific ways, without departing from its spirit or essential characteristics. The modalities described will be considered in every way only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims instead of by the above description. All changes that come within the meaning and scale of equivalence of the claims are covered within its scope.
Contents6
27 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27
20 members in 10 offices
Priority claims7
| Document | Office | Kind | Date |
|---|---|---|---|
| 14320030 | United States of America | – | |
| 201414320030 | United States of America | A | |
| 201414320030 | United States of America | A | |
| 2015038406 | United States of America | W | |
| 2015038406 | United States of America | W | |
| US201414320030 | – | – | – |
| WO2015US38406 | – | – | – |
Members20
| Document | Office | Kind | |
|---|---|---|---|
| US2015379958A1 | United States of America | A1 | |
| CA2948662A1 | Canada | A1 | |
| WO2016003950A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US9396698B2 | United States of America | B2 | |
| AU2015284328A1 | Australia | A1 | |
| CN106462420A | China | A | |
| KR20170027740A | Republic of Korea | A | |
| MX2016016418A | Mexico | A | |
| EP3161620A1 | European Patent Office (EPO) | A1 | |
| JP2017526992A | Japan | A | |
| RU2016152187A | Russian Federation | A | |
| RU2016152187A3 | Russian Federation | A3 | |
| JP6530426B2 | Japan | B2 | |
| MX366289BThis record | Mexico | B | |
| RU2698761C2 | Russian Federation | C2 | |
| CN106462420B | China | B | |
| AU2015284328B2 | Australia | B2 | |
| EP3161620B1 | European Patent Office (EPO) | B1 | |
| KR102349773B1 | Republic of Korea | B1 | |
| CA2948662C | Canada | C |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Grant or registrationFG | FG |
Numbers
- Publication
- 366289
- Publication, DOCDB
- 366289
- Publication, EPODOC
- MX366289
- Application
- 20160016418
- Application, DOCDB
- 2016016418
- Application, EPODOC
- MX20160016418
Titles3
- English
- PRESENTATION OF COMPOSITE APPLICATION THROUGH MULTIPLE DEVICES.
- English
- COMPOUND APPLICATION PRESENTATION ACROSS MULTIPLE DEVICES.
- Spanish
- PRESENTACION DE APLICACION DE COMPUESTO A TRAVES DE MULTIPLES DISPOSITIVOS.
Classification
- CPC, 7
- G06F8/34
- G09G5/005
- G06F3/1431
- G09G2340/0407
- G09G2360/02
- G09G2360/04
- G06F9/44
- IPC, 4
- G06F15 16
- G06F3 14
- G06F9 44
- G09G5 00