CN116049380A - 一种基于区块链的Text-To-SQL数据共享与推荐方法及系统 - Google Patents

一种基于区块链的Text-To-SQL数据共享与推荐方法及系统 Download PDF

Info

Publication number
CN116049380A
CN116049380A CN202310127259.1A CN202310127259A CN116049380A CN 116049380 A CN116049380 A CN 116049380A CN 202310127259 A CN202310127259 A CN 202310127259A CN 116049380 A CN116049380 A CN 116049380A
Authority
CN
China
Prior art keywords
data
sql
text
blockchain
user
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.)
Pending
Application number
CN202310127259.1A
Other languages
English (en)
Inventor
陈丞
刘绣峰
汪潋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Redicloud Technology Co ltd
Original Assignee
Chengdu Redicloud Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Redicloud Technology Co ltd filed Critical Chengdu Redicloud Technology Co ltd
Priority to CN202310127259.1A priority Critical patent/CN116049380A/zh
Publication of CN116049380A publication Critical patent/CN116049380A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于区块链的Text‑To‑SQL数据共享与推荐方法及系统,通过数据共享整合不同领域的Text‑To‑SQL数据资源,将文本自动转译为SQL语句,为用户输入文本自动匹配SQL语句;本发明构建了基于Text‑To‑SQL数据应用于区块链上的跨领域、跨用户共享模型,应用了基于关系感知的自注意力机制模型;基于Text‑To‑SQL转译平台对自然语言进行SQL转译,同时从区块链网络中拉取转译推荐;用户可将转译数据共享到区块链网络中,可向社区推荐某个高价值的Text‑To‑SQL数据,提高该数据的推荐准确率;区块链服务平台通过鉴权来保证区块链网络中的数据安全,通过构建智能合约来保证数据操作的合法性;本发明使用区块链作为分布式存储方案并在转译平台上构建数据共享与推荐方法,提高了共享数据的利用率。

Description

一种基于区块链的Text-To-SQL数据共享与推荐方法及系统
技术领域
本发明涉及区块链技术和自然语言处理领域,具体涉及一种基于区块链的Text-To-SQL数据共享与推荐系统。
背景技术
早期,数据库社区展开关于Text-To-SQL的工作需要大量人工和用户的交互;但是近年来,随着自然语言处理的发展,人们通过自然语言处理的相关方法来构建Text-To-SQL模型;Text-To-SQL技术能够将自然语言文本转译成对应的SQL查询语句,能够有效辅助人们对海量的数据库进行查询,Text-To-SQL技术研究引起了学术界相关学者以及工业界技术人员的广泛关注。在现实中,有许多复杂的数据库,存储着各行各业的数据信息,比如银行的账单信息、用户信息;公司的物资信息、人事流动信息;医院的病人病历信息、图像信息等等。这些信息数量庞大,结构复杂,针对单个表或者数据库,工作人员需要编写大量简单且重复的SQL语句;但针对数据库信息庞杂的数据库,工作人员则需要编写一些复杂的SQL。对于计算机的从业者来说,想要针对不同的数据库和应用场景并编写出大量保证正确的SQL语句是一件非常困难的事。Text-To-SQL技术的诞生,大大减少了数据库工作人员的工作负担。Text-To-SQL技术的典型架构是通过Sequence to Sequence模型来自动构建输入的自然语言问题和输出的SQL语句之间的映射,其核心思想是通过一个编码器来理解输入的自然语言问题、数据库表名、属性名以及主键之间的关系;然后,通过一个解码器来预测目标SQL语句。由于Sequence to Sequence方法的端到端特性,其成为了Text-To-SQL任务的主流方法。
区块链源起于比特币,但却不止于此,近年来区块链被频繁应用于政务、金融、物流等领域,其去中心化、公开透明性、安全性、自治性、不可篡改性以及分布式等特点成为各个领域所青睐的原因。区块链的最大优势就是去中心化,区块链技术不依赖第三方管理机构,区块链本身自成一体,通过分布式核算和存储,各个节点实现了信息的自我校验、传递以及管理,去中心化是区块链最突出、最本质的特征。区块链技术的基础是开源的,除了交易双方的私有数据信息被加密外,区块链的数据对所有人开放,基于协商一致的协议和规范,使得链具有独立性,整个区块链不依赖第三方,所有节点能够自动安全地校验、交换数据以及管理。区块链中,只要不能掌握全部数据节点的51%,就无法随意操控和修改区块链网络中的数据,这使得区块链本身非常安全,数据不可随意篡改。区块链技术不仅共享数据,同时也共享数据的控制权;在区块链网络的模式下,特别是在公共链系统中,任何人都可以基于智能合约进行数据的使用。
区块链用于存储,作为Text-To-SQL技术的存储方案,两者结合能产生一个数据共享系统,使得个人用户或者企业用户的数据在区块链上可以重复使用,提高数据共享的利用率,缓解各行各业数据库管理员人工压力。
发明内容
有鉴于此,本发明的目的之一在于提供一种基于区块链的Text-To-SQL数据共享与推荐的技术方案,使得Text-To-SQL数据得以重复使用。
本发明通过以下技术方案实现的:
一种基于区块链的Text-To-SQL数据共享与推荐方法,所述方法包括以下步骤:
S1:设置一区块链服务平台,接收用户在该服务平台进行注册并为其分配公私密钥对;
S2:设置一Text-To-SQL转译平台,供用户写入或上传自己需要转译成SQL的语句或文本,并得到转译结果;
S3:对转译成功且准确的元数据进行上链与存储操作;
S4:Text-To-SQL转译平台向区块链推荐模块发送需要转译的文本语句;
S5:区块链推荐模块向区块链服务平台逐条转送语句,进行模糊检索;
S6:区块链服务平台将数据集存储到云端;
S7:区块链服务平台为数据集生成智能合约并进行上链操作。
进一步,所述步骤S1具体包括:
S101:用户分为企业用户和个人用户,用户向区块链服务平台输入个人信息进行注册,区块链服务平台为用户分配区块链网络上的对等节点,节点的区块链地址NodeAddress是一个长度为64的十六进制字符串,由企业账号、个人账号、时间戳以及6位随机数经过安全散列算法SHA-265计算得出,若个人用户没有所属的企业账号,则将企业账号置为空,企业账号和个人账号由用户自定义输入,经过SHA-265算法计算得出64位字符串;
S102:区块链服务平台将为用户分发两种公私密钥对,第一种公私密钥对的权限如S103所述,第二种公私密钥对的权限如S104所述;
S103:若数据仅自己可见,则基于个人账号,为其生成公私密钥对,在元数据和数据集发布之前,在元数据上附上基于个人账号的公钥,当数据上链之后,他人因为没有基于个人账号的私钥,所以不能检索到该数据;
S104:若数据仅公司内部可见,则基于企业账号,为其生成公私密钥对,在元数据和数据集发布之前,在元数据上附上基于企业账号的公钥,当数据上链之后,其他公司用户因为没有基于企业账号的私钥,所以不能检索到该数据,由于公司内部用户拥有相同的企业账号,并且拥有基于企业账号的私钥,所以可以检索到该数据;
S105:若用户发布的Text-To-SQL元数据和Text-To-SQL数据集是所有用户可见,则元数据上不设置公钥。
进一步,所述的公钥和私钥由RSA算法计算得出,所述算法基于NodeAddress地址、企业账号以及个人账号生成的64位字符串,抽取其前6位十进制数作为整数Nh;抽取字符串后6位十进制数作为整数Nl,将Nh和Nl作为RSA算法的输入,算法步骤如下:
(1)将Nh和Nl作为输入,使得Xh和Xl满足公式:
Figure BDA0004082509260000031
(2)找到距离Xh和Xl最近的两个素数P和Q,使得P和Q满足:
P∈Prime,Q∈Prime,Prime={2,3,5,7,…,29989}
其中,集合Prime是大小为3245的素数集合;
(3)计算公共模数Nmod以及其欧拉函数
Figure BDA0004082509260000032
公式如下:
Figure BDA0004082509260000033
(4)随机选择一个与
Figure BDA0004082509260000034
互质的整数E,使得公钥指数E满足:
Figure BDA0004082509260000038
(5)计算出E对于
Figure BDA0004082509260000035
的模反元素D,使得模反元素D满足公式:
Figure BDA0004082509260000036
(6)得到公钥KU=(E,Nmod),私钥KR=(D,Nmod)。
进一步,所述步骤S2具体包括:
S201:Text-To-SQL转译平台包含Text-To-SQL转译插件和区块链推荐模块两个组件,为用户提供转译服务,可以从区块链服务平台检索共享的Text-To-SQL数据;
S202:用户向Text-To-SQL输入单个自然语言问题,或上传一份包含多条自然语言问题的文本数据,即Text-To-SQL数据集;
S203:Text-To-SQL转译平台接受输入数据之后,逐条进行元数据封装,元数据结构定义如下所示:
Figure BDA0004082509260000037
Figure BDA0004082509260000041
其中,SentenceId为Text-To-SQL元数据的唯一标识,由用户的区块链地址NodeAddress和发布数据的时间戳组成;OriginSentence为用户输入的自然语言,即源语句;TargetSentence用来存储由OriginSentence转译的SQL语句;SentenceLanguage表示由某语种转译成SQL语句;SentenceDescription用于描述该数据适应的场景或用途;SentenceAccessRight表示访问权限,权限包含更新、检索、删除三种类型,数据发布者拥有所有权限,数据使用者拥有修改和检索的权限;SentenceStar用于统计某个语句在区块链网络中被使用的次数;SentenceCategory记录该数据所属应用领域;ResourceSource表示数据发布者所在企业账户,当数据发布者为个人用户时,该项默认为空,否则用企业账户表示;ResourcePublisher为数据发布者的个人账户;ResourceDate记录元数据上链的时间;IsTextSubset表示该元数据是否为某个Text文件的数据子集,若填写“True”,则TextStorage存储该文件在数据仓库的地址,否则TextStorage填写为空;Signature表示是否可以访问该数据,Signature填写的是权利要求2中S103和S104所述的两种公钥;IntelligentContract为元数据所对应的智能合约存储地址;SentenceAccessRight表示权限,取值为“1”代表“删除”权限,取值为“2”代表“修改”权限,取值为“3”代表“检索”权限,默认设置为“3”,表示其他用户可以检索并修改该数据;SentenceStar的默认值为0,当其他用户为该语句推荐一次时,SentenceStar=SentenceStar+1,此时用户使用了“修改”权限;ResourcePublisher为个人账号的SHA-265哈希值;除了上述属性,其他属性均为空;当用户进行上链操作时,用户需要对属性Signature进行赋值,默认为空,当用户设置权限为“仅自己可见”,则该属性值为个人账号经RSA算法计算得出的公钥,若为“企业内部可见”,则选择企业账号对应的公钥;
S204:Text-To-SQL转译插件的转译算法采用如下所述的编码器-解码器框架,其中编码器部分的算法是基于关系感知的多头注意力机制,公式如下:
Figure BDA0004082509260000042
Figure BDA0004082509260000051
Figure BDA0004082509260000052
Figure BDA0004082509260000053
Figure BDA0004082509260000054
算法的输入是自然语言问题中的某个单词(以英语为例),某个数据库表名以及表中某个属性的初始化特征向量xi,输出是特征向量xi与其它特征向量xj之间的相关性;该算法模型分为多个头,即多个子空间,可以让模型从不同角度理解不同特征向量之间的关系;
上述公式中,h表示第h个空间,H为空间个数;
Figure BDA0004082509260000055
表示在第h个空间中得到的向量xi与xj之间的相关性概率;Softmax()为归一化函数;
Figure BDA0004082509260000056
为第h个空间中的查询向量;
Figure BDA0004082509260000057
为第h个空间中的键向量;
Figure BDA0004082509260000058
是一个偏置项,用于编码输入元素xi和元素xj的已知关系;
Figure BDA0004082509260000059
为让模型梯度更加稳定的缩放因子;
Figure BDA00040825092600000510
为第h个空间中的值向量;
Figure BDA00040825092600000511
为第h个空间中xi与其他所有元素的加权相关性矩阵;zi表示将所有空间的
Figure BDA00040825092600000513
拼接在一块的矩阵;
Figure BDA00040825092600000512
为残差网络;ReLU()为激活函数;FC为全连接层;Norm()表示归一化函数;
解码器部分将编码器的输出作为输入,通过输入来构造AST(Abstract SyntaxTree)语法树,语法树的输出为一个SQL语句;
S205:用户输入自然语言文本之后,Text-To-SQL转译插件首先会根据步骤S204所述的算法进行语句转译,并将转译成功的SQL语句返回给用户;为了提高结果的正确率,Text-To-SQL转译插件会将该语句封装为步骤S203所述的元数据,随后向区块链推荐模块发送该数据,即步骤S4;区块链推荐模块根据该数据进行步骤S5所述的模糊检索,当区块链推荐模块检索到符合条件的Text-To-SQL数据,则会提供并展示给用户使用。
进一步,所述步骤S3具体包括:
S301:当用户准备上链操作,数据类型包括两类:(1)元数据;(2)元数据包含于某个数据集;此时,Text-To-SQL转译插件会要求用户设置数据权限,随后将S203所述元数据发送给区块链服务平台,区块链服务平台会执行两类操作,当元数据属性IsTextSubset=False时,即第一种数据类型,执行S302、S305步骤;当元数据属性IsTextSubset=True时,执行S302、S303、S304、S305步骤;
S302:区块链服务平台默认为所有个人用户开放直接上链的权限,即Signature属性为空,当用户需要对数据进行权限控制,则可以对Signature属性进行填写选择,选择企业账号的公私密钥对或个人账号的公私密钥对;
S303:元数据属性IsTextSubset=True,区块链服务平台将用户上传的文本文件上传至数据仓库,即步骤S6所述的过程;
S304:为元数据生成对应的智能合约,包括“检索智能合约”、“修改智能合约”、“删除智能合约”、“推荐智能合约”,随后将智能合约上传至数据仓库,即步骤S6所述的过程;
S305:提示用户上链确认,用户确认后,元数据上链。
进一步,所述步骤S4具体包括:
S401:Text-To-SQL转译插件将S2输入的数据转化为对应元数据之后,会将其连同用户的私钥发送给区块链推荐模块,区块链模块将抽取元数据中SentenceCategory、OriginSentence属性的取值;
S402:对于OriginSentence所填写的值,由于其是自然语言,区块链模块将对其进行分解,分解成多个关键词;
S403:区块链推荐模块将S401抽取的属性值、S402抽取的关键字以及用户的私钥封装为json数据并发送给区块链服务平台;
S404:区块链推荐模块接受步骤S5返回的数组之后,会进行推荐排序,将共享推荐价值高的优先推荐给用户。
进一步,所述步骤S5具体包括:
S501:区块链推荐模块将所述的json数据发送给区块链服务平台中的模糊检索模块,经过区块链服务平台的模糊检索,得到S7步骤所述的返回结果,随后进行数据鉴权;
S502:不是所有符合条件的元数据用户都可以访问,需要逐条进行鉴权,首先检查该用户是否具有访问资格,该过程的应用算法公式如下:
C=MEmod Nmod
M'=CDmod Nmod
其中,C为经公钥KU加密得到的密文;M为明文,即元数据中的个人账号或企业账号;M′为私钥KR解密得到的明文;当M=M′时,表示解密成功,该用户具有该数据的访问资格;然后,将该数据加入到CandidateList数组中;最后,区块链服务平台将该数组返回给区块链推荐模块。
进一步,所述步骤S6具体包括:
S601:当用户需要将数据集上传至数据仓库,区块链服务平台向数据仓库发起上传请求,数据仓库返回存储空间大小Storage,Storage用来判断该数据集是否满足上传条件;
S602:区块链服务平台计算出该数据集的大小DateSetSize,如果DateSetSize小于Storage,那么平台将数据集上传至数据仓库;
S603:数据仓库接收数据集并进行存储,随后返回该数据集的数据仓库地址;
S604:区块链服务平台得到数据集的存储位置,将存储位置赋给TextStorage属性。
进一步,所述步骤S7具体包括:
S701:若上链数据为步骤S301所述第一种数据类型,元数据直接上传至区块链网络;若上链数据为第二种数据类型,即元数据包含于某个数据集,此时需要先对其构建智能合约,包括数据删除智能合约、数据修改智能合约以及数据检索智能合约,上链过程如S702、S703所述;
S702:构建智能合约,用户拥有所有的智能合约,其他用户拥有部分智能合约,根据SentenceAccessRight属性值进行限制,三种智能合约构建完成,将智能合约上传至数据仓库,即执行步骤S6;
S703:将步骤S6返回的智能合约存储地址赋给IntelligentContract属性,随后将该数据上传至区块链网络。
本发明的目的之二在于提供一种基于区块链的Text-To-SQL数据共享与推荐系统,用于实现前述的方法,所述数据共享与推荐系统包括:
Text-To-SQL转译平台、区块链服务平台、区块链网络和数据仓库;
所述Text-To-SQL转译平台在用户输入自然语言问题之后,用于提供SQL转译服务、SQL共享数据推荐服务、Text-To-SQL元数据和数据集存储上链服务以及Text-To-SQL元数据推荐服务;
所述区块链服务平台为用户提供用户注册、鉴权、存储、上链、检索服务;
所述区块链网络对元数据进行存储,用于检索共享数据;
所述数据仓库用于存储用户上传的数据集,存储元数据所对应的智能合约,智能合约用于访问元数据或数据集。
本发明的有益效果是:
1.本发明的方法提供了一种Text-To-SQL转译平台,该平台通过构建自然语言处理算法模型来实现由自然语言文本到SQL语句的自动转译,该平台可以集成,但不止于本文所述的基于关系感知的多头注意力机制算法模型,Text-To-SQL转译平台中的区块链推荐模块可以向区块链网络拉取符合检索条件的Text-To-SQL元数据,并向用户推荐使用,可以快速地为用户精准匹配所需的SQL语句;
2.本发明提出一种区块链服务平台,该平台通过向注册用户发放基于个人账户和企业账户的公私密钥对,使得用户可以自主选择上链数据的使用权限;通过鉴权服务提高用户数据的安全性;通过存储、上链、检索等服务提高区块链网络中数据的利用率;通过用户推荐,可以提高数据的使用效率,使更多人可以检索到高价值数据;
3.本发明提出一种基于区块链的Text-To-SQL数据共享与推荐系统,通过将Text-To-SQL转译平台、区块链服务平台、区块链网络和数据仓库等功能模块或者系统整合为一个集区块链、云存储、及Text-To-SQL转译平台的新型系统,实现不同类型用户之间的数据共享与推荐;
4.本发明提出区块链网络和数据仓库结合的分布式存储方式,该方法的有益效果在于:通过区块链网络存储Text-To-SQL元数据,该数据不仅可以提供某个自然语言文本的SQL转译,而且提供了该数据所属的数据集信息,同时包含了该数据的控制权,控制权通过智能合约进行发放,智能合约连同数据集存储于数据仓库中,这样区块链网络中仅需存储Text-To-SQL元数据,减轻区块链网络的存储负担,提高区块链系统的整体性能;
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导,本发明的目标和其他优点可以通过下面的说明书和前述的权利要求书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为本发明实施例所述基于区块链的Text-To-SQL数据共享与推荐系统流程示意图;
图2为本发明实施例所述共享元数据上链流程示意图;
图3为本发明实施例所述数据集上链以及存储流程示意图;
图4为本发明实施例所述区块链推荐模块中模糊检索流程示意图;
具体实施方式
以下将参照附图,对本发明的优选实施例进行详细的描述,应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围;
本发明的一种基于区块链的Text-To-SQL数据共享与推荐方法,包括以下步骤:
S1:设置一区块链服务平台,接收用户在该服务平台进行注册并为其分配公私密钥对;
步骤S1具体包括:
S101:用户分为企业用户和个人用户,用户向区块链服务平台输入个人信息进行注册,区块链服务平台为用户分配区块链网络上的对等节点,节点的区块链地址NodeAddress是一个长度为64的十六进制字符串,由企业账号、个人账号、时间戳以及6位随机数经过安全散列算法SHA-265计算得出,若个人用户没有所属的企业账号,则将企业账号置为空,企业账号和个人账号由用户自定义输入,经过SHA-265算法计算得出64位字符串;
S102:区块链服务平台将为用户分发两种公私密钥对,第一种公私密钥对的权限如S103所述,第二种公私密钥对的权限如S104所述;
S103:若数据仅自己可见,则基于个人账号,为其生成公私密钥对,在元数据和数据集发布之前,在元数据上附上基于个人账号的公钥,当数据上链之后,他人因为没有基于个人账号的私钥,所以不能检索到该数据;
S104:若数据仅公司内部可见,则基于企业账号,为其生成公私密钥对,在元数据和数据集发布之前,在元数据上附上基于企业账号的公钥,当数据上链之后,其他公司用户因为没有基于企业账号的私钥,所以不能检索到该数据,由于公司内部用户拥有相同的企业账号,并且拥有基于企业账号的私钥,所以可以检索到该数据;
S105:若用户发布的Text-To-SQL元数据和Text-To-SQL数据集是所有用户可见,则元数据上不设置公钥;
本发明的的公钥和私钥由RSA算法计算得出,所述算法基于NodeAddress地址、企业账号以及个人账号生成的64位字符串,抽取其前6位十进制数作为整数Nh;抽取字符串后6位十进制数作为整数Nl,将Nh和Nl作为RSA算法的输入,算法步骤如下:
(1)将Nh和Nl作为输入,使得Xh和Xl满足公式:
Figure BDA0004082509260000091
(2)找到距离Xh和Xl最近的两个素数P和Q,使得P和Q满足:
P∈Prime,Q∈Prime,Prime={2,3,5,7,…,29989}
其中,集合Prime是大小为3245的素数集合;
(3)计算公共模数Nmod以及其欧拉函数
Figure BDA0004082509260000092
公式如下:
Figure BDA0004082509260000093
(4)随机选择一个与
Figure BDA0004082509260000094
互质的整数E,使得公钥指数E满足:
Figure BDA0004082509260000095
(5)计算出E对于
Figure BDA0004082509260000096
的模反元素D,使得模反元素D满足公式:
Figure BDA0004082509260000097
(6)得到公钥KU=(E,Nmod),私钥KR=(D,Nmod)。
S2:用户向Text-To-SQL转译平台写入或上传自己需要转译成SQL的语句或文本,并得到转译结果;步骤S2具体包括:
S201:Text-To-SQL转译平台包含Text-To-SQL转译插件和区块链推荐模块两个组件,为用户提供转译服务,可以从区块链服务平台检索共享的Text-To-SQL数据;
S202:用户向Text-To-SQL输入单个自然语言问题,或上传一份包含多条自然语言问题的文本数据,即Text-To-SQL数据集;
S203:Text-To-SQL转译平台接受输入数据之后,逐条进行元数据封装,元数据结构定义如下所示:
表1 Text-To-SQL元数据定义
Figure BDA0004082509260000101
其中,SentenceId为Text-To-SQL元数据的唯一标识,由用户的区块链地址NodeAddress和发布数据的时间戳组成;OriginSentence为用户输入的自然语言,即源语句;TargetSentence用来存储由OriginSentence转译的SQL语句;SentenceLanguage表示由某语种转译成SQL语句;SentenceDescription用于描述该数据适应的场景或用途;SentenceAccessRight表示访问权限,权限包含更新、检索、删除三种类型,数据发布者拥有所有权限,数据使用者拥有修改和检索的权限;SentenceStar用于统计某个语句在区块链网络中被使用的次数;SentenceCategory记录该数据所属应用领域;ResourceSource表示数据发布者所在企业账户,当数据发布者为个人用户时,该项默认为空,否则用企业账户表示;ResourcePublisher为数据发布者的个人账户;ResourceDate记录元数据上链的时间;IsTextSubset表示该元数据是否为某个Text文件的数据子集,若填写“True”,则TextStorage存储该文件在数据仓库的地址,否则TextStorage填写为空;Signature表示是否可以访问该数据,Signature填写的是权利要求2中S103和S104所述的两种公钥;IntelligentContract为元数据所对应的智能合约存储地址;SentenceAccessRight表示权限,取值为“1”代表“删除”权限,取值为“2”代表“修改”权限,取值为“3”代表“检索”权限,默认设置为“3”,表示其他用户可以检索并修改该数据;SentenceStar的默认值为0,当其他用户为该语句推荐一次时,SentenceStar=SentenceStar+1,此时用户使用了“修改”权限;ResourcePublisher为个人账号的SHA-265哈希值;除了上述属性,其他属性均为空;当用户进行上链操作时,用户需要对属性Signature进行赋值,默认为空,当用户设置权限为“仅自己可见”,则该属性值为个人账号经RSA算法计算得出的公钥,若为“企业内部可见”,则选择企业账号对应的公钥;
S204:Text-To-SQL转译插件的转译算法采用如下所述的编码器-解码器框架,其中编码器部分的算法是基于关系感知的多头注意力机制,公式如下:
Figure BDA0004082509260000111
Figure BDA0004082509260000112
Figure BDA0004082509260000113
Figure BDA0004082509260000114
Figure BDA0004082509260000115
算法的输入是自然语言问题中的某个单词(以英语为例),某个数据库表名以及表中某个属性的初始化特征向量xi,输出是特征向量xi与其它特征向量xj之间的相关性;该算法模型分为多个头,即多个子空间,可以让模型从不同角度理解不同特征向量之间的关系;
上述公式中,h表示第h个空间,H为空间个数;
Figure BDA0004082509260000116
表示在第h个空间中得到的向量xi与xj之间的相关性概率;Softmax()为归一化函数;
Figure BDA0004082509260000117
为第h个空间中的查询向量;
Figure BDA0004082509260000118
为第h个空间中的键向量;
Figure BDA0004082509260000119
是一个偏置项,用于编码输入元素xi和元素xj的已知关系;
Figure BDA00040825092600001114
为让模型梯度更加稳定的缩放因子;
Figure BDA00040825092600001110
为第h个空间中的值向量;
Figure BDA00040825092600001111
为第h个空间中xi与其他所有元素的加权相关性矩阵;zi表示将所有空间的
Figure BDA00040825092600001112
拼接在一块的矩阵;
Figure BDA00040825092600001113
为残差网络;ReLU()为激活函数;FC为全连接层;Norm()表示归一化函数;
解码器部分将编码器的输出作为输入,通过输入来构造AST(Abstract SyntaxTree)语法树,语法树的输出为一个SQL语句;
S205:用户输入自然语言文本之后,Text-To-SQL转译插件首先会根据步骤S204所述的算法进行语句转译,并将转译成功的SQL语句返回给用户;为了提高结果的正确率,Text-To-SQL转译插件会将该语句封装为步骤S203所述的元数据,随后向区块链推荐模块发送该数据,即步骤S4;区块链推荐模块根据该数据进行步骤S5所述的模糊检索,当区块链推荐模块检索到符合条件的Text-To-SQL数据,则会提供并展示给用户使用。
表2Text-To-SQL元数据填写封装
Figure BDA0004082509260000121
S3:将转译成功并准确的元数据进行上链与存储操作;步骤S3具体包括:
S301:当用户准备上链操作,数据类型包括两类:(1)元数据;(2)元数据包含于某个数据集;此时,Text-To-SQL转译插件会要求用户设置数据权限,随后将S203所述元数据发送给区块链服务平台,区块链服务平台会执行两类操作,当元数据属性IsTextSubset=False时,即第一种数据类型,执行S302、S305步骤;当元数据属性IsTextSubset=True时,执行S302、S303、S304、S305步骤;
S302:区块链服务平台默认为所有个人用户开放直接上链的权限,即Signature属性为空,当用户需要对数据进行权限控制,则可以对Signature属性进行填写选择,选择企业账号的公私密钥对或个人账号的公私密钥对;
S303:元数据属性IsTextSubset=True,区块链服务平台将用户上传的文本文件上传至数据仓库,即步骤S6所述的过程;
S304:为元数据生成对应的智能合约,包括“检索智能合约”、“修改智能合约”、“删除智能合约”、“推荐智能合约”,随后将智能合约上传至数据仓库,即步骤S6所述的过程;
S305:提示用户上链确认,用户确认后,元数据上链。
S4:Text-To-SQL转译平台向区块链推荐模块发送需要转译的文本语句;步骤S4具体包括:
S401:Text-To-SQL转译插件将S2输入的数据转化为对应元数据之后,会将其连同用户的私钥发送给区块链推荐模块,区块链模块将抽取元数据中SentenceCategory、OriginSentence属性的取值;
S402:对于OriginSentence所填写的值,由于其是自然语言,区块链模块将对其进行分解,分解成多个关键词;
S403:区块链推荐模块将S401抽取的属性值、S402抽取的关键字以及用户的私钥封装为json数据并发送给区块链服务平台;
S404:区块链推荐模块接受步骤S5返回的数组之后,会进行推荐排序,将共享推荐价值高的优先推荐给用户。
S5:区块链推荐模块向区块链服务平台逐条转送语句,进行模糊检索;步骤S5具体包括:
S501:区块链推荐模块将所述的json数据发送给区块链服务平台中的模糊检索模块,经过区块链服务平台的模糊检索,得到S7步骤所述的返回结果,随后进行数据鉴权;
S502:不是所有符合条件的元数据用户都可以访问,需要逐条进行鉴权,首先检查该用户是否具有访问资格,该过程的应用算法公式如下:
C=MEmod Nmod
M'=CDmod Nmod
其中,C为经公钥KU加密得到的密文;M为明文,即元数据中的个人账号或企业账号;M′为私钥KR解密得到的明文;当M=M′时,表示解密成功,该用户具有该数据的访问资格;然后,将该数据加入到CandidateList数组中;最后,区块链服务平台将该数组返回给区块链推荐模块。
S6:区块链服务平台将数据集存储到云端;步骤S6具体包括:
S601:当用户需要将数据集上传至数据仓库,区块链服务平台向数据仓库发起上传请求,数据仓库返回存储空间大小Storage,Storage用来判断该数据集是否满足上传条件;
S602:区块链服务平台计算出该数据集的大小DateSetSize,如果DateSetSize小于Storage,那么平台将数据集上传至数据仓库;
S603:数据仓库接收数据集并进行存储,随后返回该数据集的数据仓库地址;
S604:区块链服务平台得到数据集的存储位置,将存储位置赋给TextStorage属性。
S7:区块链服务平台为数据集生成智能合约并进行上链,步骤S7具体包括:
S701:若上链数据为步骤S301所述第一种数据类型,元数据直接上传至区块链网络;若上链数据为第二种数据类型,即元数据包含于某个数据集,此时需要先对其构建智能合约,包括数据删除智能合约、数据修改智能合约以及数据检索智能合约,上链过程如S702、S703所述;
S702:构建智能合约,用户拥有所有的智能合约,其他用户拥有部分智能合约,根据SentenceAccessRight属性值进行限制,三种智能合约构建完成,将智能合约上传至数据仓库,即执行步骤S6;
S703:将步骤S6返回的智能合约存储地址赋给IntelligentContract属性,随后将该数据上传至区块链网络。
基于上述方法的设计思想,本发明还提供了一种基于区块链的Text-To-SQL数据共享与推荐系统,数据共享与推荐系统包括:
Text-To-SQL转译平台、区块链服务平台、区块链网络和数据仓库;
Text-To-SQL转译平台在用户输入自然语言问题之后,用于提供SQL转译服务、SQL共享数据推荐服务、Text-To-SQL元数据和数据集存储上链服务以及Text-To-SQL元数据推荐服务;
区块链服务平台为用户提供用户注册、鉴权、存储、上链、检索服务;
区块链网络对元数据进行存储,用于检索共享数据;
数据仓库用于存储用户上传的数据集,存储元数据所对应的智能合约,智能合约用于访问元数据或数据集。
具体实施例如图1所示:
本实施例中,将介绍基于区块链的Text-To-SQL数据共享与推荐系统中的用户注册,包括S1所述步骤:
本实施例中,步骤S1、企业用户或个人用户在区块链服务平台进行注册,平台为其分配公私密钥对具体包括:
S101:用户向区块链服务平台输入个人信息进行注册,区块链服务平台为用户分配区块链网络上的对等节点,节点的区块链地址NodeAddress是一个长度为64的十六进制字符串,由企业账号(“Enterprise123456”)、个人账号(“John123”)、时间戳(“1668337665”)以及6位随机数(“159340”),经过SHA-265计算得出:NodeAddress=“332584b180851f8fcf86a8f1a261fff1b66e5a2eaa5657b6fda3d96327fab012”;
S102:个人账号(“John123”)以及企业账号(“Enterprise123456”)生成的公私密钥对过程如S103、S104、S105所述:
S103:个人账号(“John123”)经过SHA-265计算得出字符串为“370420e335f7a4d2ead6879991641792d5bdcde2db5d4fae3d976c2133732cda”,企业账号(“Enterprise123456”)经过SHA-265计算得出字符串为“9ad49fe98f2f45616cc3e5e387fa3d3852167e9eddf165103bd55338392d55b2”;
S104:个人账号的Nh=370420,Nl=133732,企业账号的Nh=949982,Nl=392552,代入公式:
Figure BDA0004082509260000151
得到个人账号的Xh=16865,Xl=13156,企业账号的Xh=20861,Xl=17095,找到距离Xh和Xl最近的两个素数P和Q,得到个人账号的P=16871,Q=13159,得到企业账号的P=20857,Q=17093;
S105:个人账号的Nmod=222005489,
Figure BDA0004082509260000152
互质整数E=3257模范元素D=81852173,企业账号的Nmod=356508701,
Figure BDA0004082509260000153
互质整数E=1303模范元素D=9028039;
S106:得到个人账号的公钥KU=(E,Nmod),私钥KR=(D,Nmod)。
本实施例中,能为用户在区块链网络上分配对等节点,并根据用户的个人账号和企业账号分发公私密钥对,使得用户能够在系统使用过程中对数据控制权限进行合理分发;
如图1-2所示:本实施例中,将介绍个人用户使用Text-To-SQL转译平台进行自然语言问题转译以及上链过程,该实施例给出了系统中最基本的操作,包括S2、S3、S7所述核心步骤:
S201:用户向Text-To-SQL输入单个自然语句,OriginSentence=“Query allstudent names.”
S202:Text-To-SQL转译平台接收输入,逐条进行元数据封装,如表3所示,
表3 Text-To-SQL元数据初始化
Figure BDA0004082509260000154
其中,TargetSentence初始化为空,表示还没有得到转译SQL语句;ResourceDate表示元数据上链的日期,初始化为空;TextSize表示数据集大小,初始化为空,此外,TextStorage的初始化为空;Signature初始化为空;该数据没有上链,所以没有智能合约,IntelligentContract为空;
S203、Text-To-SQL转译插件将自然语言问题转译为SQL语句,使得,TargetSentence=“select name from student”,用户可以将该数据进行上链;
本实施例中,S2步骤为Text-To-SQL转译插件对自然语言进行SQL翻译,并将其封装为表5所示的元数据,进一步的,用户可以对该数据进行上链,也可通过区块链推荐模块进行模糊检索,检索出更精准的翻译;
进一步的,用户进行上链操作,步骤S3具体包括:
S301:用户对上链元数据进行权限选择,其中,Signature=NULL表明该数据可以提供所有用户检索使用,同时填入元数据所属领域,SentenceCategory=“education、student”;其他用户的访问权限SentenceAccessRight=“3”,当元数据的IsTextSubset=False,表明元数据没有所对应的数据集,也即不执行S6步骤;
S302:将元数据展示给用户,如表4所示,等待用户确认上链,用户确认之后,进行上链并得到上链成功提示;
表4 Text-To-SQL元数据上链确认
Figure BDA0004082509260000161
本实施例中,S3步骤为用户对高价值的Text-To-SQL元数据进行上链操作,用户对数据访问权限、数据所属领域等属性进行选择输入;
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施,所述方法可以使用标准编程技术包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图,每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信,然而,若需要,该程序可以以汇编或机器语言实现,在任何情况下,该语言可以是编译或解释的语言,此外,为此目的该程序能够在编程的专用集成电路上运行;
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾,本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现,所述计算机程序包括可由一个或多个处理器执行的多个指令;
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等,本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程,此外,机器可读代码,或其部分可以通过有线或无线网络传输,当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质,当根据本发明所述的方法和技术编程时,本发明还包括计算机本身;
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于:所述方法包括以下步骤:
S1:设置一区块链服务平台,接收用户在该服务平台进行注册并为其分配公私密钥对;
S2:设置一Text-To-SQL转译平台,供用户写入或上传自己需要转译成SQL的语句或文本,并得到转译结果;
S3:对转译成功且准确的元数据进行上链与存储操作;
S4:Text-To-SQL转译平台向区块链推荐模块发送需要转译的文本语句;
S5:区块链推荐模块向区块链服务平台逐条转送语句,进行模糊检索;
S6:区块链服务平台将数据集存储到云端;
S7:区块链服务平台为数据集生成智能合约并进行上链操作。
2.如权利要求1所述的基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于:所述步骤S1具体包括:
S101:用户分为企业用户和个人用户,用户向区块链服务平台输入个人信息进行注册,区块链服务平台为用户分配区块链网络上的对等节点,节点的区块链地址NodeAddress是一个长度为64的十六进制字符串,由企业账号、个人账号、时间戳以及6位随机数经过安全散列算法SHA-265计算得出,若个人用户没有所属的企业账号,则将企业账号置为空,企业账号和个人账号由用户自定义输入,经过SHA-265算法计算得出64位字符串;
S102:区块链服务平台将为用户分发两种公私密钥对,第一种公私密钥对的权限如S103所述,第二种公私密钥对的权限如S104所述;
S103:若数据仅自己可见,则基于个人账号,为其生成公私密钥对,在元数据和数据集发布之前,在元数据上附上基于个人账号的公钥,当数据上链之后,他人因为没有基于个人账号的私钥,所以不能检索到该数据;
S104:若数据仅公司内部可见,则基于企业账号,为其生成公私密钥对,在元数据和数据集发布之前,在元数据上附上基于企业账号的公钥,当数据上链之后,其他公司用户因为没有基于企业账号的私钥,所以不能检索到该数据,由于公司内部用户拥有相同的企业账号,并且拥有基于企业账号的私钥,所以可以检索到该数据;
S105:若用户发布的Text-To-SQL元数据和Text-To-SQL数据集是所有用户可见,则元数据上不设置公钥。
3.如权利要求2所述的基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于:所述的公钥和私钥由RSA算法计算得出,所述算法基于NodeAddress地址、企业账号以及个人账号生成的64位字符串,抽取其前6位十进制数作为整数Nh;抽取字符串后6位十进制数作为整数Nl,将Nh和Nl作为RSA算法的输入,算法步骤如下:
(1)将Nh和Nl作为输入,使得Xh和Xl满足公式:
Figure FDA0004082509250000021
(2)找到距离Xh和Xl最近的两个素数P和Q,使得P和Q满足:
P∈Prime,Q∈Prime,Prime={2,3,5,7,…,29989}
其中,集合Prime是大小为3245的素数集合;
(3)计算公共模数Nmod以及其欧拉函数
Figure FDA0004082509250000022
公式如下:
Figure FDA0004082509250000023
(4)随机选择一个与
Figure FDA0004082509250000024
互质的整数E,使得公钥指数E满足:
Figure FDA0004082509250000025
(5)计算出E对于
Figure FDA0004082509250000026
的模反元素D,使得模反元素D满足公式:
Figure FDA0004082509250000027
(6)得到公钥KU=(E,Nmod),私钥KR=(D,Nmod)。
4.如权利要求1所述的基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于:所述步骤S2具体包括:
S201:Text-To-SQL转译平台包含Text-To-SQL转译插件和区块链推荐模块两个组件,为用户提供转译服务,可以从区块链服务平台检索共享的Text-To-SQL数据;
S202:用户向Text-To-SQL输入单个自然语言问题,或上传一份包含多条自然语言问题的文本数据,即Text-To-SQL数据集;
S203:Text-To-SQL转译平台接受输入数据之后,逐条进行元数据封装,元数据结构定义如下所示:
Figure FDA0004082509250000028
Figure FDA0004082509250000031
其中,SentenceId为Text-To-SQL元数据的唯一标识,由用户的区块链地址NodeAddress和发布数据的时间戳组成;OriginSentence为用户输入的自然语言,即源语句;TargetSentence用来存储由OriginSentence转译的SQL语句;SentenceLanguage表示由某语种转译成SQL语句;SentenceDescription用于描述该数据适应的场景或用途;SentenceAccessRight表示访问权限,权限包含更新、检索、删除三种类型,数据发布者拥有所有权限,数据使用者拥有修改和检索的权限;SentenceStar用于统计某个语句在区块链网络中被使用的次数;SentenceCategory记录该数据所属应用领域;ResourceSource表示数据发布者所在企业账户,当数据发布者为个人用户时,该项默认为空,否则用企业账户表示;ResourcePublisher为数据发布者的个人账户;ResourceDate记录元数据上链的时间;IsTextSubset表示该元数据是否为某个Text文件的数据子集,若填写“True”,则TextStorage存储该文件在数据仓库的地址,否则TextStorage填写为空;Signature表示是否可以访问该数据,Signature填写的是权利要求2中S103和S104所述的两种公钥;IntelligentContract为元数据所对应的智能合约存储地址;SentenceAccessRight表示权限,取值为“1”代表“删除”权限,取值为“2”代表“修改”权限,取值为“3”代表“检索”权限,默认设置为“3”,表示其他用户可以检索并修改该数据;SentenceStar的默认值为0,当其他用户为该语句推荐一次时,SentenceStar=SentenceStar+1,此时用户使用了“修改”权限;ResourcePublisher为个人账号的SHA-265哈希值;除了上述属性,其他属性均为空;当用户进行上链操作时,用户需要对属性Signature进行赋值,默认为空,当用户设置权限为“仅自己可见”,则该属性值为个人账号经RSA算法计算得出的公钥,若为“企业内部可见”,则选择企业账号对应的公钥;
S204:Text-To-SQL转译插件的转译算法采用如下所述的编码器-解码器框架,其中编码器部分的算法是基于关系感知的多头注意力机制,公式如下:
Figure FDA0004082509250000032
Figure FDA0004082509250000033
Figure FDA0004082509250000034
Figure FDA0004082509250000035
Figure FDA0004082509250000041
算法的输入是自然语言问题中的某个单词(以英语为例),某个数据库表名以及表中某个属性的初始化特征向量xi,输出是特征向量xi与其它特征向量xj之间的相关性;该算法模型分为多个头,即多个子空间,可以让模型从不同角度理解不同特征向量之间的关系;
上述公式中,h表示第h个空间,H为空间个数;
Figure FDA0004082509250000042
表示在第h个空间中得到的向量xi与xj之间的相关性概率;Softmax()为归一化函数;
Figure FDA0004082509250000043
为第h个空间中的查询向量;
Figure FDA0004082509250000044
为第h个空间中的键向量;
Figure FDA0004082509250000045
是一个偏置项,用于编码输入元素xi和元素xj的已知关系;
Figure FDA0004082509250000046
为让模型梯度更加稳定的缩放因子;
Figure FDA0004082509250000047
为第h个空间中的值向量;
Figure FDA0004082509250000048
为第h个空间中xi与其他所有元素的加权相关性矩阵;zi表示将所有空间的
Figure FDA0004082509250000049
拼接在一块的矩阵;
Figure FDA00040825092500000410
为残差网络;ReLU()为激活函数;FC为全连接层;Norm()表示归一化函数;
解码器部分将编码器的输出作为输入,通过输入来构造AST(Abstract Syntax Tree)语法树,语法树的输出为一个SQL语句;
S205:用户输入自然语言文本之后,Text-To-SQL转译插件首先会根据步骤S204所述的算法进行语句转译,并将转译成功的SQL语句返回给用户;为了提高结果的正确率,Text-To-SQL转译插件会将该语句封装为步骤S203所述的元数据,随后向区块链推荐模块发送该数据,即步骤S4;区块链推荐模块根据该数据进行步骤S5所述的模糊检索,当区块链推荐模块检索到符合条件的Text-To-SQL数据,则会提供并展示给用户使用。
5.如权利要求1所述的基于区块链的Text-To-SQL数据共享与推荐系统,其特征在于:所述步骤S3具体包括:
S301:当用户准备上链操作,数据类型包括两类:(1)元数据;(2)元数据包含于某个数据集;此时,Text-To-SQL转译插件会要求用户设置数据权限,随后将S203所述元数据发送给区块链服务平台,区块链服务平台会执行两类操作,当元数据属性IsTextSubset=False时,即第一种数据类型,执行S302、S305步骤;当元数据属性IsTextSubset=True时,执行S302、S303、S304、S305步骤;
S302:区块链服务平台默认为所有个人用户开放直接上链的权限,即Signature属性为空,当用户需要对数据进行权限控制,则可以对Signature属性进行填写选择,选择企业账号的公私密钥对或个人账号的公私密钥对;
S303:元数据属性IsTextSubset=True,区块链服务平台将用户上传的文本文件上传至数据仓库,即步骤S6所述的过程;
S304:为元数据生成对应的智能合约,包括“检索智能合约”、“修改智能合约”、“删除智能合约”、“推荐智能合约”,随后将智能合约上传至数据仓库,即步骤S6所述的过程;
S305:提示用户上链确认,用户确认后,元数据上链。
6.如权利要求1所述的基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于:所述步骤S4具体包括:
S401:Text-To-SQL转译插件将S2输入的数据转化为对应元数据之后,会将其连同用户的私钥发送给区块链推荐模块,区块链模块将抽取元数据中SentenceCategory、OriginSentence属性的取值;
S402:对于OriginSentence所填写的值,由于其是自然语言,区块链模块将对其进行分解,分解成多个关键词;
S403:区块链推荐模块将S401抽取的属性值、S402抽取的关键字以及用户的私钥封装为json数据并发送给区块链服务平台;
S404:区块链推荐模块接受步骤S5返回的数组之后,会进行推荐排序,将共享推荐价值高的优先推荐给用户。
7.如权利要求6所述的基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于,所述步骤S5具体包括:
S501:区块链推荐模块将所述的json数据发送给区块链服务平台中的模糊检索模块,经过区块链服务平台的模糊检索,得到S7步骤所述的返回结果,随后进行数据鉴权;
S502:不是所有符合条件的元数据用户都可以访问,需要逐条进行鉴权,首先检查该用户是否具有访问资格,该过程的应用算法公式如下:
C=ME mod Nmod
M'=CD mod Nmod
其中,C为经公钥KU加密得到的密文;M为明文,即元数据中的个人账号或企业账号;M′为私钥KR解密得到的明文;当M=M′时,表示解密成功,该用户具有该数据的访问资格;然后,将该数据加入到CandidateList数组中;最后,区块链服务平台将该数组返回给区块链推荐模块。
8.如权利要求1所述的基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于:所述步骤S6具体包括:
S601:当用户需要将数据集上传至数据仓库,区块链服务平台向数据仓库发起上传请求,数据仓库返回存储空间大小Storage,Storage用来判断该数据集是否满足上传条件;
S602:区块链服务平台计算出该数据集的大小DateSetSize,如果DateSetSize小于Storage,那么平台将数据集上传至数据仓库;
S603:数据仓库接收数据集并进行存储,随后返回该数据集的数据仓库地址;
S604:区块链服务平台得到数据集的存储位置,将存储位置赋给TextStorage属性。
9.如权利要求1所述的基于区块链的Text-To-SQL数据共享与推荐方法,其特征在于,所述步骤S7具体包括:
S701:若上链数据为步骤S301所述第一种数据类型,元数据直接上传至区块链网络;若上链数据为第二种数据类型,即元数据包含于某个数据集,此时需要先对其构建智能合约,包括数据删除智能合约、数据修改智能合约以及数据检索智能合约,上链过程如S702、S703所述;
S702:构建智能合约,用户拥有所有的智能合约,其他用户拥有部分智能合约,根据SentenceAccessRight属性值进行限制,三种智能合约构建完成,将智能合约上传至数据仓库,即执行步骤S6;
S703:将步骤S6返回的智能合约存储地址赋给IntelligentContract属性,随后将该数据上传至区块链网络。
10.基于区块链的Text-To-SQL数据共享与推荐系统,用于实现如权利要求1-9任一所述的方法,其特征在于:所述数据共享与推荐系统包括:
Text-To-SQL转译平台、区块链服务平台、区块链网络和数据仓库;
所述Text-To-SQL转译平台在用户输入自然语言问题之后,用于提供SQL转译服务、SQL共享数据推荐服务、Text-To-SQL元数据和数据集存储上链服务以及Text-To-SQL元数据推荐服务;
所述区块链服务平台为用户提供用户注册、鉴权、存储、上链、检索服务;
所述区块链网络对元数据进行存储,用于检索共享数据;
所述数据仓库用于存储用户上传的数据集,存储元数据所对应的智能合约,智能合约用于访问元数据或数据集。
CN202310127259.1A 2023-02-16 2023-02-16 一种基于区块链的Text-To-SQL数据共享与推荐方法及系统 Pending CN116049380A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310127259.1A CN116049380A (zh) 2023-02-16 2023-02-16 一种基于区块链的Text-To-SQL数据共享与推荐方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310127259.1A CN116049380A (zh) 2023-02-16 2023-02-16 一种基于区块链的Text-To-SQL数据共享与推荐方法及系统

Publications (1)

Publication Number Publication Date
CN116049380A true CN116049380A (zh) 2023-05-02

Family

ID=86123689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310127259.1A Pending CN116049380A (zh) 2023-02-16 2023-02-16 一种基于区块链的Text-To-SQL数据共享与推荐方法及系统

Country Status (1)

Country Link
CN (1) CN116049380A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737759A (zh) * 2023-08-14 2023-09-12 北京理工大学 一种基于关系感知注意力的中文查询生成sql语句方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737759A (zh) * 2023-08-14 2023-09-12 北京理工大学 一种基于关系感知注意力的中文查询生成sql语句方法
CN116737759B (zh) * 2023-08-14 2023-12-08 北京理工大学 一种基于关系感知注意力的中文查询生成sql语句方法

Similar Documents

Publication Publication Date Title
US10476662B2 (en) Method for operating a distributed key-value store
JP2019537318A (ja) ブロックチェーンを介したアイデンティティと証明書の保護及び検証とのための方法及びシステム
US20100262836A1 (en) Privacy and confidentiality preserving mapping repository for mapping reuse
WO2018236479A1 (en) METHOD AND SYSTEM FOR INDEXING CONSUMER REGISTRATION USING A BLOCK CHAIN
CN107209787A (zh) 提高专用加密数据的搜索能力
WO2019183483A2 (en) Facilitating queries of encrypted sensitive data via encrypted variant data objects
CN110135986A (zh) 一种基于区块链智能合约实现的可搜索加密文件数据方法
US20220284008A1 (en) Method and system of implementing partitioned blockchain
US11689355B2 (en) Method and system for the atomic exchange of blockchain assets using transient key pairs
CN109074394A (zh) 用于具有永久完整性保证的分布式数据存储的方法和系统
BouSaba et al. Degree validation application using solidity and Ethereum blockchain
CN116049380A (zh) 一种基于区块链的Text-To-SQL数据共享与推荐方法及系统
CN113051372B (zh) 材料数据的处理方法、装置、计算机设备和存储介质
US11461551B1 (en) Secure word search
US11640601B2 (en) Method and system for regulation of blockchain transactions
CN105791283A (zh) 一种针对加密的空间数据的圆形范围搜索方法
CN108650268A (zh) 一种实现多级访问的可搜索加密方法及系统
CN115758432A (zh) 一种基于机器学习算法的全方位数据加密方法及系统
JP7379726B2 (ja) ハッシュチェインを使用してスカラーデジタル資産を表すための方法及びシステム
US20210328776A1 (en) Processing personally identifiable information from separate sources
CN107078998A (zh) 信息对象系统
US20230186292A1 (en) Method and system for enabling traceable privacy-maintaining multi-hop offline transactions in digital currencies
US20240135368A1 (en) Method and system for enabling traceable privacy-maintaining multi-hop offline transactions in digital currencies
CN116756779B (zh) 一种电子表格数据对象化存储系统及方法
CN117034370B (zh) 基于区块链网络的数据处理方法及相关设备

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