技术领域
[0001] 本发明总体上涉及数据分析,更具体地,但不排他地,涉及生成数据模型。
相关背景技术
[0002] 组织正在生成和收集越来越多的数据。该数据可以与组织的不同部分相关联,例如,消费者活动、制造活动、客户服务、服务器日志等。在某些情况下,组织可能会开发各种不同的数据源或数据模型来表示他们可能有兴趣分析的信息。此外,在某些情况下,分析师可用的数据量可能超过分析师的即时或本地要求。此外,在某些情况下,分析师可用的一些数据源或数据模型可能以分析师不熟悉或不相关的方式排列。同样,在某些情况下,由于与发现先前提供的数据模型或数据源相关联的困难,分析师可能需要复制先前由其他分析师提供的数据设计或数据模型。此外,在一些实施方案中,考虑到一些数据源或数据模型的复杂性质,分析师可能需要具有高级数据设计技能或对底层数据系统的深入了解,以生成他们自己的数据模型。因此,正是基于这些考虑和其他考虑,做出了本发明。
具体实施方式
[0018] 下面将参考附图更全面地描述各种实施方案,附图构成本发明的一部分,并且通过说明示出了可实施本发明的特定示例性实施方案。然而,实施方案可以以许多不同的形式实施,并且不应被解释为限于本文所述的实施方案;相反,提供这些实施方案使得公开文本将是彻底和完整的,并且将向本领域技术人员完全传达实施方案的范围。除其他外,各种实施方案可以是方法、系统、介质或设备。因此,各种实施方案可以采取完全硬件实施方案、完全软件实施方案或结合软件和硬件方面的实施方案的形式。因此,下面的详细描述不应被理解为限制性的。
[0019] 在整个说明书和权利要求书中,除非上下文另有明确规定,否则以下术语采用在此明确相关联的含义。本文使用的短语“在一个实施方案中”不一定指相同的实施方案(尽管它可以)。此外,本文使用的短语“在另一个实施方案中”不一定指不同的实施方案(尽管它可以)。因此,如下所述,在不脱离本发明的范围或精神的情况下,可以容易地组合各种实施方案。
[0020] 此外,如本文所用,术语“或”是包含的“或”运算符,并且等效于术语“和/或”,除非上下文明确另有规定。“基于”一词并非排他性的,并允许基于未描述的其他因素,除非上下文另有明确规定。此外,在整篇说明书中,“一种”、“一个”和“该”的含义包括复数引用。“在…中”的含义包括“在…中”和“在…上”。
[0021] 对于示例性实施方案,下面的术语也根据相应的含义在此使用,除非上下文明确另有指示。
[0022] 如本文所使用的,术语“引擎”是指硬件或软件指令中包含的逻辑,这些指令可以TM用编程语言编写,例如C、C++、Objective‑C、COBOL、Java 、PHP、Perl、JavaScript、Ruby、TM
VBScript、Microsoft.NET 语言,例如C#等。引擎可以编译成可执行程序或用解释编程语言编写。软件引擎可以从其他引擎或从自身调用。本文描述的引擎是指一个或多个逻辑模块,其可以与其他引擎或应用程序合并,或者可以被划分为子引擎。引擎可以存储在非暂时的计算机可读介质或计算机存储设备中,并且存储在一个或多个通用计算机上并由其执行,从而创建被配置为提供引擎的专用计算机。
[0023] 如本文所使用的,术语“数据源”是指正在建模或以其他方式分析的基础信息的源。数据源可以包括来自数据库(例如,关系的、基于图的、非sql等)、文件系统、非结构化数据、流等或由它们提供的信息。数据源通常被布置来建模、记录或记忆与组织相关联的各种操作或活动。在一些情况下,数据源被布置成提供或促进各种以数据为中心的动作,例如高效存储、查询、索引、数据交换、搜索、更新等。通常,数据源可以被布置成提供与数据操纵或数据管理相关的特征,而不是提供数据的易于理解的呈现或可视化。
[0024] 如本文所使用的,术语“数据模型”是指提供底层数据源表示的一个或多个数据结构。在某些情况下,数据模型可以为特定应用程序提供数据源的视图。数据模型可以被认为是底层数据源的视图或接口。在某些情况下,数据模型可以直接映射到数据源(例如,实际上是逻辑传递)。此外,在某些情况下,数据模型可能由数据源提供。在某些情况下,数据模型可以被视为数据源的接口。数据模型使组织能够以更方便、更有意义(例如,更容易推理)、更安全等方式组织或呈现来自数据源的信息。
[0025] 如本文所使用的,术语“数据模型字段”是指数据模型的已命名或可命名的属性或特征。数据模型字段类似于数据库表中的列、图中的节点、Java类属性等。例如,对应于雇员数据库表格的数据模型可以具有诸如姓名、电子邮件地址、电话号码、雇员id等数据模型字段。
[0026] 如本文所使用的,术语“数据对象”是指包括数据模型的一个或多个实体或数据结构。在某些情况下,数据对象可以被认为是数据模型的一部分。数据对象可以表示项目、类或项目种类的单个实例。
[0027] 如本文所使用的,术语“数据字段”是指数据对象的已命名或可命名的属性或特征。在某些情况下,数据字段可以被认为类似于面向对象编程中对象的类成员。
[0028] 如本文所使用的,术语“面板”是指图形用户界面(GUI)内的区域,该区域在GUI内具有定义的几何形状(例如,x、y、z顺序)。面板可以被布置成向用户显示信息或承载一个或多个交互控件。可以使用包括动态规则的配置信息来定义与面板相关联的几何形状或样式。此外,在某些情况下,用户可以在一个或多个面板上执行操作,例如移动、显示、隐藏、重新调整大小、重新排序等。
[0029] 如本文所使用的,术语“工作数据模型”是指可能处于开发或建模过程中的数据模型。该术语用于将工作数据模型与其他数据模型区分开来,例如那些可能包含一个或多个推荐数据字段或数据对象的数据模型。
[0030] 如本文所使用的,术语“工作可视化”是指可能处于开发或建模过程中的可视化。该术语主要用于将正在开发或建模的可视化与其他可视化区分开来。
[0031] 如本文所使用的,术语“配置信息”是指可以包括基于规则的策略、模式匹配、脚本(例如,计算机可读指令)等的信息,这些信息可以从各种来源提供,包括配置文件、数据库、用户输入、内置默认值等,或者它们的组合。
[0032] 以下简要描述本发明的实施方案,以便提供对本发明的一些方面的基本理解。这个简短的描述并不打算作为一个广泛的概述。它不是为了确定关键或关键要素,也不是为了划定或以其他方式缩小范围。它的目的仅仅是以简化的形式提出一些概念,作为后面提出的更详细描述的前奏。
[0033] 简言之,各种实施方案涉及使用一个或多个处理器(执行一个或多个指令以执行如本文所述的操作)来管理数据可视化。
[0034] 在各种实施方案中的一个或多个中,可以提供数据源、模型面板和显示面板,使得数据源可以与一个或多个数据模型相关联,每个数据模型包括多个数据字段。
[0035] 在各种实施方案中的一个或多个中,响应于提供的搜索表达式,可以执行进一步的动作,如下所述。
[0036] 在各种实施方案中的一个或多个中,可以基于搜索表达式或一个或多个数据模型,确定一个或多个候选数据字段,使得与每个候选数据字段相关联的一个或多个值可以与提供的搜索表达式匹配。而且,在一些实施方案中,可以在模型面板中显示一个或多个候选数据字段。
[0037] 在各种实施方案中的一个或多个中,可以基于一个或多个候选数据字段的一部分,生成工作数据模型,使得一个或多个候选数据字段的一部分可以包括在工作数据模型中。
[0038] 在各种实施方案中的一个或多个中,可以基于一个或多个推荐模型和工作数据模型,确定一个或多个可视化,使得可以基于可以包括在工作数据模型和一个或多个可视化中的一个或多个共享数据字段,确定一个或多个可视化的一部分。而且,在一些实施方案中,可以在显示面板中列出一个或多个可视化图像。
[0039] 在各种实施方案中的一个或多个中,可以基于显示面板中列出的可视化和工作数据模型,确定工作可视化,使得包括在工作数据模型中的一个或多个数据字段可以与工作可视化相关联。
[0040] 在各种实施方案中的一个或多个中,响应于更新工作数据模型以包括一个或多个其他候选数据字段,可以基于更新的工作数据模型,更新一个或多个候选数据字段、一个或多个推荐的可视化或工作可视化中的一个或多个。
[0041] 在各种实施方案中的一个或多个中,可以基于一个或多个推荐的可视化与工作模型中的一个或多个数据字段以及可以包括在一个或多个其他可视化中的另一个数据字段的关联,确定一个或多个推荐的可视化,使得可以在显示面板中列出一个或多个推荐的可视化。而且,在一些实施方案中,响应于一个推荐的可视化的选择,可以更新该更新的工作模型,以包括其他数据字段。
[0042] 在各种实施方案中的一个或多个中,可以确定与一个或多个候选数据字段相关联的一个或多个特征,使得一个或多个特征包括引用一个或多个候选数据字段的可视化的数量的计数、与一个或多个候选数据字段相关联的数据源信息、一个或多个候选数据字段的值的样本等中的一个或多个。而且,在一些实施方案中,可以在字段信息面板中显示每个选择的一个或多个候选数据字段的一个或多个特征的一个或多个部分。
[0043] 在各种实施方案中的一个或多个中,可以从一个或多个候选数据字段确定另一个候选数据字段。在一些实施方案中,可以更新工作可视化,以包括该另一个候选数据字段。而且,在一些实施方案中,可以更新工作数据模型,以包括该另一个候选数据字段。
[0044] 在各种实施方案中的一个或多个中,可以基于一个或多个数据模型,确定一个或多个流行数据字段,使得可以基于与一个或多个流行数据字段相关联的一个或多个度量,确定一个或多个流行数据字段,并且使得可以在标签面板中显示一个或多个流行数据字段。在一些实施方案中,可以基于一个或多个流行数据字段,确定一个或多个流行可视化的集合,使得可以在显示面板中显示一个或多个流行可视化。在一些实施方案中,可以确定一个或多个流行数据字段的一部分,使得一个或多个流行数据字段的一部分可以由用户选择。而且,在一些实施方案中,可以基于一个或多个流行字段的一部分,修改一个或多个流行可视化的集合,使得可以与一个或多个流行数据字段的一部分相关联的每个流行可视化可以包括在该集合中,并且与一个或多个流行字段的一部分不相关联的每个流行可视化可以被排除在该集合之外。
[0045] 说明性操作环境
[0046] 图1示出了其中可以实践本发明的实施方案的环境的一个实施方案的部件。实施本发明可能不需要所有的部件,并且可以在不脱离本发明的精神或范围的情况下对部件的布置和类型进行变化。如图所示,图1的系统100包括局域网(LAN)/广域网(WAN)‑(网络)110、无线网络108、客户端计算机102‑105、可视化服务器计算机116等。
[0047] 下面结合图2更详细地描述客户端计算机102‑105的至少一个实施方案。在一个实施方案中,客户端计算机102‑105中的至少一些可以在一个或多个有线或无线网络上操作,例如网络108或110。通常,客户端计算机102‑105可以包括能够通过网络通信以发送和接收信息、执行各种在线活动、离线动作等的几乎任何计算机。在一个实施方案中,客户端计算机102‑105中的一个或多个可以被配置为在企业或其他实体内操作以为该企业或其他实体执行各种服务。例如,客户端计算机102‑105可以被配置为作为web服务器、防火墙、客户端应用程序、媒体播放器、移动电话、游戏控制台、台式计算机等操作。然而,客户端计算机102‑105不局限于这些服务,并且还可以例如用于其他实施方案中的终端用户计算。应当认识到,或多或少的客户端计算机(如图1所示)可以包括在诸如本文所述的系统中,并且实施方案因此不受所采用的客户端计算机的数量或类型的限制。
[0048] 可作为客户端计算机102操作的计算机可包括通常使用有线或无线通信介质连接的计算机,例如个人计算机、多处理器系统、基于微处理器或可编程电子设备、网络PC等。在一些实施方案中,客户端计算机102‑105可以包括能够连接到另一计算机并接收信息的几乎任何便携式计算机,例如膝上型计算机103、移动计算机104、平板计算机105等。然而,便携式计算机不受此限制,并且还可以包括其他便携式计算机,例如蜂窝电话、显示寻呼机、射频(RF)设备、红外(IR)设备、个人数字助理(PDA)、手持计算机、可穿戴计算机、组合一个或多个前面的计算机的集成设备等。因此,客户端计算机102‑105通常在能力和特征方面范围很广。此外,客户端计算机102‑105可以访问各种计算应用程序,包括浏览器或其他基于Web的应用程序。
[0049] 启用Web的客户端计算机可以包括被配置为通过Web发送请求和接收响应的浏览器应用程序。浏览器应用程序可以被配置为使用几乎任何基于Web的语言来接收和显示图形、文本、多介质等。在一个实施方案中,使浏览器应用程序能够使用JavaScript、超文本标记语言(HTML)、可扩展标记语言(XML)、JavaScript对象表示法(JSON)、层叠样式表(CSS)等或其组合来显示和发送消息。在一个实施方案中,客户端计算机的用户可以使用浏览器应用程序通过网络(在线)执行各种活动。但是,另一个应用程序也可能用于执行各种联机活动。
[0050] 客户端计算机102‑105还可以包括被配置为在另一计算机之间接收或发送内容的至少一个其他客户端应用程序。客户端应用程序可以包括发送或接收内容等的能力。客户端应用程序还可以提供标识自身的信息,包括类型、功能、名称等。在一个实施方案中,客户端计算机102‑105可以通过各种机制中的任何一种唯一地标识自己,包括因特网协议(IP)地址、电话号码、移动识别号码(MIN)、电子序列号(ESN)、客户端证书或其他设备标识符。这样的信息可以在一个或多个网络分组等中提供,在其他客户端计算机、可视化服务器计算机116或其他计算机之间发送。
[0051] 客户端计算机102‑105还可以被配置为包括客户端应用程序,其使终端用户能够登录到终端用户账户,该账户可以由另一计算机例如可视化服务器计算机116等管理。在一个非限制性实施例中,这种终端用户账户可以被配置为使终端用户能够管理一个或多个在线活动,包括在一个非限制性实施例中的项目管理、软件开发、系统管理、配置管理、搜索活动、社交网络活动、浏览各种网站、与其他用户通信等。此外,客户端计算机可以被布置成使用户能够显示由可视化服务器计算机116提供的报告、交互式用户界面或结果,等。
[0052] 无线网络108被配置为将客户端计算机103‑105及其部件与网络110联接。无线网络108可以包括各种无线子网络中的任何一个,其可以进一步覆盖独立的ad‑hoc网络等,以为客户端计算机103‑105提供面向基础设施的连接。这样的子网络可以包括网状网络、无线LAN(WLAN)网络、蜂窝网络等。在一个实施方案中,该系统可以包括多于一个无线网络。
[0053] 无线网络108还可以包括通过无线无线电链路等连接的终端、网关、路由器等的自治系统。这些连接器可以被配置为自由和随机地移动并且任意地组织它们自己,使得无线网络108的拓扑可以快速改变。
[0054] 无线网络108可进一步采用多个接入技术,包括用于蜂窝系统的第二(2G)、第三(3G)、第四(4G)、第五(5G)代无线接入、WLAN、无线路由器(WR)网状网等。诸如2G、3G、4G、5G和未来接入网的接入技术可以使移动计算机例如具有各种移动度的客户端计算机103‑105能够广域覆盖。在一个非限制性实施例中,无线网络108可以通过无线网络接入来实现无线连接,例如全球移动通信系统(GSM)、通用分组无线服务(GPRS)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、宽带码分多址(WCDMA)、高速下行链路分组接入(HSDPA)、长期演进(LTE)等。实质上,无线网络108可以包括几乎任何无线通信机制,通过该机制,信息可以在客户端计算机103‑105和另一计算机、网络、基于云的网络、云实例等之间传输。
[0055] 网络110被配置为通过无线网络108等将网络计算机与包括可视化服务器计算机116、客户端计算机102和客户端计算机103‑105等的其他计算机联接。网络110能够使用任何形式的计算机可读介质来将信息从一个电子设备传送到另一个电子设备。此外,除了局域网(LAN)、广域网(WAN)、诸如通过通用串行总线(USB)端口、以太网端口、其他形式的计算机可读介质或其任何组合的直接连接之外,网络110还可以包括因特网。在一组相互连接的局域网上,包括那些基于不同体系结构和协议的局域网上,路由器充当局域网之间的链接,使消息能够从一个局域网发送到另一个局域网。此外,LAN内的通信链路通常包括双绞线对或同轴电缆,而网络之间的通信链路可以利用模拟电话线、包括Tl、T2、T3和T4的全部或部分专用数字线路或其他载波机制,包括例如电子载波、综合业务数字网络(ISDN)、数字用户线(DSL)、包括卫星链路的无线链路或本领域技术人员已知的其他通信链路。此外,通信链路可进一步采用各种数字信令技术中的任何一种,包括但不限于例如DS‑0、DS‑1、DS‑2、DS‑
3、DS‑4、OC‑3、OC‑12、OC‑48等。此外,远程计算机和其他相关电子设备可以通过调制解调器和临时电话链路远程连接到LAN或WAN。在一个实施方案中,网络110可以被配置为传输因特网协议(IP)的信息。
[0056] 此外,通信介质通常包含计算机可读指令、数据结构、程序模块或其他传输机制,并包括任何信息非暂时性传递介质或暂时性传递介质。例如,通信介质包括有线介质,例如双绞线、同轴电缆、光纤、波导和其他有线介质,以及无线介质,例如声学、RF、红外和其他无线介质。
[0057] 此外,下面结合图3更详细地描述可视化服务器计算机116的一个实施方案。尽管图1示出了可视化服务器计算机116等,作为单个计算机,但是创新或实施方案不限于此。例如,可视化服务器计算机116等的一个或多个功能可以分布在一个或多个不同的网络计算机上。此外,在一个或多个实施方案中,可视化服务器计算机116可以使用多个网络计算机来实现。此外,在各种实施方案中的一个或多个中,可视化服务器计算机116等可以使用一个或多个云网络中的一个或多个云实例来实现。因此,这些创新和实施方案不应被解释为限于单个环境,并且还设想了其他配置和其他架构。
[0058] 说明性客户端计算机
[0059] 图2示出客户端计算机200的一个实施方案,可包括比所示部件更多或更少的部件。客户端计算机200可以表示例如图1所示的移动计算机或客户端计算机的一个或多个实施方案。
[0060] 客户端计算机200可以包括经由总线228与存储器204通信的处理器202。客户端计算机200还可以包括电源230、网络接口232、音频接口256、显示器250、键盘252、照明器254、视频接口242、输入/输出接口238、触觉接口264、全球定位系统(GPS)接收机258、露天手势接口260、温度接口262、照相机240、投影仪246、指向设备接口266、处理器可读固定存储设备234和处理器可读可移动存储设备236。客户端计算机200可选地与基站(未示出)通信,或直接与另一计算机通信。并且在一个实施方案中,尽管未示出,但是可以在客户端计算机200内使用陀螺仪来测量或维持客户端计算机200的方位。
[0061] 电源230可以向客户端计算机200提供电力。可充电电池或不可充电电池可用于提供电力。电源也可以由外部电源提供,例如AC适配器或对电池进行补充或再充电的动力对接支架。
[0062] 网络接口232包括用于将客户端计算机200联接到一个或多个网络的电路,并且被构造为与一个或多个通信协议和技术一起使用,该通信协议和技术包括但不限于实现OSI模型的任何部分的协议和技术,用于移动通信(GSM)、CDMA、时分多址(TDMA)、UDP、TCP/IP、SMS、MMS、GPRS、WAP、UWB、WiMax、SIP/RTP、GPRS、EDGE、WCDMA、LTE、UMTS、OFDM、CDMA2000、EV‑DO、HSDPA或各种其他无线通信协议中的任何一个。网络接口232有时被称为收发器、收发器设备或网络接口卡(NIC)。
[0063] 音频接口256可以被布置成产生和接收音频信号,例如人声的声音。例如,音频接口256可以联接到扬声器和麦克风(未示出),以使得能够与其他人进行通信或生成针对某些动作的音频确认。音频接口256中的麦克风还可用于对客户端计算机200进行输入或控制,例如,使用语音识别、基于声音检测触摸等。
[0064] 显示器250可以是液晶显示器(LCD)、气体等离子体、电子墨水、发光二极管(LED)、有机LED(OLED)或可与计算机一起使用的任何其他类型的光反射或光透射显示器。显示器250还可以包括触摸接口244,被布置成从诸如手写笔或来自人手的数字的对象接收输入,并且可以使用电阻、电容、声表面波(SAW)、红外、雷达或其他技术来感测触摸或手势。
[0065] 投影仪246可以是远程手持投影仪或集成投影仪,能够将图像投影在远程墙壁或诸如远程屏幕的任何其他反射物体上。
[0066] 视频接口242可以被布置成捕捉视频图像,例如静态照片、视频片段、红外视频等。例如,视频接口242可以联接到数字摄像机、网络摄像机等。视频接口242可以包括镜头、图像传感器和其他电子设备。图像传感器可以包括互补金属氧化物半导体(CMOS)集成电路、电荷联接器件(CCD)或用于感测光的任何其他集成电路。
[0067] 键盘252可以包括被布置成从用户接收输入的任何输入设备。例如,键盘252可以包括按钮数字拨号或键盘。键盘252还可以包括与选择和发送图像相关联的命令按钮。
[0068] 照明器254可以提供状态指示或提供光。照明器254可以在特定时间段或响应于事件消息而保持活动。例如,当照明器254激活时,它可以背光键区252上的按钮,并且在客户端计算机被供电时保持打开。此外,当执行特定动作时,照明器254可以以各种模式背光这些按钮,例如拨号另一客户端计算机。照明器254还可以响应于动作使定位在客户端计算机的透明或半透明外壳内的光源照明。
[0069] 此外,客户端计算机200还可以包括硬件安全模块(HSM)268,用于提供用于生成、存储或使用诸如密钥、数字证书、密码、密码短语、双因素认证信息等的安全/密码信息的附加防篡改保障。在一些实施方案中,硬件安全模块可用于支持一个或多个标准公钥基础设施(PKI),并可用于生成、管理或存储密钥对等。在一些实施方案中,HSM 268可以是独立计算机,在其他情况下,HSM 268可以被布置为可以添加到客户端计算机的硬件卡。
[0070] 客户端计算机200还可以包括用于与外部外围设备或诸如其他客户端计算机和网络计算机的其他计算机通信的输入/输出接口238。外围设备可以包括音频耳机、虚拟现实耳机、显示屏眼镜、远程扬声器系统、远程扬声器和麦克风系统等。输入/输出接口238可以TM利用一种或多种技术,例如通用串行总线(USB)、红外、WiFi、WiMax、蓝牙 等。
[0071] 输入/输出接口238还可以包括一个或多个传感器,用于确定地理定位信息(例如,GPS)、监测电力状况(例如,电压传感器、电流传感器、频率传感器等)、监测天气(例如,恒温器、气压计、风速计、湿度检测器、降水量刻度等)等。传感器可以是收集或测量客户端计算机200外部的数据的一个或多个硬件传感器。
[0072] 触觉接口264可以被布置成向客户端计算机的用户提供触觉反馈。例如,触觉接口264可用于在计算机的另一用户正在呼叫时以特定方式振动客户端计算机200。温度接口
262可用于向客户端计算机200的用户提供温度测量输入或温度变化输出。露天手势接口
260可以例如通过使用单个或立体声摄像机、雷达、由用户持有或佩戴的计算机内的陀螺仪传感器等来感测客户端计算机200的用户的物理手势。照相机240可用于跟踪客户端计算机
200的用户的物理眼部运动。
[0073] GPS收发器258可以确定客户端计算机200在地球表面上的物理坐标,其通常将位置输出为纬度和经度值。GPS收发器258还可以使用其他地理定位机制,包括但不限于三角测量、辅助GPS(AGPS)、增强观测时差(E‑OTD)、小区标识符(Cl)、服务区标识符(SAI)、增强定时提前(ETA)、基站子系统(BSS)等,以进一步确定客户端计算机200在地球表面上的物理位置。应当理解,在不同的条件下,GPS收发器258可以确定客户端计算机200的物理位置。然而,在一个或多个实施方案中,客户端计算机200可通过其他部件提供可用于确定客户端计算机的物理位置的其他信息,包括例如媒体访问控制(MAC)地址、IP地址等。
[0074] 在各种实施方案中的至少一个实施方案中,诸如操作系统206、可视化客户端222、其他客户端应用程序224、网络浏览器226等的应用程序可以被布置成使用地理位置信息来选择一个或多个本地化特征,诸如时区、语言、货币、日历格式等。本地化功能可用于显示对象、数据模型、数据对象、用户界面、报表以及内部流程或数据库。在各种实施方案中的至少一个实施方案中,用于选择定位信息的地理位置信息可以由GPS 258提供。此外,在一些实施方案中,地理定位信息可以包括通过诸如无线网络108或网络111之类的网络使用一个或多个地理定位协议提供的信息。
[0075] 人机接口部件可以是物理上与客户端计算机200分离的外围设备,允许远程输入或输出到客户端计算机200。例如,如本文所描述的通过诸如显示器250或键盘252之类的人机接口部件路由的信息可以替代地通过网络接口232路由到位于远程的适当的人机接口部件。可以是远程的人机接口外围部件的实施例包括但不限于音频设备、指向设备、键盘、显TM TM示器、照相机、投影仪等。这些外围部件可以通过诸如蓝牙 、ZigBee 等的微型网络进行通信。具有这样的外围人机接口部件的客户端计算机的一个非限制性实施例是可穿戴计算机,其可包括远程微型投影仪以及一个或多个与单独定位的客户端计算机远程通信以感测用户朝向由微型投影仪投影到反射表面例如墙或用户手上的图像部分的手势的一个或多个摄像机。
[0076] 客户端计算机可以包括网络浏览器应用程序226,其被配置为接收和发送web页面、基于web的消息、图形、文本、多介质等。客户端计算机的浏览器应用程序可以使用几乎任何编程语言,包括无线应用程序协议消息(WAP)等。在一个或多个实施方案中,使浏览器应用程序能够使用手持设备标记语言(HDML)、无线标记语言(WML)、WMLScript、JavaScript、标准通用标记语言(SGML)、超文本标记语言(HTML)、可扩展标记语言(XML)、HTML5等。
[0077] 存储器204可以包括RAM、ROM或其他类型的存储器。存储器204示出用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的计算机可读存储介质(设备)的实施例。存储器204可以存储用于控制客户端计算机200的低级操作的BIOS 208。存储器还可以存储用于控制客户端计算机200的操作的操作系统206。应当理解,该部件可以包括通用操作系统,例如UNIX版本或者 或者专用客户端计算机通信操作系统,例如TM
Windows Phone ,或者 操作系统。操作系统可以包括Java虚拟机模块或与
Java虚拟机模块接口,该模块能够通过Java应用程序控制硬件部件或操作系统操作。
[0078] 存储器204还可以包括一个或多个数据存储设备210,客户端计算机200可利用其存储应用程序220或其他数据。例如,数据存储设备210还可用于存储描述客户端计算机200的各种能力的信息。然后可以基于各种方法中的任何一种将信息提供给另一设备或计算机,包括在通信期间作为报头的一部分发送、根据请求发送等。数据存储设备210还可用于存储社交网络信息,包括地址簿、好友列表、别名、用户简档信息等。数据存储设备210可进一步包括程序代码、数据、算法等,以供诸如处理器202的处理器使用以采取和执行动作。在一个实施方案中,数据存储设备210中的至少一些还可以存储在客户端计算机200的另一部件上,包括但不限于非暂时处理器可读的可移动存储设备236、处理器可读的固定存储设备234,或者甚至在客户端计算机外部。
[0079] 应用程序220可以包括计算机可执行指令,当由客户端计算机200执行时,计算机可执行指令发送、接收或以其他方式处理指令和数据。应用程序220可以包括例如可视化客户端222、其他客户端应用程序224、网络浏览器226等。客户端计算机可以被布置为交换一个或多个服务器的通信。
[0080] 应用程序的其他实施例包括日历、搜索程序、电子邮件客户端应用程序、IM应用程序、SMS应用程序、因特网协议语音(VOIP)应用程序、联系人管理器、任务管理器、代码转换器、数据库程序、字处理程序、安全应用程序、电子表格程序、游戏、搜索程序、可视化应用程序等等。
[0081] 另外,在一个或多个实施方案(图中未示出)中,客户端计算机200可包括嵌入式逻辑硬件设备而不是CPU,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)等或其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑以执行动作。此外,在一个或多个实施方案(图中未示出)中,客户端计算机200可包括一个或多个硬件微控制器而不是CPU。在一个或多个实施方案中,一个或多个微控制器可以直接执行它们自己的嵌入式逻辑以执行动作,并访问它自己的内部存储器和它自己的外部输入和输出接口(例如,硬件引脚或无线收发器)以执行动作,例如片上系统(SOC)等。
[0082] 说明性网络计算机
[0083] 图3示出了网络计算机300的一个实施方案,其可以包括在实现各种实施方案中的一个或多个的系统中。网络计算机300可以包括比图3中所示的部件更多或更少的部件。然而,所示的部件足以公开用于实践这些创新的说明性实施方案。网络计算机300可以表示例如图1的可视化服务器计算机116等中的至少一个的一个实施方案。
[0084] 网络计算机,例如网络计算机300可以包括处理器302,其可以经由总线328与存储器304通信。在一些实施方案中,处理器302可以由一个或多个硬件处理器,或者一个或多个处理器核组成。在一些情况下,一个或多个处理器中的一个或多个可以是被设计成执行一个或多个专用动作的专用处理器,例如本文描述的那些。网络计算机300还包括电源330、网络接口332、音频接口356、显示器350、键盘352、输入/输出接口338、处理器可读固定存储设备334和处理器可读可移动存储设备336。电源330向网络计算机300提供电力。
[0085] 网络接口332包括用于将网络计算机300联接到一个或多个网络的电路,并且构造用于一个或多个通信协议和技术,包括但不限于,实现开放系统互连模型(OSI模型)、全球移动通信系统(GSM)、码分多址(CDMA)、时分多址(TDMA)、用户数据报协议(UDP)、传输控制协议/Intemet协议(TCP/IP)、短消息服务(SMS)、多介质消息服务(MMS)、通用分组无线服务(GPRS)、WAP、超宽带(UWB)、IEEE 802.16全球微波接入互操作性(WiMax)、会话发起协议/实时传输协议(SIP/RTP)或各种其他有线和无线通信协议的任何部分的协议和技术。网络接口332有时被称为收发器、收发器设备或网络接口卡(NIC)。网络计算机300可选地与基站(未示出)通信,或直接与另一计算机通信。
[0086] 音频接口356被布置成产生和接收音频信号,例如人声的声音。例如,音频接口356可以联接到扬声器和麦克风(未示出),以使得能够与其他人进行通信或生成针对某些动作的音频确认。音频接口356中的麦克风也可用于例如使用语音识别对网络计算机300的输入或控制。
[0087] 显示器350可以是液晶显示器(LCD)、气体等离子体、电子墨水、发光二极管(LED)、有机LED(OLED)或可与计算机一起使用的任何其他类型的光反射或光透射显示器。在一些实施方案中,显示器350可以是能够将图像投影在墙上或其他物体上的手持投影仪或微型投影仪。
[0088] 网络计算机300还可以包括用于与图3中未示出的外部设备或计算机通信的输入/TM输出接口338。输入/输出接口338可以利用一种或多种有线或无线通信技术,例如USB 、TM TM TM TM
Firewire 、WiFi、WiMax、Thunderbolt 、红外、蓝牙 、ZigBee 、串行端口、并行端口等。
[0089] 此外,输入/输出接口338还可以包括一个或多个传感器,用于确定地理定位信息(例如,GPS)、监测电力状况(例如,电压传感器、电流传感器、频率传感器等)、监测天气(例如,恒温器、气压计、风速计、湿度检测器、降水量刻度等)等。传感器可以是收集或测量网络计算机300外部的数据的一个或多个硬件传感器。人机接口部件可以在物理上与网络计算机300分离,允许远程输入或输出到网络计算机300。例如,如本文所述通过诸如显示器350或键盘352之类的人机接口部件路由的信息可以替代地通过网络接口332路由到位于网络上其他地方的适当人机接口部件。人机接口部件包括允许计算机从计算机的人类用户获取输入或向其发送输出的任何部件。因此,诸如鼠标、笔针、轨迹球等的指向设备可以通过指向设备接口358通信以接收用户输入。
[0090] GPS收发器340可以确定网络计算机300在地球表面上的物理坐标,其通常将位置输出为纬度和经度值。GPS收发器340还可以使用其他地理定位机制,包括但不限于三角测量、辅助GPS(AGPS)、增强观测时差(E‑OTD)、小区标识符(Cl)、服务区标识符(SAI)、增强定时提前(ETA)、基站子系统(BSS)等,以进一步确定网络计算机300在地球表面上的物理位置。应当理解,在不同的条件下,GPS收发器340可以确定网络计算机300的物理位置。然而,在一个或多个实施方案中,网络计算机300可通过其他部件提供可用于确定客户端计算机的物理位置的其他信息,包括例如媒体访问控制(MAC)地址、IP地址等。
[0091] 在各种实施方案中的至少一个实施方案中,诸如操作系统306、建模引擎322、可视化引擎324、其他应用程序329等的应用程序可以被布置成利用地理位置信息来选择一个或多个定位特征,诸如时区、语言、货币、货币格式、日历格式等。本地化功能可用于用户界面、仪表板、可视化、报表以及内部流程或数据库。在各种实施方案中的至少一个实施方案中,用于选择定位信息的地理位置信息可以由GPS 340提供。此外,在一些实施方案中,地理定位信息可以包括通过诸如无线网络108或网络111的网络使用一个或多个地理定位协议提供的信息。
[0092] 存储器304可以包括随机存取存储器(RAM)、只读存储器(ROM)或其他类型的存储器。存储器304示出用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的计算机可读存储介质(设备)的实施例。存储器304存储用于控制网络计算机300的低级操作的基本输入/输出系统(BIOS)308。存储器还存储用于控制网络计算机300的操作的操作系统306。应当理解,该部件可以包括通用操作系统,例如UNIX或 的版本,或者专用操作系统,例如Microsoft Corporation的 操作系统,或者Apple Corporation的 操作系统。该操作系统可以包括一个或多个虚拟机模块,或者与
一个或多个虚拟机模块接口,例如,允许通过Java应用程序控制硬件部件或操作系统操作的Java虚拟机模块。同样,也可以包括其他运行时环境。
[0093] 存储器304可进一步包括一个或多个数据存储设备310,其可由网络计算机300用来存储应用程序320或其他数据。例如,数据存储设备310也可用于存储描述网络计算机300的各种能力的信息。然后可以基于各种方法中的任何一种将信息提供给另一设备或计算机,包括在通信期间作为报头的一部分发送、根据请求发送等。数据存储设备310还可用于存储包括地址簿、好友列表、别名、用户简档信息等的社交网络信息。数据存储设备310可进一步包括程序代码、数据、算法等,以供诸如处理器302的处理器使用,以进行和执行诸如下面描述的那些动作的动作。在一个实施方案中,数据存储设备310中的至少一些还可以存储在网络计算机300的另一部件上,包括但不限于处理器可读可移动存储设备336、处理器可读固定存储设备334或网络计算机300内或甚至网络计算机300外部的任何其他计算机可读存储设备内的非暂时性介质。数据存储设备310可以包括例如数据源314、数据模型316、可视化318等。
[0094] 应用程序320可以包括计算机可执行指令,当由网络计算机300执行时,该指令发送、接收或以其他方式处理消息(例如,SMS、多介质消息服务(MMS)、即时消息(IM)、电子邮件或其他消息)、音频、视频,并使得能够与另一移动计算机的另一用户进行电信。应用程序的其他实施例包括日历、搜索程序、电子邮件客户端应用程序、IM应用程序、SMS应用程序、因特网协议语音(VOIP)应用程序、联系人管理器、任务管理器、代码转换器、数据库程序、字处理程序、安全应用程序、电子表格程序、游戏、搜索程序等等。应用程序320可包括建模引擎322、可视化引擎324、其他应用程序329等,其可以被布置为执行用于下面描述的实施方案的动作。在各种实施方案中的一个或多个中,一个或多个应用程序可以被实现为另一个应用程序的模块或部件。此外,在各种实施方案中的一个或多个中,应用程序可以被实现为操作系统扩展、模块、插件等。
[0095] 此外,在各种实施方案中的一个或多个中,建模引擎322、可视化引擎324、其他应用程序329等可以在基于云的计算环境中操作。在各种实施方案中的一个或多个中,包括管理平台的这些应用和其他应用可以在虚拟机或虚拟服务器(可以在基于云的计算环境中管理)内执行。在各种实施方案中的一个或多个中,在此上下文中,根据由云计算环境自动管理的性能和伸缩考虑,应用程序可以从基于云的环境内的一个物理网络计算机流到另一个。同样,在各种实施方案中的一个或多个中,专用于建模引擎322、可视化引擎324、其他应用程序329等的虚拟机或虚拟服务器可以自动地被供应和解除委托。
[0096] 此外,在各种实施方案中的一个或多个中,建模引擎322、可视化引擎324、其他应用程序329等可以位于运行在基于云的计算环境中的虚拟服务器中,而不是绑定到一个或多个特定物理网络计算机。
[0097] 此外,网络计算机300还可以包括硬件安全模块(HSM)360,用于提供用于生成、存储或使用诸如密钥、数字证书、密码、密码短语、双因素认证信息等的安全/密码信息的附加防篡改保障。在一些实施方案中,硬件安全模块可用于支持一个或多个标准公钥基础设施(PKI),并可用于生成、管理或存储密钥对等。在一些实施方案中,HSM360可以是独立的网络计算机,在其他情况下,HSM360可以被布置为可以安装在网络计算机中的硬件卡。
[0098] 另外,在一个或多个实施方案(图中未示出)中,网络计算机300可包括嵌入式逻辑硬件设备而不是CPU,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)等,或其组合。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑以执行动作。此外,在一个或多个实施方案(图中未示出)中,网络计算机可以包括一个或多个硬件微控制器而不是CPU。在一个或多个实施方案中,一个或多个微控制器可直接执行它们自己的嵌入式逻辑以执行动作,并访问它们自己的内部存储器和它们自己的外部输入和输出接口(例如,硬件引脚或无线收发器)以执行动作,例如片上系统(SOC)等。
[0099] 说明性逻辑系统架构
[0100] 图4示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的交互式接口的系统400的逻辑架构。在各种实施方案中的一个或多个中,系统400可以是数据建模平台,其被布置成包括各种部件,包括:建模引擎402;可视化引擎404;可视化406;可视化模型408;数据模型410;数据源412;等。
[0101] 在各种实施方案中的一个或多个中,数据源412表示原始数据、记录、数据项目等的源,建模引擎402可以使用它们来使用户能够生成或修改数据模型,例如数据模型410。
[0102] 在各种实施方案中的一个或多个中,诸如数据模型410的数据模型可以是数据结构等,其提供存储在诸如数据源412的一个或多个数据源中的信息的一个或多个逻辑表示。在一些实施方案中,数据模型可以包括对应于数据源中的表、视图或文件的一个或多个部分的数据对象。例如,在一些实施方案中,如果数据源412是CSV文件或数据库,则诸如数据模型412的数据模型可以由一个或多个数据对象(可以对应于数据源412中的记录字段)组成。
[0103] 在各种实施方案中的一个或多个中,数据模型可以被布置成提供可以不同于底层数据源的数据源的逻辑表示。在一些实施方案中,这可以包括从数据模型中排除数据源的一个或多个字段。
[0104] 在一些实施方案中,可以采用诸如建模引擎402的建模引擎来将数据源412中的一些或所有转换成数据模型410。在一些实施方案中,建模引擎可以被布置成采用或执行由配置信息提供的计算机可读指令,以确定用于将数据源中的值转换成数据模型的一些或所有步骤。
[0105] 在各种实施方案中的一个或多个中,建模引擎可以被布置成帮助用户创建一个或多个数据模型,该数据模型可以基于数据源中的底层数据。
[0106] 因此,在一些实施方案中,建模引擎可以被布置成基于工作数据模型或一个或多个候选数据字段来推荐一个或多个可视化(或可视化模型)。
[0107] 在各种实施方案中的一个或多个中,可视化引擎(例如,可视化引擎404)可以被布置成采用可视化模型(例如可视化模型408)来确定可能显示给用户的可视化(例如,可视化406)的布局、样式、交互性等。而且,在一些实施方案中,可视化引擎可以被布置成采用经由数据源提供的数据项目值来用基于数据模型的值填充可视化。
[0108] 在各种实施方案中的一个或多个中,建模引擎可以被布置成接收可以用于自动数据模型生成的一个或多个搜索表达式。在一些实施方案中,可以向用户提供用于提供搜索表达式的用户界面,这些搜索表达式可以包括一个或多个关键词或一个或多个表达式。响应于提供的搜索表达式,建模引擎可以被布置成搜索现有的数据模型或数据源,以识别可能与提供的搜索表达式匹配的一个或多个数据字段。在一些实施方案中,建模引擎可以被布置成采用各种标准来确定匹配的数据字段。例如,对于一些实施方案,建模引擎可以被布置成将搜索表达式与多个数据模型中的不同数据字段的值进行比较,以确定可能包含与搜索表达式匹配的值的一个或多个数据字段。此外,例如,可以应用其他搜索或匹配策略,例如,匹配数据字段名称或标签,匹配其他数据模型中的数据对象名称或标签等。
[0109] 在各种实施方案中的一个或多个中,建模引擎可以被布置成确定与和搜索表达式匹配的数据字段相关联的一个或多个度量。在一些实施方案中,可以采用这些度量中的一个或多个来提供与每个匹配相关联的上下文信息。此外,在一些实施方案中,在向用户显示搜索结果之前,可以使用一个或多个度量来对一个或多个数据字段进行排序、排名或过滤。
[0110] 在各种实施方案中的一个或多个中,建模引擎可以被布置成支持可以采用各种不同查询风格或查询语言的搜索表达式,例如,正则表达式、字符串匹配、类SQL表达式、逻辑运算符(例如,AND、OR等)等。在一些实施方案中,建模引擎可以被布置成使用经由配置信息提供的语法、解析器、规则等来解释搜索表达式,以解释本地环境或本地要求。
[0111] 在各种实施方案中的一个或多个中,建模引擎可以被布置成使用户能够选择一个或多个候选数据字段来自动生成数据模型。在一些实施方案中,如果提供了数据字段,则建模引擎可以被布置成基于一个或多个选择的候选数据字段或工作数据模型,确定一个或多个推荐的可视化、一个或多个其他推荐的数据字段、询问共享一个或多个候选数据字段的数据模型的一个或多个查询或问题等。可以提供该信息来帮助用户确定候选数据字段是否应该包括在工作数据模型中。
[0112] 在各种实施方案中的一个或多个中,建模引擎可以被布置成确定可能适合于分析提供的数据字段的一个或多个可视化类型。在一些实施方案中,可以基于其他用户如何使用提供的数据字段或类似的数据字段,确定特定的可视化。在各种实施方案中的一个或多个中,建模引擎可以被布置成基于与数据字段相关联的数据类型,确定一些或所有推荐的可视化。例如,如果数据字段用于存储日期信息,则建模引擎可以被布置成推荐日历风格的可视化。同样,例如,如果数据字段用于存储地理值,例如,地址、GPS坐标、州名等,则建模引擎可以被布置成推荐包括地图或类似地图的特征的可视化。
[0113] 在各种实施方案中的一个或多个中,建模引擎可以被布置成评估用户的工作数据模型或所选择的数据字段,以确定在其他可视化中已经与所选择的数据字段一起使用的一个或多个其他数据字段。
[0114] 因此,在各种实施方案中的一个或多个中,建模引擎可以提供一个或多个建议,以基于它们在其他可视化或数据模型中的使用来选择额外数据字段,以包括工作数据模型。例如,如果选择了数据字段“州”,则如果建模引擎确定其他可视化将诸如利润、人口、销售计数等其他数据字段与“州”数据字段结合使用,则可以推荐这些其他数据字段。
[0115] 在各种实施方案中的一个或多个中,最初可以向用户提供“空的”工作数据模型。或者,在一些实施方案中,可以向用户提供包括一个或多个数据对象或数据字段的工作数据模型。这可能是因为他们已经向工作数据模型添加了一些数据对象或数据字段。或者,在各种实施方案中的一个或多个中,建模引擎可以被布置成使用户能够从基于已经包括数据对象的数据模型的工作数据模型开始。
[0116] 因此,在各种实施方案中的一个或多个中,当可以选择数据字段和可视化时,可以包括在可视化中的数据字段可以被自动添加到工作数据模型。因此,在一些实施方案中,可以使用户能够检查各种项目,例如,推荐的可视化、推荐的字段等,以确定候选数据字段可以被添加到工作数据模型。
[0117] 在各种实施方案中的一个或多个中,数据字段可以是数据对象的一部分。因此,在一些实施方案中,建模引擎可以被布置成将包括所选择的数据字段的数据对象添加到用户的工作数据模型中。
[0118] 在各种实施方案中的一个或多个中,建模引擎可以被布置成基于用户的工作数据模型中包括的数据对象或数据字段的组合来推荐可视化或数据字段。在各种实施方案中的一个或多个中,当数据字段或数据对象被添加到工作数据模型中时,建模引擎可以被布置成基于已经包括在工作数据模型中的一些或所有数据对象或数据字段来动态地修改其建议。
[0119] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用各种评估器或推荐模型,确定要推荐的一个或多个数据字段。在一些实施方案中,评估器或推荐模型可以是收集或包括一个或多个指令、规则、条件、机器学习分类器等的数据结构,建模引擎可以执行这些指令、规则、条件、机器学习分类器等,来评估数据字段或数据对象,以确定它们是否应该被推荐给用户。在各种实施方案中的一个或多个中,特定的评估器或推荐模型以及他们的一个或多个动作可以根据配置信息来确定,以解释本地要求或本地环境。
[0120] 此外,在各种实施方案中的一个或多个中,建模引擎可以被布置成确定可以向用户显示的流行数据字段和相关联的可视化的集合。在一些实施方案中,流行数据字段可以在用户界面上的标签面板中显示,并且相关联的可视化的缩略图可以在显示面板中显示。因此,不是提供自由形式的搜索表达式,而是可以使用户能够直接从用户界面中的标签面板中选择一个或多个流行数据字段。在一些实施方案中,可以在没有数据模型或其他上下文的情况下显示流行数据字段。在一些实施方案中,这可以使用户能够专注于流行数据字段,而不是被包括流行数据字段的数据模型的结构或设计分散注意力。
[0121] 因此,在各种实施方案中的一个或多个中,当用户从标签面板中选择流行数据字段时,建模引擎可以被布置成采用所选择的数据字段来自动生成搜索表达式,该搜索表达式可以被用来识别一个或多个可视化以供推荐。此外,在一些实施方案中,建模引擎可以被布置成使得能够在标签面板中选择多个流行数据字段。因此,在一些实施方案中,可以结合使用流行数据字段的集合来确定一个或多个推荐的可视化。
[0122] 图5A示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的用户界面500的一部分的逻辑表示。在一些实施方案中,用户界面500可以被布置成包括一个或多个面板,例如,模型面板502和显示面板504等。
[0123] 在各种实施方案中的一个或多个中,用户界面500可以在一个或多个硬件显示器上显示,例如,客户端计算机显示器、移动设备显示器等。在一些实施方案中,可以经由本地应用或者作为在网络浏览器中托管的网络应用或其他类似应用来提供用户界面500。本领域的普通技术人员将理解,至少为了清楚或简洁,从用户界面500中省略了商业/生产用户界面共有的许多细节。同样,在一些实施方案中,根据本地环境或本地要求,例如显示器类型、显示器分辨率、用户偏好等,可以不同于所示出的方式布置用户界面。然而,本领域普通技术人员将理解,用户界面500的公开/描述至少足以公开本文包括的创新。
[0124] 在一些实施方案中,模型面板(例如,模型面板502)可用于显示与推荐数据字段、搜索表达式等相关联的信息。此外,在一些实施方案中,模型面板502可以被布置成显示工作数据模型。在该实施例中,除了能够提供搜索表达式的用户界面控件(例如,搜索控件506)之外,模型面板502是空的。在这个实施例中,模型面板502被显示为空的,以表示用户已经启动了数据建模会话,但是他们还没有输入任何搜索表达式。
[0125] 在各种实施方案中的一个或多个中,显示面板504可以被布置成显示可视化或推荐的可视化。因此,在一些实施方案中,当用户评估不同的数据字段时,可以在显示面板504中显示与推荐的可视化、推荐的数据字段等相关联的缩略图。同样,在一些实施方案中,如果用户已经从可用的推荐可视化中选择了可视化,则该可视化可以用作可以在显示面板504中显示的工作可视化的基础。
[0126] 在各种实施方案中的一个或多个中,用户界面500中可以包括额外面板,包括用于修改用来表示可视化中的值的标记的面板等。例如,在一些实施方案中,如果用户正在设计产生在地图上示出位置(点)的可视化的数据模型,则可以添加诸如大小、收入、利润等额外字段,作为可以应用于地图中的点的颜色或大小值。例如,可以使用比与更少利润相关联的位置成比例更大的标记来显示地图上与更多利润相关联的位置的标记。
[0127] 图5B示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的用户界面500的一部分的逻辑表示。为了简洁和清楚,此处不再重复上面针对图5A描述的用户界面500的元素或行为。
[0128] 在该实施例中,搜索控件506包括产生结果512的搜索表达式。因此,在一些实施方案中,结果512中示出的字段表示来自各种数据模型的具有与搜索表达式“华盛顿”匹配的值的数据字段。如该实施例中所示,具有四个字段,每个字段都包含与搜索表达式匹配的值。
[0129] 在各种实施方案中的一个或多个中,可以使用户能够立即查看可能与搜索表达式相关联的候选数据字段。在某些情况下,用户可能不知道一个或多个候选数据字段。同样,一个或多个候选数据字段可能被用户认为是不相关的。
[0130] 在一些实施方案中,建模引擎可以被布置成响应于用户与结果512中的候选数据字段的交互来生成或显示字段面板,例如,字段面板508。在这个实施例中,指针510的位置表示用户“悬停”在候选数据字段标签上。因此,在一些实施方案中,建模引擎可以被布置成生成字段面板,例如,字段面板508,并用关于所选择的候选数据字段的信息填充。在这个实施例中,所选择的候选数据字段是“产品名称”,并且字段面板508中显示的信息示出了关于该字段的信息,例如,数据类型(字符串)、数据源信息(列、表、数据库)、由所选择的数据字段保存的其他值等。此外,在一些实施方案中,字段面板508可以包括与所选择的候选数据字段相关联的度量或使用数据,例如,在其数据模型中包括数据字段的可视化的数量的计数、使用数据字段的可视化的缩略图等。
[0131] 在该实施例中,字段信息514包括诸如数据类型、数据源信息等信息。此外,在该实施例中,域信息516示出了数据字段的其他值。在一些实施方案中,建模引擎可以被布置成使用户能够浏览域信息来查看一个或多个值,以帮助他们确定该数据字段是否表示他们可能想要包括在他们的工作数据模型中的对象的类型。
[0132] 图5C示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的用户界面500的一部分的逻辑表示。出于简洁和清楚的原因,此处不再重复上面针对图5A或图5B描述的用户界面500的元素或行为。
[0133] 如上所述,在一些实施方案中,建模引擎可以被布置成使用户能够使用指针510来从结果512中选择候选数据字段。在该实施例中,指针510可以被认为是悬停在结果512中的州数据字段上。因此,在一些实施方案中,建模引擎可以被布置成显示字段面板508,并基于州数据字段用值填充该字段面板。因此,在该实施例中,字段信息520可以指示州数据字段包含来自名为客户的数据库中名为“位置”的表格的表示地理州的字符串值。此外,在该实施例中,域信息522指示与州数据字段相关联的值包括美国各州的名称。而且,在该实施例中,使用信息524可以包括诸如使用包括州数据字段的数据模型的可视化的数量以及使用州数据字段的可视化的一个或多个缩略图等信息。
[0134] 因此,在各种实施方案中的一个或多个中,建模引擎使得用户能够快速评估与搜索表达式匹配的一个或多个候选数据字段是否适合包括在他们的数据模型中。
[0135] 图5D示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的用户界面500的一部分的逻辑表示。出于简洁和清楚的原因,此处不再重复上面针对图5A、图5B或图5C描述的用户界面500的元素或行为。
[0136] 在各种实施方案中的一个或多个中,建模引擎可以被布置成使用户能够从各种字段集合中选择数据字段,例如,结果512、流行字段532或数据模型530。
[0137] 在一些实施方案中,建模引擎可以被布置成自动将来自结果512、流行字段532等的字段添加到工作数据模型。在该实施例中,工作数据模型530可以在模型面板502中显示。在一些实施方案中,建模引擎可以被布置成在用户选择候选数据字段时将候选数据字段添加到工作数据模型中。此外,在各种实施方案中的一个或多个中,建模引擎可以被布置成当用户取消选择或以其他方式移除数据字段时,从工作数据模型中移除数据字段。
[0138] 例如,在这个实施例中,用户已经选择了州数据字段,如指针510所示。在各种实施方案中的一个或多个中,如果用户从结果512中选择了州数据字段(参见图5C),则建模引擎可以被布置成从结果512中移除州数据字段,并将其添加到工作数据模型530中,如此处所示。在一些实施方案中,如果用户释放或以其他方式取消选择州数据字段,则建模引擎可以被布置成将其从工作数据模型530中移除,并将其返回到结果512。在一些实施方案中,如果州数据字段与另一字段(未示出)或可视化相关联,则建模引擎可以被布置成让州数据字段保留在数据模型530中,而不是将其还原到结果512。
[0139] 在各种实施方案中的一个或多个中,建模引擎可以被布置成确定一个或多个可视化、可视化类型、其他数据字段等,以推荐给用户。在一些实施方案中,推荐可以基于所选择的数据字段、工作数据模型、其他数据模型、与其他可视化或数据字段相关联的使用度量/历史等的一个或多个特征。
[0140] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用推荐模型,确定应该推荐给用户的可视化、可视化类型、其他数据字段等。在各种实施方案中的一个或多个中,推荐模型可以表示数据结构、规则、指令等,建模引擎可以使用这些数据结构、规则、指令等来确定向用户推荐哪些可视化、可视化类型、其他数据字段等。
[0141] 在各种实施方案中的一个或多个中,不同类别的推荐可以与不同的推荐模型相关联。因此,在一些实施方案中,推荐模型可以基于它们可能针对的推荐的类别来调整。此外,在一些实施方案中,推荐模型可以被调整或以其他方式修改,以满足组织的本地要求。例如,在一些实施方案中,组织可以故意排除向一个或多个用户推荐一个或多个可视化、可视化类型、其他数据字段等。例如,在一些实施方案中,一个或多个可视化或数据模型可以包括或表示只有指定用户可以访问的敏感或受限信息。因此,在一些实施方案中,推荐模型可以被配置为出于各种原因包括或排除推荐。此外,在一些实施方案中,可以提供新的或额外的推荐模型,因为可以引入不同的或新的可视化、数据模型、数据源等。因此,在各种实施方案中的一个或多个中,建模引擎可以被布置成采用可以经由配置信息来提供以解释本地要求或本地环境的推荐模型、推荐规则等。
[0142] 在该实施例中,建模引擎可以被布置成基于评估所选择的数据字段(例如,州)、工作数据模型、工作可视化、其他数据模型、其他可视化等的一个或多个特征的一个或多个推荐模型,确定可视化类型526和推荐字段528。
[0143] 在该实施例中,可视化类型526可以包括不同可视化类型的缩略图,同可视化类型的缩略图可以被推荐用于可视化州数据字段。例如,在各种实施方案中的一个或多个中,可视化类型526可以包括各种可视化的缩略图,例如,填充(彩色)地图、其他地图、列表/表格等。
[0144] 同样,在该实施例中,推荐字段528可以包括可视化的缩略图,该可视化可以与被推荐包括在包括州数据字段的数据模型或可视化中的数据字段相关联。例如,在各种实施方案中的一个或多个中,推荐字段528可以包括各种可视化的一个或多个缩略图,这些可视化包括相应的推荐数据字段,例如,利润、利润比率、订单计数、售出的项目等。在各种实施方案中的一个或多个中,一个或多个推荐数据字段可以来自不同的数据模型或不同的数据源。
[0145] 在一些实施方案中,推荐可以包括支持推荐的基于文本的描述或注释。在一些实施方案中,推荐模型可以被布置成提供推荐信息,该推荐信息可以包括文本、图像、度量等。因此,建模引擎可以被布置成在显示面板中显示一些或全部推荐信息。此外,在一些实施方案中,建模引擎可以被布置成采用经由配置信息提供的用户界面布局、样式、用户界面行为等,以使得显示外观能够适应本地环境或本地要求。例如,可视化类型526或推荐字段528等可以与基于配置信息确定的交互式控件(例如,滚动条等)、字体、颜色等一起显示。
[0146] 图5E示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的用户界面500的一部分的逻辑表示。出于简洁和清楚的原因,此处不再重复上面针对图5A、图5B、图5C或图5D描述的用户界面500的元素或行为。
[0147] 在这个实施例中,从图5D继续,州数据字段已经被“下拉”到一个推荐的可视化类型中。因此,在各种实施方案中的一个或多个中,州数据字段被添加到工作数据模型530,并且工作可视化534是使用地图可视化类型(表示所选择的可视化类型)生成的。在该实施例中,工作可视化534的第一实例显示了示出其各州的美国地图。在此处,在该实施例中,建模引擎可以被配置为显示地理区域(例如,州、省、县、乡等)的地图,作为对用表示地理区域的数据字段初始化的默认响应。在一些实施方案中,可视化的默认或初始外观可以取决于数据模型或工作数据模型。因此,在各种实施方案中的一个或多个中,用于初始化可视化的特定默认规则或假设可以通过经由配置信息提供的规则、指令等来确定。
[0148] 在各种实施方案中的一个或多个中,建模引擎可以被布置成使用户能够向他们的工作数据模型添加更多的数据字段。在一些实施方案中,建模引擎可以被布置成在用户包括或移除数据字段时连续更新工作数据模型。此外,在一些实施方案中,也可以使用户能够连续地改变可视化类型等。因此,在一些实施方案中,建模引擎可以被布置成基于用户交互或用户输入来更新工作数据模型、工作可视化、推荐信息等。
[0149] 在这个实施例中,利润数据字段已经从流行字段532中选择并被添加到工作数据模型530中。因此,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于添加的字段的特征或修改的工作数据模型的特征,自动更新工作可视化534、推荐信息等。在该实施例中,对于一些实施方案,将利润数据字段添加到工作数据模型530已经触发建模引擎来更新工作可视化534,以显示可能与每个美国州相关联的利润量。注意,这种默认行为是可能的,因为利润和州之间存在关系,建模引擎可以从可用的数据模型或数据源中识别这种关系。
[0150] 在各种实施方案中的一个或多个中,如果数据字段可以被添加到工作数据模型,则其包含的数据对象可以被添加到工作数据模型,而不仅仅是单独的数据字段。在一些实施方案中,添加到工作数据模型的数据对象中的一些或所有额外数据字段可以在模型面板中显示。在一些实施方案中,可以提供一个或多个用户界面控件(未示出),以使用户能够显示或隐藏模型面板中显示的数据对象中的一些或所有数据字段。在该实施例中,建模引擎可以被配置为隐藏在工作可视化中未明确示出的数据字段。
[0151] 图6示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的用户界面600的一部分的逻辑表示。出于简洁和清楚的原因,此处不再重复上面针对图5A等描述的用户界面500的元素或行为。
[0152] 在一些实施方案中,用户界面(例如,用户界面600)可以被布置成包括标签面板,例如,标签面板602、显示面板604等。
[0153] 在各种实施方案中的一个或多个中,建模引擎可以被布置成提供标签面板,例如,标签面板602,其可以包括表示一个或多个流行或推荐的数据字段的交互式标签或按钮。
[0154] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用一个或多个推荐模型来选择可以在标签面板中表示的数据字段。如上所述,推荐模型(未示出)表示数据结构、代码、指令、分类器、评估器等,建模引擎可以使用这些数据结构、代码、指令、分类器、评估器等来确定要包括在标签面板(例如,标签面板602)中的一个或多个数据字段(流行数据字段)。
[0155] 此外,在各种实施方案中的一个或多个中,建模引擎可以被布置成确定一个或多个可视化,例如,可以与标签面板中包括的流行数据字段相关联的可视化606。在一些实施方案中,可以使用被推荐的可视化或可视化类型的缩略图表示来显示所确定的可视化。
[0156] 在一些实施方案中,可以使用户能够交互地从标签面板中选择流行的数据字段,或者从显示面板中选择可视化。在一些实施方案中,当选择数据字段时,建模引擎可以被布置成采用所选择的数据字段作为过滤器,以从可视化606中包括或排除可视化。例如,如果用户首先选择标签面板602中的州数据字段,则建模引擎可以被布置成从可视化606中排除与州数据字段不相关联的可视化。同样,在该实施例中,如果用户选择额外字段,则建模引擎可以被布置成采用所选择的数据字段的整个集合作为过滤器来排除或包括可视化606中所示的可视化。注意,虽然此处未示出,但是标签面板(例如,标签面板602)可以包括额外的/替换的用户界面控件(例如,切换按钮等),其使得过滤器的效果能够反转。此外,在一些实施方案中,可以经由搜索控件608等提供额外的过滤信息,作为搜索表达式。
[0157] 此外,在各种实施方案中的一个或多个中,建模引擎可以被布置成使用户能够从可视化606中选择一个或多个可视化。因此,在一些实施方案中,所选择的可视化可以用作应用于标签面板中所示的数据字段的过滤器。例如,如果用户从可视化606中选择可视化,则建模引擎可以被布置成从标签面板中移除数据字段,除非它们已经包括在与所选择的可视化相关联的数据模型中。在一些实施方案中,当可以选择额外的可视化时,可以将与那些选择的可视化相关联的数据字段添加到标签面板。
[0158] 因此,在一些实施方案中,可以使用户能够快速且直观地探索数据模型、数据字段、可视化等,而无需对底层数据源、数据模型等有深入的了解或理解。
[0159] 在一些实施方案中,建模引擎可以被布置成使得能够选择或激活从可视化606中选择的可视化,用于自动数据模型生成,如图5A至图5E等所描述的。
[0160] 通用操作
[0161] 图7至图10表示根据各种实施方案中的一个或多个的用于自动数据模型生成的通用操作。在各种实施方案中的一个或多个中,结合图7至图10描述的过程700、800、900和1000可以由单个网络计算机(例如图3的网络计算机300)上的一个或多个处理器实现或执行。在其他实施方案中,这些过程或其部分可以由多个网络计算机(例如图3的网络计算机
300)实现或在其上执行。在又一其他实施方案中,这些过程或其部分可以由一个或多个虚拟化计算机(例如基于云的环境中的那些虚拟化计算机)实现或在其上执行。然而,实施方案不限于此,并且可以利用网络计算机、客户端计算机等的各种组合。此外,在各种实施方案中的一个或多个中,结合图7至图10描述的过程可以根据诸如结合图4至图6描述的各种实施方案或者架构中的至少一个用于自动数据模型生成。此外,在各种实施方案中的一个或多个中,由过程700、800、900和1000执行的一些或所有动作可以由运行在一个或多个网络计算机的一个或多个处理器上的建模引擎322、可视化引擎324等部分执行。
[0162] 图7示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的过程700的概览流程图。在开始框之后,在开始框702,在各种实施方案中的一个或多个中,可以将数据源或一个或多个数据模型提供给建模引擎。在各种实施方案中的一个或多个中,组织可以具有基于已经用于可视化的各种数据源的许多数据模型。在各种实施方案中的一个或多个中,这些数据模型或数据源可以由不同的部门或作者提供。在某些情况下,其他用户可能不知道其中的一些或许多数据模型。因此,在一些实施方案中,提供对来自组织的其他数据模型的访问可以使得建模引擎能够生成关于哪些数据字段或数据对象要包括在其数据模型中的建议。
[0163] 在各种实施方案中的一个或多个中,建模引擎可以被配置为将一个或多个数据源或数据模型限于某些用户或用户组。例如,某些数据模型或数据源可能仅限于特定部门或特定角色的员工。因此,在一些实施方案中,建模引擎可以被布置成采用经由配置信息提供的规则、指令、访问列表等来确定可以允许哪些用户访问给定的数据模型或数据源。
[0164] 在框704,在各种实施方案中的一个或多个中,建模引擎可以被布置成生成用户界面,该用户界面可以包括一个或多个模型面板、一个或多个显示面板等。
[0165] 在各种实施方案中的一个或多个中,用户界面可以包括各种不同的面板,包括用于显示诸如候选数据字段、搜索结果、工作数据模型等信息的模型面板。
[0166] 在各种实施方案中的一个或多个中,可以采用显示面板来显示与推荐的可视化或可视化类型、额外字段等相关联的缩略图。此外,在一些实施方案中,建模引擎可以被布置成在设计工作可视化或工作数据模型时采用显示面板来显示工作可视化。
[0167] 在各种实施方案中的一个或多个中,用户界面或用户界面中的面板的特定布局可以根据本地偏好而变化。因此,在一些实施方案中,建模引擎可以被布置成采用经由配置信息提供的模板、规则、布局信息、样式等来确定用户界面的布局、外观或样式。
[0168] 在框706,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于可以在用户界面上的模型面板中显示的一个或多个搜索表达式来确定一个或多个数据字段。如上所述,建模引擎可以被布置成采用各种评估器或推荐模型来基于搜索表达式确定一个或多个候选数据字段。
[0169] 在框708,在各种实施方案中的一个或多个中,建模引擎可以被布置成生成包括由模型面板提供的一个或多个数据字段的工作数据模型。当可以选择候选数据字段时,建模引擎可以将所选择的候选数据字段及其相关联的数据对象添加到工作数据模型中。在这个上下文中,工作数据模型是用户主动建模的数据模型。
[0170] 在框710,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于工作数据模型,确定一个或多个推荐的可视化、可视化类型、其他数据字段等。随着工作数据模型的开发,建模引擎可以被布置成自动评估其他数据模型、其他可视化、其他查询等,以提供用于包括在工作数据模型中的一个或多个推荐。在各种实施方案中的一个或多个中,建模引擎可以基于工作数据模型和先前创作的可视化或数据模型推荐可视化类型、可视化、要包括的额外字段、额外查询等中的一个或多个。
[0171] 在框712,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于工作数据模型生成工作可视化。在各种实施方案中的一个或多个中,当用户与工作数据模型交互时,他们可以选择或激活一个或多个工作可视化。在一些实施方案中,用户可以从或基于建模引擎推荐的一个或多个可视化或可视化类型来选择工作可视化。或者,在一些实施方案中,用户可以经由另一搜索工具或搜索目录选择工作可视化或可视化类型。
[0172] 接下来,在各种实施方案中的一个或多个中,控制可以返回到调用过程。
[0173] 图8示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的过程800的流程图。在开始框之后,在开始框802,在各种实施方案中的一个或多个中,可以在用户界面中提供或显示数据源、一个或多个数据模型、模型面板、显示面板等。
[0174] 在各种实施方案中的一个或多个中,建模引擎可以被布置成提供一个或多个搜索控件,这些搜索控件使得用户能够提供一个或多个搜索表达式,这些搜索表达式可以用于识别可能是其他数据模型的一部分的候选数据字段。
[0175] 在各种实施方案中的一个或多个中,建模引擎可以被布置成提供一个或多个API,这些API使得外部服务或应用能够提交搜索表达式或接收搜索结果信息。
[0176] 在判定框804,在各种实施方案中的一个或多个中,如果可以提供搜索表达式,则控制可以流向框806;否则,控制可以循环回到判定框804。在各种实施方案中的一个或多个中,建模引擎可以被布置成支持各种查询类型或查询语言。在一些实施方案中,建模引擎可以被布置成支持复合搜索表达式,这些复合搜索表达式可以由两个或更多个其他搜索表达式组成。
[0177] 在各种实施方案中的一个或多个中,建模引擎可以被布置成支持可以基于各种查询语言、形式语法等的搜索表达式。例如,在一些实施方案中,建模引擎可以被布置成支持类似SQL的搜索表达式、正则表达式、布尔表达式、定制查询语言等。因此,在各种实施方案中的一个或多个中,建模引擎可以被布置成采用经由配置信息提供的规则、语法、解析器等,以解释本地环境或本地要求。
[0178] 在框806,在各种实施方案中的一个或多个中,建模引擎可以被布置成确定与搜索表达式匹配的一个或多个候选数据字段。在各种实施方案中的一个或多个中,建模引擎可以被布置成将搜索表达式解析或解释成一个或多个查询动作,可以执行这些查询动作,以确定一个或多个数据字段。
[0179] 在各种实施方案中的一个或多个中,建模引擎可以被布置成基于与数据字段和搜索表达式相关联的值的匹配来确定其他数据模型中的一个或多个数据字段。例如,在一些实施方案中,如果搜索表达式是单词“华盛顿”,则建模引擎可以确定具有包括单词“华盛顿”的值的数据字段集合。同样,例如,可以采用包括“华盛顿或俄勒冈州”的搜索表达式来识别具有可能与华盛顿或俄勒冈州匹配的值的数据字段。而且,例如,在一些实施方案中,基于正则表达式的搜索表达式(例如,“^Washing.*”等)可用于识别具有以“Washing”开始的值的数据字段,例如,具有值“华盛顿”的数据字段和具有值“洗衣机”的数据字段。此外,在各种实施方案中的一个或多个中,建模引擎可以被布置成支持定制搜索表达式语言或语法。
[0180] 在框808,在各种实施方案中的一个或多个中,建模引擎可以被布置成生成与一个或多个候选数据字段相关联的一个或多个度量。在各种实施方案中的一个或多个中,建模引擎可以被布置成确定或生成一个或多个度量,这些度量可以提供使用户能够确定候选数据字段是否应该被添加到工作数据模型的上下文。
[0181] 在各种实施方案中的一个或多个中,建模引擎可以被布置成提供度量,例如,包括或引用数据字段的可视化的数量、数据源信息(例如,列名、表名、数据库名等)等。在一些实施方案中,其他度量可以包括自上次使用或查看以来的日期、包括或引用数据字段的数据模型的数量等。
[0182] 在框810,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于一个或多个度量对候选数据字段进行排序。
[0183] 在各种实施方案中的一个或多个中,建模引擎可以被布置成包括一个或多个评估器或推荐模型,可以执行该评估器或推荐模型,以提供排名值或排名分数。在各种实施方案中的一个或多个中,排名分数可以是隐含的或者基于其他度量,例如,上周的观看次数等。因此,在一些实施方案中,如果排名分数与候选数据字段相关联,则该分数可用于相对于其他候选数据字段对候选数据字段进行排名。或者,在各种实施方案中的一个或多个中,建模引擎可以被布置成直接基于候选数据字段的相关联的度量或与候选数据字段相关联的其他特征来对候选数据字段进行排名和排序。
[0184] 在框812,在各种实施方案中的一个或多个中,建模引擎可以被布置成在模型面板中显示一个或多个候选字段。在各种实施方案中的一个或多个中,建模引擎可以在用户界面中显示一些或所有确定的候选数据字段。在一些实施方案中,候选数据字段可以在模型面板中显示。
[0185] 在各种实施方案中的一个或多个中,建模引擎可以被布置成如果一些或所有候选数据字段的排名低于阈值排名值,则从显示中排除这些或所有候选数据字段。此外,在各种实施方案中的一个或多个中,可以采用与排名分离的热标准来确定可以显示哪些候选数据字段或者可以从显示中排除哪些候选数据字段。例如,建模引擎可以被配置为排除超过120天未使用的候选数据字段等。
[0186] 接下来,在各种实施方案中的一个或多个中,控制可以返回到调用过程。
[0187] 图9示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的过程900的流程图。在开始框之后,在开始框902,在各种实施方案中的一个或多个中,可以提供候选数据字段。如上所述,建模引擎可以被布置成使得能够评估模型面板中显示的一个或多个数据字段,以包括在工作数据模型中。
[0188] 在框904,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于所选择的数据字段,确定一个或多个推荐的可视化。如上所述,建模引擎可以被布置成执行一个或多个动作,来确定要推荐的一个或多个可视化或可视化类型。
[0189] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用一个或多个推荐模型,确定推荐的可视化集合。
[0190] 在各种实施方案中的一个或多个中,所选择的数据字段的数据类型可以基于静态规则或默认与特定的可视化类型相关联。此外,在各种实施方案中的一个或多个中,可以基于所选择的数据字段或可能存在于工作数据模型中的其他数据字段(如果有的话)来确定一个或多个可视化类型。
[0191] 在框906,在各种实施方案中的一个或多个中,建模引擎可以被布置成确定可以一个或多个常见或流行数据字段,可以推荐这些字段,以包括在工作数据模型中。如上所述,建模引擎可以被布置成执行一个或多个动作,来确定要推荐的一个或多个数据字段。
[0192] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用一个或多个推荐模型,确定推荐数据字段的集合。
[0193] 在各种实施方案中的一个或多个中,可以基于所选择的数据字段或可能存在于工作数据模型中的其他数据字段(如果有的话)来确定一个或多个推荐的数据字段。
[0194] 在框908,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于提供的数据字段或工作数据模型,确定一个或多个常见问题或常见查询。类似于确定推荐的可视化或推荐的数据字段,建模引擎可以被布置成采用一个或多个推荐模型,确定用户可能感兴趣的一个或多个问题或查询。
[0195] 在框910,在各种实施方案中的一个或多个中,建模引擎可以被布置成显示推荐的可视化、可视化类型、推荐的流行数据字段、推荐的问题或查询等的一个或多个缩略图。
[0196] 在判定框912,在各种实施方案中的一个或多个中,如果可以选择缩略图,则控制可以流向框914;否则,控制可以循环回到框910。在各种实施方案中的一个或多个中,可以使用户能够选择一个或多个缩略图。在某些情况下,可以通过从模型面板中选择数据字段并将其与一个缩略图相关联来进行选择。例如,用户界面可以使用户能够将数据字段从工作数据模型拖放到一个或多个推荐缩略图。
[0197] 在框914,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于所选择的缩略图和工作数据模型,生成和显示工作可视化。在各种实施方案中的一个或多个中,如果已经给建模引擎提供了足够的信息来生成工作可视化,则可以这样做。在一些实施方案中,提供工作数据模型以及将数据字段与推荐缩略图相关联可以提供足够的信息来生成和显示工作可视化。
[0198] 图10示出了根据各种实施方案中的一个或多个的用于自动数据模型生成的过程1000的流程图。在开始框之后,在开始框1002,在各种实施方案中的一个或多个中,建模引擎可以被布置成在用户界面上的标签面板中显示一个或多个常见/流行数据字段(以下称为流行数据字段)。
[0199] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用一个或多个评估器或推荐模型来识别可以在标签面板中显示的一个或多个流行字段。在一些实施方案中,可以基于一个或多个度量或特征来确定“流行度”,例如,可以包括或引用数据字段的数据模型的数量、可视化等。同样,在一些实施方案中,可以部分基于用户采用或查看包括或引用给定数据字段的可视化的次数来确定流行度。
[0200] 在一些实施方案中,如果工作数据模型是可用的或被引用的,则建模引擎可以被布置成采用工作数据模型的一个或多个特征来确定一个或多个流行数据字段。
[0201] 在各种实施方案中的一个或多个中,可以使用交互式用户界面控件在标签面板中显示流行数据字段,这些控件使得用户能够从标签面板中选择一个或多个流行数据字段。在一些实施方案中,这样的用户界面控件可以包括按钮、列表框等。
[0202] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用经由配置信息提供的规则或指令来确定用于识别流行数据字段的评估器或推荐模型。同样,在一些实施方案中,建模引擎可以被布置成基于配置信息来确定排序顺序、流行度阈值、标签面板布局等,以解释本地环境或本地要求。
[0203] 在框1004,在各种实施方案中的一个或多个中,建模引擎可以被布置成在显示面板中显示与一个或多个流行数据字段相关联的可视化的一个或多个缩略图。在各种实施方案中的一个或多个中,建模引擎可以被布置成确定采用包括或引用一个或多个流行字段的数据模型的一个或多个可视化。此外,在各种实施方案中的一个或多个中,如果可能有许多相关联的可视化,则建模引擎可以被布置成基于各种标准对可视化进行排序。因此,在各种实施方案中的一个或多个中,可以从显示中排除可能低于给定等级的可视化。例如,在一些实施方案中,可以考虑包括或引用两个或更多数据字段的可视化,以在仅包括或引用一个流行数据字段的可视化上显示。
[0204] 因此,在各种实施方案中的一个或多个中,建模引擎可以被布置成采用一个或多个推荐模型,确定哪些可视化应该包括在所显示的可视化缩略图的集合中。
[0205] 在各种实施方案中的一个或多个中,建模引擎可以被布置成基于经由配置信息提供的规则或指令来确定包括哪些可视化,以解释本地要求或本地环境。
[0206] 在判定框1006,在各种实施方案中的一个或多个中,如果可以从标签面板中选择一个或多个数据字段,则控制可以流向框1008;否则,控制可以循环回到框1004。在一些实施方案中,当可以选择流行数据字段时,建模引擎可以被布置成改变流行数据字段、标签面板等的外观或样式,以相对于未选择的数据字段强调选择的流行数据字段。例如,所选择的数据字段可以移动到标签面板的一侧,或者其外观可以改变,以指示已经选择这些数据字段。
[0207] 在框1008,在各种实施方案中的一个或多个中,建模引擎可以被布置成确定与提供的数据字段相关联的一个或多个可视化。类似于针对框1004描述的动作,建模引擎可以被布置成基于当前选择的流行数据字段来选择一个或多个可视化。在各种实施方案中的一个或多个中,所选择的流行数据字段可以用作过滤器,以确定要显示的一个或多个可视化。此外,在一些实施方案中,所选择的流行数据字段可以用作过滤器,以排除一个或多个可视化。
[0208] 在各种实施方案中的一个或多个中,建模引擎可以被布置成确定包括或引用所选择的流行数据字段的一个或多个可视化。
[0209] 在框1010,在各种实施方案中的一个或多个中,建模引擎可以被布置成更新哪些可视化可以在显示面板中显示。在各种实施方案中的一个或多个中,建模引擎可以被布置成自动更新推荐的可视化,以包括可以与过滤器中的一个或多个流行数据字段相关联的一个或多个可视化。同样,在一些实施方案中,可以从显示中排除可能与过滤器中的一个或多个流行数据字段不相关联的一个或多个可视化。
[0210] 在判定框1012,在各种实施方案中的一个或多个中,如果可以选择可视化,则控制可以流向框1014;否则,控制可以循环回到1002。在各种实施方案中的一个或多个中,可以使用户能够从所显示的可视化缩略图中选择可视化。
[0211] 在框1014,在各种实施方案中的一个或多个中,建模引擎可以被布置成基于一个或多个所选择的可视化来确定要在标签面板中显示的一个或多个数据字段。
[0212] 在各种实施方案中的一个或多个中,当可以选择可视化时,建模引擎可以确定一个或多个数据字段,这些数据字段可以被与所选择的可视化相关联的数据模型包括或引用。
[0213] 在各种实施方案中的一个或多个中,建模引擎可以被布置成采用用户界面特征或样式来指示标签面板中的数据字段是否可以与一个或多个所选择的可视化相关联。
[0214] 接下来,在各种实施方案中的一个或多个中,控制可以返回到调用过程。
[0215] 应当理解,每个流程图图示中的每个框以及每个流程图图示中的框的组合可以通过计算机程序指令来实现。这些程序指令可以提供给处理器以产生机器,使得在处理器上执行的指令创建用于实现每个流程图框中指定的动作的装置。计算机程序指令可由处理器执行以使处理器执行一系列操作步骤以产生计算机实现的处理,使得在处理器上执行的指令提供用于实现每个流程图框中指定的动作的步骤。计算机程序指令还可以使每个流程图的框中所示的操作步骤中的至少一些并行执行。此外,步骤中的一些也可以跨一个以上的处理器执行,例如可能出现在多处理器计算机系统中。此外,在不脱离本发明的范围或精神的情况下,每个流程图图示中的一个或多个框或框的组合也可以与其他框或框的组合同时执行,或者甚至以与图示不同的顺序执行。
[0216] 因此,每个流程图图示中的每个框支持用于执行指定动作的装置的组合、用于执行指定动作的步骤的组合和用于执行指定动作的程序指令装置。还将理解,每个流程图图中的每个框和每个流程图图中的框的组合可以由执行指定动作或步骤的基于特殊目的硬件的系统或特殊目的硬件和计算机指令的组合来实现。前述实施例不应被解释为限制性或穷尽性,而是说明性用例,以示出本发明的各种实施方案中的至少一个实施方案的实现。
[0217] 此外,在一个或多个实施方案(图中未示出)中,可以使用嵌入式逻辑硬件设备代替CPU,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)等或其组合来执行说明性流程图中的逻辑。嵌入式逻辑硬件设备可以直接执行其嵌入式逻辑以执行动作。在一个或多个实施方案中,微控制器可以被布置成直接执行其自身的嵌入式逻辑以执行动作,并访问其自身的内部存储器和其自身的外部输入和输出接口(例如,硬件引脚或无线收发器)以执行动作,例如片上系统(SOC)等。