CN105210054B - Binding of the data source to composite control - Google Patents

Binding of the data source to composite control Download PDF

Info

Publication number
CN105210054B
CN105210054B CN201480020887.9A CN201480020887A CN105210054B CN 105210054 B CN105210054 B CN 105210054B CN 201480020887 A CN201480020887 A CN 201480020887A CN 105210054 B CN105210054 B CN 105210054B
Authority
CN
China
Prior art keywords
data
composite control
characteristic
source
control
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201480020887.9A
Other languages
Chinese (zh)
Other versions
CN105210054A (en
Inventor
V·米塔尔
S·T·普之伊尔
V·巴帕特
B·霍兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105210054A publication Critical patent/CN105210054A/en
Application granted granted Critical
Publication of CN105210054B publication Critical patent/CN105210054B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Abstract

The automation of data source to composite control is bound.The characteristic of composite control is identified.In addition, a certain particular source is associated with the composite control.For each characteristic in one or more characteristics of the composite control, one group of one or more field of the correspondence characteristic for being bound to the composite control of the particular source is used to identify about the information of the composite control and the data source.If the correspondence characteristic of the composite control has been bound an output parameter declaratively converted, in the group one or more field for the correspondence characteristic that mark can be used to be tied to the composite control, the essence of the transformation can also be considered.

Description

Binding of the data source to composite control
Background
" document of reruning " is the declaratively change for showing various data sources and data sink and allowing between data source and data sink The electronic document changed.One group of transformation is given for interconnecting various data sources and any of data sink, the output of data source can be by counting It is consumed according to place or the output of data source can be subjected to converting before being consumed by data sink.These various transformation can be evaluated, and be caused The one or more outputs indicated throughout document is reruned.
User can add and edit and declaratively convert, without the deep knowledge to coding.Such editor makes automatically It must convert and be recalculated, to cause one or more variations exported.
The particular example of document of reruning is spreadsheet document, it includes the grid of cell.Any given unit Lattice may include being evaluated to export the expression formula of the particular value shown in the cell.Expression formula can with reference data source, Such as other one or more cells or value.
Brief overview
At least some embodiments as described herein are related to data source and are bound to the automation of composite control.The spy of composite control Property be identified.In addition, a certain particular source is associated with the composite control.For one or more characteristics of the composite control In each characteristic, about the information of the composite control and the data source be used to identify the particular source can quilt It is tied to one group of one or more field of the correspondence characteristic of the composite control.If the correspondence characteristic of the composite control by It is bundled with an output parameter declaratively converted, then can be used to be tied to the correspondence characteristic of the composite control in mark When the group one or more field, the essence of the transformation can also be considered.
The general introduction is not intended to the key feature or essential characteristic for identifying theme claimed, is not intended to and is used to help Help the range for determining theme claimed.
Brief description
In order to describe can get the above mode recording and other benefits and feature, each implementation is presented with reference to the accompanying drawings Example is discussed in greater detail.It is appreciated that these attached drawings depict only example embodiment, and therefore it is not considered as to its range Limitation, each embodiment will be described and explained by using attached drawing and using supplementary features and details, in the accompanying drawings:
Fig. 1 abstractively exemplifies the computing system that certain embodiments described herein wherein can be used;
Fig. 2 exemplifies the environment including multiple data sources and multiple controls;
Fig. 3 exemplifies associated environment including individual data source and single control and between the two in more detail;
Fig. 4 exemplifies the flow chart of the method for data source to be tied to data control;
Fig. 5 is exemplified for by the stream of particular source method associated with a control of such as composite control etc Cheng Tu;
Fig. 6 exemplifies a user interface, wherein exemplifying picture library control and for being tied to the available of the picture library control The list of data source;
Fig. 7 exemplifies the user interface similar with the user interface of Fig. 6, the difference is that user selects device data;
Fig. 8 exemplifies a user interface, which shows the field in view of device data source to the spy of picture library control Property acquiescence binding picture library control response;
Fig. 9 exemplifies a user interface, which shows that user consults and changes binding associated with label;
Figure 10 exemplifies a user interface, which shows to include that can be used for color value being tied to label control Color characteristics color picker control color picker interface;
Figure 11 shows that a user interface, wherein user are presented for that user is allowed to edit change of the output for the color of label The transformation editing machine changed;
Figure 12 abstractively exemplifies example and reruns user interface, it illustrate that several data source sum numbers with intermediary's transformation According to place, and be used as explaining broader principle as described herein and the specific example that provides;
Figure 13 exemplifies example translation and compiling environment, the example translation and compiling environment include access transformation chain and generate compiled code with And the compiler of dependence chain;And
Figure 14 exemplifies the flow chart of the method for the transformation chain for compiling user interface of reruning;
Figure 15 exemplifies the environment that the principle of the present invention wherein can be used, which includes that construction depends on input data The resultant frame (composition framework) of the data-driven of View synthesis;
Figure 16 exemplifies an exemplary track environment of the environment for indicating Figure 15;
Figure 17 illustratively exemplifies an embodiment of the data portion of the assembly line of Figure 16;
Figure 18 illustratively exemplifies an embodiment of the analysis part of the assembly line of Figure 16;And
Figure 19 illustratively exemplifies an embodiment of the View component of the assembly line of Figure 16.
Detailed description
At least some embodiments as described herein are related to binding convenient for the automation of data source to composite control.Composite control Characteristic be identified.In addition, a certain particular source is associated with the composite control.For example, the particular source may by User selects to be used for being tied to the composite control from multiple available data sources.Available data sources may be closed by assessing Information (level, constitute characteristic etc.) in the composite control and the information (such as pattern) about the data source by from Dynamic mark, to determine which data source is the most suitable matching for being tied to the composite control.
For each characteristic in one or more characteristics of the composite control, about the composite control information and Selected data source is used to identify one group one of the correspondence characteristic for being bound to the composite control of the particular source A or multiple fields.If the correspondence characteristic of the composite control has been bound an output parameter declaratively converted, In the group one or more field for the correspondence characteristic that mark can be used to be tied to the composite control, the essence of the transformation Also it can be considered.
Even automating binding procedure and meaning that non-programmers can also create complexity to the use declaratively converted Binding between data and control.This allows complex control by the user interface of reruning of the document etc that is reasonably used for such as reruning Context in, define to being declared property of transformation wherein between data source, data sink and control, without using order Formula programs.
Some introductory discussion to computing system will be described with reference to Figure 1.Then, it is complicated that subsequent drawings description will be referred to The process of the binding of data and control.
Computing system is now increasingly taking diversified form.It is set for example, computing system can be hand-held Standby, electric appliance, laptop computer, desktop computer, mainframe, distributed computing system are not even considered as conventionally meter The equipment of calculation system.In this description and in the claims, term " computing system " is broadly defined as including any Equipment or system (or combinations thereof), the equipment or system include the tangible processor of at least one physics and can have thereon can By the memory that the physics of the computer executable instructions of processor execution is tangible.Memory can take any form, and can By depending on computing system property and in the form of.Computing system can be distributed in a network environment, and may include multiple component meters Calculation system.
As shown in Figure 1, in its most basic configuration, computing system 100 generally includes 102 He of at least one processing unit Memory 104.Memory 104 can be physical system memory, which can be volatibility, non-volatile Property, or both certain combination.Term " memory " can also be used to refer to non-volatile as such as physical storage medium herein Property mass storage.If computing system is distributed, handle, memory and/or storage capacity can also be distribution Formula.As used herein, term " executable module " or " executable component " can refer to and can hold on a computing system Capable software object, routine or method.Difference component, module, engine and service described herein can be implemented as counting The object or process (for example, as separated thread) executed in calculation system.
In the description that follows, with reference to each embodiment of the action description executed by one or more computing systems.If Such action is implemented in software, then executes the one or more processors of associated computing system of action in response to The operation of computing system is guided through performing computer executable instructions.For example, such computer executable instructions can be with It is realized on the one or more computer-readable mediums for forming computer program product.The example of such operation is related to logarithm According to manipulation.Computer executable instructions (and the data being manipulated) can be stored in the memory 104 of computing system 100 In.Computing system 100 also may include that computing system 100 is allowed for example to lead to by what network 110 was communicated with other message handling devices Believe channel 108.Computing system 100 further includes display 112, and display 112 can be used for showing visual representation to user.
Each embodiment described herein may include or utilize dedicated or general purpose computer, the dedicated or general purpose computer packet The computer hardwares such as such as one or more processors and system storage are included, as discussed in detail below.Herein Description each embodiment further include by carry or store the physics of computer executable instructions and/or data structure and other based on Calculation machine readable medium.Such computer-readable medium can be can be by any available of general or specialized computer system accesses Medium.The computer-readable medium for storing computer executable instructions is physical storage medium.Load capacity calculation machine executable instruction Computer-readable medium be transmission medium.As a result, as an example, not a limit, various embodiments of the present invention may include at least two The dramatically different computer-readable medium of kind:Computer storage media and transmission medium.
Computer storage media include RAM, ROM, EEPROM, CD-ROM or other optical disc storages, disk storage or other Magnetic storage apparatus or can be used for storing computer executable instructions or data structure form required program code devices and can be by Any other tangible medium that general or specialized computer accesses.
" network " is defined such that electronic data can be in computer system and/or module and/or other electronic equipments Between one or more data link for transmitting.When information by network or another communication connection (hardwired, it is wireless or Hardwired or wireless combination) transmission or when being supplied to computer, which is properly viewed as transmission medium by the connection.It passes Defeated medium may include can be used for carrying computer executable instructions or data structure form expectation program code devices and can The network and/or data link being accessed by a general purpose or special purpose computer.Combinations of the above should be also included in computer-readable In the range of medium.
In addition, after reaching various computer system components, the journey of computer executable instructions or data structure form Sequence code device can be automatically transferred to from transmission medium computer storage media (or vice versa).For example, passing through network or number The computer executable instructions or data structure received according to link can be in the RAM in Network Interface Module (for example, " NIC ") Middle to be buffered, the computer for being then finally transferred to computer system RAM and/or the less volatibility of computer systems division is deposited Storage media.Accordingly, it should be understood that computer storage media, which can be included in, also utilizes (or even main utilization) transmission medium In computer system component.
Computer executable instructions for example including, when at processor execute when make all-purpose computer, special purpose computer or Dedicated treatment facility executes the instruction and data of a certain function or certain group function.Computer executable instructions can be such as two into Code processed, the intermediate format instructions of such as assembler language etc or even source code.Although dynamic with structure feature and/or method Make dedicated language description this theme, it is to be understood that, subject matter defined in the appended claims is not necessarily limited to above-mentioned spy Sign or action.More specifically, features described above and action are disclosed as the exemplary forms for realizing claim.
It will be apparent to one skilled in the art that the present invention can be in the network of the computer system configurations with many types It is put into practice in computing environment, these computer system configurations include personal computer, desktop computer, laptop computer, message It is processor, portable equipment, multicomputer system, based on microprocessor or programmable consumer electronic device, network PC, small-sized Computer, mainframe computer, mobile phone, PDA, pager, router, interchanger etc..The present invention can also pass through wherein Network linking (either passes through hardwired data links, wireless data link or group by hardwired and wireless data link Close) both local and remote computer systems be carried out in the distributed system environment of task and implement.In distributed system ring In border, program module can be located locally in remote memory storage device.
Fig. 2 exemplifies the environment 200 including multiple data sources 210 and multiple controls 220.For example, data source 210 is exemplified It includes five data source 210A to 210E to be.However, ellipsis 210F indicates that there may be any number of numbers in data source 210 According to source, from only there are one to numerous, because the principles described herein is not limited to the quantity of available data source in environment 200.
Each data source includes being organized into one or more fields of AD HOC, between the pattern description field Position relationship and the type for also describing each field.Although a data source can have unique pattern, pattern can at two or It is shared between more data sources.Since data become easier to that abundant and storage capacity is more advanced, and data source may be suitable Complicated, it is related to countless fields.
Control 220 is illustrated as including three controls 220A, 220B and 220C.However, once again, ellipsis 220D is indicated There may be any number of data source in data source 210, from only there are one to numerous, because the principles described herein is unlimited The quantity of available control in environment 200.
Control 220 is individually the computer-executable code of the concept with their layouts based on its operation.For example, In visual control, corresponding visualization is shown generally in user shown on display (display 112 of such as Fig. 1) In interface.In composite control, a control can be included in father's control and/or associated with reciprocity control, to form control Enumerable various layered structures.In addition, a control can be " repeating to synthesize ", meaning is that layered structure is weighed It is multiple to indicate data series.For example, the chart of multiple columns can be the control for repeating synthesis, each column one.From And each column is formed from the data group of data series.As another example, the picture library of multiple projects can be weight The control being combined into, each project one.Each project may be a layered structure in itself.For example, the structure may include one Image and two label controls, one is used to illustrate, one is used for price.
The function of control is influenced by its characteristic.Therefore, by the way that data to be tied to the characteristic of control, the expection of control Function can be obtained.However, data source may be with the complex patterns of enumerable field.In addition, control can also have complexity Structure and numerous characteristics.The programmer for being familiar with the pattern of available data sources and the structure of complex control can be used theirs Data from data source are tied to a certain characteristic of complex control by knowledge.To which programmer may be it is known that available In the control properties of binding.
On the other hand, non-programmers may be unaware which data can be used for being tied to control properties.They may not also It is familiar with the naming convention of the language and control properties of bind command.The principles described herein so that non-programmers is much easier Ground can be identified for that out the available control properties that data can be bound to.These principles also make non-programmers is easier to find to be used for It is tied to the suitable data of characteristic.The principles described herein allows complex data more intuitively tying up to complex control as a result, It is fixed, to open the new chance for studying intensively the process for creating complex control for non-programmers.Complex control can be even incorporated into In the user interface of reruning (describing in further detail below) of such as word processing file, spreadsheet program or the like. It reruns in user interface for example, control 220 can be included in.
Fig. 3 further exemplifies the environment 300 including individual data source 310 and single control 320 in detail.For example, data Source 310 may be any of data source 210 of Fig. 2, and control 320 may be any of control 220 of Fig. 2.Number It is associated with control 320 according to source 310, as represented by arrow 330.
The binding occurred between data source 310 and control 320 positioned at field and the control 320 of data source 310 characteristic it Between.As illustrated in fig. 3, data source 310 includes four fields 311 to 314.However, ellipsis 315 indicates as described herein Principle is operable to bind from may have any number of field consistent with its pattern (from only there are one to can enumerate ) data source data.As illustrated, control 320 includes two characteristics 321 and 322.However, once again, ellipsis 323 expression the principles described hereins are operable to for data to be tied to the characteristic of control, but regardless of how many characteristic in control.It is real On border, the data from data source are more intuitively tied to the characteristic of control by the principles described herein permission non-programmers, and Regardless of data source and control are complicated and expansible.
In the present specification, two kinds of binding will be discussed.A type of binding is referred to as " being directly bound ".Directly Binding provides the duplication of data, without the modification of the correspondence characteristic from the corresponding field of data source to control.Another type The binding of type will be referred to as " converting " binding herein.In transformation is bound, corresponding control properties are bound to one One output parameter of the associated transformation of a or multiple input parameter and one or more output parameters.Field is bound to An input parameter in one or more input parameters of the transformation.The transformation is calculated the data execution in input parameter or it To generate output parameter, this affects the function of control for the transformation of his type.The most simple of transformation binding can be considered as by being directly bound Form, the wherein transformation are only used for the data at its unique input parameter being provided to its unique output parameter.
Fig. 4 exemplifies the flow chart of the method 400 for data source to be tied to data control.With it is as described herein any Process or method are the same, and the one or more processors that method 400 can be by computing system in response to computing system are executed by structure Chemical conversion causes the computing system to execute the computer executable instructions of the method and be performed.Such instruction can for example by It embodies on one or more computer-readable medium.
Method 400 is related to the characteristic (action 401) of computing system mark composite control.With reference to figure 3, exist and control 320 Associated information 302.The information 302 includes the title and type of the various characteristics of control 320.The information 302 further includes Indicate the information of the hierarchical structure of control 320.The information 302 can be used for navigating and finding in control 320 by computing system The title and type of complete characteristic so that these titles can be presented to user.The information 302, which is also possible that, to be helped to identify Any data may be more suitable for being bound to any other information of the characteristic of control.
In the control of hierarchical structured, computing system possibility use information 302 is led to spread the control of the layering Boat is to find the characteristic of control.Then can be used as list is presented to user to the title of associated characteristic, rather than with complexity Hierarchical structure characteristic is presented to the user.To which user is not necessarily to be familiar with the hierarchical structure of control, and can only simple see can The list to the characteristic of its binding can occur.
In addition, a particular source is associated with the composite control (action 402).With reference to figure 3, data source 310 and control Association between 320 is abstractively indicated by arrow 330.To by the way that one or more fields of data source 310 are tied to control One or more characteristics (being bound by being directly bound or by converting) of part 320, data source 310 will be bound to Control 320.
The particular source may be selected from multiple data sources as to the suitable binding source of the control.Example Such as, in fig. 2, there are multiple data sources 220 in environment 200.Then computing system can be used associated with the characteristic of control 320 Metadata (such as information 302) and information 301 about data source 310 identify the data source with carrying out heuristic be for should The suitable data of control bind source.Such heuristic may consider that the type of available fields, computing system have been able to obtain The meaning about field any knowledge, it is associated with bigger user group previously used and with the specific user Associated previously used and any other useful information.
Fig. 5 is exemplified for by associated with a control of such as composite control etc the method for the particular source 500 Flow chart.Method 500 indicates the example of the action 402 of Fig. 4, to be described herein.After the description of Fig. 5, explanation Book will go to the description of Fig. 4.
Whole actions in action 501 to 505 in frame 510 are executed to each data source in multiple data sources. For example, in the context of Fig. 2, the content of frame 510 can execute each in data source 210.Method 500 is related to accessing number According to source information (action 501).For example, if the data source 310 according to Fig. 3 acts, computing system will access and 310 phase of data source Associated information 301.This data source information 301 may include for determining that the applicability of the data source for being tied to control has Any information helped, and/or be likely to be used for being tied to a certain characteristic of control for making which field of data source Judge helpful any information.The data source information 301 may include the title of each data type field, type and or Perhaps the pattern of meaning and data source.
Then computing system compares data source information (such as information 301) with control information (such as information 302) (acts 502) to determine whether the corresponding data source is used as being tied to the source (decision box 503) of the data of the composite control. If the data source is used as being tied to the source ("Yes" in decision box 503) of the data of the composite control, the data source Identity be added in the list of available data sources (action 504).
The execution of everything can lead to have more than one available data sources in list in frame 510.If so, then calculating The list that available data sources are presented to user for system is selective (action 511).Then computing system is received to particular source (such as Data source 310) user's selection (action 512).
It is back to Fig. 4, the remainder (content of frame 410) of method 400 executes each characteristic of control.For correspondence Characteristic, computing system determines whether the characteristic will be bound to data source (decision box 411).For example, perhaps not having in data source There is any field for being suitable for being tied to the characteristic.In this case, computing system can provide different because of the characteristic of the type Transformation creation interface (action 412).
For example, perhaps there is the label control for including " color " characteristic.Data source may can be tied up with considerable Surely the data of the control are arrived, but do not have color.Therefore, user, which may be presented, allows user to be the color that the label selects color Selector, or provide and declaratively convert, it is corresponding for being tied to as output parameter that this declaratively converts the offer color Characteristic.
If the characteristic will be bound to selected data source ("Yes" in decision box 411), data source information is (in full According to source module) and control information be used to identify in the particular source (such as about the metadata of the characteristic) and can be bound to One group of one or more field (action 413) of the corresponding characteristic of the composite control.Again, computing system can be used any Available information is to make the mark.For example, description field associated with similar data source and similar characteristic how Any previous binding statistical data by multiple users (or the specific user) selection for binding can be evaluated.To, Computing system can be as the time be come to learn what field be the best match to what characteristic.Computing system it might also be considered to by with Family is supplied to the hint of computing system.
In some cases, each binding can be directly bound beginnings, but give subscriber computer and can come to binding offer change It changes.For example, the transformation may be declaratively to convert, to allow to provide transformation by non-programmers, because not needing injunctive language Encoding knowledge is sayed to realize the transformation.When declaratively transformation is provided, action 413 can be performed, it is also considered that the property of the transformation Matter.For example, type, title and the meaning of one or more input parameters of the transformation and the one or more of the transformation are defeated Going out the type, title and meaning of parameter can be considered.The input parameter type can the field type in contrasting data source be matched, The appropriate binding of input parameter for data source field to the transformation.Similarly, output type can compare control properties type It is matched, the characteristic for the transformation output parameter to the control properties is bound.
Then computing system can perform acquiescence binding (action of one of the field of the data source to the corresponding characteristic 414).Equally, computing system can show the list (action for the one or more alternate fields that can be bound to the corresponding characteristic 415).Acquiescence binding may be computing system be determined as in the case of given judgement heuristic it is right for being tied to this The best possibility for the characteristic answered.It can be suboptimum in the case of given judgement heuristic that the one or more, which substitutes binding, Person.If without secondary the superior, perhaps it is proposed without replacement binding option.Replacement binding is also possible to suggestion and suitably ties up permission Fixed different transformation bindings.
In this state, there are possibility to cause further to bind movable many events.One event is that computing system connects Receive the user's input for indicating and wishing to change binding.It is regarded by the user as more closing for example, perhaps substituting one or more of binding It is suitable.In this case, by the way that another field of data source is tied to the corresponding characteristic, selected replacement binding is held Row.
Another event may be for the corresponding characteristic addition or editor's transformation.If detecting such event, this Which field may very well be changed should be bound to the control properties by the transformation.Therefore, if the event occurs, Method 400 starts to repeat for the characteristic in decision box 411.
The event of another classification may occur in increment type authoring environment, and wherein composite control itself remains in construction In.For example, if a certain characteristic is added to a control, the content of frame 410 can repeat the new features.If a new control It is added to the composite control, then various one or more attributes of the control are identified the (model of control of the action 401 in addition In enclosing), the content of frame 410 is performed each in the newfound characteristic of the control of the addition.
Referring now to the one specific example user experience of user interface description of Fig. 6 to 11.Fig. 6, which is exemplified, wherein to be exemplified One user interface 600 of picture library control 601.Picture library control may include multiple project controls.However, current only single project control 602 are exemplified out.To which picture library control 601 includes project control 602.Project control 602 also includes several controls, these controls Part includes Image control 603 and label control 604.To which picture library control has the control of hierarchical structure.In the state of Fig. 6, The characteristic of control has default value and/or to be empty, because they are not yet bound to data source.
However, user will not remain themselves equipment binds values to picture library control to attempt to find data source 601.On the contrary, user interface 600 provides available data sources list 605.Available data sources include car data source, clothes data Source and device data source.The suggestion lists of available data sources may be by for example execute method 500 until action 511 and It generates, the wherein available data sources list is presented to user.
Fig. 7 exemplifies the user interface 700 similar with the user interface of Fig. 6, the difference is that user selects number of devices According to source, as represented by highlighting 701.To which computing system detects the selection to device data source and (acts 512 Example), to which device data source is associated with picture library control 601.
Fig. 8 exemplifies user interface 800, which shows the field in view of device data source to picture library control 601 ' Characteristic acquiescence binding picture library control 601 ' response.It is repeatable in the context of picture library control due to project control Synthesis, therefore the suitably repeatable field of device data structure is bound (as arranged) to create multiple projects, number of devices According to every a line one in source.Element 801 shows acquiescence binding to user.Image control is suitably filled with an image, and label is used About thering is what descriptive text to fill in the image.Acquiescence binding is the example of the result of the method 400 of Fig. 4.
Fig. 9 exemplifies user interface 900, which shows that user changes binding associated with label.Herein, it uses Family selects price rather than explanation to be used in label.To, as highlighted represented by 901, the price in device data source Row are mapped to the label control of repeatable project control.Other replacements for user's selection are screen size and view Except other business.When execution action 413, computing system is determined can be used for the text for being tied to label control in the presence of many The string field of this characteristic.Although device data control is illustrated that text column is tied to label text by computing system in action 414 This characteristic (as shown in Figure 8), user are presented for substitute and can easily switch binding (as shown in Figure 9).User The personal knowledge that must never have the hierarchical structure about picture library control, is also not required to be appreciated that the pattern of data source.On the contrary, with Family is presented for the flat list of the available binding for characteristic.To which the user experience allows non-programmers to participate in will be complicated Data are tied to complex control.
Figure 10 exemplifies user interface 1000, which shows to include that can be used for color value being tied to label control The color picker interface of the color picker control 1002 of the color characteristics of part 1001.This is the example for acting 412, wherein special Property is color, and the data available not from device data source helps the color characteristics for being tied to label.Figure 11 shows to use The transformation that family interface 1100, wherein user are presented for that user is allowed to edit transformation of the output for the color of label 1001 is edited Device 1101.
The principles described herein is especially helpful in the context for creating user interface of reruning, because non-programmers can be more Complex data easily and is intuitively tied to complex control, even if during those controls are just constructed.For example, in control 220 Each can be included in the control reruned in user interface.
In this description and in the claims, " user interface of reruning " is that user can interact with and comes across it Interface in the middle environment that there is one or more data sources and one or more data sinks.Additionally, there are one group of transformation, each It is defined between one or more data sources and a data sink to being declared property of transformation.For example, the output quilt of a data source Feed-in converts, and the result of transformation is then supplied to data sink, to potentially result in certain in the visualization to user change Become.
Transformation is " declaratively " that meaning is that user can write the sound of definition transformation without specific encoding knowledge It is bright.It is defined due to being declared property of transformation, user is changeable declaratively to be converted.In response, it reruns and is performed, causing may not Same data are provided to data sink.
A kind of classical example of user interface of reruning is spreadsheet document.Spreadsheet document includes unit grid Lattice.Initially, cell is empty, is all had as data source or data sink to any cell of spreadsheet program Possibility, this depends on the meaning and context of declaratively expression formula input by user.For example, user may select one give order First lattice, and an expression formula is keyed in the cell.The expression formula may be with the scalar value given expression to that is endowed the cell It is equally simple.The cell can be later used as data source.Alternatively, the expression formula of a certain given cell may use equation Form, wherein input value is derived from other one or more cells.In this case, which is display transformation knot The data sink of fruit.However, during lasting creation, the cell be used as creator declaratively make it is other its The data sink that he converts.
The creator of spreadsheet document needs not be the expert in terms of injunctive code.Creator is only to make determining The statement of justice transformation, and the corresponding data sink of selection and data source.Figure 15 described below to 19, which is provided, more typically to be changed Declaratively authoring environment, which describe the user interfaces of reruning more typically changed.In the environment of the subsequent descriptions, visually Control may act as both data source and data sink.In addition, sound can more intuitively be created by the simple manipulation to those controls Bright property transformation.
Figure 12 abstractively exemplifies an example and reruns user interface 1200, it is by explain broader original as described herein The specific example managed and provided.User interface 1200 of reruning is only an example, because the principles described herein can be applied to It is any to rerun user interface to create the user interface of reruning of countless types for the application of countless types.
User interface 1200 of reruning includes several declaratively transformation 1211 to 1215.Around expression transformation 1211 to 1216 The dotted line ring symbol transformation of each arrow is respectively using declaratively form in arrow.
In the specific example of Figure 12, transformation 1211 includes corresponding data source 1201 and data sink 1202.Note that one The data sink of a transformation can also be the data source of another transformation.For example, the data sink 1202 of transformation 1211 also functions as transformation 1212 data source.In addition, transformation can have multiple data sources.To may make that transformation chain is layering, to quite multiple It is miscellaneous.For example, transformation 1212 includes data source 1202 and data sink 1203.Data sink 1203 includes two data sources;Convert 1212 data source 1202 and the data source 1205 of transformation 1214.That is, perhaps single become two data sources of changing commanders 1202 and 1205 introduce data sink 1203.Transformation 1213 includes data source 204 and data sink 1205.
If user interface of reruning is such as spreadsheet document, various data source/places 1201 to 1205 may be Spreadsheet cells, in this case, transformation indicates will expression formula associated with each data sink.Each expression formula Output be displayed in cell.To in the case of spreadsheet.Data source/place may be the visualization of complexity Control, both included to transformation chain input parameter and also include the output parameter from transformation chain.For example, in fig. 12, existing Be directed in data sink 1201 from data source 1205 additional declaratively converts 1215.To which data source/place 1201 is possible can The information for carrying out the output of transformation into itself 1215 depending on changing expression, and provide further data to other data sinks.
User interface of reruning need not have visual control.Another example is be intended to execute the weight of the calculating based on transformation User interface is calculated, it consumes source data and more Xinsu data, does not show the information about calculating to user under normal circumstances.Example Such as, which may support hind computation.Second example be with operation such as Row control example in valve it The user interface of reruning of the output control of the external actuator (actuator) of class.Such control is similar to display control, because It is controlled by what the result and signal of transformation calculations inputted for their state.However, here, output is to a certain equipment Signal is controlled, rather than to the visualization of display.For example, it is contemplated that the user interface of reruning for controlling robot.This is reruned User interface may have for dependent on input robot sensor (as servo position and speed, supersonic sounding measure) The rule of robot motion and behavior.Or consider based on signal (such as valve position, fluid flow rate of the acquisition from device sensor Deng) user interface of reruning Row control application.
Figure 13 exemplifies the example translation and compiling environment 1301 of the compiler 1310 including accessing transformation chain 1300.Transformation chain 301 An example be Figure 12 transformation chain 1200.Figure 14 exemplifies the method 1400 of the transformation chain for compiling user interface of reruning Flow chart.Method 1400 can be executed by the compiler 1310 of Figure 13.In one embodiment, method 1400 may be in response to processor (one or more) 102 executes the computer executable instructions being embodied on one or more computer readable storage mediums by counting Calculation system 100 executes.
Method 1400 includes analyzing the transformation chain (action 1401) for user interface of reruning with regard to dependence.For example, with reference to Figure 12, each that compiler 1300 can be in analytic transformation 1211 to 1215.Transformation is that declaratively, therefore dependence is comparable It is more easily extracted using the case where injunctive computer language expression transformation.
Based on the analysis, dependence graph (action 1402) is created between cited entity in transformation.Substantially, according to There is the relationship of relying source entity and target entity, source entity to indicate that a certain event, target entity indicate the assessment to the target entity Dependent on the event.The example of the event can be a customer incident, wherein user in a particular manner with user interface of reruning Interaction.As another example, which can be event between an entity, wherein if source entity is evaluated, the dependence Target entity should also be evaluated.
Compiler is then based on the dependence graph to create the other execution step of lower level (action 1403).Relatively low rank Execution step can be such as imperative language code.Imperative language code is suitable for response and carrys out detecting event, quotes certain One event chart determines the function to be executed and executes the function.Therefore, each dependence in dependence graph It can be reduced to a function.When dependence graph itself is provided to operation (action 1404).Imperative language code can be with It is such as script, such as JAVASCRIPT.However, it is any that the principles described herein, which is not intended to limit imperative language code, Language-specific.
As an example, Figure 13 exemplifies compiler 1310 and also generates relatively low level codes 1311.Such relatively low rank Code 1311 includes the compiling to each being converted in transformation chain.For example, relatively low level codes 1311 are illustrated as including indicating to become Change the element 1321 of the compiling each converted in chain.In the context of Figure 12, element 1321 will include to transformation 1211 to The compiling each converted in 1215.Relatively low level codes 1311 further include various functions 322.To in dependence graph Each dependence generates a function.Function can be imperative language function.
When detecting a certain event listed in dependence graph when imperative language is run, compiled function Corresponding function in 1322 is also carried out.Therefore, as all transformation are suitably compiled and with about particular event Each dependence is enforced by special function, and user interface of declaratively reruning is suitably denoted as imperative language Code.
Therefore, it has been described that a kind of effective mechanism for compiling user interface of declaratively reruning.In addition, quilt when operation It is provided with dependence graph, rather than wider interpreter.
It describes that non-programmers is allowed to create with complex behavior using user interface of reruning referring now to Figure 15 to 19 One specific example of the creation assembly line of program.
Figure 15 exemplifies the interactive visual synthesis (visual that can be used for construction using user interface form of reruning Composition vision synthetic environment 1500).The construction of the user interface of reruning be using data-driven analytic approach and The visualization of analysis result is performed.Environment 1500 includes the resultant frame 1510 for executing logic, which is independently of The problem of View synthesis 1530 domain (problem-domain) and be performed.For example, identical resultant frame 1510 can by with In for urban planning, molecular model, grocery store rack layout, machine performance or assembly analysis or other renderings different because of domain To work out interactive views synthesis.
However, resultant frame 1510 constructs the practical vision synthesis different because of domain using the data 1520 different because of domain 1530.Therefore, by changing the data 1520 different because of domain, identical resultant frame 1510 can be used for constructing any amount of The not user interface of reruning of same area, without recompiling resultant frame 1510 itself.To by changing data rather than weight It is newly encoded and recompile, the resultant frame 1510 of assembly line 1500 be applicable to may an infinite number of Problem Areas, or at least Suitable for diversified Problem Areas.Then View synthesis 1530 can be used as instruction and be provided to suitable 2D or 3D rendering moulds Block.Framework as described herein also allows easily to bring pre-existing View synthesis model into new view as building block Synthetic model.In one embodiment, multiple View synthesis can be included in integrated view synthesis, to allow to a certain mould Easily compared between two possible solutions of type.
Figure 16 exemplifies the exemplary architecture of the resultant frame 510 of 1600 form of track environment.Track environment 1600 is outstanding It includes assembly line 1601 itself.Assembly line 1601 includes data portion 1610, analysis part 1620 and View component 630, To each section be described in detail with reference to subsequent Figure 17 to 19 and adjoint explanation respectively.Now, in general, assembly line 1601 data portion 1610 is subjected to various different types of data, and with canonical form to assembly line 1601 The data are presented in analysis part 1620.The data are tied to various model parameters by analysis part 1620, and use model point Analysis method carrys out the unknown quantity in solving model parameter.Various parameters value is then supplied to View component 1630, and View component 730 makes Synthesis view is constructed with those of model parameter value.It is connect for example, data source can be contributed to the user that reruns by data portion 610 Mouthful.
Track environment 1600 further includes author component 1640, author component 740 allow assembly line 1601 creator or Other users formulation indicates and/or selects data to be supplied to assembly line 1601.For example, author component 1640 can be used for by Data be supplied to data portion 1610 (being indicated by input data 1611), analysis part 1620 (being indicated by analysis data 1621), And each in View component 1630 (being indicated by viewdata 1631).Various data 1611,1621 and 1631 indicate figure One example of 15 data 1520 different because of domain, and will be described in further detail below.Author component 1640 is supported to provide Various data, including such as data pattern, will be by real data that model uses, the data to be introduced from external source Position or possible position range, visual (figure or animation) object, the user interface interaction that can be executed on a certain picture, modeling Sentence (such as view, equation, constraint), binding.In one embodiment, author component is whole manager component (Figure 16 In be not shown, but indicated by the resultant frame of Figure 15 1510) provide function only one part.The manager be in response in Event (such as user's alternative events, external data event and from such as solver, operating system or the like it is any its The event of his component) come to the operation of every other component (data connector, solver, reader etc.) carry out control and The whole pilot valve of sequence.
In the track environment 1600 of Figure 16, author component 1640 be used to provide number to existing assembly line 1601 According to wherein exactly the data arrive defined analysis model (referred to above as " transformation chain ") from input data is defined, to definition transformation chain Result how to be visualized in vision synthesis and drive whole process.It therefore, there is no need to execute any coding to make flowing water Line 1601 is adapted to any of diversified domain and problem.It is the thing to be changed only to be supplied to the data of assembly line 1601 Object so that application assembly line 1601 from entirely different problem domain visualizes different vision synthesis, or may adjust pair The problem of existing domain, solves.Further, since data can be changed (when running) and in creation when in use, model can be It is changed and/or is extended when operation.To create a model and run between the model that there are less (if any) areas Not.Since all creation are related to editing data item and due to software its all behavior from data run, change to each of data Change is immediately affected by behavior without recoding and recompiling.
Track environment 1600 further includes detecting when then a certain user has interacted with the View synthesis shown and What user's interaction response module 1650 is determined as response will do.For example, certain form of interaction may require being supplied to The data of assembly line 1601 are required to View synthesis without change without change.Data can be changed in other kinds of interaction 1611, one or more of 1621 or 1631.In this case, which can cause new input number According to being provided to data portion 1610, it may be required that carry out weight analysis to the input data by analysis part 1620, and/or may It is required that being visualized again to View synthesis by View component 1630.
Therefore, the problem of assembly line 1601 can be used for the analysis visualization of data-driven expanding to possible unlimited amount Domain, or at least expand to diversified Problem Areas.Furthermore, it is not necessary that being that programmer is various to solve to change View synthesis The problem of various kinds.Referring now to the corresponding data part 1700 of Figure 17, the analysis part 1800 of Figure 18 and the view of Figure 19 Part 1900 is in the data portion 1601, analysis part 1620 and View component 1630 of this sequence description assembly line 1610 Each.As will from Figure 17 to Figure 19 it is apparent as, assembly line 1601 may be structured to a series of conversion assemblies, Middle each 1) a certain suitable input data of reception, 2) it is acted (such as to input in response to input data execution is a certain Data execute transformation) and 3) output be then used as the data of input data to next conversion assembly.
Figure 17 exemplifies the only one in many possible embodiments of the data portion 1700 of the assembly line 1601 of Figure 16 Embodiment.One of the function of data portion 1700 is understood with the analysis part 1800 with the assembly line discussed with reference to figure 18 Pattern consistent cannonical format data are provided.The data portion includes the Data Access Components for accessing heterogenous data 1701 1710.Input data 1701 can be " xenogenesis ", meaning be data can (but being not necessarily to) data be presented to canonical form visit Ask component 1710.Heterogenous data is allow to be various formats in fact, data portion 1700 is structured.It can be by mould The example for different types of numeric field data that type is accessed and operated includes text and XML document, table, list, level (tree), SQL numbers According to the 2D drawing of library inquiry result, BI (business intelligence) data cube query (cube query) result, such as various formats and 3D The graphical information and combination thereof (synthesizing) of vision mode etc.Further, by being provided for data to be accessed It defines (such as pattern), the type for the data that can be accessed can extend to being declared property.Therefore, data portion 1700 allows various The xenogenesis input of various kinds enters model, and also supports when the operation of addressable data type, declaratively extends.
In one embodiment, data access portion 1700 includes for obtaining the several of data from several different data sources Connector.Since one of the major function of connector is that corresponding data are put into canonical form, such connector is below And it will commonly known as " normalizer " in attached drawing.Each normalizer may understand the specific application of its corresponding data source Routine interface (API).Normalizer is also possible that for api interface corresponding with this to be read from data source and/or to number The counterlogic of data is written according to source.To which normalizer bridges between external data source and the memory mapping of data.
Data Access Components 1710 assesses input data 1701.If input data has been specification and so as to be divided It analyses part 1800 to handle, then input data can be used as authority data 1740 and be provided directly to be input to analysis part 1800.
However, if input data 1701 is not specification, suitable data normalization component 1730 can will input Data 1701 are converted into cannonical format.Data normalization component 1730 is actually the set of data normalization component 1730, Respectively the input data with special characteristic can be converted into canonical form.The set of standardization component 1730 is illustrated as Including four standardization components 1731,1732,1733 and 1734.However, the expression of ellipsis 1735 is also likely to be present other quantity Standardization component, perhaps even illustrated in ratio go out four it is less.
Input data 1701 even may include normalizer itself and relevant data characteristics (one or more) Mark.Then data portion 1700 can register relevant data characteristics, and standardization component is supplied to data normalization group Part set 1730, it can be added to available standardization component in the set.If received later with those correlations The input data of feature, then data portion 1710 input data can be assigned to relevant standardization component.It also can be from outside Source dynamically finds standardization component, such as from the defined Component Gallery on network.For example, if being used for a certain data-oriented The pattern in source is that known but required normalizer is not present, then the normalizer can be positioned from external module library, as long as Such library can be found and include required component.Assembly line is also possible to the still unknown data of interpretive model and by analysis result Compared with the pattern information in known tip assemblies library, to attempt to be dynamically determined the type of data, and thereby required rule are positioned Generalized device assembly.
Alternatively, not instead of input data include the standardization component whole, input data can provide definition standard Change the transform definition of transformation.Set 1730 then can be configured to the transform definition being converted into the component that accordingly standardizes, should Corresponding standardization component implements the acquiescence normalized transformation of the transformation and zero or more standard.This represent certain situations Example, in this case data portion 1700 consume and input data and do not provide corresponding specification downwards along assembly line further Change data.However in possible majority of case, input data 1701 causes corresponding normalized number to be generated according to 1740.
In one embodiment, data portion 1710 can be configured to the file type and/or format according to input data Input data is assigned to data normalization component by type.Other features may include the source of such as input data.The specification of acquiescence The input data without specified corresponding standardization component can be assigned to by changing component.The standardization component of the acquiescence can be applied One group of rule come attempt standardization input data.If the standardization component of the acquiescence is unable to normalized number evidence, the acquiescence Standardization component may trigger the author component 1540 of Figure 15 to prompt user to provide the pattern definition for being directed to input data.Such as Fruit pattern definition not has existed, then pattern definition assistant may be presented to help creator's generation can quilt in author component 1540 Corresponding pattern definition for input data to be transformed into canonical form.Once data are canonical forms, with the data Pattern provides fully describing for the data, and the remainder of assembly line 1601 does not need fresh code to explain the data.On the contrary, stream Waterline 1601 includes can be according to can explain the code of data with any pattern that addressable Schema Declarations language is expressed.
Anyway, authority data 1740 be provided as output data from data portion 1700 and as to point Analyse the input data of part 1800.Authority data may include the field for including various data types.For example, these words Section may include simple data type, such as integer, floating number, character string, vector, array, set, hierarchical structure, text, XML Document, table, list, SQL database query result, BI (business intelligence) data cube queries result, such as various formats 2D paint The graphical information of figure and 3D vision modes etc, or even these various data types complex combination.As another advantage, rule Generalized process can standardize various input datas.In addition, 1700 acceptable input data of data portion is more Sample is expansible.This is helpful in the case of multiple models are combined, and will such as be begged in the present specification later As.
Figure 18 exemplifies the exemplary analysis part 1800 of the analysis part 1620 for the assembly line 1601 for indicating Figure 16.Data The data 1801 of standardization are supplied to data model bundled components 1810 by part 1700.Although normalized number may have according to 1801 There are the form of any standardization and any amount of parameter, the wherein form of parameter and quantity is possibly even in input data It is different between each segment.However, for discussion purposes, normalized number has field 1802A to 1802H according to 1801, can be generally It is referred to as " field 1802 ".
On the other hand, analysis part 1800 includes several model parameters 1811.The type and quantity of model parameter can bases Model and it is different.However, for the purpose of the discussion to a specific example, will according to including model parameter 1811A, 1811B, 1811C and 1811D discusses model parameter 811.In one embodiment, between the identity and model parameter of model parameter Analysis relationship can without using it is injunctive coding and being declared property define.
Data model bundled components 1810 mediate between the data field 1802 and model parameter 1811 of standardization, to Binding between field is provided.In this case, data field 1802B is bound to model parameter 1811A, such as arrow 1803A As represented.In other words, the value from data field 1802B be used to fill model parameter 1811A.Equally, show at this In example, data field 1802E is bound to model parameter 1811B (as represented by arrow 1803B) and data field 1802H is bound to model parameter 1811C (as represented by arrow 803C).
Data field 1802A, 1802C, 1802D, 1802F and 1802G have been not shown to be bound with any model parameter.This is In order to emphasize that all data fields for being not from input data are always requested to be used as model parameter.In one embodiment In, one or more of these data fields can be used for providing about from standardization to data model bundled components 810 Which field of data (data for the standardization or the perhaps data of the similar standardization in any future) to be tied up Surely the instruction of which model parameter is arrived.This expression is provided to the type of the analysis data 1620 of the analysis part 1621 of Figure 16 Example.The definition of which model parameter is bound to for which data field of the data from standardization can use many Mode is formulated.For example, binding can with 1) by creator creation when explicitly set, 2) explicitly set when in use by user (submitting to any restrictions that creator forces), 3) it is inspired based on algorithm and is bound automatically by author component 1640,4) it is determining not Creator and/or the specified binding of user are prompted by author component when can algorithmically make binding.To which binding can be also resolved For a part for model logic itself.
Which data field creator, which defines, is mapped to the ability of which model parameter and gives creator and can use The symbol that creator is comfortable on carrys out prodigious flexibility in terms of Definition Model parameter.For example, if one of model parameter indicates The model parameter can be named as " pressure " or " P " or any other symbol significant to creator by pressure, creator.Creation Person can the even renaming model parameter, in one embodiment this data model bundled components 1810 may be caused to automatically update Allow the binding of the previous model parameter with old name to be bound to the model parameter of new name instead, is wished to save The binding of prestige.This mechanism for binding also allows to change with binding being declared property at runtime.
Model parameter 1811D is illustrated as emphasizing that model parameter 1811D is not by data mould in this example with asterisk 1810 assignment of type bundled components.Therefore, model parameter 1811D is kept unknown.In other words, model parameter 1811D is not assigned.
Modelling component 1820 executes many functions.First, the analysis between 1820 Definition Model parameter 1811 of modelling component Relationship 1821.Analysis relationship 1821 is classified into three general categories, including equation 1831, rule 1832 and constraint 1833. However, the list of solver is expansible.For example, in one embodiment, one or more emulation can be combined as point A part for analysis relationship, as long as corresponding simulation engine is provided and registers as solver.
As used herein term " equation " meets the term used in art of mathematics.
As used herein term " rule " refers to conditional statement, wherein if one or more conditions are satisfied (condition of conditional statement or " if " (if) part), to take one or more actions (result of conditional statement or " then " (then) part).If one or more model parameters are expressed in conditional statement, or one or more model ginsengs Number is expressed in result sentence, then rule is applied to model parameter.
As used herein term " constraint " refers to that limitation is applied to one or more model parameters.For example, In city planning model, a certain house element can be constrained to be placed on all may the map position of subset specified of subregion It sets.Bridge element can be restricted to be less than a certain maximum length or a quantity of track.
The creator for being familiar with the model can provide these equatioies applied to the model, rule and the expression formula of constraint. In the case of emulation, creator may provide suitable simulation engine, suitable between simulation engine offer model parameter Emulation relationship.Modelling component 1820 can provide for creator a kind of providing natural sign expression formula for equation, rule and constraint Mechanism.For example, the creator of thermodynamics correlation model can simply replicate from thermodynamics textbook and paste equation.By model The ability of Wire Parameters to data field allows creator, and using known to creator, (such as creator is relied on any symbol Definite symbol used in textbook) or creator want the definite symbol used.
Before solution, modelling component 1820, which goes back which of identification model parameter, will be solved (i.e. hereinafter, singular feelings " the output model variable " of condition or " the output model variable " of plural references, or may be single or multiple output model variables " output model variable (one or more) ").Output model variable can be unknown parameter or they can be known mould Shape parameter, the wherein value of known models parameter are dominated by the change solved in operating.In the example of Figure 18, in data model After bindings, model parameter 1811A, 1811B and 1811C are known, and model parameter 1811D is unknown.Therefore, Unknown model parameters 1811D may be one of output model variable.Alternatively or additionally, it is known that model parameter 1811A, One or more of 1811B and 1811C may also be output model variable.If it would be possible, then solver 840 solves Output model variable (one or more).In the one embodiment being described below, solver 1840 can solve various Output model variable, even in single model, as long as enough input model variables be provided with allow solve operate It is performed.Input model variable may be that such as its value is not joined by the known models for the domination for solving the change during operating Number.For example, in figure 18, if model parameter 1811A and 1811D are input model variables, solver may instead alternatively Solve output model variable 1811B and 1811C.In one embodiment, solver may be that the output of single model parameter is many Any one of different types of data.For example, regardless of operand is integer, floating number, vector or matrix, certain equatioies behaviour Make (addition, subtraction etc.) to be all suitable for.
In one embodiment, even if when solver 1840 cannot solve a certain output model variable, even if actual number The complete solution of value result (or the data type whatsoever solved) is impossible, and solver 1800 remains to provide the output The part of model variable solves.This allows assembly line to promote increment by prompting creator to need what information to obtain complete solution Formula is developed.Difference between when this also helps to eliminate creation and when using, because being through various creation stages at least partly solution It is available.Lift an abstract example, it is assumed that analysis model includes equation a=b+c+d.Assuming that a, c and d are output model variables, b is Input model variable with given value 5 (being integer in this case).In solution procedure, solver 1840 can only solve One of output model variable " d ", and value 6 (integer) is assigned to the model parameter for being known as " d ", but solver 840 cannot solve “c”.Since " a " depends on " c ", then the model parameter for being known as " a " also keeps unknown and is not solved.In this case, it is not By integer value assign " a ", solver but part solution may be carried out and string value " c+11 " is output to model parameter " a ".Such as elder generation Preceding described, this may be particularly useful when domain, expert is creating an analysis model, and will be essentially used for providing about model The partial information of the content of parameter " a " and it will also be used to prompt creator to need to provide permission " c " model parameter and be solved Certain further model analysis.Portion's decomposition result may be perhaps output in View synthesis in some way, to allow Domain expert sees the partial results.
Solver 1840 is shown in simplified form in figure 18.However, as will be solved with reference to described in figure 19 Device 1840 can instruct the operation of the solver of multiple compositions.In figure 18, modelling component 1820 then so that model parameter (including The currently known and output model variable that is solved out) can be used as Figure 19 to be provided to View component 1900 output.
It is visual in user interface 1200 that Figure 19 exemplifies the example for the View component 1630 for indicating Figure 16 and expression is reruned The exemplary View component 1900 of the control of change.View component 1900 receives model parameter from the analysis part 1800 of Figure 18 1811.View component further includes the view component repository 1920 of the set comprising view component.For example, view component repository 1920 are illustrated as including view component 1921 to 1924 in this example, but view component repository 1920 may include arbitrarily The view component of quantity.View component respectively may include zero or more input parameter.For example, view component 1921 does not include appointing What input parameter.However, view component 1922 includes two input parameters 1942A and 1942B.View component 1923 includes one Input parameter 1943, and view component 1924 includes an input parameter 1944.That is this is only an example.Input ginseng Number can (but nonessential) influence visual item how to be rendered.The fact that view component 1921 does not include any input parameter highlights There may be the views being generated without quoting any model parameter.Consider only to include immovable fixation (built-in) data View.Such view may be, for example, that user constitutes reference information.Alternatively, consider only to provide a kind of mode of browsing catalogue View so that project can therefrom be selected to import in model.
Each view component 1921 to 1924 includes or is associated with corresponding logic, when the use pair of View synthesis component 1940 When the view component input parameter (one or more) (if any) answered executes logic so that corresponding view item is placed In Virtual Space 1950.Virtual item can be still image or object, or can be the virtual item or object of dynamic animation Body.For example, each in view component 1921 to 1924 is associated with corresponding logic 1931 to 1934, when logic is performed When corresponding virtual item 1951 to 1954 is rendered respectively in Virtual Space 1950.Virtual item is illustrated as simple shape Shape.However, virtual item can be considerably complicated form, perhaps even include animation.In the present specification, when a view item quilt When rendering in Virtual Space, it means that View synthesis component has created enough instructions, these instructions, which are worked as, to be provided When to rendering engine, rendering engine can show the view item over the display in specified position and in a specific way.
Using the author component 1640 of such as Figure 16, view component 1921 to 1924 perhaps even can be used as viewdata quilt It is supplied to View component 1900.For example, author component 1640 may provide creator is selected from several geometric simplexs It selects, or perhaps forms the selector of other geometric simplexs.Creator may also be that each view component specifies input parameter Type, and the acquiescence input parameter that certain input parameters, which can be View component 1900, to be forced.With each view component 1921 Viewdata is also can be used as to 1924 associated logics to be provided, and/or be may also comprise and provided by View component 1900 itself Certain default features.
View component 1900 include be configured to by least some of model parameter be tied to view component 1921 to The model view bundled components 1910 of 1924 correspondence input parameter.For example, model parameter 1811A is bound to view component 1922 input parameter 1942A, as represented by arrow 1911A.Model parameter 1811B is bound to view component 1922 Input parameter 1942B, as represented by arrow 1911B.Equally, model parameter 1811D is tied to sets of views respectively The input parameter 1943 and 1944 of part 1923 and 1924, as represented by arrow 1911C.Model parameter 1811C is not shown To be tied to any corresponding view component parameter, highlights and not all model parameter is required for by the view portion of assembly line Divide and used, even if those model parameters are important in analysis part.Equally, model parameter 1811D is illustrated as being tied to The different input parameters of two of view component, indicate that model parameter can be bound to multiple view component parameters.Implement at one In example, the definition of the binding between model parameter and view component parameter can be formulated by following:1) existed by creator Explicitly set when creation, 2) it is explicitly set when in use by user and (submits to any restrictions that creator forces), 3) based on calculation Method, which inspires, to be bound automatically by author component 1640 and/or 4) is carried by author component when determination algorithmically cannot make binding Show creator and/or the specified binding of user.
The present invention can be embodied as other concrete forms without departing from its spirit or essential characteristics.Described embodiment exists All aspects should all be to be considered merely as illustrative and not restrictive.Therefore, the scope of the present invention by the appended claims and Non- foregoing description instruction.All changes fallen into the meaning and scope of the equivalent scheme of claims should be by claims Range covered.

Claims (10)

1. there are a kind of computer readable storage devices computer executable instructions, the computer executable instructions to exist thereon The computing system is made to execute for being convenient for binding a data source when being executed by the one or more processors of computing system To the method for a composite control, the method includes:
Identify multiple characteristics of the composite control;
Identify the type of each characteristic in the multiple characteristic of the composite control;
By composite control information with from it is one or more may data sources data source information compare it is one with determination Or whether multiple possible data sources can be used as being tied to the data source of the composite control;
For mark particular source to be tied to the composite control, the particular source is more in a pattern with being organized in A field, and each field of the particular source has type, wherein the multiple field of the particular source At least some of field there is the class identified at least some of the multiple characteristic of composite control characteristic The corresponding type of type;And
By at least using described in the pattern of the data source, the metadata about corresponding characteristic, the composite control The type of the type of each characteristic in multiple characteristics identified and the multiple field of the particular source is come Identify to heuristic one group one of the corresponding characteristic for being bound to the composite control of the particular source or Multiple fields.
2. computer readable storage devices according to claim 1, which is characterized in that the correspondence of the composite control Characteristic has been bound an output parameter of a transformation, wherein via one or more converted by being tied to the transformation One group of one or more field of a input parameter, the particular source can be bound to the described of the composite control Corresponding characteristic.
3. computer readable storage devices according to claim 2, which is characterized in that the composite control is included in one It reruns in user interface, and is bound to the input and output parameter of the transformation chain including the transformation.
4. computer readable storage devices according to claim 3, which is characterized in that the transformation is declaratively.
5. computer readable storage devices according to claim 4, which is characterized in that the method further includes passing through It is acted below to be made a response to the editor declaratively converted:
At least the certain number is identified using the pattern of the data source and about the metadata of the corresponding characteristic According to one group of other one or more field of the corresponding characteristic for being bound to the composite control in source.
6. computer readable storage devices according to claim 2, which is characterized in that described the one of the particular source The one or more fields of group also use the corresponding associated change of characteristic with the composite control to bring mark.
7. computer readable storage devices according to claim 1, which is characterized in that the method further includes:
Field acquiescence in field that one group of one or more of the particular source identifies is tied to institute State the corresponding characteristic of composite control.
8. computer readable storage devices according to claim 7, which is characterized in that the method includes further passing through It is acted below to be made a response to user's input:
Determine that user's input indicates the intention of the binding changed to the corresponding characteristic of the composite control;With And
In response to the determination, another in the field that one group of one or more of the particular source is identified Field is tied to the corresponding characteristic of the composite control.
9. computer readable storage devices according to claim 1, which is characterized in that the mark particular source is to tie up Surely arriving the composite control includes:
Use the institute of metadata associated with the multiple characteristic of the composite control and at least described particular source Pattern is stated to determine that the particular source is used as being tied to the source of the data of the composite control.
10. a kind of method for convenient for a data source is tied to a composite control, the method is by running computing system Interior instruction executes, the method includes:
Identify multiple characteristics of the composite control;
Identify the type of each characteristic in the multiple characteristic of the composite control;
By composite control information with from it is one or more may data sources data source information compare it is one with determination Or whether multiple possible data sources can be used as being tied to the data source of the composite control;
For mark particular source to be tied to the composite control, the particular source is more in a pattern with being organized in A field, and each field of the particular source has type, wherein the multiple field of the particular source At least some of field there is the class identified at least some of the multiple characteristic of composite control characteristic The corresponding type of type;And
By at least using described in the pattern of the data source, the metadata about corresponding characteristic, the composite control The type of the type of each characteristic in multiple characteristics identified and the multiple field of the particular source is come Identify to heuristic one group one of the corresponding characteristic for being bound to the composite control of the particular source or Multiple fields.
CN201480020887.9A 2013-04-12 2014-04-11 Binding of the data source to composite control Active CN105210054B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/862,281 US10055396B2 (en) 2013-04-12 2013-04-12 Binding of data source to compound control
US13/862,281 2013-04-12
PCT/US2014/033709 WO2014169161A2 (en) 2013-04-12 2014-04-11 Binding of data source to compound control

Publications (2)

Publication Number Publication Date
CN105210054A CN105210054A (en) 2015-12-30
CN105210054B true CN105210054B (en) 2018-10-02

Family

ID=50694069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480020887.9A Active CN105210054B (en) 2013-04-12 2014-04-11 Binding of the data source to composite control

Country Status (5)

Country Link
US (1) US10055396B2 (en)
EP (1) EP2984585B1 (en)
CN (1) CN105210054B (en)
BR (1) BR112015025618B8 (en)
WO (1) WO2014169161A2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984105B2 (en) * 2014-12-04 2018-05-29 International Business Machines Corporation Automatic discovery of code and data stores that populate a user interface element
US10642582B2 (en) 2017-08-24 2020-05-05 Google Llc System of type inference for tuple graph programs method of executing a tuple graph program across a network
US10599482B2 (en) 2017-08-24 2020-03-24 Google Llc Method for intra-subgraph optimization in tuple graph programs
US10887235B2 (en) 2017-08-24 2021-01-05 Google Llc Method of executing a tuple graph program across a network
US11803555B2 (en) * 2018-09-24 2023-10-31 Salesforce, Inc. Integrated entity view across distributed systems
CN110347739B (en) * 2019-06-26 2021-04-20 联动优势科技有限公司 Universal data source access method and device for composite data item label
CN112230909B (en) * 2019-07-15 2023-05-23 腾讯科技(深圳)有限公司 Method, device, equipment and storage medium for binding data of applet
US11645030B2 (en) * 2020-06-10 2023-05-09 Rohde & Schwarz Gmbh & Co. Kg Scalable multiviewer system and method for distributing data
US10963272B1 (en) * 2020-07-09 2021-03-30 Coupang Corp. Systems and methods for deploying low-application-impact user interfaces

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418400B1 (en) * 1997-12-31 2002-07-09 Xml-Global Technologies, Inc. Representation and processing of EDI mapping templates
CN102937970A (en) * 2011-10-13 2013-02-20 微软公司 Replace data mapping of a suggested chart

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950831B2 (en) * 2001-03-23 2005-09-27 Siemens Medical Solutions Health Services Corporation Processing system for use with a user interface display
US7516145B2 (en) 2003-03-31 2009-04-07 Microsoft Corporation System and method for incrementally transforming and rendering hierarchical data files
US20050102303A1 (en) 2003-11-12 2005-05-12 International Business Machines Corporation Computer-implemented method, system and program product for mapping a user data schema to a mining model schema
US7475384B2 (en) * 2004-10-19 2009-01-06 Microsoft Corporation Binding to types
US7730394B2 (en) 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7480675B2 (en) 2005-09-09 2009-01-20 Microsoft Corporation Automated placement of fields in a data summary table
US8898203B2 (en) * 2005-12-27 2014-11-25 International Business Machines Corporation Generating a separable query design object and database schema through visual view editing
US7904418B2 (en) 2006-11-14 2011-03-08 Microsoft Corporation On-demand incremental update of data structures using edit list
US7962443B2 (en) 2007-02-08 2011-06-14 Interactive Documents, Llc Method and system for replacing data in a structured design template
US8799251B2 (en) 2008-06-26 2014-08-05 Microsoft Corporation Document templates for schema-based data transfer into and out of a data-based application
US8352397B2 (en) 2009-09-10 2013-01-08 Microsoft Corporation Dependency graph in data-driven model
US8996549B2 (en) 2011-10-11 2015-03-31 Microsoft Technology Licensing, Llc Recommending data based on user and data attributes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418400B1 (en) * 1997-12-31 2002-07-09 Xml-Global Technologies, Inc. Representation and processing of EDI mapping templates
CN102937970A (en) * 2011-10-13 2013-02-20 微软公司 Replace data mapping of a suggested chart

Also Published As

Publication number Publication date
CN105210054A (en) 2015-12-30
BR112015025618B1 (en) 2022-01-25
EP2984585B1 (en) 2017-11-01
BR112015025618B8 (en) 2022-03-03
EP2984585A2 (en) 2016-02-17
BR112015025618A2 (en) 2017-07-18
WO2014169161A2 (en) 2014-10-16
BR112015025618A8 (en) 2019-12-17
US10055396B2 (en) 2018-08-21
US20140310273A1 (en) 2014-10-16
WO2014169161A3 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
CN105247510B (en) It reruns the compiling converted in user interface
CN105210054B (en) Binding of the data source to composite control
Rugaber et al. Recognizing design decisions in programs
CN105637476A (en) Assisted creation of control event
US20140306964A1 (en) Incremental compiling of a declarative program
US20140310619A1 (en) Signal capture controls in recalculation user interface
Tierney The R statistical computing environment
Karhela et al. Open ontology-based integration platform for modeling and simulation in engineering
Ryabinin et al. Calibration and monitoring of IoT devices by means of embedded scientific visualization tools
Moreira de Sousa et al. A domain specific language for spatial simulation scenarios
Bershadsky et al. Techniques for adaptive graphics applications synthesis based on variability modeling technology and graph theory
Horita et al. Analysis and comparison of frameworks supporting formal system development based on models of computation
Duro et al. Liger: A cross-platform open-source integrated optimization and decision-making environment
Mauch DP2PN2Solver: A flexible dynamic programming solver software tool
Cao Simmodel transformation middleware for modelica-based building energy modeling and simulation
Somashekara et al. Object oriented programming with Java
Milovanovic et al. Cognitive Modelling with Term Rewriting
de Klerk et al. Ontologies and Shape Grammars
Karhela Open ontology-based integration platform for modeling and simulation in engineering Author (s) Karhela, Tommi; Niemistö, H

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant