CN105824872A - 基于搜索的数据的检测、链接和获取的方法和*** - Google Patents
基于搜索的数据的检测、链接和获取的方法和*** Download PDFInfo
- Publication number
- CN105824872A CN105824872A CN201610051916.9A CN201610051916A CN105824872A CN 105824872 A CN105824872 A CN 105824872A CN 201610051916 A CN201610051916 A CN 201610051916A CN 105824872 A CN105824872 A CN 105824872A
- Authority
- CN
- China
- Prior art keywords
- data acquisition
- data
- acquisition system
- associating
- coupling
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
计算装置可以接收自然语言查询。计算装置可以基于该自然语言查询来确定搜索条件集合。计算装置可以至少部分地基于在搜索条件集合和多个数据集合的属性之间的匹配,从多个数据集合中确定与该自然语言查询相关的两个或更多数据集合。计算装置可以联合两个或更多数据集合,包括联合两个或更多数据集合的一个或多个行以及一个或多个列以产生联合数据集合。计算装置可以输出联合数据集合的表示。
Description
技术领域
本公开涉及商业智能***,并且更具体地涉及与查询(query)有关的数据的获取。
背景技术
企业软件***可能包含财务规划***、预算规划***、订单管理***、库存管理***、销售人员管理***、商业智能工具、企业报告工具、工程和资源管理工具等。企业软件***可以维护、链接至或者另外管理相关数据。越来越多地,这样的数据以多种贮存机制和方案存储在多种数据源中,多种数据源包含在企业软件***内部的数据源以及在企业软件***外部的数据源。例如,企业软件***可以包含作为企业软件***的部分的一个或多个数据库。企业软件***也可以链接至在企业软件***外部的数据源,诸如外部网站、远程数据库等。
发明内容
一般地,本公开的方面指向用于与自然语言查询相关的数据的获取和链接的技术。企业软件***可以接收自然语言查询并进行语法分析(parse)以确定搜索条件集合。企业商业智能***可以基于数据集合的语义注释确定与搜索条件集合最佳地匹配的多个数据集合。数据集合可以具有各种数据格式,并且可以存储在企业商业智能***内部以及在其外部的各种数据源中。企业商业智能***可以将多个数据集合组合成组合数据集合,该组合数据集合可以被返回以提供对自然语言查询的回答。
在一方面,本公开指向一种方法。该方法可以包括通过计算装置接收自然语言查询。该方法还可以包括通过计算装置并且基于自然语言查询来确定搜索条件集合。该方法还可以包括至少部分地基于在搜索条件集合与存储在一个或多个存储装置中的多个数据集合的属性之间的匹配,通过计算装置并且从多个数据集合中确定与自然语言查询有关的两个或更多数据集合。该方法还可以包括通过计算装置来联合两个或更多数据集合,包括联合两个或更多数据集合的一个或多个行以及一个或多个列以产生联合数据集合。该方法还可以包括通过计算装置输出联合数据集合的表示。
在另一方面,本公开指向一种计算机***。该计算机***可以包括一个或多个处理器、一个或多个计算机可读的存储器、和一个或多个计算机可读的有形存储装置。计算机***还可以包括在一个或多个存储装置的至少一个上存储的程序指令,用于通过一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个执行,以接收自然语言查询。该计算机***还可以包括在一个或多个存储装置的至少一个上存储的程序指令,用于通过一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个执行,以基于自然语言查询确定搜索条件集合。该计算机***还可以包括在一个或多个存储装置的至少一个上存储的程序指令,用于通过一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个执行,以至少部分地基于在搜索条件集合与在一个或多个存储装置的至少一个中存储的多个数据集合的属性之间的匹配,从多个数据集合中确定与该自然语言查询相关的两个或更多数据集合。该计算机***还可以包括在一个或多个存储装置的至少一个上存储的程序指令,用于通过一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个执行,联合两个或更多数据集合,包括联合两个或更多数据集合的一个或多个行以及一个或多个列,以产生联合数据集合。该计算机***还可以包括在一个或多个存储装置的至少一个上存储的程序指令,用于通过一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个执行,以输出该联合数据集合的表示。
在另一方面,本公开涉及一种计算机产品,包括在其中包含有程序代码的计算机可读的存储介质。该程序代码可以由计算装置执行,以接收自然语言查询。该程序代码还可以由计算装置执行,以基于该自然语言查询来确定搜索条件集合。该程序代码还可以由计算装置执行,以至少部分地基于在搜索条件集合与多个数据集合的属性之间的匹配,从多个数据集合中确定与自然语言查询有关的两个或更多数据集合。该程序代码还可以由计算装置执行,以联合两个或更多数据集合,包括联合两个或更多数据集合的一个或多个行以及一个或多个列以产生联合数据集合。该程序代码还可以由计算装置执行,以输出联合数据集合的表示。
在附图和下面的描述中阐述了本公开的一个或多个方面的细节。根据该描述、附图和权利要求书,本公开的其他特征、目的和优点将是显而易见的。
附图说明
图1是例示示例企业的方框图,该示例企业具有其中用户与企业商业智能***进行交互的计算环境和可通过公共网路访问的数据源。
图2是进一步详细例示图1示出的企业商业智能***的一个实施例的部分的方框图。
图3是例示商业智能***中在用于返回与自然语言查询有关的联合数据集合的操作背景下的数据分析器的整体架构的示例的方框图。
图4A-4E是例示将两个或更多数据集合联合为联合数据集合的示例的方框图。
图5是例示由联合模块使用的示例元数据模型的方框图。
图6A和6B例示联合数据集合的示例可视化。
图7是例示在一个或多个计算装置上执行的数据分析器可以进行的示例处理的流程图。
图8是根据说明性示例可以用于执行数据分析器的计算装置的方框图。
具体实施方式
一般地,本公开的方面指向由企业软件***对与查询有关的数据进行获取和链接的技术。考虑到企业软件***所管理的数据的多种多样性,对于企业软件***而言有效地确定其管理的数据中哪些与所接收到的查询有关以及如何将来自于完全不同的数据集合的相关数据组合成可以由企业软件***提供以回答查询的联合数据集合可能是一种挑战。
为了有可能更好地确定与给定的查询有关的数据,企业软件***可以将其管理的数据集合编目录和编索引,包括为每个数据集合进行语义注释。响应于接收到查询,企业软件***可以对该查询进行语法分析以确定在该查询中包括的搜索条件集合,并且可以进行在搜索条件集合和数据集合语义注释之间的匹配以确定与查询最相关的一个或多个数据集合。如果相关数据集合的组合可以比仅单独的数据集合更好地覆盖查询的搜索条件,则企业软件***可以基于各种启发式规则来确定如何可以将多个数据集合合并为联合数据集合。以这种方式,企业软件***可以有可能呈现单个联合数据集合作为对该查询的响应,而无需对数据集合的外延先验建模(extensivepriormodeling)。
图1例示其中可以使用本公开的***的示例性背景。图1是例示具有计算环境10的示例性企业4的方框图,在该计算环境10中,多个用户12A-12N(统称“用户12”)可以与企业商业智能(BI)***14交互。在图1示出的***中,企业商业智能***14通过企业网络18通信耦合至多个客户端计算装置16A-16N(统称“客户端计算装置16”或“计算装置16”)。用户12与其各自的计算装置交互以访问企业商业智能***14。用户12、计算装置16A-16N、企业网络18和企业商业智能***14在不同的示例中可以全部位于单一的设施内或者可以广泛分布在世界上任何地方的两个或更多位置。
出于示例的目的,本公开的技术的各种示例可以容易地应用于各种软件***,包括企业商业智能***或其他大型企业软件***。企业软件***的示例包括企业财务或预算规划***、订单管理***、库存管理***、销售人员管理***、商业智能工具、企业报告工具、工程和资源管理***、和其他企业软件***。
在该示例中,企业BI***14包括运行BI仪表盘(dashboard)网络应用的服务器,并且可以提供商业分析软件。用户12可以使用在客户端计算装置16上的BI门户以便经由其各自的计算装置16来浏览和操纵诸如商业智能报告(BI报告)和数据的其他集合和可视化之类的信息。这可以包括来自各种各样来源中的任意的、包括来自在企业4内的多维数据结构和关系数据库的数据以及来自可以通过公共网络15访问的多种外部源的数据。
用户12可以使用多种不同类型的计算装置16以便与企业商业智能***14交互,并且经由企业网络18来访问数据可视化工具和其他资源。例如,企业用户12可以使用可以运行网络浏览器的膝上型计算机、桌面型计算机等与企业商业智能***14交互并且运行商业智能(BI)门户(例如商业智能仪表盘等)。可替换地,企业用户可以使用在网络浏览器中或者在专用移动应用中运行商业智能仪表盘的智能电话、平板计算机或者相似的装置用于与企业商业智能***14交互。
企业网络18和公共网络15可以代表任何通信网络,并且可以包括诸如私有企业内联网或像因特网之类的公共网络的基于分组的数字网络。以这种方式,计算环境10可以容易地缩放(scale)以适应大企业。企业用户12可以经由局域网直接访问企业商业智能***14,或者经由虚拟专用网络、远程拨号、或相似的远程访问通信机制来远程访问企业商业智能***14。
根据本公开的方面,企业商业智能***14可以接收自然语言查询。商业智能***14可以基于自然语言查询来确定搜索条件集合。商业智能***14可以至少部分地基于在搜索条件集合和多个数据集合的属性之间的匹配,从在一个或多个存储装置中存储的多个数据集合中确定两个或更多与该自然语言查询相关的数据集合。商业智能***14可以联合两个或更多数据集合,这包括将两个或更多数据集合的一个或多个行以及一个或多个列联合以产生联合数据集合。商业智能***14可以输出联合数据集合的表示。
图2是更详细地例示图1示出的企业商业智能(BI)***14的一个实施例的部分的方框图。在该示例实施中,单个客户端计算装置16A被示出用于描述的目的,并且其包括BI门户24以及一个或多个客户端企业软件应用26,用户可以通过该BI门户以及应用26输入对于数据的自然语言查询,并且用户可以通过该BI门户以及应用26浏览由企业商业智能***14响应于该自然语言查询而返回的联合数据集合。BI门户24可以呈现在一般网络浏览器应用内、在本地主管(host)的应用或移动应用内、或者其他用户界面内。可以使用对于正在其上产生BI门户的计算装置本地的、和/或在一个或多个应用服务器或其他远程资源中远程主管的应用软件和数据的任意组合来产生或呈现BI门户24。
在一些示例中,BI门户24可以输出联合数据集合的数据可视化,用于用户根据下文中更详细阐述的各种技术来浏览和操纵。BI门户24可以例如以用户可操纵的图表或图形的形式来呈现数据。BI门户24可以基于来自于例如可以利用企业商业智能***14生成的诸如BI报告之类的源的、或另一BI仪表盘的数据以及通过公共网络15来源于外部资源的其他类型的数据,呈现数据的可视化。
图2描绘企业商业智能***14的附加细节以及可以如何经由与BI门户24的交互来访问该企业商业智能***14用于查询商业智能***14以及响应于该查询来描绘和提供商业数据的可视化。BI门户24可以接收自然语言查询,并且商业智能***14可以从任意的各种类型的数据源提供与该查询有关的数据的指示,该数据源诸如BI报告、软件应用、数据库、电子表格、数据结构、平面文件、可扩展标记语言(“XML”)数据、逗号分隔值(CSV)文件、数据流、未组织的文本或数据、或者其他类型的文件或资源。
数据分析器23可以接收自然语言查询,分析该自然语言查询以便确定搜索条件集合,并且可以基于在数据源中包括的数据集合的语义注释来确定潜在地与该自然语言查询最相关的数据集合。在一些示例中,数据分析器23可以如在图2中描绘的示例中那样在企业应用25中被主管,或者可以被在其他地方被主管,包括在客户端计算装置16A上、或者分布在企业商业智能***14中的各种计算资源之间。数据分析器23可以被实施为或者采取的形式为单独的应用、较大应用的一部分或附加项(add-on)、应用代码库、多个应用和/或应用的部分的集合或者其他形式,并且可以由任何一个或多个服务器、客户端计算装置、处理器或处理单元或者其他类型的计算装置执行。
如图2所描绘的,按照三层架构来实施企业商业智能***14:(1)一个或多个网路服务器14A,其提供包括服务器侧BI门户应用21在内的具有用户界面功能的网络应用23;(2)一个或多个应用服务器14B,其提供用于企业软件应用25和数据访问装置20的操作环境;和(3)数据库服务器14C,其提供一个或多个数据源38A、38B、…、38N(“数据源38”)。企业软件应用25可以包括数据分析器25,作为企业软件应用25之一或者作为一个或多个企业软件应用25的一部分或多个部分。数据源38可以包括二维数据库和/或多维数据库或数据立方(datacube)。可以使用各种供应商平台实现数据源,并且数据源可以遍布企业而分布。作为一个示例,数据源38可以是被配置用于在线分析处理(OLAP)的多维数据库。作为另一示例,数据源38可以是被配置以接收和执行某个任意复杂度的多维表达式(MDX)查询的多维数据库。多维数据结构是“多维”在于每个多维数据元素由多个不同的对象类型定义,其中每个对象与不同的维度相关联。作为又一示例,数据源38可以是被配置以接收和执行也具有任意复杂度的SQL查询的二维关系数据库。
数据源38可以包括结构化或半结构化数据集合,其包括诸如商业信息之类的信息。下面的数据集合1是包括与加拿大气候历史有关的信息的示例数据集合的样本:
数据集合1
年 | 月 | 城市 | 平均温度(F) | 降水量(in.) |
2013 | 一月 | 多伦多 | 33 | 1.4 |
2013 | 一月 | 渥太华 | 25 | 3 |
2013 | 二月 | 多伦多 | 33 | 1.1 |
2013 | 二月 | 渥太华 | 28 | 2.1 |
下面的数据集合2是包括与产品销售有关的信息的示例数据集合的样本:
数据集合2
产品类型 | 年 | 月 | 城市 | 数量 | 收益 |
滑雪板 | 2013 | 一月 | 多伦多 | 204 | $102,000.00 |
游泳衣 | 2013 | 一月 | 多伦多 | 62 | $6,2000.00 |
滑雪板 | 2013 | 一月 | 渥太华 | 143 | $71,400.00 |
游泳衣 | 2013 | 一月 | 渥太华 | 37 | $3,720.00 |
滑雪板 | 2013 | 二月 | 多伦多 | 183 | $91,500.00 |
游泳衣 | 2013 | 二月 | 多伦多 | 68 | $6,800.00 |
在客户端计算装置16A上的企业应用26可以向企业商业智能***14发出商业查询以建立报告。这些商业查询可以是由计算装置16A的用户输入的自然语言查询。自然语言查询的一些示例可以包括“2003和2012年花在看电视上的时间”、“我们的客户中有多少出现在财富500强名单上”、“过去两年里远东办公区销售的产品”和“温度如何影响产品销售”。自然语言查询也被称作搜索短语。企业商业智能***14包括数据分析器23,该数据分析器分析该搜索短语并且从数据源38中确定用于最佳地回答查询的最相关的数据集合。客户端计算装置16A可以通过企业网络18将搜索短语发送至数据分析器23。数据分析器23可以将搜索短语分解为其元素。数据分析器23可以沿着词边界(wordboundary)分解搜索短语。数据分析器23也可以在需要时(aswarranted)沿着词组合来将搜索短语分解为搜索条件集合,比如如果词组合与数据源39中的数据集合的数据项名称或具体值相匹配。数据分析器23也可以进行所分解的词或词组合的词干提取。
数据分析器23可以至少部分地基于数据源39中的每个数据集合的数据项的语义注释,确定在数据源39中的与搜索短语相关的数据集合。在美国专利No.13/844,612中描述了商业智能***14可以如何进行数据源39中的数据集合的这种语义注释的细节,该专利通过引用合并于此。数据分析器25可以进行从搜索短语中所确定的条件集合与在数据源39中的每个数据集合的数据项的语义注释的匹配,以确定在数据源39中的每个数据集合的相关度得分。数据分析器23可以至少部分地基于该相关度得分来对数据源39中的数据集合进行排序(rank),并且还可以确定数据集合的组合的覆盖度得分以确定将多个数据集合组合是否可以提供对该搜索短语的更为相关的答案。
如果数据分析器23确定在数据源39中的两个或更多数据集合的组合与在数据源39中的两个或更多数据集合的其他组合相比较可以提供对搜索短语的最相关的答案,则数据分析器23可以确定这两个或更多数据集合是否可以联合为联合数据集合以及确定如何联合这两个或更多数据集合。
数据分析器23可以使用数据访问服务20以取回由数据分析器23确定的提供针对搜索短语的最相关答案的两个或更多数据集合,该数据访问服务提供到数据源38的逻辑接口。数据访问服务20例如可以在企业软件应用25和在数据库服务器14C中的下层数据源的中间的应用服务器上运行。数据访问服务20根据查询规范从下层数据源取回数据集合。
数据分析器23可以将所取回的两个或更多数据集合联合为联合数据集合,并且可以经由BI门户应用21输出该联合数据集合的表示,其中用户可以在用客户端计算装置16A经由BI门户24浏览该表示。联合数据集合的表示可以包括数据集合的可视化,比如联合数据集合的图表、图形等,作为示意性的示例,比如随时间的产品收益趋势或者比较在特定时间段内的产品收益的图表。
图3是例示在商业智能***中用于返回与自然语言查询相关的联合数据集合的操作背景中的数据分析器的整体架构的方框图。如图3所示,数据源38可以包括数据库42、数据立方或多维数据结构44、电子表格46、逗号分隔值(CSV)文件48、简易信息聚合(RSS)馈送50、以及其他的诸如网页、文本文件、多媒体文件等的数据源52。数据源38可以存储在诸如在企业智能***14中所包括的企业存储***之类的企业存储***中、以及诸如在外部网络服务器中存储的网页之类的在商业智能***14之外的存储***中。
语义索引器22可以对数据源38中的数据集合进行编索引和编目录,以便对数据集合的数据项进行语义注释并且将这样的语义注释作为数据集合的属性存储在语义索引62中。语义索引器22可以沿着词汇线索(lexicalclues)、语义注释和统计学上重要的样本值和数据对数据集合进行编目录,并且可以将这样的语义元数据、词汇线索、样本值和数值统计作为数据源38中的数据集合的属性存储在语义索引62中。对于每个数据集合,语义索引器22可以将各种项目标题(heading)以其原始形式以及以令牌化形式存储至语义索引62中,这可以用于通过名称来查找数据集合。对于每个数据项,语义索引器22可以将样本值、统计值(例如最小/最大值)、唯一值的集合、和值的总数量收集至语义索引62中。对于每个数据集合,语义索引器22还可以进行语义分析,以便捕获上位概念以及解释数据集合是关于何的商业概念。例如,对于数据集合1和数据集合2,语义分析可以识别诸如年和月之类的时间概念、诸如城市之类的地理概念、诸如收益之类的货币度量、和诸如对于降水量的英寸以及对于平均温度的华氏温度之类的测量单位并且将其捕获至语义索引62中。
数据分析器23可以经由商业智能门户24接收自然语言查询。例如,用户可以经由网络浏览器访问商业智能门户24,并且可以向由商业智能门户24呈现的网页的文本输入框中输入自然语言查询。自然语言查询的示例可以是“温度如何影响产品销售”或者“过去两年里远东办公区销售的产品”。
查询分析器64可以对自然语言查询进行语法分析,以确定搜索条件集合并且确定总体希望的分析的估计。对自然语言查询的语法分析可以包括沿着词边界或者词组合将自然语言查询分解为元素。在“温度如何影响产品销售(howdoestemperatureimpactproductsales)”的自然语言查询的示例中,查询分析器64可以将该查询分解成{温度,如何,影响,产品,销售}({how,does,temperature,impact,product,sales})的搜索条件集合,并且可以确定销售值与温度的相关性的总体希望的分析。在“过去两年里远东办公区销售的产品(productssoldbyFarEastofficeinlasttwoyears)”的自然语言查询的示例中,查询分析器可以将该查询分解成{过去,两年,里,远东,办公区,销售,产品}({products,sell,by,‘FarEast’,office,in,last,two,years})的搜索条件集合,并且可以确定远东办公区销售的产品与过去两年的时间段的相关性的总体希望的分析。
匹配模块66可以确定在从自然语言查询得到的搜索条件集合和在数据源38中的数据集合的语义索引62中所存储的属性之间的匹配。搜索条件集合和数据集合属性之间的匹配可以包括以下的一个或多个:文字匹配、值匹配、语义匹配或者部分名称匹配。文字匹配可以是在搜索条件之一与诸如特定行、列、标题等的特定标签之间的文字匹配。例如,搜索条件“年”可以与“年(YEAR)”数据列文字匹配。值匹配可以是在搜索条件之一与包括数据项的特定值的数据项集合之间的匹配。例如,“远东”搜索条件可以与包括“远东”数据项值的数据项集合“销售区域”具有值匹配。语义匹配可以是搜索条件之一与概念上相关的数据项集合之间的匹配。例如,“客户端”搜索条件可以与“CUSTOMER_ID”(“消费者_ID”)或“CUSTOMER_NAME”(“消费者_名称”)数据项具有语义匹配。部分名称匹配可以是搜索条件之一与数据项集合的名称之间的部分匹配。例如,“TV”搜索条件可以与具有“电视和电影(非宗教)”或者“电视(宗教)”标题的数据项具有部分名称匹配。
匹配模块66可以将强度的指示与每个匹配相关联。强度的指示可以从文字匹配到值匹配到语义匹配到部分名称匹配在强度上降低,使得文字匹配可以与比值匹配相对更高的强度指示相关联,等等。匹配模块66可以至少部分基于与各个匹配相关联的匹配强度指示来对匹配进行排序。例如,一个数据集合可以包括经由文字匹配、值匹配、语义匹配和/或部分名称匹配中的一个或多个而与搜索条件相匹配的一组或多组数据项目。可以根据与匹配相关联的强度指示来对每个匹配进行加权,使得文字匹配可以比值匹配等具有更大的权重。
匹配模块66可以至少部分地基于在搜索条件集合与数据集合属性之间的加权的各个匹配的综合来确定对于每个数据集合的总体相关性,并且可以至少部分基于每个数据集合的总体相关性来对数据源38中的数据集合进行排序。以这种方式,匹配模块66可以基于排序确定哪些数据集合相对而言与搜索条件集合更为相关。
匹配模块66可以确定数据源38中的数据集合的覆盖度得分。数据集合的覆盖度得分可以被确定为联系于(boundto)与数据集合相关联的一个或多个属性的自然语言查询的百分比。匹配模块66也可以确定对于两个或更多数据集合的一个或多个组合中的每一个组合的覆盖度得分,以确定两个或更多数据集合的组合是否可以得到比任何单个数据集合更高的覆盖度得分。例如,考虑自然语言查询“温度如何影响产品销售”,数据集合1可能能够覆盖搜索条件“温度”,而数据集合2可能能够覆盖搜索条件“产品销售”。通过组合数据集合1和数据集合2,该数据集合的组合可能能够覆盖“温度”和“产品销售”两者,由此得到比数据集合1或2自身更高的覆盖度得分。
这样,联合模块68可以至少部分地基于对于两个或更多数据集合的一个或多个组合中的一个组合确定的覆盖度得分,将两个或更多数据集合的一个或多个组合中的该一个组合确定为用于联合为联合数据集合的两个或更多数据集合。在图3的示例中,联合模块68可以至少部分基于由匹配模块66对于数据集合1和2的组合确定的覆盖度得分来确定数据集合1和数据集合2的组合作为两个或更多用于联合为联合数据集合的两个或更多数据集合。
如果联合模块68确定出联合两个或更多数据集合的组合可以提供相对较高的覆盖度得分,则联合模块68可以确定这两个或更多数据集合是否可以被联合在一起以及如何联合这两个或更多数据集合。联合模块68可以基于试探规则集合进行操作以确定用于联合两个或更多数据集合的联合路径,并且可以建立即刻发生的(onthefly)查询以从构成该联合数据集合的数据源38取回数据项的集合。
在两个或更多数据集合之间的联合路径可以是可以被联合在一起以便形成联合数据项集合的数据组的数据项集合。例如,来自两个或更多数据集合的每一个中的各行的数据项可以被联合在一起,或者来自两个或更多数据集合的每一个中的各列的数据项可以被联合在一起。这样,联合两个或更多数据集合可以包括至少部分地基于所确定的用于产生联合数据路径的联合路径,来联合两个或更多数据集合的一个或多个行和一个或多个列。
联合模块68可以确定在两个或更多数据集合中包括匹配的数据项的两个或更多数据集合之间的联合路径。例如,来自第一数据集合的年列可以与来自第二数据集合的年列联合,以产生联合的年列。
联合模块68也可以确定在两个或更多数据集合中包括值重叠的两个或更多数据集合之间的联合路径。在将来自第一数据集合的年列与来自第二数据集合的年列联合的示例中,当且仅当在相应的年列之间存在值重叠时,联合模块68可以联合相应的年列。例如,如果第一数据集合的年列的范围为从2005至2008,并且如果第二数据集合的年列的范围为从2007至2013,则联合模块68能够联合这些年列。相反,如果相应的年列的值并不重叠,比如如果第一数据集合的年列的范围为从2005到2008,并且第二数据集合的年列的范围为从2009到2013,则联合模块68可以确定不联合来自第一数据集合的年列与来自第二数据集合的年列。
由于很少希望联合诸如收益、数量或温度之类的度量项,所以联合模块68可以将度量项排除而不被包括在联合路径中。
联合模块68也可以至少部分地基于概念特定规则确定在两个或更多数据集合之间的数据项的一个或多个联合路径,该概念特定规则可以是取决于从数据项中检测到的具体概念而特定的规则。例如,具有诸如日期之类的时间概念的数据项在没有其他也被包括在联合路径中的数据项的情况下可能其自身并不是良好的联合路径候选者,原因在于,由于任何具有日期的数据集合都可能潜在地被联合在一起,其可能导致误判(falsepositive)。但是,如果日期属性是数据集合的唯一关键字(key),则数据集合很可能是过渡的(transitional)数据集合,并且在此情况下日期数据可能是良好的联合路径候选者。
图4A-4E是例示将两个或更多数据集合联合为联合数据集合的示例的方框图。如图4A所示,考虑示例性数据集合70和72,其每一个包括两行两列,联合模块68可以确定在包括一个或多个匹配行的数据集合70和72之间的联合路径。在图4A的示例中,通过确定可以被联合在一起成为匹配行71的在数据集合70和72中的行,联合模块68可以联合数据集合70和72。在图1的示例中,匹配行71可以是被包括在联合数据集合中的数据集合70和72的仅一行。如图4B中所示,在一些示例中,除了匹配行71之外,数据集合70或数据集合72的行可以被包括在从将数据集合70和72进行联合所得到的联合数据集合中。例如,从将数据集合70和72进行联合所得到的联合数据集合可以包括匹配行71以及来自数据集合70的行73。如图4C所示,在另一示例中,从将数据集合70和72进行联合所得到的联合数据集合可以包括匹配行71以及来自数据集合72的行75。如图4D所示,在另一示例中,从将数据集合70和72进行联合所得到的联合数据集合可以包括匹配行71以及来自于数据集合70的行73和来自于数据集合72的行75。
如图4E中所示,联合模块68也可以确定在包括一个或多个匹配列的数据集合之间的联合路径。列74可以表示数据集合1的列,并且列76可以表示数据集合2的列。列74可以包括年列78、月列80、城市列82和平均温度列84,而列76可以包括产品类型列86、年列88、月列90和城市列92。联合模块68可以联合年列78与年列88、月列80与月列90、以及城市列82与城市列92。
在联合路径中参与的项并不是必须是联系于自然语言查询的相同的项。例如,尽管自然语言查询“温度如何影响产品销售”并未提到年、月或城市,但是联合模块86仍可以将年列78和88、月列80和90、以及城市列82和92包括到用于数据集合1和数据集合2的联合路径中。
联合模块68可以确定在两个或更多数据集合的属性之间的一个或多个候选联合路径,并且在一些示例中可以将一个或多个候选联合路径呈现给用户用于对在两个或更多数据集合之间的一个或多个联合路径的用户确认。联合模块68可以接收调整一个或多个候选联合路径的用户输入,并且可以至少部分地基于该用户输入来调整一个或多个候选联合路径以便确定在两个或更多数据集合之间的一个或多个联合路径。
在确定数据集合之间的联合路径以及产生联合数据集合时,联合模块68可以确定如何最佳地在数据集合之间正确合并和聚合。下面两个示例的数据集合可以是联合模块68正试图将其联合为联合数据集合的数据集合:
产品销售数据集合
产品销售预期数据集合
如上所示,在收益值在产品销售数据集合中沿着各个项目重复的同时,预期值在产品销售数据集合中沿着品种重复。如果联合模块68通过将每个数据集合的“行业”和“品种”列匹配来将产品销售数据集合与产品销售预期数据集合联合,则对于在产品销售预期数据集合中的“行业”和“品种”列的每一个唯一组合,在产品销售数据集合中存在多个相应的行。这样,联合模块68可以至少部分地基于用于产品销售数据集合和产品销售预期数据集合的元数据模型来确定对于每个产品项目显示哪些预期值。
图5是例示由联合模块68使用的示例性元数据模型的方框图。如图5所示,元数据模型94可以是产品销售数据集合的元数据模型,并且元数据模型96可以是产品销售预期数据集合的元数据模型。语义索引器22可以构造元数据模型94和96,并且可以在语义索引62中存储元数据模型94和96。cIdentifierLine(c标识符行业)98、cIdentifierItem(c标识符项目)104、cIdentifierBrand(c标识符品种)106、cIdentifierLine108、和cIdentifierBrand114可以是数据项,并且cProduct(c产品)100、cProduct101、cProduct102、cProduct110和cProduct112可以是与前述数据项目相关联的产品类别。连接cProduct100、cProduct101、cProduct102、cProduct110和cProduct112的带箭头的线可以指示数据层级,该数据层级是一对多的关联。联合模块68可以基于元数据模型94和96来确定产品销售数据集合包含行业->品种->项目的三级深的层级,而产品销售预期数据集合包含行业->品种的两层深的层级。联合模块68因此可以确定在联合数据集合中对于在单个品种下的每个项目重复预期值。
响应于确定联合数据集合,联合模块68可以比如经由数据访问服务20查询数据源38以取回包含该联合数据集合的数据项。查询可以指定从数据源38返回哪些数据集合的哪些数据项,包括指定从数据源38返回的指定数据项的范围。查询还可以指定从数据源38返回的数据项如何被合并和/或布置。数据分析器23可以经由商业智能门户24输出该联合数据集合的表示,使得客户端计算装置16A可以访问并且浏览该联合数据集合的表示。通过商业智能门户24输出的联合数据集合的表示可以是联合数据集合的逻辑合并的视图,比如联合数据集合的行和列的电子表格。可替换地,联合数据集合的表示可以包括在联合数据集合中包含的数据的可视化。
图6A和6B例示联合数据集合的示例可视化。如图6A中所示,商业智能门户24可以输出图形116,图形116可以是联合数据集合的图形,该联合数据集合是用于回答自然语言查询“温度如何影响产品销售”的数据集合1和数据集合2的组合。如图6B中所示,商业智能门户24可以输出图形118,图形118是联合数据集合的图形,该联合数据结合是产品销售数据集合和销售预期数据集合的组合。
图7是例示在一个或多个计算装置(例如服务器、计算机、处理器等)上执行的数据分析器23可以进行的示例处理700的流程图。数据分析器23可以接收自然语言查询(702)。数据分析器23可以基于该自然语言查询确定搜索条件结合(704)。数据分析器23可以至少部分地基于在搜索条件集合和在一个或多个存储装置中存储的多个数据集合的属性之间的匹配,从在多个数据集合中确定与该自然语言查询相关的两个或更多数据集合(706)。数据分析器23可以联合这两个或更多数据集合,包括联合这两个或更多数据集合的一个或多个行以及一个或多个列以产生联合数据集合(708)。数据分析器23可以输出联合数据集合的表示(710)。
在一些示例中,在搜索条件集合和多个数据集合的属性之间的匹配包括以下的一个或多个:文字匹配、值匹配、语义匹配和部分名称匹配,并且其中多个数据集合的属性包括以下的一个或多个:语义元数据、词汇线索、样本值和数字统计。在一些示例中,数据分析器23可以将匹配强度d指示与每个匹配相关联,并且可以基于与相应的匹配相关联的匹配强度的指示来对匹配排序。
在一些示例中,数据分析器23可以至少部分地基于匹配的排序来确定多个数据集合中的两个或更多数据集合的一个或多个组合中的每一个组合的覆盖度得分,并且可以至少部分地基于对于两个或更多数据集合的一个或多个组合中的一个组合所确定的覆盖度得分来将该两个或更多数据集合的一个或多个组合中的该一个组合确定为要被联合为联合数据集合的两个或更多数据集合。在一些示例中,将两个或更多数据集合的一个或多个组合中的一个组合确定为要联合为联合数据集合的两个或更多数据集合可以包括确定在这两个或更多数据集合之间的数据项的一个或多个联合路径。在一些示例中,数据分析器23可以联合两个或更多数据集合,包括联合这两个或更多数据集合的一个或多个行以及一个或多个列以产生联合数据集合还包括至少部分地基于一个或多个联合路径来联合两个或更多数据集合。
在一些示例中,一个或多个联合路径可以包括在两个或更多数据集合中的值重叠。在一些示例中,一个或多个联合路径可以包括在两个或更多数据集合中的匹配的数据项。在一些示例中,确定在两个或更多数据集合之间的数据项的一个或多个联合路径至少部分地基于概念特定规则。在一些示例中,确定在两个或更多数据集合之间的数据项的一个或多个联合路径可以包含从一个或多个联合路径中排除度量数据项。在一些示例中,确定在两个或更多数据集合的数据项的一个或多个联合路径可以包括至少部分地基于用户输入来调整一个或多个联合路径。
图8是根据示意性示例可以用于执行数据分析器23的计算装置800的方框图。计算装置800可以是如上文参考图2所述的服务器,包括网络服务器14A、应用服务器14B和数据库服务器14C中的一个或多个。计算装置800也可以是用于在各种示例中提供数据分析器23的任何服务器,包括可以从任意数量的计算装置运行或并入任意数量的计算装置的虚拟服务器。计算装置可以作为真实或虚拟服务器的全部或者部分而操作,并且可以是或者可以并入工作站、服务器、大型计算机、笔记型或膝上型计算机、桌上型计算机、平板、智能电话、功能电话或者任何类型的其他可编程数据处理设备。计算装置800的其他实现方式可以包括具有除了或超出在此所述的那些的性能或格式的计算机。
在图8的示意性示例中,计算装置800包含通信构造882,其提供在处理器单元884、存储器886、持久性数据存储装置888、通信单元890和输入/输出(I/O)单元892之间的通信。通信构造882可以包括专用***总线、通用***总线、以层次形式布置的多个总线、任何其他类型的总线、总线网络、交换构造或者其他互连技术。通信构造882支持在计算装置800的各种子***之间传送数据、命令和其他信息。
处理器单元884可以是可编程中央处理单元(CPU),其被配置用于执行在存储器886中存储的编程的指令。在另一示意性示例中,可以使用一个或多个异构处理器***实现处理器单元884,在该异构处理器***中存在主处理器,次级处理器在单个芯片上。在另一示意性示例中,处理器单元884可以是对称多处理器***,其包含多个相同类型的处理器。处理器单元884可以是诸如公司的处理器之类的精简指令集计算(RISC)微处理器、诸如公司的处理器之类的x86兼容处理器、AdvancedMicro公司的处理器、或者任何其他合适的处理器。在各种示例中,处理器单元884例如可以包括诸如双核或四核处理器之类的多核处理器。处理器单元884例如可以在一个裸芯上包括多个处理芯片、和/或在一个封装或基板上包括多个裸芯。处理器单元884例如也可以包括一级或多级的集成缓存存储器。在各种示例中,处理器单元884可以包括在一个或多个地点之间分布的一个或多个CPU。
数据存储装置896包括存储器886和持久性数据存储装置888,它们通过通信构造882来与处理器单元884通信。存储器886可以包括随机存取半导体存储器(RAM),用于存储用于处理的应用数据、即计算机程序数据。尽管存储器886在概念上被描绘为单个单片实体,但是在各种示例中,存储器886可以被布置在缓存的层次中以及其他存储器装置中、单个物理位置上、或者以各种形式分布在多个物理***之间。尽管存储器886被描述为物理上与处理器单元884以及计算装置800的其他元件相分离,但是存储器886同样可以指代在整个计算装置800的任何位置处的任何中间的或缓存存储器,包括接近处理器单元884或者与处理器单元884集成的缓存存储器或者接近处理器单元884的各个核或与各个核相集成的缓存存储器。
持久性数据存储装置888可以包括一个或多个硬盘驱动器、固态驱动器、快闪驱动器、可重写光盘驱动器、磁带驱动器或者这些或其他数据存储介质的任何组合。持久性数据存储装置888可以存储用于操作***的计算机可执行指令或者计算机可读程序代码、包括程序代码的应用文件、数据结构或数据文件、和任何其他类型的数据。这些计算机可执行指令可以从持久性数据存储装置888加载至存储器886中,以由处理器单元884或其他处理器读取和执行。数据存储装置896也可以包含能够基于临时基础和/或永久基础而存储诸如例如但不限于数据、函数形式的程序代码和/或其他合适的信息的信息的任何其他硬件元件。
持久性数据存储装置888和存储器886是物理的、有形的、非暂时性的计算机可读数据存储装置的示例。数据存储装置896可以包含任意的各种形式的易失性存储器,其可能需要被周期性地电刷新以便在存储器中维持数据,而本领域技术人员将认识到,这也构成物理的、有形的、非暂时性计算机可读数据存储装置的示例。当程序代码被加载、存储、中继、缓冲或缓存在非暂时性物理介质或装置上、包括只要仅短持续时间或仅以易失性存储器形式时,可执行的指令可以存储在非暂时性介质上。
处理器单元884也可以适当地被编程以读取、加载和执行用于数据分析器23的计算机可执行指令或计算机可读程序代码,如上文中更详细描述的。改程序代码可以存储在存储器886、持久性数据存储装置888、或者计算装置800的其他位置上。该程序代码也可以采取存储在计算机程序产品800中包括的计算机可读介质802上的程序代码804的形式,并且可以通过任意的各种本地或远程方式从计算机程序产品800传送或传达至计算装置800,以能够被处理器单元884执行,如下文中进一步解释的。
操作***可以提供诸如装置接口管理、存储器管理和多任务管理之类的功能。操作***可以是诸如来自公司的操作***之类的基于Unix的操作***、诸如来自公司的操作***家族之类的非基于Unix的操作***、诸如来自公司的之类的网络操作***、或者其他任何合适的操作***。处理器单元884可以适当地被编程,以读取、加载和执行操作***的指令。
通信单元890在该示例中提供与其他计算或通信***或装置的通信。通信单元890可以通过使用物理的和/或无线的通信链路来提供通信。通信单元890可以包含网络接口卡,用于与企业网络18、公共网络15、以太网适配器、令牌环适配器、用于连接到诸如电话线之类的传输***的调制调解器、或者任何其他类型的通信接口相接口。通信单元890可以用于操作地将各种类型的***计算装置连接到计算装置800,比如打印机、总线适配器和其他计算机。通信单元890可以被实施为扩展卡或者例如内置在母板中。
输入/输出单元892可以支持适于通过可以连接到计算装置800的其他装置来输入和输出数据的装置,比如键盘、鼠标或者其他指示器、触摸屏界面、用于打印机或任何其他***装置的接口、可移除磁盘或光盘驱动器(包括CD-ROM、DVD-ROM、或蓝光)、通用串行总线(USB)接收器、或者任何其他类型的输入和/或输出装置。输入/输出单元892在各种示例中还可以包括任何类型的用于以任何类型的视频输出协议输出的视频的接口、以及任何类型的显示器或其他视频显示技术。可以理解的是,这些示例中的一些可以彼此重叠,或者与通信单元890或数据存储装置896的示例部件重叠。输入/输出单元892还可以包含用于任何类型的外部装置的合适的装置驱动器,或者这样的装置驱动器可以在适当时驻留于计算装置800上的其他位置。
在该示意性示例中,计算装置800还包括显示适配器894,其提供用于诸如显示装置898的一个或多个显示装置的一个或多个连接,该显示装置可以包括任意的多种类型的显示装置。可以理解的是,这些示例中的一些可能与通信单元890或输入/输出单元892中的示例部件重叠。输入/输出单元892也可以包含用于任意类型的外部装置的合适的装置驱动器,或者这样的装置驱动器可以在适当时驻留于计算装置800上的其他位置。在各种示例中,显示适配器894可以包括一个或多个视频卡、一个或多个图形处理单元(GPU)、一个或多个可视频连接端口、或者能够传送视频数据的任何其他类型的数据连接器。在各种示例中,显示装置898可以是任何种类的显示装置,比如监视器、电视、或投影仪。
输入/输出单元892可以包括用于接收计算机程序产品801的驱动器、插口或出口,计算机程序产品801包括具有在其上存储的计算机程序代码104的计算机可读介质802。例如,计算机程序产品801可以是作为示意性示例的CD-ROM、DVD-ROM、蓝光盘、磁盘、USB棒、闪存盘或者外部硬盘、或者任何其他合适的数据存储技术。
计算机可读介质802可以任何类型的光、磁、或者其他物理介质,其将程序代码804物理地编码为在存储器的每个单元中的不同物理状态的二进制序列,在被计算装置800读取时引起由处理器884读取的、与存储介质802的基本数据存储元件的物理状态相对应的物理信号,并且引起处理器单元884的物理状态上的相应改变。该物理程序代码信号可以以诸如高级编程语言、汇编语言或者机器语言之类的任意的各种抽象级别建模或者概念化,但是最终构成一系列物理的电和/或磁相互作用,该相互作用在物理上引起处理器单元884的物理状态上的改变,因此以物理上以使得计算装置800在物理上采取其直到通过加载在程序代码804中包含的可执行指令来改变其物理状态时才具备的新性能这种方式,在物理上引起或者配置处理器单元884以生成与计算机可执行的指令相对应的物理输出。
在一些示意性示例中,可以通过网络从另一装置或计算机***将程序代码804下载至数据存储装置896,以在计算装置800中使用。包括计算机可执行指令的程序代码804可以通过到通信单元890的硬线或无线通信链路和/或通过与输入/输出单元892的连接从计算机可读介质802传送或传输至计算装置800。包括程序代码804的计算机可读介质802可以位于与计算装置800相分离的位置或者计算装置800的远程位置,并且可以位于包括世界上任何地方的任何远程地理位置在内的任何地方,并且可以通过诸如因特网和/或其他分组数据网络之类的任意类型的一个或多个通信链路将程序代码804中继至计算装置800。例如,程序代码804可以通过无线因特网连接或者通过诸如无线LAN、BluetoothTM、Wi-FiTM或者红外连接之类的较短距离直接无线连接而传输。在其他实现方式中也可以使用任何其他的无线或远程通信协议。
通信链路和/或连接在各种示意性示例中可以包括有线和/或无线连接,并且可以通过包含程序代码804的诸如通信链路或无线传输之类的无形介质从源计算机可读的介质802传输程序代码804。程序代码804可以在从其初始源介质到计算装置800的路途上或多或少地暂时性地或者长久地存储在任何数量的中间有形的、物理的计算机可读的装置和介质上,比如任何数量的物理缓冲器、缓存、主存储器、或者服务器的数据存储部件、网关、网络节点、移动性管理实体、或者其他网络设施。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
为了例示的目的已经给出了对本发明的各个实施例的描述,但是不意图穷尽或者限制到所公开的实施例。不脱离所描述的实施例的范围和精神,许多修改和变化对于本领域技术人员而言将是显而易见的。选择在此使用的技术以最佳地说明实施例的原理、实际应用或者相比于在市场上找到的技术的技术改进,或者使得本领域技术人员能够理解在此公开的实施例。
Claims (15)
1.一种方法,包括:
通过计算装置接收自然语言查询;
通过该计算装置并且基于该自然语言查询来确定搜索条件集合;
至少部分地基于在所述搜索条件集合和在一个或多个存储装置中存储的多个数据集合的属性之间的匹配,通过该计算装置并且从所述多个数据集合中确定与该自然语言查询相关的两个或更多数据集合;
通过该计算装置联合所述两个或更多数据集合,包括联合所述两个或更多数据集合的一个或多个行以及一个或多个列,以产生联合数据集合;以及
通过该计算装置输出所述联合数据集合的表示。
2.根据权利要求1所述的方法,
其中,在所述搜索条件集合和所述多个数据集合的属性之间的匹配包括以下的一个或多个:文字匹配、值匹配、语义匹配或部分名称匹配,并且
其中,所述多个数据集合的属性包括以下的一个或多个:语义元数据、词汇线索、样本值或数值统计。
3.根据权利要求2所述的方法,还包括:
通过该计算装置将匹配强度的指示与每个匹配相关联;以及
通过该计算装置基于与每个匹配相关联的各自的匹配强度的指示来对匹配排序。
4.根据权利要求3所述的方法,还包括:
通过该计算装置至少部分地基于匹配的排序来确定对于所述多个数据集合中的两个或更多数据集合的一个或多个组合中的每一个组合的覆盖度得分;以及
至少部分地基于对于两个或更多数据集合的所述一个或多个组合中的一个组合的每一个的各自确定的覆盖度得分,确定两个或更多数据集合的所述一个或多个组合中的该一个组合作为要联合为联合数据集合的两个或更多数据集合。
5.根据权利要求4所述的方法,其中,
通过该计算装置确定两个或更多数据集合的所述一个或多个组合中的该一个组合作为要联合为联合数据集合的两个或更多数据集合还包括:确定在所述两个或更多数据集合之间的数据项的一个或多个联合路径;以及
通过该计算装置确定所述两个或更多数据集合还包括:至少部分地基于所述一个或多个联合路径来联合所述两个或更多数据集合。
6.根据权利要求5所述的方法,其中,所述一个或多个联合路径包括在所述两个或更多数据集合中的值重叠。
7.根据权利要求5所述的方法,其中,所述一个或多个联合路径包括在所述两个或更多数据集合中的匹配数据项。
8.根据权利要求5所述的方法,其中,至少部分地基于概念特定规则来确定所述一个或多个联合路径。
9.根据权利要求5所述的方法,其中,确定所述一个或多个联合路径还包括从所述一个或多个联合路径中排除度量数据项。
10.根据权利要求5所述的方法,其中,确定数据项的一个或多个联合路径还包括至少部分地基于用户输入来调整所述一个或多个联合路径。
11.一种计算机***,包括:
一个或多个处理器、一个或多个计算机可读的存储器、以及一个或多个计算机可读的有形存储装置;
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以接收自然语言查询;
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以基于所述自然语言查询来确定搜索条件集合;
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以至少部分地基于所述搜索条件集合与在所述一个或多个存储装置中存储的多个数据集合的属性之间的匹配,从所述多个数据集合中确定与所述自然语言查询相关的两个或更多数据集合;
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,联合所述两个或更多数据集合,包括联合所述两个或更多数据集合的一个或多个行以及一个或多个列以产生联合数据集合;和
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以输出所述联合数据集合的表示。
12.根据权利要求11所述的计算机***,其中,所述搜索条件集合和所述多个数据集合的属性之间的匹配包括以下的一个或多个:文字匹配、值匹配、语义匹配和部分名称匹配,并且其中,所述多个数据集合的属性包括以下的一个或多个:语义元数据、词汇线索、样本值和数值统计。
13.根据权利要求12所述的计算机***,还包括:
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以将匹配强度的指示与每个匹配相关联;和
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以基于与各个匹配相关联的匹配强度的指示来对匹配排序。
14.根据权利要求13所述的计算机***,还包括:
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以至少部分地基于匹配的排序确定对于所述多个数据集合中的两个或更多数据集合的一个或多个组合中的每一个组合的覆盖度得分;和
程序指令,存储在一个或多个存储装置中的至少一个上,用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行,以至少部分地基于对于两个或更多数据集合的一个或多个组合中的一个组合所确定的覆盖度得分,确定两个或更多数据集合的一个或多个组合中的所述一个组合作为要联合为联合数据集合的两个或更多数据集合。
15.根据权利要求14所述的计算机***,其中:
用于确定两个或更多数据集合的一个或多个组合中的一个组合作为要联合为联合数据集合的两个或更多数据集合的程序指令还包括存储在一个或多个存储装置中的至少一个上、用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行、以确定在所述两个或更多数据集合之间的数据项的一个或多个联合路径的程序指令;和
用于联合所述两个或更多数据集合、包括联合所述两个或更多数据集合的一个或多个行以及一个或多个列以产生所述联合数据集合的程序指令还包括存储在一个或多个存储装置中的至少一个上、用于由所述一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行、以至少部分地基于所述一个或多个联合路径来联合所述两个或更多数据集合的程序指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/606,844 | 2015-01-27 | ||
US14/606,844 US10318527B2 (en) | 2015-01-27 | 2015-01-27 | Search-based detection, link, and acquisition of data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105824872A true CN105824872A (zh) | 2016-08-03 |
CN105824872B CN105824872B (zh) | 2020-02-14 |
Family
ID=55445999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610051916.9A Active CN105824872B (zh) | 2015-01-27 | 2016-01-26 | 基于搜索的数据的检测、链接和获取的方法和*** |
Country Status (3)
Country | Link |
---|---|
US (2) | US10318527B2 (zh) |
CN (1) | CN105824872B (zh) |
GB (1) | GB2535629A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540977A (zh) * | 2019-09-23 | 2021-03-23 | 伊姆西Ip控股有限责任公司 | 用于管理应用***的多个用户的方法、设备和产品 |
CN113590538A (zh) * | 2021-07-13 | 2021-11-02 | 湖南省建设工程质量检测中心有限责任公司 | 一种实验室数据管理平台 |
CN116701719A (zh) * | 2023-07-28 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备以及可读存储介质 |
CN117529717A (zh) * | 2022-09-15 | 2024-02-06 | 塔纳尔股份有限公司 | 由计算机实现的可视化查询匹配方法及其实现*** |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817527B1 (en) * | 2016-04-12 | 2020-10-27 | Tableau Software, Inc. | Systems and methods of using natural language processing for visual analysis of a data set |
CN106383867A (zh) * | 2016-09-05 | 2017-02-08 | 北京蓝色光标品牌管理顾问股份有限公司 | 一种公众号的健康度排序方法及其排序*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493830A (zh) * | 2004-04-29 | 2009-07-29 | Nec软件有限公司 | 结构化自然语言查询和知识*** |
US20100106724A1 (en) * | 2008-10-23 | 2010-04-29 | Ab Initio Software Llc | Fuzzy Data Operations |
US20140279677A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Ontology-driven construction of semantic business intelligence models |
CN104298683A (zh) * | 2013-07-18 | 2015-01-21 | 佳能株式会社 | 主题挖掘方法和设备、以及查询扩展方法和设备 |
US20150026153A1 (en) * | 2013-07-17 | 2015-01-22 | Thoughtspot, Inc. | Search engine for information retrieval system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357608A (en) | 1992-02-20 | 1994-10-18 | International Business Machines Corporation | Configurable, recoverable parallel bus |
US6138123A (en) | 1996-07-25 | 2000-10-24 | Rathbun; Kyle R. | Method for creating and using parallel data structures |
US6629097B1 (en) | 1999-04-28 | 2003-09-30 | Douglas K. Keith | Displaying implicit associations among items in loosely-structured data sets |
US6718336B1 (en) | 2000-09-29 | 2004-04-06 | Battelle Memorial Institute | Data import system for data analysis system |
US7283951B2 (en) | 2001-08-14 | 2007-10-16 | Insightful Corporation | Method and system for enhanced data searching |
US7398201B2 (en) | 2001-08-14 | 2008-07-08 | Evri Inc. | Method and system for enhanced data searching |
US7574652B2 (en) | 2002-06-20 | 2009-08-11 | Canon Kabushiki Kaisha | Methods for interactively defining transforms and for generating queries by manipulating existing query data |
US8375014B1 (en) | 2008-06-19 | 2013-02-12 | BioFortis, Inc. | Database query builder |
WO2011100474A2 (en) | 2010-02-10 | 2011-08-18 | Multimodal Technologies, Inc. | Providing computable guidance to relevant evidence in question-answering systems |
US20120233210A1 (en) | 2011-03-12 | 2012-09-13 | Matthew Thomas Bogosian | Storage of Arbitrary Points in N-Space and Retrieval of Subset thereof Based on Criteria Including Maximum Distance to an Arbitrary Reference Point |
US20110314010A1 (en) * | 2010-06-17 | 2011-12-22 | Microsoft Corporation | Keyword to query predicate maps for query translation |
US8943052B2 (en) * | 2012-08-10 | 2015-01-27 | Sap Ag | System and method for data modeling |
US10621880B2 (en) | 2012-09-11 | 2020-04-14 | International Business Machines Corporation | Generating secondary questions in an introspective question answering system |
US9984107B2 (en) * | 2014-12-18 | 2018-05-29 | International Business Machines Corporation | Database joins using uncertain criteria |
-
2015
- 2015-01-27 US US14/606,844 patent/US10318527B2/en not_active Expired - Fee Related
-
2016
- 2016-01-14 GB GB1600669.4A patent/GB2535629A/en not_active Withdrawn
- 2016-01-26 CN CN201610051916.9A patent/CN105824872B/zh active Active
- 2016-03-18 US US15/074,763 patent/US10242046B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493830A (zh) * | 2004-04-29 | 2009-07-29 | Nec软件有限公司 | 结构化自然语言查询和知识*** |
US20100106724A1 (en) * | 2008-10-23 | 2010-04-29 | Ab Initio Software Llc | Fuzzy Data Operations |
US20140279677A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Ontology-driven construction of semantic business intelligence models |
US20150026153A1 (en) * | 2013-07-17 | 2015-01-22 | Thoughtspot, Inc. | Search engine for information retrieval system |
CN104298683A (zh) * | 2013-07-18 | 2015-01-21 | 佳能株式会社 | 主题挖掘方法和设备、以及查询扩展方法和设备 |
Non-Patent Citations (2)
Title |
---|
CUIYING YAN等: "Processing natural language based query and context sensitive spelling suggestion in information retrieval", 《2013 5TH INTERNATIONAL CONFERENCE ON MODELLING, IDENTIFICATION AND CONTROL (ICMIC)》 * |
吴建荣等: "自然语言检索扩展词库的构建方法", 《中国科技资源导刊》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540977A (zh) * | 2019-09-23 | 2021-03-23 | 伊姆西Ip控股有限责任公司 | 用于管理应用***的多个用户的方法、设备和产品 |
CN113590538A (zh) * | 2021-07-13 | 2021-11-02 | 湖南省建设工程质量检测中心有限责任公司 | 一种实验室数据管理平台 |
CN113590538B (zh) * | 2021-07-13 | 2022-05-06 | 湖南省建设工程质量检测中心有限责任公司 | 一种实验室数据管理平台 |
CN117529717A (zh) * | 2022-09-15 | 2024-02-06 | 塔纳尔股份有限公司 | 由计算机实现的可视化查询匹配方法及其实现*** |
CN116701719A (zh) * | 2023-07-28 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备以及可读存储介质 |
CN116701719B (zh) * | 2023-07-28 | 2024-01-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备以及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
GB201600669D0 (en) | 2016-02-24 |
US20160217179A1 (en) | 2016-07-28 |
CN105824872B (zh) | 2020-02-14 |
US10318527B2 (en) | 2019-06-11 |
US10242046B2 (en) | 2019-03-26 |
GB2535629A (en) | 2016-08-24 |
US20160217180A1 (en) | 2016-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bilal et al. | Big Data in the construction industry: A review of present status, opportunities, and future trends | |
Farshidi et al. | A decision support system for software technology selection | |
CN105824872A (zh) | 基于搜索的数据的检测、链接和获取的方法和*** | |
KR101793222B1 (ko) | 어플리케이션 검색들을 가능하게 하기 위해 사용되는 검색 인덱스의 업데이트 | |
KR101168705B1 (ko) | 이동통신 단말기와 아이피 기반 정보 단말기를 이용한 맞춤, 지능형 심볼, 아이콘 인터넷 정보 검색시스템 | |
US20210042767A1 (en) | Digital content prioritization to accelerate hyper-targeting | |
US7620651B2 (en) | System for dynamic product summary based on consumer-contributed keywords | |
CN110580649B (zh) | 一种商品潜力值的确定方法和装置 | |
US11238233B2 (en) | Artificial intelligence engine for generating semantic directions for websites for automated entity targeting to mapped identities | |
US9852448B2 (en) | Identifying gaps in search results | |
US20210019468A1 (en) | Visual content optimization system using artificial intelligence (ai) based design generation and validation | |
CN102737333A (zh) | 用于计算用户和要约到微小细分的匹配的顺序引擎 | |
CN106062743A (zh) | 用于关键字建议的***和方法 | |
CN110134845A (zh) | 项目舆情监控方法、装置、计算机设备及存储介质 | |
CN104750771A (zh) | 利用域信息进行上下文数据分析的方法和*** | |
US10936675B2 (en) | Developing an item data model for an item | |
WO2017116526A1 (en) | Systems and methods for utilizing webpage scripts to segment client sessions of a website | |
JP2006323629A (ja) | ウェブサーバのページ更新のための情報を解析するサーバ、ウェブサーバ及びページ更新方法 | |
KR102238438B1 (ko) | 규격화된 광고상품을 이용한 광고상품거래 서비스 제공 시스템 | |
CN104834681A (zh) | 服务推荐方法及装置 | |
US20130191304A1 (en) | Tools and Methods for Creating Dynamic Feedback Forms | |
Han et al. | Developing smart service concepts: morphological analysis using a Novelty-Quality map | |
Abousalh‐Neto et al. | Better together: Extending JMP® with open‐source software | |
KR100888329B1 (ko) | 룰을 이용한 실시간 자동 정보 추출 시스템 및 방법 | |
KR20160040339A (ko) | 글로벌 b2b에서의 검색엔진 마케팅 서비스 제공 시스템, 서버 및 방법 |
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 |