1.一种知识驱动的SPARQL查询构建方法,其特征在于包括以下步骤:
1)获取用户提交的SPARQL查询语句,抽取SPARQL查询语句中的实体集合和谓词集合;
2)判断步骤1)中的实体集合和谓词集合,若谓词集合中只包含一个谓词,实体集合中只包含一个实体,则将SPARQL查询语句分类为简单问题;
3)判断步骤1)中的实体集合和谓词集合,若谓词集合中只包含一个谓词,实体集合中只包含两个实体,则将SPARQL查询语句分类为事实问题;
4)判断步骤1)中的谓词集合,若谓词集合中包含至少两个谓词,则将SPARQL查询语句分类为复杂问题;
5)根据步骤4)判断步骤1)中的实体集合,若实体集合中包含的实体数大于或等于谓词数,则将复杂问题细分为显示实体问题;
6)根据步骤4)判断步骤1)中的实体集合,若实体集合中包含的实体数少于谓词数,则将复杂问题细分为隐式实体问题;
7)分别对简单问题、事实问题、显示实体问题、以及隐式实体问题的查询构建流程,并得到相对应的查询答案。
2.根据权利要求1所述的知识驱动的SPARQL查询构建方法,其特征在于:所述简单问题的查询构建流程为:a、从简单问题中抽取一个实体e1和一个谓词p1;
b、将实体e1和谓词p1构建出三元组候选集,并得到正确的SPARQL查询s1;
c、由于简单问题只有一个三元组,直接执行s1得到结果集R1,所述简单问题的答案就是结果集R1。
3.根据权利要求1所述的知识驱动的SPARQL查询构建方法,其特征在于:所述事实问题的查询构建流程为:a、从事实问题中抽取实体集合E1和一个谓词p2;
b、从实体集合E中随机选取出一个实体e2,用实体e2和p2构建出三元组候选集,并得到正确的SPARQL查询s2;
c、由于事实问题只有一个三元组,直接执行s2得到结果集R2;
d、从实体集合E1中抽取出e3,判断e3是否在结果集R2中;
e、若e3在结果集R2中,则所述事实问题的答案就是结果集R2,否则,所述事实问题的答案就不是结果集R2。
4.根据权利要求1所述的知识驱动的SPARQL查询构建方法,其特征在于:所述显式实体问题的查询构建流程为:a、从显式实体问题中抽取实体集合E2和谓词集合P1;
b、从实体集合E2中随机选取出实体e4,从谓词集合P1中随机选取出谓词p3,用实体e4和谓词p3构建出三元组候选集,并得到正确的SPARQL查询s3;
c、从实体集合E2中随机选出实体e5,从谓词集合P1中随机选取出谓词p4,用实体e5和谓词p4构建出三元组候选集,并得到正确的SPARQL查询s4;
d、执行s3得到结果集R3,执行s4得到结果集R4;
e、求结果集R3和结果集R4的交集R5,所述交集R5即为显式实体问题的答案。
5.根据权利要求1所述的知识驱动的SPARQL查询构建方法,其特征在于:所述隐式实体问题的查询构建流程为:a、从隐式实体问题中抽取实体e6和谓词集合P2;
b、从谓词集合P2中随机选取出p5,用实体e6与p5构建出三元组候选集,并得到正确的SPARQL查询s5,c、执行s5得到结果集R6;
d、由于结果集R6可以帮助约束隐式实体的范围,将R6定义为实体e7,并将e7与谓词集合P2中的p6构建出三元组候选集,并得到正确的SPARQL查询s6;
e、执行s6得到结果集R7,所述结果集R7即为隐式实体问题的答案。