非结构化UI的制作方法

文档序号:11333778阅读:241来源:国知局
非结构化UI的制造方法与工艺

优先权申请

本申请要求2015年3月24日提交的美国申请序列号14/667,222的优先权的权益,所述美国申请通过引用以其全部内容结合在此。

本文所描述的实施例总体上涉及数据组织和呈现,并且特别涉及一种非结构化用户界面。



背景技术:

非结构化数据指没有预定义数据模型或以其他方式未被组织的信息。对非结构化数据进行捕获和组织是一项困难的任务。

附图说明

在不必按比例绘制的附图中,相同标号可以描述不同视图中的类似部件。具有不同字母后缀的相同标号可以表示类似部件的不同实例。一些实施例以举例的方式被展示并且不限于附图中的图,在附图中:

图1是根据实施例的展示了用于捕获、分析、和呈现非结构化数据的系统的示意图;

图2是根据实施例的展示了解析非结构化数据的过程的数据流程图;

图3是根据实施例的电子输入调色板的示例;

图4a至图4c根据实施例展示了随着时间推移的输入;

图5根据实施例展示了数据组的实例;

图6根据实施例展示了所生成的数据库结构;

图7根据实施例展示了示例用户界面;

图8是根据实施例的如何可以通过数据类型来对记录进行组织的示例;

图9根据实施例展示了具有列标题的数据结构;

图10是根据实施例的展示了处理离群值数据的方法的流程图;

图11根据实施例展示了示例用户界面;

图12根据实施例展示了修正后的图11的用户界面;

图13根据实施例展示了根据图12进行修正后的具有列标题的数据结构;

图14根据实施例展示了修正后的图12的用户界面;

图15是根据实施例的展示了一种用于实现非结构化用户界面的系统的框图;

图16是根据实施例的展示了一种实现非结构化用户界面的方法的流程图;以及

图17是根据示例实施例的展示了示例机器的框图,在所述机器上可以执行本文所讨论的技术(例如,方法)中的任何一种或多种技术。

具体实施方式

本文所描述的系统和方法提供了一种用于非结构化数据的用户界面。根据定义,非结构化数据具有很少的或没有底层数据结构。捕获非结构化数据并创建数据模型是初始阶段。后一阶段是创建用户界面,使用所生成的数据模型变换后的非结构化数据进行浏览、搜索、或导航。以循环方式,随着对更多数据进行接收、识别、和建模,可以对用于管理数据的相应的用户界面进行演进。因此,可以向用户提供用于收集、检索、和与非结构化数据进行交互的连贯、直观的平台。

图1是根据实施例的展示了用于捕获、分析、和呈现非结构化数据的系统100的示意图。系统100包括具有用户输入机构104的计算设备102。计算设备102可以通过网络106通信地耦合至服务器系统108。计算设备102可以是诸如智能电话、蜂窝电话、移动电话、膝上型计算机、平板电脑、可穿戴设备(例如,手表、基于眼镜的设备等)、桌面、笔记本电脑、混合、墙内、或其他联网设备的设备。

用户输入机构104可以与计算设备102分离或并入计算设备102中。用户输入机构104可以使用诸如的短距离无线网络与计算设备102进行配对。用户输入机构104可以是任何类型的设备之一,包括但不限于照相机、鼠标、数字化垫、绘图板、数字转换器、触摸屏、触摸板等。尽管在图1中仅示出了一个用户输入机构104,但是应当理解,可以实现多于一个用户输入机构104,并且某些用户输入机构104可以并入到计算设备102中,而其他用户输入机构104可以与计算设备102分离。

网络106可以包括局域网(lan)、广域网(wan)、无线变体网络(例如,诸如符合ieee802.11系列标准的网络的无线lan(wlan)或无线wan(wwan),诸如蜂窝网络)、公共交换电话网(pstn)网络、自组织网络、个人区域网络(例如,蓝牙)或网络协议和网络类型的其他组合或排列。网络106可以包括单个局域网(lan)或广域网(wan)、或lan或wan的组合(如互联网)。图1中的各种设备可以通过一个或多个有线或无线连接耦合至网络106。

计算设备102还可以通信地耦合至服务器系统108。服务器系统108可以提供多种服务中的一种,包括但不限于数据分析、数据存储等。

在使用中,用户操作用户输入机构104以将多种自由形式信息输入到计算设备102中。所述自由形式信息可以包括文本数据、摄影数据、频等。计算设备102分析自由形式信息以建立信息之间的关系、创建数据模式、并向用户呈现用户界面,以允许用户浏览、搜索、或操纵信息或数据模式。

通常,在非结构化用户环境中输入信息,如在空白绘图页面或新的文字处理文档上。在完全了解任何业务或数据建模要求之前,用户可能正在收集信息。因此,用户可能没有结构化的用户界面来立即在其中进行操作。使用图1中所示的系统100,用户能够以自由方式输入非结构化数据,并允许系统100推断结构并创建底层数据库和用户界面以进一步操纵结构化数据。用户不需要提供标签、使用特定的程序、或者具有任何关于如何输入数据的前置知识——用户仅开始输入数据,而系统100能够确定数据结构的记录、数据字段、和元素。

数据结构可以由系统100使用各种机制来推断和确定,包括所收集的信息的上下文分析、已知数据结构、全局或局部表示模型、众包维基、通常扩展归因、边界验证、和机器学习。当用户输入信息时,系统100可以跟踪何时输入数据、在屏幕上何处输入数据、以及其他上下文线索来创建数据之间的关系。系统100能够基于所接收或推断的附加信息不断地改变和适应。通过这样做,系统100不需要输入数据的完美输入或完美解释。相反,系统100能够随着时间推移调整以更好地将数据适配到数据结构,并且提供更准确的用户界面以与数据和数据结构进行交互。

在使用中,用户可以从相对空白的界面开始,如空白页或绘图调色板。当用户输入数据时,系统100观察上下文,诸如时间、输入的顺序、以及对数据的共同性的意识来构建数据结构。当描述数据结构时,可以生成用户界面并呈现给用户以浏览或以其他方式操纵数据或数据结构。

人们倾向于无意识地组织数据。例如,在制作列表时,人们可以将类似的项目分组在一起,或者在列表顶部制作更重要的项目的列表。在系统100中所使用的程序化逻辑观察数据输入的时间以帮助定义记录组(例如,相关数据字段大致在同一时间输入)。可以通过观察数据的屏幕坐标(例如,每个记录组的数据字段彼此靠近地布置)来定义数据字段。一对多关系可以通过回车或换行符来定义。文本分析可用于确定数据类型。离群值数据可以首先被划分并被表征为注释或其他通用字段,然后使用与其他离群值数据、其他字段、附加记录组等的比较来进一步处理。然后,从数据分析得到的知识用于创建各种用户界面控件(例如,文本框、控制按钮等)。

图2是根据实施例的展示了解析非结构化数据的过程200的数据流程图。在202,用户通过创建空白工作区域(例如,页面或画布)来开始。工作区域可以是文字处理文档、绘图画布、或其他电子文档。用户可以使用触控笔、物理键盘、虚拟键盘等输入数据。当用户输入数据时,收集上下文数据(框204)。一些上下文数据可以由传感器206收集。传感器206可以是麦克风、照相机等。可以获得和存储各种上下文数据(框208),诸如输入的位置(例如,屏幕坐标)、用户的位置(例如,地理位置)、环境声音、语音命令和识别、与过去所输入的数据的相似性、输入的时间,输入的顺序等。对所输入的每个数据元素进行输入分析(框210),并且可以将分析结果存储在数据存储212中。数据存储212还可以包括来自先前分析的结果。

当用户与系统100交互时,使用学习算法(框214)来分析数据元素和用户交互以调整数据结构、数据类型化、或用户界面元素。学习算法可以使用各种因素218(诸如定时、输入的顺序、和屏幕位置)来分析每个数据元素(框216),以执行诸如动态数据类型化220、离群值标识222、或数据结构化224之类的各种操作。例如,基于输入特性,可以标识字段和记录,并且可以构建数据结构。

基于数据结构,渲染用户界面(框226)。用户可以与用户界面交互(框228)来添加或移除字段、调整列名、改变数据、排序数据等。基于这些调整,学习算法可以瀑布式进行并改变其他数据类型、分组(例如,记录)等,以修正底层数据结构和由此产生的用户界面。

使用以下示例场景描述记录创建、动态数据类型化、离群值标识、和数据结构化。特意用不一致来描述此场景以说明系统100可以适应用户如何输入数据。

一个叫休(sue)的人带着她的平板电脑坐在足球场。屏幕上有空白页面。她的意图是创建一个儿童足球队注册信息的集合(例如,数据库)。她不了解表单、标签、或rdbms概念。休旨在收集父母的姓名、儿童的姓名、优选的练习日、和联系电话号码。

休创建了空白页面并且输入“姓名”。当父母交互时,休收集信息。在采集了三个父母的信息后,页面可能看起来像图3中所示。图4a至图4c展示了时间分片时图3的屏幕。可以将各输入的时间捕获为图2中的上述流程中的上下文数据(框204)并进行分析(框218)。图4a展示了第一时间片段,例如,在此时“玛丽·蒙塔纳(marymontana)”提供关于她的孩子杰克(jack)和吉尔(jill)的信息。图4b展示了第二时间片段,在此时“麦克(mike)”提供关于他的儿子“比尔(bill)”的信息。图4c展示了第一时间片段,在此时“乔治·休斯顿(georgehouston)”提供关于他的孩子“温蒂(wendy)”、“桑迪(sandy)”和“克莱尔(claire)”的信息。在温蒂和桑迪想要在星期日参加时,克莱尔指出她将在星期六参加。

使用时间分片可以提供粗略的机制来推断相关信息的记录。然后将数据输入屏幕的位置用作标识类似数据的字段的机制。在此情况下,使用初始输入位置和与先前输入位置的相对邻近来标识四个潜在字段。这在图5中所展示,具有列标识符“a1”、“a2”、“a3”、和“a4”。可以通过使用坐标图或使用标记指示符(如换行符)来进行数据分组。通过时间分片和基于位置的分组,可以生成粗略的数据结构。

图6根据实施例展示了所生成的数据库结构600。数据库结构600包括针对每个时间片段的一行和每个数据分组的一列。可以使用时间来定义记录,可以使用在文本输入开始处的屏幕坐标来定义字段(例如,列),并且可以通过回车来定义一对多、多对一、或多对多关系。在4a-4c中所展示的示例中,可以通过识别在文本输入“杰克”和之后的输入“吉尔”之间的回车来推断“玛丽·蒙塔纳”和她的孩子之间的一对多关系。这在数据库结构600的第一行中所展示。类似地,可以将“乔治·休斯顿”和他的孩子的记录解析成具有父亲和他的孩子之间的一对多关系。尽管时间分片和基于位置的分组都在本示例中使用,但是应当理解可以单独使用时间片段来标识记录。这种类型的分析可以独立于位置来进行,因此例如可以使用单行输入机制来定义记录。

在处理的这一点上,可以使用从数据库结构600所生成的基本用户界面来呈现记录。图7中展示了示例用户界面,其中记录的每个元素被提供为用户界面中的数据字段。呈现分页按钮702、704以允许用户将数据库记录向前或向后移动。使用传统的用户界面设计方法,分页按钮702、704可以被编程为在一个方向到达记录的结尾时停用(例如,变灰)。可替代地,分页按钮702、704可以用于以循环方式导航记录,使得当到达记录的结尾时,如果用户使用“下一个”分页按钮704,将用户导航到记录中的第一条记录。还呈现了搜索按钮706,其提供了使用诸如全文搜索、数据类型搜索、范围过滤、正则表达等之类的各种机制来搜索记录的机制。每个字段也可以具有相应的控件(例如,项目708),以允许用户命名所述字段。当提供了字段名称时,可以对相应的数据库列进行更新以匹配。这在下面的继续示例中说明。

在初始记录和字段分类之后,可以应用进一步的方法来确定数据类型(例如,动态数据类型化,图2中的框220)。可以使用机器学习和人类语言分析来进行数据类型化。对于所输入的第一条记录,短语“姓名”可以被标识并分类为具有通用含义的“文本”数据类型。可以将短语“玛丽·蒙塔纳”标识并分类为具有“姓名”含义的“文本”数据类型。类似地,短语“杰克”和“吉尔”可以被标识并分类为“文本/姓名”数据类型。短语“星期六”可以被分类为“文本/日”数据类型,而短语“505-333-7777”可以被分类为“文本/电话”数据类型。

使用这些数据类型,系统100组织记录。图8是根据实施例的记录可以怎样由数据类型进行组织的示例。虽然诸如日和电话之类的字段被明确定义,但是仍然存在一些未解析的数据字段,如分别对应于短语“姓名”和“克莱尔在星期日”的文本/词语和文本/姓名+日字段。因此,在执行初始数据类型化之后,对离群值数据字段进行解析和分析(例如,图2中的框222)。

离群值字段是不完全适合其他数据类型表达式的字段。在本示例中,有两个所标识的离群值字段“姓名”和“克莱尔在星期日”。“姓名”一词可能由休在提供有关她要收集的数据的线索的尝试中输入。无论如何,系统100至今确定“姓名”一词不与其他数据对齐或在同一组。系统100使用逻辑规则,所述逻辑规则提供如果数据元素在数据结构中没有逻辑放置,则它将被标记为离群值,并且将被分类为杂项类别,类似于“注释”。图9根据实施例展示了具有列标题的数据结构。已添加列标题“注释”,并将文本/词语数据放在那列中。此外,列标题“日”和“电话”已被添加到明确定义的日和电话号码的数据上。

存在另一个离群值,定义为文本/姓名+日。请记住,这个字段包含“克莱尔在星期六”。它可以很容易地包含像“克莱尔不在星期六”的数据。系统100依赖于人类的天性出于一个理由来包括这个短语——假定是相关的。虽然字符串可能会像“泡菜是绿色”这样的短语,此短语将与休尝试做的不相关。因此,系统100假定它具有含义。所述含义根据其在文本流中的位置将允许系统100假定与前面或后续文本具有关系。在此情况下,由于用户在后期所提供的反馈和所使用的机器学习,不完美是可以接受的,

离群值处理会询问各种问题,如“数据类型是否适合当前记录的任何位置?”以及“数据类型是否在其他记录中找到类似的类型?”如果离群值数据与当前记录或其他记录的数据类型不匹配,则离群值数据将被进一步解构。在此情况下,可以使用空格作为分隔符来解构离群值数据“克莱尔在星期六”。可以使用其他分隔符,如逗号、分号、斜杠等。在分开短语之后,每个元素都用相同的问题进行分析。字符串“克莱尔”被标识为姓名,并与当前记录以及其他记录中的现有数据类型相匹配。类似地,字符串“星期六”被标识为日,并与现有的数据类型相匹配。

系统100知道在使用休输入信息时所捕获的时间戳元数据的词语“星期日”之后输入短语“克莱尔在星期六”。此外,系统100知道在使用休输入信息时所捕获的屏幕坐标的词语“星期日”的附近输入所述短语。系统100可以使用基于邻近的规则来给出与所述短语之前或之后的条目更强的关联。考虑到后续条目是电话号码,系统100将优先考虑前面的“星期日”的数据元素,所述数据元素与短语“克莱尔在星期六”的组成部分之一具有相同数据类型。

因此,系统100确定短语“克莱尔在星期六”在时间和位置上与“星期日”邻近,并且姓名“克莱尔”也存在于记录中。然后,系统100必须确定是否在评论字段中放置“克莱尔在星期六”或者是否与记录中的其他数据有不同的关系。

通过分析对于父亲“乔治·休斯顿”的记录,系统100可以确定当所解构的短语“克莱尔在星期六”被包括在记录的结构中时,姓名“克莱尔”出现了两次。系统100使用关系数据库概念将记录重新组合成具有“乔治·休斯顿”主键的两条记录,其中第一记录包括与日“星期日”相关联的人“温蒂”和“桑迪”,而第二条记录包括人“克莱尔”人和日“星期六”。

图10是根据实施例的展示了处理离群值数据的方法1000的流程图。在操作1002,确定所讨论的数据的数据类型是否适合当前记录中的任何位置。这可以使用反正态表达式匹配过程来进行。如果所讨论的数据不是符合当前记录的数据类型,则在操作1004,确定所讨论的数据是否具有适合于其他记录的数据类型。如果所讨论的数据适合于当前记录或跨记录的数据类型,则数据与数据结构中的数据类型相关联(操作1006)。

反之,如果确定为否定,则系统100尝试将数据解析为单独的元素(操作1008)。这可以使用子字符串标识机制来执行,如基于分隔符(例如,空格、逗号、分号等)将字符串分区。对于所解析的数据的每个元素,系统100确定当前记录内是否具有匹配的数据类型。否则,系统100确定是否具有跨其他记录的匹配数据类型(操作1010)。

基于数据类型匹配,可以修改数据结构,例如,为了表示数据关系(操作1012),例如,父亲“乔治·休斯顿”关于人“温蒂”、“桑迪”、和“克莱尔”具有一对多的关系,这些人“温蒂”、“桑迪”、和“克莱尔”中的每个人关于日具有一对一的关系。在这个处理之前,似乎孩子对日的关系是多对一的关系(例如,杰克和吉尔与星期六相关)。

在这一点上,数据结构被相当明确地定义,并且可以生成用户界面并将其呈现给用户(例如,休),如图11中所展示。数据分析提供了一些列/字段名称,如“姓名”和“日”。然而,系统100无法确定“杰克”和“吉尔”的字段名称。用户可以与用户界面交互,如通过激活用户界面控件708,并编辑列名称。例如,休可以将列名称“姓名”更改为“父母姓名”,并且将空白列名称更改为“孩子姓名1”和“孩子姓名2”。在图12中展示了修正后的用户界面。在修改了用户界面后,相应地修改了底层数据结构。这在图13中所展示。图13还展示了先前模糊不清的数据“克莱尔在星期六”是如何重新结构化为附加行1300的。“乔治·休斯顿”的构建主键被重新用在附加行1300上。可以对用户界面进行修正以展示这个新的关系,如在图14中所展示。请注意,“克莱尔”的列名称为空,因为这是第一次将具有第三孩子姓名的用户界面呈现给休。可替代地,系统100可以识别休先前根据标准命名结构为类似的数据类型修正了列名称,并且使用附加分析,系统100可以将“孩子姓名3”呈现为“克莱尔”的列名称。然后,用户可以能够根据需要对这个标签进行修正。如果用户不修正标签,则系统100可以将用户的这种不动作作为对标签名称的默许批准,这可以加强标签命名的未来尝试。

为替代性实施例的附加细节提供了整体过程流程的另一个描述。当输入数据时,可以采集各种上下文信息,包括输入的顺序、输入的词语或数字之间的时间、在页面上或相对于其他数据的数据的放置、或传感器数据(例如,全球定位数据)。然后基于使用人倾向在记录条目之间暂停的时间来描绘记录。如果单独的时间不足以描绘记录,则可以分析所输入的全部数据,以确定哪里存在可重复的元素,其可以指示类似于记录的结构。例如,使用姓名、日期、时间、姓名、日期、时间等的数据类型的重复数据可以提供对每个记录具有姓名、日期、和时间的记录结构的洞察。

在这一点上,系统可能对记录被恰当地描绘具有相当的信心。用户可以点击按钮来“查看ui”或在输入调色板上所呈现的类似的控件并且查看系统是如何提出数据组织的。然后用户可以使用各种用户界面控制机制(例如,拖放、删除列表、查询工具等)来操纵数据结构。在附加的用户交互或自动化系统识别和数据结构化后,记录可能达到一个被认为是明确定义的点。

然后对记录内的字段(例如,数据元素或列)进行分析,以确定是否输入了任何数据以指示字段名称(例如,列标题)或者字段中是否具有离群值数据。

对于每个字段,系统分析输入的顺序。系统尝试确定是否可以将任何输入的数据定义为字段名称。示例可以包括“姓名”、“日期”、“数量”、“大小”等。输入的顺序考虑了条目之间的时间或延迟。输入的顺序还考虑了是否应当将若干数据项合并在一起成为字符串。这可以使用语言分析、输入的时间等来执行。

然后将每个字段的数据(其可以是词语、字符串、数字等)连同其相应的输入的顺序加载到矩阵中。所述矩阵用于跨记录比较数据。跨记录分析查看每个字段内的数据,以基于输入的顺序查看数据是否具有相似性。相似性可以基于数据类型(例如,字符串、词语、整数等)的比较。当跨字段找到相似之处时,则加强对那些字段的数据类型分配。维持数据字段的强度的一种方法是使用数值评分系统。当找到相似之处时,则可以增大数值分数,指示对于特定字段的数据类型化正确的置信度。

分析还可以查看每个字段内的数据,以查看数据是否具有相对于屏幕上的放置的相似性,而不管输入的顺序如何。在输入调色板上彼此相邻的字段的放置可以用于推断诸如相似数据类型的关系。使用放置作为另一个相似性度量,可以调整数值置信度分数以指示字段的数据类型分配的正确性的或多或少的可能性。

比较跨记录数据类型分析和放置数据类型分析可以提供对哪种方法提供更好的匹配的洞察。如果对两种方法的评分都很低,如低于50%置信水平,则可以使用更复杂的分析。

更复杂的方法包括跨每条记录将每个字段与每个其他字段进行比较。对比较进行评分并保持在矩阵中,所述矩阵对应于字段的放置。在所有比较完成之后,然后字段的数据类型分配可以基于跨矩阵的评分。

离群值数据被标识为那些跨记录没有评分或低评分的数据元素。离群值可以被标记并置于通用捕获全部字段中,如注释或杂项字段,以在以后被手动输入。可替代地,可以分析离群值数据,如通过将字符串分解成组成元素并且分析在记录中跨一个或多个字段或其他记录中跨字段的每个元素。附加地或替代地,离群值数据可以被分析用于诸如“和(and)”或“或(or)”的连接表达式,其可以被用于将字符串分解成逻辑元素。例如,字符串“星期六或星期日”可以允许任何一个单独的元素评分很好,但是当一起作为评分时可能很低。对字符串中“或”的意识允许系统对“星期六”或“星期日”进行匹配,并找到与不同的字段或记录的更好的匹配。这种分析可以被用于初始标识可能的数据类型或加强推定的数据类型。

在数据分析和数据结构化过程中,可以向用户呈现选项,以使系统在添加新记录时持续更新ui和数据分配,或者用户可以锁定ui,有效地强制系统将附加记录解析为固定的底层数据结构。

图15是根据实施例的展示了用于实现非结构化用户界面的系统1500的框图。所述系统包括监测模块1502、数据标记模块1504、数据结构构建模块1506、和用户界面模块1508。所述监测模块1502可以被配置成用于在计算设备102处监测在电子调色板处所接收的输入,所述输入产生多个数据元素。在一个实施例中,所述电子调色板包括文字处理文档。

所述数据标记模块1504可以被配置成用于利用相应的时间戳来标记所述多个数据元素中的每个数据元素。

所述数据结构构建模块1506可以被配置成用于使用所述多个数据元素的所述时间戳来将所述多个数据元素组织成数据结构。在一个实施例中,为了使用所述时间戳来将所述多个数据元素组织成所述数据结构,所述数据结构构建模块1506用于将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录。

所述用户界面模块1508可以被配置成用于向所述计算设备的用户呈现用户界面,所述用户界面基于所述数据结构。在一个实施例中,为了呈现用户界面,所述用户界面模块1508用于呈现具有特定记录中每个数据元素的列名称和字段值的用户界面。在一个进一步实施例中,所述用户界面模块1508用于接收标识用于修正所述列名称的用户输入。在另一个实施例中,所述用户界面模块1508用于接收用户输入以修正所述数据结构。

在一个实施例中,所述数据标记模块1504用于利用所述电子调色板上的相应输入位置标记所述多个数据元素中的每个数据元素,并且所述数据结构构建模块1506用于使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成所述数据结构。

在一个进一步实施例中,为了使用所述时间戳来将所述多个数据元素组织成所述数据结构,所述数据结构构建模块1506用于将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录,并且为了使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成所述数据结构,所述数据结构构建模块1506用于将具有在空间上彼此相对接近地输入的数据元素分组为所述数据结构中的所述记录中的字段。为了被认为在时间上相对接近,可以测量每个数据元素的输入之间的时间,并且可以计算阈值延迟,使得超过阈值延迟的延迟可以指示从一条记录到另一条记录的中断。类似地,为了被认为在空间相对接近,可以比较第一数据元素和第二数据元素的输入的开始的像素位置(或屏幕坐标),以确定数据元素是否可以被认为在空间上是接近的。更接近的输入坐标表示数据元素是相同记录或字段的一部分,而远处的输入坐标表示数据元素应当与不同的记录或字段相关联。

在一个实施例中,所述数据结构构建模块1506用于分析所述多个数据元素以标识所述多个数据元素中的数据元素的数据类型。

在一个实施例中,所述数据结构构建模块1506用于将离群值数据标识为未能适应所述数据结构的数据元素。在一个进一步实施例中,所述数据结构构建模块1506用于将所述离群值数据处理成多个子数据元素,所述多个子数据元素符合所述数据结构。子数据元素可以是字符串中的词语、字符串中的数字、或字符串中的其他短语或子短语。可以使用词语分析(例如,标识连接)来标识这样的子数据元素。在一个进一步实施例中,为了处理离群值数据,所述数据结构构建模块1506用于将子数据元素与当前记录中的字段进行比较,以判定所述子数据元素是否具有与所述字段类似的数据类型。在另一个实施例中,为了处理离群值数据,所述数据结构构建模块1506用于将子数据元素与外部记录中的字段进行比较,以判定所述子数据元素是否具有与所述字段类似的数据类型。外部记录是除了包含分析的数据元素或子数据元素的记录以外的不同记录。

图16是根据实施例的展示了实现非结构化用户界面的方法1600的流程图。在框1602,在计算设备处监测在电子调色板处所接收的输入,所述输入产生多个数据元素。在一个实施例中,所述电子调色板包括文字处理文档。

在框1604,用相应的时间戳来标记所述多个数据元素中的每个数据元素。

在框1606,使用所述多个数据元素的所述时间戳来将所述多个数据元素组织成数据结构。在一个实施例中,使用所述时间戳来将所述多个数据元素组织成所述数据结构包括将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录。

在框1608,向所述计算设备的用户呈现用户界面,所述用户界面基于所述数据结构。在一个实施例中,呈现所述用户界面包括呈现具有特定记录中每个数据元素的列名称和字段值的用户界面。在一个进一步实施例中,方法1600包括接收标识用于修正所述列名称的用户输入。在另一个实施例中,方法1600包括接收用户输入以修正所述数据结构。

在一个实施例中,方法1600包括用所述电子调色板上的相应输入位置标记所述多个数据元素中的每个数据元素,以及使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成数据结构。在一个进一步实施例中,使用所述时间戳来将所述多个数据元素组织成所述数据结构包括将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录,并且使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成所述数据结构包括将具有在空间上彼此相对接近地输入的数据元素分组为所述数据结构中的所述记录中的字段。

在一个实施例中,方法1600包括分析所述多个数据元素以标识所述多个数据元素中的数据元素的数据类型。

在一个实施例中,方法1600包括将离群值数据标识为未能适应所述数据结构的数据元素。在一个进一步实施例中,方法1600包括将所述离群值数据处理成多个子数据元素,所述多个子数据元素符合所述数据结构。在一个进一步实施例中,处理离群值数据包括将子数据元素与当前记录中的字段进行比较,以判定所述子数据元素是否具有与所述字段类似的数据类型。在另一个实施例中,处理离群值数据包括将子数据元素与外部记录中的字段进行比较,以判定所述子数据元素是否具有与所述字段类似的数据类型。

实施例可在硬件、固件、和软件中的一个或组合中实现。实施例还可以被实施为存储在机器可读存储介质上的指令,所述指令可以被至少一个处理器读取并执行以进行在此所描述的操作。机器可读存储介质可以包括用于存储机器(例如,计算机)可读的形式的信息的任何非瞬态机构。例如,机器可读存储介质可以包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪存器、以及其他存储设备和介质。

如在此所描述的示例可以包括或可以操作在逻辑或多个部件、模块或机制上。模块可以是通信耦合至一个或多个处理器从而执行在此所述的操作的硬件、软件、或固件。模块可以是硬件模块,并且此类模块可以被当做能够执行特定操作并且能够以一定方式被配置或安排的有形实体。在示例中,电路可以以指定方式被安排(例如,内部地或关于外部实体(诸如其他电路))为模块。在示例中,可以由固件或软件(例如,指令、应用部分、或应用)将一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或一个或多个硬件处理器中的整个或部分配置为进行操作以便执行指定操作的模块。在示例中,软件可以驻留在计算机可读介质上。在示例中,当由模块的底部硬件执行时,软件使硬件执行指定的操作。因而,术语“硬件模块”被理解为包括有形的实体,所述有形的实体是在物理上构建的、具体配置的(例如,硬接线的)、或临时(例如,暂时)配置的(例如,编程的)实体以便以指定的方式操作或执行在此描述的任何操作中的部分或全部。考虑其中模块被暂时配置的示例,不需要在任何一个时刻处例示每个模块。例如,当模块包括使用软件进行配置的通用硬件处理器时,所述通用硬件处理器可以在不同时间被配置为相应的不同模块。例如,软件可以从而配置硬件处理器以便在一个时间实例处构成特定模块并且在不同的时间实例处构成不同的模块。模块还可以是软件或固件模块,所述软件或固件模块运行以执行在此所述的方法论。

图17是根据示例实施例展示了采用计算机系统1700的示例形式的机器的框图,在所述机器中可以执行指令集或序列,从而使所述机器执行本文中所讨论的方法论中的任何一种。在替代性实施例中,机器作为独立设备操作或者可以连接(例如,连网)至其他机器。在联网部署中,所述机器在服务器-客户端网络环境中可以以服务器或者客户端机器的角色运行,或者可以作为对等(或分布式)网络环境中的对等机。所述机器可以是车载系统、机顶盒、可穿戴设备、私人计算机(pc)、平板pc、混合平板、私人数字助手(pda)、移动电话、或任何能够执行限定了要由这个机器采取的动作的指令(连续的或相反)的机器。进一步地,虽然仅展示了单个机器,但术语“机器”也应视为包括机器的任何集合,所述机器个别地或联合地执行一组(或多组)指令以便执行本文中所讨论的方法中的任何一种或多种方法论。类似地,术语“基于处理器的系统”应当被当做包括一个或多个机器的任何集合,所述一个或多个机器被处理器(例如,计算机)控制或操作以单独地或联合地执行指令,从而执行在此所讨论的方法论中的任何一种或多种。

示例计算机系统1700包括至少一个处理器1702(例如,中央处理单元(cpu)、图形处理单元(gpu)或两者、处理器核、计算节点等)、主存储器1704和静态存储器1706,其经由链路1708(例如,总线)彼此通信。计算机系统1700可以进一步包括视频显示单元1710、字母数字输入设备1712(例如,键盘)、和用户界面(ui)导航设备1714(例如,鼠标)。在一个实施例中,视频显示单元1710、输入设备1712、和ui导航设备1714被并入触摸屏显示器。计算机系统1700可以附加地包括存储设备1716(例如,驱动单元)、信号生成设备1718(例如,扬声器)、网络接口设备1720、以及一个或多个传感器(未示出)(如全球定位系统(gps)传感器、罗盘、加速度计、或其他传感器)。

储存设备1716包括在其上存储了一个或多个数据结构和指令集1724(例如,软件)的机器可读介质1722,所述一个或多个数据结构和指令集包含本文中所描述的方法或功能中的任何一个或多个,或者被其所利用。指令1724也可完全地或至少部分地驻留在主存储器1704、静态存储器1706中,和/或在计算机系统1700执行其过程中驻留在处理器1702中,其中主存储器1704、静态存储器1706和处理器1702同样也构成机器可读介质。

虽然机器可读介质1722在示例实施例中被展示为单个介质,但术语“机器可读介质”可以包括存储一个或多个指令1724的单个介质或多个介质(例如,集中或分布式数据库、和/或相关联的高速缓存和服务器)。术语“机器可读介质”还将理解为包括任何有形介质,所述有形介质能够存储、编码或携带用于由机器执行的指令并且指令引起机器执行本公开的方法论中的任何一个或多个,或者所述有形介质能够存储、编码或携带由这样的指令利用或与这样的指令相关联的数据结构。术语“机器可读介质”应当相应地被视为包括但不限于固态存储器、以及光学介质和磁性介质。机器可读介质的特定示例包括非易失性存储器,举例来讲,包括但不限于半导体存储器设备(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和闪速存储器设备;磁盘,如内置硬盘和可移除磁盘;磁光盘;以及cd-rom和dvd-rom磁盘。

进一步可以利用多个众所周知的传输协议(例如,http)中的任一种协议、经由网络接口设备1720、使用传输介质、通过通信网络1726来发射或接收指令1724。通信网络的示例包括局域网(lan)、广域网(wan)、因特网、移动电话网络、普通老式电话(pots)网络和无线数据网络(例如,wi-fi、3g和4glte/lte-a或wimax网络)。术语“传输介质”应视为包括能够存储、编码或携带由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或者促进这种软件通信的其他无形介质。

补充说明和示例:

示例1包括用于实现非结构化用户界面的主题(如设备、装置、或机器),包括:监测模块,用于在计算设备处监测在电子调色板处所接收的输入,所述输入产生多个数据元素;数据标记模块,用于利用相应的时间戳来标记所述多个数据元素中的每个数据元素;数据结构构建模块,用于使用所述多个数据元素的所述时间戳来将所述多个数据元素组织成数据结构;以及用户界面模块,用于向所述计算设备的用户呈现用户界面,所述用户界面基于所述数据结构。

在示例2中,如示例1所述的主题可以包括:其中,所述电子调色板包括文字处理文档。

在示例3中,如示例1至2中的任一项所述的主题可以包括:其中,为了使用所述时间戳来将所述多个数据元素组织成所述数据结构,所述数据结构构建模块用于将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录。

在示例4中,如示例1至3中的任一项所述的主题可以包括:其中,为了呈现用户界面,所述用户界面模块用于呈现具有特定记录中每个数据元素的列名称和字段值的用户界面。

在示例5中,如示例1至4中的任一项所述的主题可以包括:其中,所述用户界面模块用于接收标识用于修正所述列名称的用户输入。

在示例6中,如示例1至5中的任一项所述的主题可以包括:其中,所述用户界面模块用于接收用户输入以修正所述数据结构。

在示例7中,如示例1至6中的任一项所述的主题可以包括:其中,所述数据标记模块用于利用所述电子调色板上的相应输入位置标记所述多个数据元素中的每个数据元素;并且其中,所述数据结构构建模块用于使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成所述数据结构。

在示例8中,如示例1至7中的任一项所述的主题可以包括:其中,为了使用所述时间戳来将所述多个数据元素组织成所述数据结构,所述数据结构构建模块用于将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录;并且其中,为了使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成所述数据结构,所述数据结构构建模块用于将具有在空间上彼此相对接近地输入的数据元素分组为所述数据结构中的所述记录中的字段。

在示例9中,如示例1至8中的任一项所述的主题可以包括:其中,所述数据结构构建模块用于分析所述多个数据元素以标识所述多个数据元素中的数据元素的数据类型。

在示例10中,如示例1至9中的任一项所述的主题可以包括:其中,所述数据结构构建模块用于将离群值数据标识为未能适应所述数据结构的数据元素。

在示例11中,如示例1至10中的任一项所述的主题可以包括:其中,所述数据结构构建模块用于将所述离群值数据处理成多个子数据元素,所述多个子数据元素符合所述数据结构。

在示例12中,如示例1至11中的任一项所述的主题可以包括:其中,为了处理离群值数据,所述数据结构构建模块用于将子数据元素与当前记录中的字段进行比较,以判定所述子数据元素是否具有与所述字段类似的数据类型。

在示例13中,如示例1至12中的任一项所述的主题可以包括:其中,为了处理离群值数据,所述数据结构构建模块用于将子数据元素与外部记录中的字段进行比较,以判定所述子数据元素是否具有与所述字段类似的数据类型。

示例14包括用于实现非结构化用户界面的主题(如方法、用于执行动作的装置、包括由机器执行时引起机器执行动作的指令的机器可读介质、或执行的设备),包括:在计算设备处监测在电子调色板处所接收的输入,所述输入产生多个数据元素;用相应的时间戳来标记所述多个数据元素中的每个数据元素;使用所述多个数据元素的所述时间戳来将所述多个数据元素组织成数据结构;以及向所述计算设备的用户呈现用户界面,所述用户界面基于所述数据结构。

在示例15中,如示例14所述的主题可以包括:其中,所述电子调色板包括文字处理文档。

在示例16中,如示例14至15中的任一项所述的主题可以包括:其中,使用所述时间戳来将所述多个数据元素组织成所述数据结构包括将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录。

在示例17中,如示例14至16中的任一项所述的主题可以包括:其中,呈现用户界面包括呈现具有特定记录中每个数据元素的列名称和字段值的用户界面。

在示例18中,如示例14至17中的任一项所述的主题可以包括:接收标识用于修正所述列名称的用户输入。

在示例19中,如示例14至18中的任一项所述的主题可以包括:接收用户输入以修正所述数据结构。

在示例20中,如示例14至19中的任一项所述的主题可以包括:利用所述电子调色板上的相应输入位置标记所述多个数据元素中的每个数据元素;以及使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成数据结构。

在示例21中,如示例14至20中的任一项所述的主题可以包括:其中,使用所述时间戳来将所述多个数据元素组织成所述数据结构包括将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录;并且其中,使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成所述数据结构包括将具有在空间上彼此相对接近地输入的数据元素分组为所述数据结构中的所述记录中的字段。

在示例22中,如示例14至21中的任一项所述的主题可以包括:分析所述多个数据元素以标识所述多个数据元素中的数据元素的数据类型。

在示例23中,如示例14至22中的任一项所述的主题可以包括:将离群值数据标识为未能适应所述数据结构的数据元素。

在示例24中,如示例14至23中的任一项所述的主题可以包括:将所述离群值数据处理成多个子数据元素,所述多个子数据元素符合所述数据结构。

在示例25中,如示例14至24中的任一项所述的主题可以包括:其中,处理离群值数据包括将子数据元素与当前记录中的字段进行比较以判定所述子数据元素是否具有与所述字段类似的数据类型。

在示例26中,如示例14至25中的任一项所述的主题可以包括:其中,处理离群值数据包括将子数据元素与外部记录中的字段进行比较以判定所述子数据元素是否具有与所述字段类似的数据类型。

示例27包括至少一种包括指令的机器可读介质,所述指令当由机器执行时使所述机器执行如示例14至26中任一项所述的操作。

示例28包括一种设备,所述设备包括用于执行如示例14至26中任一项的装置。

示例29包括用于实现非结构化用户界面的主题(如设备、装置、或机器),包括:用于在计算设备处监测在电子调色板处所接收的输入的装置,所述输入产生多个数据元素;用于利用相应的时间戳来标记所述多个数据元素中的每个数据元素的装置;用于使用所述多个数据元素的所述时间戳来将所述多个数据元素组织成数据结构的装置;以及用于向所述计算设备的用户呈现用户界面的装置,所述用户界面基于所述数据结构。

在示例30中,如示例29所述的主题可以包括:其中,所述电子调色板包括文字处理文档。

在示例31中,如示例29至30中的任一项所述的主题可以包括:其中,用于使用所述时间戳来将所述多个数据元素组织成所述数据结构的装置包括用于将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录的装置。

在示例32中,如示例29至31中的任一项所述的主题可以包括:其中,呈现用户界面包括呈现具有特定记录中每个数据元素的列名称和字段值的用户界面。

在示例33中,如示例29至32中的任一项所述的主题可以包括:用于接收标识用于修正所述列名称的用户输入的装置。

在示例34中,如示例29至33中的任一项所述的主题可以包括:用于接收用户输入以修正所述数据结构的装置。

在示例35中,如示例29至34中的任一项所述的主题可以包括:用于利用所述电子调色板上的相应输入位置标记所述多个数据元素中的每个数据元素的装置;以及用于使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成数据结构的装置。

在示例36中,如示例29至35中的任一项所述的主题可以包括:其中,用于使用所述时间戳来将所述多个数据元素组织成所述数据结构的装置包括用于将在时间上彼此相对接近地输入的数据元素分组为所述数据结构中的记录的装置;并且其中,用于使用所述多个数据元素的所述输入位置来将所述多个数据元素组织成所述数据结构的装置包括用于将具有在空间上彼此相对接近地输入的数据元素分组为所述数据结构中的所述记录中的字段的装置。

在示例37中,如示例29至36中的任一项所述的主题可以包括:用于分析所述多个数据元素以标识所述多个数据元素中的数据元素的数据类型的装置。

在示例38中,如示例29至37中的任一项所述的主题可以包括:用于将离群值数据标识为未能适应所述数据结构的数据元素的装置。

在示例39中,如示例29至38中的任一项所述的主题可以包括:用于将所述离群值数据处理成多个子数据元素的装置,所述多个子数据元素符合所述数据结构。

在示例40中,如示例29至39中的任一项所述的主题可以包括:其中,用于处理离群值数据的装置包括用于将子数据元素与当前记录中的字段进行比较以判定所述子数据元素是否具有与所述字段类似的数据类型的装置。

在示例41中,如示例29至40中的任一项所述的主题可以包括:其中,用于处理离群值数据的装置包括用于将子数据元素与外部记录中的字段进行比较以判定所述子数据元素是否具有与所述字段类似的数据类型的装置。

以上的详细描述包括对附图的参照,这些附图形成了详细描述的一部分。所述附图以图示的方式示出了可以被实践的具体实施例。这些实施例在本文中也被称为“示例”。这类示例可以包括除所示出或所描述的那些要素之外的要素。然而,还设想了包括所示出或所描述的要素的示例。此外,或者针对本文中所示出或所描述的具体示例(或者其一个或多个方面),或者针对本文中所示出或所描述的其他示例(或者其一个或多个方面),还考虑到使用所示出或所描述的那些要素的任何组合或枚举(或者其一个或多个方面)的示例。

在本文档中提及的出版物、专利和专利文献通过引用而全部内容结合在此,如同通过引用而单独合并。在本文档与通过引用并于此的那些文档之间的不一致的使用的情况下,在并入的(多个)参考文献中的使用是对本文档的使用的补充;对于相矛盾的不一致,以本文档中的用法为准。

在本文档中,如在专利文档中是普遍的,术语“一个(a)”或“一个(an)”用于包括一个或多于一个,独立于“至少一个”或者“一个或多个”的任何其他实例或用法。在本文档中,术语“或者”用于指代非排他的或,从而使得除非另外指示,“a或b”包括“a而没有b”、“b而没有a”以及“a和b”。在所附权利要求书中,术语“包括(including)”和“其中(inwhich)”用作对应术语“包括(comprising)”和“其中(wherein)”的通俗的英文等价词。此外,在以下权利要求书中,术语“包括(including)”和“包括(comprising)”是开放式的,即,除在权利要求中列在此类术语之后的那些元素外还包括元素的系统、设备、物品或过程仍被视为落入所述权利要求的范围内。此外,在以下权利要求书中,术语“第一”、“第二”、和“第三”等仅用作标签,且不旨在暗示其对象的数值次序。

以上描述旨在是说明性的,而非限制性的。例如,以上所描述的示例(或者其一个或多个方面)可以互相结合使用。如本领域的普通技术人员在审阅以上描述后可以使用其他实施例。本摘要用于允许读者快速确定本技术公开的性质。基于其将不被用于解释或者限制权利要求书的范围或者含义的理解提交所述摘要。而且,在以上具体实施方式中,可以将各个特征分组在一起以便精简本公开。然而,权利要求书可以不对本文中公开的每一个特征进行阐述,并且实施例就可以表征所述特征的子集。进一步地,实施例可以包括相比在特定示例中公开的那些特征更少的特征。因此,据此将权利要求书结合到具体实施方式中,权利要求独立地代表单独的实施例。本文中所公开的实施例的范围应当参考所附权利要求书、连同这样的权利要求书有权获得的等效物的全部范围来确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1