CN108351767B - 具有自动调节输入端口的图形节点 - Google Patents
具有自动调节输入端口的图形节点 Download PDFInfo
- Publication number
- CN108351767B CN108351767B CN201680067386.5A CN201680067386A CN108351767B CN 108351767 B CN108351767 B CN 108351767B CN 201680067386 A CN201680067386 A CN 201680067386A CN 108351767 B CN108351767 B CN 108351767B
- Authority
- CN
- China
- Prior art keywords
- input ports
- graph node
- graph
- input
- act
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种图形用户界面系统,其视觉地表示具有多个输入端口的图形节点,并且在开放输入端口被连接到上游图形节点(601)时和/或在使用的输入端口从上游图形节点被断开连接时,自动地调节去往图形节点(602)的输入端口的数目。在检测到一个或多个输入端口(623)的集合刚被连接(643)到一个或多个上游图形节点时,系统可以自动地向图形节点的视觉表示添加一个或多个附加输入端口(624),而无需明确的用户指令。在检测到一个或多个输入端口的集合刚从一个或多个上游图形节点被断开连接时,系统可以自动地从图形节点的视觉表示去除确定的一个或多个输入端口。
Description
背景技术
计算系统和相关联的网络已经彻底改革了人类工作、娱乐和通信的方式。计算系统几乎在某种程度上影响了我们生活的每个方面。当然,计算系统的正常功能依赖于提供适当功能的软件以及提供针对软件的适当输入和配置的数据。此外,重要的是,软件的执行遵守该软件的组件之间的依赖关系。鉴于现在复杂的软件已经成为现实,并且鉴于可用于处理的大量数据,这样的构建可能是困难的任务。
节点图是以对用户直观得多的方式来将过程可视化的一种机制。此外,不同于简单的可视化,节点图的建立实际上构建对应的软件。节点图由图形节点构成,每个节点表示软件的可执行组件。此外,给定图形节点的输入端口可以被耦合到上游图形节点,以便表示来自该上游数据节点的依赖关系和/或来自该上游数据节点的数据流。典型地,用户可以简单地指示上游图形节点的输出端口要被耦合到下游图形节点的输入端口。如果耦合表示依赖关系,则会在运行时强制执行依赖关系,或者如果耦合表示数据流,则会导致数据在运行时流动。
本文中要求保护的主题并不限于解决任何缺点或仅在诸如上述环境的环境中操作的实施例。相反,这一背景技术仅被提供以说明其中可以实践本文中描述的一些实施例的一个示例性技术领域。
发明内容
本文中描述的至少一些实施例涉及一种图形用户界面系统,其视觉地表示具有多个输入端口的图形节点,并且在开放输入端口被连接到(一个或多个)上游图形节点时和/或在使用的输入端口从(一个或多个)上游图形节点被断开连接时,自动地调节去往图形节点的输入端口的数目。例如,在检测到一个或多个输入端口的集合刚被连接到一个或多个上游图形节点时,系统可以自动地向图形节点的视觉表示添加一个或多个附加输入端口,而无需明确的用户指令。备选地或附加地,在检测到输入端口中的一个或多个输入端口的集合刚从一个或多个上游图形节点被断开连接时,系统可以自动地从图形节点的视觉表示去除确定的一个或多个输入端口。
因此,本文中描述的原理提供了一种机制,其中节点图的建立更加自动化,或者至少用户免于在用户构建或编辑图时必须考虑耗尽或合并输入端口。作为替代,用户或过程可以关注于与图形的构建一起被涉及的重要任务。这可以被证明是关键的,因为节点图可能变得相当复杂,并且从节点图的核心概念分心可能导致构造本身中的错误。此外,每个输入端口关于图形节点保持空间顺序。这样的排序可能是重要的,因为与图形节点相关联的逻辑可能依赖于输入的处理的这样的顺序或者在这样的顺序被保持时具有改进的功能。
这一发明内容并非旨在标识要求保护的主题的关键特征或基本特征,其也并未旨在被用作在确定要求保护的主题的范围时的辅助。
附图说明
为了描述可以获取上述和其他优点和特征的方式,将通过参考附图来呈现对各种实施例的更特别的描述。应理解,这些附图仅描绘样本实施例并且因此不被认为是对本发明的范围的限制,实施例将通过使用附图利用附加的特征和细节而被描述和解释,在附图中:
图1抽象地示出其中可以采用本文中描述的一些实施例并且其上具有可执行组件的计算系统;
图2示出了包括多个断开连接的图形节点的示例图形用户界面,每个断开连接的图形节点具有两个输入端口和一个输出端口;
图3示出了可以被使用以便呈现在诸如图2的图形用户界面的图形用户界面内的图形节点的图形的可执行组件的架构;
图4示出了用于视觉地表示具有多个输入端口的图形节点的方法的流程图;
图5示出了根据本文中描述的原理,响应于检测到图形节点的输入端口的使用来向图形节点添加附加输入端口的方法的流程图;
图6A至图6F示出了图形节点的各个阶段,其中多个输入端口响应于图5的方法的多个执行而被添加;
图7示出了根据本文中描述的原理,响应于检测到图形节点的输入端口的断开连接来从图形节点去除额外输入端口的方法的流程图;并且
图8A至图8G示出了图形节点的各个阶段,其中多个输入端口响应于图7的方法的多个执行而被去除。
具体实施方式
本文中描述的至少一些实施例涉及一种图形用户界面系统,其视觉地表示具有多个输入端口的图形节点,并且在开放输入端口被连接到(一个或多个)上游图形节点时和/或在使用的输入端口从(一个或多个)上游图形节点被断开连接时,自动地调节去往图形节点的输入端口的数目。例如,在检测到一个或多个输入端口的集合刚被连接到一个或多个上游图形节点时,系统可以自动地向图形节点的视觉表示添加一个或多个附加输入端口,而无需明确的用户指令。备选地或附加地,在检测到输入端口中的一个或多个输入端口的集合刚从一个或多个上游图形节点被断开连接时,系统可以自动地从图形节点的视觉表示去除确定的一个或多个输入端口。
因此,本文中描述的原理提供了一种机制,其中节点图的建立更加自动化,或者至少用户免于在用户构建或编辑图时必须考虑耗尽或合并输入端口。作为替代,用户或过程可以关注于与图形的构建一起被涉及的重要任务。这可以被证明是关键的,因为节点图可能变得相当复杂,并且从节点图的核心概念分心可能导致构造本身中的错误。此外,每个输入端口关于图形节点保持空间顺序。这样的排序可能是重要的,因为与图形节点相关联的逻辑可能依赖于输入的处理的这样的顺序或者在这样的顺序被保持时具有改进的功能。
计算系统的一些介绍性讨论将关于图1而被描述。然后,图形用户界面系统的结构和操作将关于随后的图而被描述。
计算系统现在越来越多地采取各种各样的形式。例如,计算系统可以是手持设备、家用电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至传统上还没有被认为是计算系统的设备(诸如可穿戴设备(例如,眼镜))。在本说明书和在权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或它们的组合),其包括至少一个物理和有形处理器,以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形存储器。存储器可以采取任何形式并且可以取决于计算系统的性质和形式。计算系统可以被分布在网络环境之上并且可以包括多个组成计算系统。
如图1中所示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”在本文中也可以被用于指代非易失性海量存储装置,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
计算系统100上还具有通常被称为“可执行组件”的多个结构。例如,计算系统100的存储器104被示出为包括可执行组件106。术语“可执行组件”是针对计算领域的普通技术人员很好地理解为可以是软件、硬件或它们的组合的结构的结构的名称。例如,当在软件中被实现时,本领域普通技术人员将理解,可执行组件的结构可以包括可以在计算系统上被执行的软件对象、例程、方法,而无论这样的可执行组件是否存在于计算系统的堆中,或者无论可执行组件是否存在于计算机可读存储介质上。
在这样的情况下,本领域普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,从而使得当由计算系统的一个或多个处理器(例如,由处理器线程)解释时,计算系统被引起执行功能。这样的结构可以是由处理器直接计算机可读的(如果可执行组件是二进制的,则就是这种情况)。备选地,结构可以被构造为可解释和/或编译(无论是在单个阶段还是在多个阶段中),以便生成由处理器直接可解释的这样的二进制文件。当使用术语“可执行组件”时,对可执行组件的示例结构的这样的理解完全在计算领域的普通技术人员的理解内。
术语“可执行组件”也被本领域普通技术人员很好地理解为包括专门或近似专门在硬件中被实现的结构,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路。因此,术语“可执行组件”是用于计算领域的普通技术人员很好地理解的结构的术语,无论该结构是在软件、硬件还是组合中被实现。在本说明书中,也可以使用术语“组件”、“服务”、“引擎”、“模块”等。如在本说明书中以及在这种情况中所使用的,这些术语也旨在于与术语“可执行组件”同义,并且因此也具有计算领域的普通技术人员很好理解的结构。
在以下描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作在软件中被实现,则(执行动作的相关联的计算系统的)一个或多个处理器响应于已经执行了构成可执行组件的计算机可执行指令来指导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上被体现。这样的操作的示例涉及数据的操纵。
计算机可执行指令(和操纵的数据)可以被存储在计算系统100的存储器104中。计算系统100还可以包含允许计算系统100通过例如网络110来与其他计算系统通信的通信信道108。计算系统100还可以包括可以被用于向用户显示视觉表示(诸如示出图形的图形用户界面)的显示器112。
本文中描述的实施例可以包括或利用包括计算机硬件(诸如例如一个或多个处理器和系统存储器)的专用或通用计算系统,如下面被更详细讨论的。本文中描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可以被通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,通过示例而非限制,本发明的实施例可以包括至少两种截然不同种类的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备、或者可以被用于以计算机可执行指令或数据结构的形式存储期望的程序代码装置并且可以由通用或专用计算系统访问的任何其他物理和有形存储介质。
“网络”被定义为支持在计算系统和/或模块和/或其他电子设备之间传输电子数据的一种或多种数据链路。当通过网络或另一通信连接(硬连线、无线或者硬连线或无线的组合)来向计算系统传输或提供信息时,计算系统将连接正确地视为传输介质。传输介质可以包括可以被用于以计算机可执行指令或数据结构的形式携带期望的程序代码装置并且可以由通用或专用计算系统访问的网络和/或数据链路。上述的组合也应当被包括在计算机可读介质的范围内。
此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质被自动传输到存储介质(反之亦然)。例如,通过网络或数据链路而被接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终被传送到计算系统RAM和/或计算系统处的较不易失性存储介质。因此,应当理解,存储介质可以被包括在也(甚至主要)利用传输介质的计算系统组件中。
计算机可执行指令包括例如当在处理器处被执行时引起通用计算系统、专用计算系统或专用处理设备执行特定功能或一组功能的指令和数据。备选地或附加地,计算机可执行指令可以将计算系统配置为执行某个功能或一组功能。计算机可执行指令可以是例如二进制文件或者甚至在处理器直接执行之前经历一些转换(诸如编译)的指令,诸如中间格式指令,诸如汇编语言或甚至源代码。
虽然已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,被限定在所附权利要求中的主题不一定限于以上描述的特征或动作。相反,描述的特征和动作被公开作为实现权利要求的示例形式。
本领域技术人员将领会到,本发明可以在具有很多类型的计算系统配置的网络计算环境中被实践,它们包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费者电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等。本发明也可以在分布式系统环境中被实践,其中通过网络而被链接(通过硬连线数据链路、无线数据链路或者通过硬连线数据链路和无线数据链路的组合)的本地和远程计算系统都执行任务。在分布式系统环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者中。
如前所述,本文中描述的原理涉及节点图的有效构造,其中每个图形节点表示处理,并且两个图形节点的耦合表示图形节点之间的依赖关系或数据流。仅作为示例,图2示出了包括图形节点201、202和203的示例图形用户界面200。图形用户界面200可以被显示在例如图1的计算系统100的显示器112上。
尽管在图2中示出了三个图形节点201至203,但是本文中描述的原理适用于任何图形的构造,而不管其有多复杂。相应地,省略号204表示可以被表示在图形用户界面内的图形节点的数目的灵活性。在普通情况下,可以存在从少至一个图形节点到被表示在图形用户界面200中的任何图形中的可枚举数目的图形节点。
在图2的状态中,图形节点被示出为彼此断开连接。然而,每个图形节点具有一个或多个输入端口和一个或多个输出端口。为了构建软件程序,作者指定一个或多个上游图形节点的一个或多个输出端口与一个或多个下游图形节点的一个或多个输入端口之间的连接。这些连接在与图形节点对应的代码的执行中强制依赖关系和/或表示从上游图形节点到下游图形节点的数据流。因此,作者可以使用图形用户界面200以利用适当的代码选择适当的图形节点,并且策略性地在那些图形节点之间建立连接,以由此构建具有各种贡献的可执行组件的复杂软件。
在图2的示例中,图形节点201被示出为包括两个输入端口211和212以及输出端口213。而且,图形节点202被示出为包括两个输入端口221和222以及输出端口223。最后,图形节点203被示出为包括两个输入端口231和232以及输出端口233。本文中描述的原理并不依赖于输入端口和输出端口的默认开始数目。在存在建立的连接的情况下,作者还可以选择输入端口以查看关于进入该端口中的数据流的元数据(例如,标识),或者可以选择输出端口以查看流出该端口的数据流的元数据(例如,标识)。如果连接表示依赖关系,则也可以通过选择适当的输入端口或输出端口来查看关于该依赖关系的元数据。
不管输入端口的起始数目是什么,本文中描述的原理在连接被做出时被自动地添加和/或去除。例如,在适当的时候,当用于连接的可用输入端口接近耗尽或变得耗尽(例如,由于输入端口与(一个或多个)上游图形节点的输出端口的连接)时,新输入端口可以被自动地添加到图形节点。备选地,并且优选地附加地,在适当的时候,当额外的输入端口变得可用(例如,由于输入端口从上游图形节点的断开连接)时,额外的输入端口也自动地从图形节点被去除。因此,输入端口的数目自动地调节,而用户不必注意输入端口的精确数目。相反,用户可以专注于图形构建的其他更具战略性的且重要的方面。
图3示出了可以被使用以便呈现图形用户界面内的图形节点的图形的可执行组件的架构300。例如,架构300可以被用于呈现图2的图形用户界面200。
架构300包括将图形用户界面310(例如,其是图形用户界面200的示例)内的图形节点可视化的图形节点可视化组件301。可以存在但不必须是一个图形节点可视化模块301用于渲染被渲染在图形用户界面上的该图形内的每个图形节点。图形节点可视化模块301还显示与每个图形节点相关联的多个输入端口和输出端口。
架构300还包括检测组件302。检测组件302包括组件302A,组件302A检测当在图形节点的输入端口与图形用户界面310内的一个或多个上游图形节点的输出端口之间进行新连接时的事件(如由箭头331表示的)。检测组件302还包括另一组件302B,另一组件302B检测当在图形节点的输入端口与图形用户界面310中的上游图形节点的输出端口之间进行断开连接时的事件(如由箭头332所表示的)。
架构300还包括端口调节组件303。对于每个图形节点可以存在端口调节组件303,或者端口调节组件303可以自动地针对任何数目的图形节点来调节输入端口。如果调节组件303从组件302A接收到已经从端口调节组件303所服务的图形节点的输入端口进行了新连接的通知(例如,如由箭头311所表示的),则端口调节组件303将确定是否应当向图形节点添加一个或多个附加输入端口。如果是,则端口调节组件303发信号通知(如由箭头321所表示的)负责将该图形节点可视化的图形节点可视化组件301适当地向该图形节点添加(一个或多个)附加输入端口。这导致(如由箭头341所表示的)将(一个或多个)附加输入节点添加到图形用户界面310中的适当图形节点。
另一方面,如果端口调节组件303从组件302B接收到已经从端口调节组件303所服务的图形节点的输入端口进行了断开连接的通知(例如,如由箭头312所表示的),则端口调节组件303将确定是否应当从图形节点去除一个或多个额外的输入端口。如果是,则端口调节组件303发信号通知(如由箭头322所表示的)负责将该图形节点可视化的图形节点可视化组件301适当地从该图形节点去除(一个或多个)额外的输入端口。这导致(如由箭头342所表示的)从图形用户界面310中的适当图形节点去除(一个或多个)额外的输入端口。
图形节点可视化组件301、检测组件302、组件302A、组件302B和端口调节组件303中的每个是图1的可执行组件106的示例。因此,这样的组件中的每个组件可以具有与可执行组件相关联的上述结构中的任何结构。
图4示出了用于视觉地表示具有多个输入端口的图形节点的方法400的流程图。方法400包括在显示器上将图形节点表示为具有多个输入端口(动作401)。例如,这一动作可以由图3的图形节点可视化组件301执行。作为示例,图形节点可以是例如图2的图形用户界面200的图形节点203。
当图形节点正在由图形节点可视化组件视觉地表示(例如,在动作401中)时,端口调节组件303可以响应于两种不同类型的事件。一种事件(例如,图3的事件311))是端口调节组件检测到输入端口中的一个或多个输入端口的集合刚被连接到一个或多个上游图形节点。这种事件及对其的响应由图5的方法500表示,并且包括关于图6A至图6F的图形节点操纵的示例过程。另一种事件(例如,图3的事件312)是端口调节组件检测到输入端口中的一个或多个输入端口的集合刚从一个或多个上游节点被断开连接。这种事件及对其的响应由图7的方法700表示,并且包括关于图8A至图8G的图形节点操纵的示例过程。
根据图5,方法500在检测到一个或多个输入端口的集合刚被连接到一个或多个上游图形节点(动作501)时被开始。例如,在图3中,组件302A向端口调节组件303通知(如由箭头311所表示的)这一连接。作为响应,端口调节组件303应用它的自动化逻辑以确定附加的一个或多个输入端口是否要被添加到图形节点(判定框502)。如果否(判定框502中的“否”),则不需要响应于检测来采取动作(动作503)。
另一方面,如果端口调节组件确定通过向图形节点添加一个或多个输入端口来响应于检测(动作501)(判定框502中的“是”),则端口调节组件引起一个或多个附加输入端口被添加到图形节点(动作503)。例如,端口调节组件303可以发信号通知(如由箭头321所表示的)图形节点可视化模块301以由此引起(如由箭头341所表示的)图形节点可视化模块301在图形用户界面310内的图形节点上将附加输入端口可视化。从用户的角度来看,用户使用输入端口中的一个或多个输入端口,并且图形节点自动添加更多输入端口以用于由用户潜在使用。因此,无论有多少输入端口已经存在并且正在使用中,至少有一个输入端口被使得可用。因此,用户无需担心创建输入端口,或提供有关需要多少输入端口的指导。
图6A至图6F示出了其中输入端口被自动地添加的若干递增阶段中的图形节点。在这些示例中,图形节点具有两个输入端口的默认最小数目的输入端口和六个的默认最大数目的输入端口。最小数目和最大数目可以是可配置的,并且在某些情况中也许根本没有最大数目。
此外,所示的示例仅示出了单个种类的输入端口。可以在每个输入端口类型的基础上做出是否要向图形节点添加输入端口的确定。例如,一个输入端口类型可能接收字符串数据,并且另一输入端口类型可能接收整数。在这种情况中,输入端口可能具有一些可视化(诸如颜色、形状、大小等),从而使得用户可以将图形节点的输入端口与潜在的上游图形节点的适当输出端口匹配。在这样的情况中,特定类型的输入端口与上游图形节点的连接可能不会影响是否应当添加任何其他类型的输入端口。也可以存在特定类型的一个实例。例如,在函数foo(字符串str1,int int1,字符串str2)中。str1和str2可能具有完全不同的含义,并且各自可以被扩展以接受可变数目的输入端口(但是到模块的传入数据将在输入的两个集合之间被不同地处理)。
这一示例操纵的图形节点状态首先在图6A的状态中开始。在这种状态下,存在上游图形节点601和下游图形节点602,并且图形节点602的输入端口621已经被连接到上游图形节点601的输出端口611,如由连接641所表示的。在图形节点602上存在一个另外的可用输入端口622。在这一示例中,连接641表示数据流。上游图形节点601以成人普查收入二进制数据的形式提供数据。下游图形节点602接收这样的数据并且清除缺失的数据。当然,图形节点601和602的确切功能对于本文中描述的更广泛的原理并不重要并且仅作为示例而被提供。
在图6B中,用户已经在上游图形节点601的输出端口611与先前可用的输入端口622之间建立了连接642。在没有对特定图形节点602的输入端口的数目进行任何进一步调节的情况下,这将导致图形节点602的所有输入端口的完全穷尽使用,而没有剩余的可用输入端口可用于去往上游图形节点的其他连接。然而,根据本文中描述的原理,另外的输入端口623已经被自动地添加到特定图形节点602。这是由图5的方法500的一次运行造成的,图5的方法500在每次做出从特定图形节点的输入端口到上游图形节点的连接时被开始。
例如,当首次做出连接642时,这触发了图5的事件501,从而导致方法500被执行。然后,图形节点602的端口调节组件将确定是否要向图形节点602添加一个或多个附加输入端口(判定框602)。在图6A至图6F的示例中,这一确定基于最后的可用输入端口是否刚被连接到上游图形节点。在连接642最初被建立时(判定框602中的“是”)时,这是正确的。相应地,附加输入端口623被添加到特定图形节点602。
在继续进行之前,现在将描述若干变型。首先,在图6A的示例中,是否要向图形节点添加输入端口的确定(判定框502)基于最后的可用输入端口是否刚被去往上游图形节点的连接使用的确定。然而,情况无需如此。该确定(判定框502)可以是,基于可用输入端口的数目由于连接刚被连接到一个或多个上游图形节点而下降到特定阈值,(一个或多个)附加输入端口要被添加。在图6A至图6F的这一示例中,特定阈值是,没有剩下可用的输入端口——由于刚被做出的连接,所有端口都已经被用完。然而,特定阈值可以仅仅是,由于刚被做出的连接而剩下单个(或任何数目的)可用输入端口,或者只有另一数目的输入端口。特定阈值甚至可以是可配置的,并且也可能可以取决于输入端口的类型(例如,输入端口的目的)。例如,使用频率较低的类型的输入端口的阈值可能为零(所有输入端口在另一端口被添加之前被使用),而使用更频繁的类型的输入端口具有较高的阈值以在做出连接时保持优先。
另一种变型是在确定(一个或多个)附加输入端口要被添加(判定框502中的“是”)时添加(在动作504中)的(一个或多个)输入端口的数目。在图6A至图6F的示例中,一次仅添加一个输入端口(在动作504中)。然而,在确定(一个或多个)附加输入端口要被添加(判定框502中的“是”)时,可以有多个数目(例如,两个、三个等)的输入端口被添加(在动作504中)。该数字同样可以是可配置的和/或取决于输入端口类型。例如,如果预计未来很可能普遍使用特定类型的输入端口,则可以再次添加更多输入端口以保持优先。
在图6C中,用户此时再次在上游图形节点602的输出端口611与输入端口623之间形成另一连接643。由于图形节点的所有可用输入端口现在被使用(判定框502中的“是”),所以输入端口624被自动地添加(动作504)。再次,由于自动添加输入端口,所以用户没有留下可用的输入端口。注意,在图6A到图6F中,所有输入端口被连接到单个上游图形节点601的单个输出端口。然而,本文中描述的原理不限于此。图形节点602的输入端口中的一些、大部分或全部输入端口可以被连接到不同的输出端口,无论是在同一上游图形节点上,还是在完全不同的上游图形节点上。
在图6D中,用户此时在上游图形节点602的输出端口611与输入端口624之间形成又一连接644。由于图形节点的所有可用输入端口现在被使用(判定框502中的“是”),所以输入端口625被自动地添加(动作504)。在图6E中,用户在上游图形节点602的输出端口611与输入端口625之间形成连接645,从而导致输入端口626被自动地添加。一直以来,用户总是具有输入端口使用,而无需明确地创建它。
在图6F中,用户在上游图形节点602的输出端口611与输入端口626之间形成连接546(动作501)。这导致方法500再次被启动。然而,这次,由于输入端口的数目在这一示例中已经达到最大值,因此确定将不添加另外的输入端口(判定框502中的“否”)。因此,不添加另外的输入端口(动作503)。
图7示出了在连接被断开连接时用于去除输入端口的方法700的流程图。因此,方法700在检测到一个或多个输入端口的集合刚从一个或多个上游图形节点被断开连接(动作701)时被开始。例如,在图3中,组件302B向端口调节组件303通知(如由箭头312所表示的)这个断开。作为响应,端口调节组件303应用它的自动化逻辑来确定是否从图形节点去除一个或多个输入端口(判定框702)。如果不是(判定框702中的“否”),则不需要响应于检测来采取动作(动作703)。
另一方面,如果端口调节组件确定通过从图形节点去除一个或多个输入端口来响应于检测(动作701)(判定框702中的“是”),则端口调节组件引起从图形节点去除一个或多个输入端口(动作704)。例如,端口调节组件303可以发信号通知(如由箭头322所表示的)图形节点可视化模块301以由此引起图形节点可视化模块301从图形节点去除输入端口的可视化。再次,从用户的角度来看,向用户呈现干净的图形节点,其没有过多数目的干扰未使用的输入端口,这降低了被实际使用的输入端口的重要性。
图8A至图8G示出了其中输入端口被自动地去除的若干递增阶段中的图形节点。图8A示出了初始阶段并且与图6A至图6F的序列的最后阶段相同。因此,图8A至图8G的阶段可以被看作是继续图6A至图6F的示例。因此,图8A至图8G的相同元素与图6A至图6F的对应元素共享相同的编号。
再次,虽然在图8A至图8G中仅存在单个输入端口类型种类,但是方法700可以针对每个种类的输入端口类型而被独立地执行。在这样的情况中,特定类型的输入端口从上游图形节点的断开连接可能不会影响任何其他类型的输入端口是否要被去除。
在图8B中,用户已经选择了用于消除的连接646,其由此如图8C所示去除连接646。这导致输入端口626变得可用,并且表示图3的事件312的示例。这也表示图7的动作701的检测的示例,由此触发输入端口调节组件执行图7的方法700。这里,只有一个额外的输入端口626。
在继续进行之前,现在将描述若干变型。首先,在图8A至图8G的示例中,是否从图形节点去除(一个或多个)输入端口的确定(判定框702)基于是否由于(一个或多个)输入端口从(一个或多个)上游图形节点的断开连接(动作701的)而存在多于两个可用的输入端口。然而,情况无需如此。确定(判定框702)可以是,基于由于(一个或多个)断开连接而存在特定数目的可用输入端口,(一个或多个)输入端口要被去除。在图8A至图8G的这一示例中,特定数目是,由于断开连接而存在两个可用输入端口,从而导致一个输入端口被去除。然而,特定阈值可以是任何其他数目,但是优选地使得在执行动作704之后,在用户决定再次开始连接输入端口的情况中,至少有一个输入端口仍然可用。特定阈值甚至可以是可配置的,并且也可能可以取决于输入端口的类型。
另一变型是当确定要去除(一个或多个)额外的输入端口(判定框702中的“是”)时去除(在动作704中)的输入端口的数目。在图8A至图8G的示例中,一次仅去除一个输入端口(在动作704中)。然而,在确定要(一个或多个)添加附加输入端口(判定框702中的“是”)时,可以存在多个输入端口(例如,两个、三个等)被去除(在动作704中)。该数字同样可以是可配置的和/或取决于输入端口类型。无论去除的数目是多少,优选地使得在执行动作704之后,在用户决定再次开始连接输入端口的情况下,存在至少一个输入端口仍然可用。
现在假定在图8C中,用户选择从输入端口624删除连接644。这导致图8D,其中现在存在两个可用输入端口,输入端口624和输入端口626,它们没有被连接到任何上游图形节点。这里,已发生了一些不同的事情。这里,在仍然具有连接的那些输入端口(即,输入端口621、622、623和625)之间存在可用输入端口(即,输入端口624)。毕竟,可用输入端口624在使用的输入端口623和625之间。根据本文中描述的一个实施例,在这种情况中,端口调节组件303引起连接的压缩,从而使得可用输入端口在图形节点的一端被连续地合并,并且从而使得使用的输入端口在图形节点的另一端被连续地合并。因此,端口调节组件303可以去除连接645并且重新建立连接644。更一般地说,端口调节组件引起输入端口624和625的功能颠倒。
另外,还检测到,利用断开连接(和压缩),现在存在两个额外的输入端口(即,输入端口625和626)可用。因此,确定要去除一个输入端口(输入端口626)(判定框702中的“是”)。因此,输入端口被去除(动作704)。结果将如图8E中所示。注意,在添加端口时也可能发生压缩。例如,如果在添加时存在两个可用输入端口以供使用,并且用户决定将最远端的输入端口连接到上游图形节点,从而使得存在现在被分散的可用输入端口,则端口调节组件可以使新使用的输入端口和可用输入端口的功能颠倒,从而使得使用的输入端口连续。换言之,如果在做出新连接时,确定在参考空间点(例如,下一使用的输入所朝向的图形节点的一侧)与被添加的一个或多个输入端口的集合之间存在可用输入端口,则连接被折叠(collapse)朝向空间参考点。
无论是否由于断开连接或连接输入端口而导致压缩结果,这样的压缩也可以考虑输入端口类型。例如,如果存在两个输入端口类型,则第一类型的这些输入端口可能朝向图形节点的左侧被压缩,并且第二类型的哪些输入端口可能朝向另一空间参考点(诸如图形节点的中间的点,或者可能是图形节点的右侧边缘)被压缩。
如果用户要选择将图8E的连接644断开连接,则有图8F的结果。连接644被去除,从而导致两个额外的输入端口624和625。因此,一个额外的输入端口625被去除。最后,如果用户要选择对图8F的连接643断开连接,则有图8G的结果。连接643被去除,从而导致两个额外的输入端口623和624。因此,一个额外的输入端口624被去除。最后,如果用户要将图8G中的连接643断开连接,则将返回图6A的全循环。连接642将被去除,从而产生两个额外的输入端口622和623。输入端口623因此将被去除。
因此,本文中描述的原理允许根据需要自动化地添加输入端口,和/或自动化地清理额外的输入端口。因此,在制定图形节点时,根据需要提供所需要的所有输入端口的使用,并且防止使用被多余的输入端口分散注意力。
在不脱离本发明的精神或基本特征的情况下,可以按照其他具体形式来体现发明。描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同物的含义和范围内的所有变化都将被包含在其范围内。
Claims (20)
1.一种视觉地表示具有多个输入端口的图形节点的方法,所述方法包括:
在显示器上将所述图形节点表示为具有多个输入端口的动作;
检测所述输入端口中的一个或多个输入端口的集合刚被连接到一个或多个上游图形节点的动作;
在检测到一个或多个输入端口的所述集合刚被连接到所述一个或多个上游图形节点时,应用自动化逻辑以确定附加的一个或多个输入端口要被添加到所述图形节点的动作;以及
响应于所述检测,自动地向所述图形节点的所述视觉表示添加确定的所述一个或多个附加的输入端口的动作。
2.根据权利要求1所述的方法,其中检测的动作检测最后可用输入刚被连接到上游图形节点。
3.根据权利要求1所述的方法,还包括:
再次检测所述输入端口中的一个或多个输入端口的第二集合刚被连接到一个或多个特定上游图形节点的动作;
在再次检测到一个或多个输入端口的所述第二集合刚被连接到所述一个或多个特定上游图形节点时,确定在再次检测的动作中被检测到的一个或多个输入端口的所述第二集合与参考空间点之间存在可用输入端口的动作;以及
响应于确定存在可用输入端口的动作,折叠在再次检测的动作中被检测到的一个或多个输入端口的所述第二集合与所述参考空间 点的一个或多个连接的动作。
4.根据权利要求3所述的方法,所述空间参考点是所述图形节点的一侧。
5.根据权利要求3所述的方法,所述空间参考点是朝向所述图形节点的一侧的下一使用的输入端口。
6.根据权利要求1所述的方法,被添加的所述附加的一个或多个输入端口的数目是一个。
7.根据权利要求1所述的方法,被添加的所述附加的一个或多个输入端口的数目是多于一个。
8.根据权利要求1所述的方法,被添加的所述附加的一个或多个输入端口的数目是可配置的。
9.根据权利要求1所述的方法,其中确定所述附加的一个或多个输入端口要被添加基于可用输入端口的数目由于一个或多个输入端口的所述集合刚被连接到所述一个或多个上游图形节点而下降到特定阈值。
10.根据权利要求9所述的方法,所述特定阈值是没有剩下的可用输入端口。
11.根据权利要求9所述的方法,所述特定阈值是只剩下单个可用输入端口。
12.根据权利要求9所述的方法,所述特定阈值是可配置的。
13.根据权利要求1所述的方法,所述图形节点具有多种类型的输入端口,其中所述附加的一个或多个输入端口的确定的类型与已经被检测为刚被连接到一个或多个上游图形节点的一个或多个输入端口的所述集合的确定的类型相同。
14.根据权利要求13所述的方法,其中应用自动化逻辑以确定所述附加的一个或多个输入端口要被添加到所述图形节点的动作在每个输入端口类型的基础上被确定。
15.根据权利要求13所述的方法,被添加的所述附加的一个或多个输入端口的数目取决于被添加的所述附加的一个或多个输入部分的所述确定的类型。
16.根据权利要求13所述的方法,其中确定所述附加的一个或多个输入端口要被添加基于给定输入端口类型的可用输入端口的数目由于所述输入端口类型的一个或多个输入端口的所述集合刚被连接到所述一个或多个上游图形节点而下降到特定阈值,所述特定阈值在每个输入端口类型的基础上是可配置的。
17.根据权利要求1所述的方法,所述图形节点的输入端口与至少一个上游图形节点之间的连接表示数据流。
18.根据权利要求1所述的方法,所述图形节点的输入端口与至少一个上游图形节点之间的连接表示依赖关系。
19.一种视觉地表示具有多个输入端口的图形节点的方法,所述方法包括:
在显示器上将所述图形节点表示为具有多个输入端口的动作;
检测所述输入端口中的一个或多个输入端口的集合刚从一个或多个上游图形节点被断开连接的动作;
在检测到一个或多个输入端口的所述集合刚从所述一个或多个上游图形节点被断开连接时,应用自动化逻辑以确定一个或多个特定输入端口要从所述图形节点被去除的动作;以及
响应于所述检测,自动地从所述图形节点去除确定的所述一个或多个特定输入端口的动作,同时确保至少一个未连接的输入端口在移除的动作之后继续保持在所述图形节点上被显示。
20.一种图形用户界面系统,包括:
图形节点可视化模块,其可视地表示具有多个输入端口的图形节点;以及
端口调节组件,其中
所述端口调节组件被配置为在检测到所述输入端口中的一个或多个输入端口的第一集合刚被连接到一个或多个上游图形节点时执行以下各项:
确定附加的一个或多个输入端口要被添加到所述图形节点;以及
向所述图形节点添加确定的所述一个或多个附加的输入端口;并且
所述端口调节组件还被配置为在检测到所述输入端口中的一个或多个输入端口的第二集合刚被从一个或多个特定上游图形节点被断开连接时执行以下各项:
确定一个或多个具体输入端口要从所述图形节点被移除;以及
从所述图形节点移除确定的所述一个或多个具体输入端口,同时确保至少一个未连接的输入端口在移除确定的所述一个或多个具体输入端口之后继续保持在所述图形节点上被显示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/944,005 | 2015-11-17 | ||
US14/944,005 US10212056B2 (en) | 2015-11-17 | 2015-11-17 | Graph node with automatically adjusting input ports |
PCT/US2016/061764 WO2017087297A1 (en) | 2015-11-17 | 2016-11-14 | Graph node with automatically adjusting input ports |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108351767A CN108351767A (zh) | 2018-07-31 |
CN108351767B true CN108351767B (zh) | 2022-06-10 |
Family
ID=57421964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067386.5A Active CN108351767B (zh) | 2015-11-17 | 2016-11-14 | 具有自动调节输入端口的图形节点 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10212056B2 (zh) |
EP (1) | EP3377967A1 (zh) |
CN (1) | CN108351767B (zh) |
WO (1) | WO2017087297A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10212056B2 (en) * | 2015-11-17 | 2019-02-19 | Microsoft Technology Licensing, Llc | Graph node with automatically adjusting input ports |
CN116266111A (zh) * | 2021-12-17 | 2023-06-20 | 北京字跳网络技术有限公司 | 一种群组节点编辑方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6331864B1 (en) * | 1997-09-23 | 2001-12-18 | Onadime, Inc. | Real-time multimedia visual programming system |
US7912964B2 (en) * | 2007-06-08 | 2011-03-22 | Apple Inc. | Method and apparatus for refactoring a graph in a graphical programming language |
KR20130094932A (ko) * | 2012-02-17 | 2013-08-27 | (주)에프엑스기어 | 포트-에지 시스템을 이용한 노드 그래프 생성 방법 |
CN103631847A (zh) * | 2012-08-23 | 2014-03-12 | 国际商业机器公司 | 基于上下文的搜索与图形节点相关的数据存储的方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0855019A (ja) * | 1994-08-10 | 1996-02-27 | Hitachi Ltd | 視覚的プログラミング方法 |
US5999729A (en) * | 1997-03-06 | 1999-12-07 | Continuum Software, Inc. | System and method for developing computer programs for execution on parallel processing systems |
JP4011701B2 (ja) * | 1997-12-05 | 2007-11-21 | キヤノン株式会社 | 検索装置及び制御方法 |
US20030130821A1 (en) * | 2001-11-09 | 2003-07-10 | Sun Microsystems, Inc. | Method, system, and program for rendering a visualization of network devices |
US20080040181A1 (en) * | 2006-04-07 | 2008-02-14 | The University Of Utah Research Foundation | Managing provenance for an evolutionary workflow process in a collaborative environment |
WO2012061109A1 (en) * | 2010-10-25 | 2012-05-10 | Ab Initio Technology Llc | Managing data set objects in a dataflow graph that represents a computer program |
US20120221998A1 (en) | 2011-02-24 | 2012-08-30 | Active Endpoints, Inc. | Screenflow designer with automatically changing view |
US8601481B2 (en) * | 2011-03-02 | 2013-12-03 | International Business Machines Corporation | Workflow validation and execution |
US20130066936A1 (en) | 2011-04-14 | 2013-03-14 | Ram Krishnan | Proximal Adaptive Collapsed Cloud Systems |
US9646262B2 (en) | 2013-06-17 | 2017-05-09 | Purepredictive, Inc. | Data intelligence using machine learning |
US9984482B2 (en) * | 2013-08-23 | 2018-05-29 | Ab Initio Technology Llc | Graphical user interface having enhanced tool for connecting components |
US10212056B2 (en) * | 2015-11-17 | 2019-02-19 | Microsoft Technology Licensing, Llc | Graph node with automatically adjusting input ports |
-
2015
- 2015-11-17 US US14/944,005 patent/US10212056B2/en active Active
-
2016
- 2016-11-14 EP EP16802217.6A patent/EP3377967A1/en not_active Ceased
- 2016-11-14 CN CN201680067386.5A patent/CN108351767B/zh active Active
- 2016-11-14 WO PCT/US2016/061764 patent/WO2017087297A1/en active Application Filing
-
2019
- 2019-02-14 US US16/276,239 patent/US10764164B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6331864B1 (en) * | 1997-09-23 | 2001-12-18 | Onadime, Inc. | Real-time multimedia visual programming system |
US7912964B2 (en) * | 2007-06-08 | 2011-03-22 | Apple Inc. | Method and apparatus for refactoring a graph in a graphical programming language |
KR20130094932A (ko) * | 2012-02-17 | 2013-08-27 | (주)에프엑스기어 | 포트-에지 시스템을 이용한 노드 그래프 생성 방법 |
CN103631847A (zh) * | 2012-08-23 | 2014-03-12 | 国际商业机器公司 | 基于上下文的搜索与图形节点相关的数据存储的方法和系统 |
Non-Patent Citations (2)
Title |
---|
"Designing parallel programs by the graphical language";P&x Kacsuk*, Giibor IMzsa, Tibor Fadgyas;《Micmpmcessing aad Microprogramming》;19960430;第41卷(第8期);全文 * |
"Graphical Configuration Programming";Jeff Kramer, Jeff Magee, and Keng Ng;《VISUALIZATION IN COMPUTING》;19891031;第22卷(第10期);第54页第3栏第3段、最后一行,第55页第一段第1-3行、第4段5-10行,第56页第3栏最后一段4-10行,第58页第1栏3-5段、第2栏1-2段,图2,图7,图1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2017087297A1 (en) | 2017-05-26 |
US10212056B2 (en) | 2019-02-19 |
US20170141976A1 (en) | 2017-05-18 |
EP3377967A1 (en) | 2018-09-26 |
US20190182131A1 (en) | 2019-06-13 |
CN108351767A (zh) | 2018-07-31 |
US10764164B2 (en) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3072070B1 (en) | Callpath finder | |
CN109308284B (zh) | 报表菜单生成方法、装置、计算机设备及存储介质 | |
US11061539B2 (en) | Reference nodes in a computational graph | |
CN107562777B (zh) | 数据处理方法及其设备 | |
WO2014150594A2 (en) | Tabular data manipulation system and method | |
CN110070592B (zh) | 特效包的生成方法、装置和硬件装置 | |
CN108351767B (zh) | 具有自动调节输入端口的图形节点 | |
CN111801662B (zh) | 将规范变换为计算机程序的方法、计算机系统和存储设备 | |
WO2020149999A1 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
WO2020150001A1 (en) | Generating a debugging network for a synchronous digital circuit during compilation of program source code | |
US20100229186A1 (en) | Method, apparatus and computer program product for providing an event scheme for context models | |
US9317947B2 (en) | Graphical user interface for efficiently visualizing multiple messages of different severities in a tabular format | |
US20140207848A1 (en) | Client-side aggregation of nested resource dependencies | |
JP2006201988A (ja) | 信号処理装置、信号処理方法、信号処理プログラムおよび記録媒体 | |
US7222149B2 (en) | Ordering decision nodes in distributed decision making | |
CN110704050B (zh) | 模块初始化方法、装置、电子设备及计算机可读存储介质 | |
CN112448853B (zh) | 一种网络拓扑图优化方法、终端设备及存储介质 | |
EP3125478A1 (en) | Method, device, and system for determining intermediate routing node | |
Chin et al. | A mathematical analysis of network controllability through driver nodes | |
US11372887B2 (en) | Method, device and computer program product for providing visual representation | |
CN111030863B (zh) | 一种节点拓扑信息确定方法、装置、设备及存储介质 | |
RU2697625C2 (ru) | Применение составных цепочек преобразований для множества устройств | |
US10860947B2 (en) | Variations in experiment graphs for machine learning | |
US20210382942A1 (en) | Metadata Visualization | |
KR100973543B1 (ko) | 모바일 응용 애플리케이션의 동적 아키텍처를 모델링하기위한 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |