1.一种海量遥感元数据模糊XML的关键字查询方法,其特征在于,包括以下步骤:
A:读取模糊XML文档,并以变量形式保存模糊XML文档的路径;然后将所保存的路径解析为模糊XML文档树的树状存储结构,然后将所得到的树状存储结构以Map类型的集合进行储存,再向模糊XML文档树中输入需要查询的关键字;
B:将关键字与树状存储结构中的所有结点进行匹配,首先判断根结点的属性信息中是否包含关键字,若包含则将根结点作为有意义块,若不包含则输出提示;然后再对根结点子树进行分块处理,若存有块的根结点的属性信息中包含关键字,则将包含关键字的块作为有意义块并作为SLCA候选结点;若存有块的根结点的属性信息中不包含关键字,则将不包含关键字的块作为无意义块;然后对所有的有意义块是否含有子树进行判断,若有意义块不含有子树,则将该有意义块作为SLCA候选结点;若有意义块含有子树,则将该有意义块的子树进行分块处理直至分块至最后一层叶子结点,并依次判断子结点的父结点的属性信息中是否包含关键字,若子结点的父结点的属性信息中包含关键字,则将该子结点的父结点作为SLCA候选结点;若子结点的父结点的属性信息中不包含关键字,则将该子结点的父结点作为无意义块;最后将得到的所有SLCA候选结点作为最小匹配结构体集合;
其中,在模糊XML文档树T中,给出关键字keyword,若模糊XML文档树T中的结点U的属性信息中包含关键字keyword,且结点U的子结点中没有包含关键字keyword的结点,则结点U是关键字keyword的SLCA候选结点;
有意义块:在对模糊XML文档树T的分割中,含有关键字结点的块;
无意义块:在对模糊XML文档树T的分割中,不含有关键字结点的块;
块:在对模糊XML文档树T进行分割时,所得到的根结点及其每一棵子树;
属性信息包含NodeNum、PathPosition、PathId、NodeId、ValueId、poss和PossDeg;其中,NodeNum是结点在文档树中先序遍历的编号;PathPosition表示结点的路径序号;
PathId表示结点的路径名编号;NodeId表示结点名编号;ValueId表示结点值的编号;poss表示结点的模糊度,PossDeg表示结点的模糊隶属度;
C:判断最小匹配结构体集合中的SLCA候选结点是否有模糊结点,若某一SLCA候选结点中的poss属性的值不为Null,则计算出该SLCA候选结点的模糊隶属度,然后输出该SLCA候选结点的属性信息;若某一SLCA候选结点中的poss属性的值为Null,则直接输出该SLCA候选结点的属性信息;最终得到最小匹配结构体集合中所有SLCA候选结点的属性信息;
其中,SLCA候选结点的隶属度的计算公式为:
PossDeg=poss1×poss2×…×possn;
式中,poss1,poss2,...,possn分别为该SLCA候选结点到首个Dist结点间的各结点的模糊度,n表示该SLCA候选结点到首个Dist结点间的第n个结点,Dist结点是具有模糊结构的结点,poss表示结点的模糊度。
2.根据权利要求1所述的海量遥感元数据模糊XML的关键字查询方法,其特征在于:所述的步骤A中,首先通过读入模糊XML文档,并将模糊XML文档的路径以变量filepath保存;
然后调用SAXReader将存有路径的变量filepath解析为模糊XML文档树的树状存储结构,然后将得到的树状存储结构以Map类型的集合map_findall进行储存,再向模糊XML文档树中输入需要查询的关键字keyword;
filepath为自定义的变量名称,map_findall为自定义的集合名称;SAXReader为现有解析器。
3.根据权利要求2所述的海量遥感元数据模糊XML的关键字查询方法,其特征在于,所述的步骤B包括以下具体步骤:B1:将关键字keyword与集合map_findall中的根结点进行匹配,判断根结点的属性信息中是否包含关键字keyword,若包含则将根结点作为有意义块,然后进入步骤B2;若不包含则输出提示“该模糊XML文档中不包含所查询的关键字”,然后进入步骤B2;
B2:对根结点的子树进行自顶向下的分块处理,然后进入步骤B3;
B3:自左向右依次判断存有块的根结点的属性信息中是否包含关键字keyword,如果是,进入步骤B4;如果否,继续判断下一个存有块的根结点的属性信息中是否包含关键字keyword;直至所有存有块的根结点全部判断完毕;
B4:将包含关键字keyword的块作为有意义块并作为SLCA候选结点,然后进入步骤B5;
B5:依次判断所有的有意义块中是否含有子树,如果不含有,进入步骤B6;如果含有,进入步骤B7;直至所有的有意义块全部判断完毕,然后进入步骤B10;
B6:将该有意义块作为SLCA候选结点;然后返回步骤B5继续判断下一个有意义块是否含有子结点;
B7:将该有意义块中的子树进行分块处理直至分块至最后一层叶子结点,并从左到右依次判断子结点的父结点的属性信息中是否包含关键字keyword,如果存在,进入步骤B8;
如果不存在,进入步骤B9;直至所有子结点全部判断完毕,然后返回步骤B5,继续判断下一个有意义块中是否含有子树;
B8:将该子结点的父结点作为SLCA候选结点;然后返回步骤B7继续判断下一个子结点的父结点的属性信息中是否包含关键字keyword;
B9:判定为无意义块,然后返回步骤B7继续判断下一个子结点的父结点的属性信息中是否包含关键字keyword;
B10:将得到的所有SLCA候选结点作为最小匹配结构体集合。
4.根据权利要求3所述的海量遥感元数据模糊XML的关键字查询方法,其特征在于,所述的步骤B1中:首先,用集合entrySet来储存集合map_findall里的所有结点,然后用变量entry来存储当前结点,变量entry初始值为根结点;
其次,通过getKey方法获取到根结点先序遍历的编号,再通过getValue方法获取到根结点的属性信息;
然后,将集合map_findall里的所有结点赋值给Map类型的集合content,再通过keySet方法获取到集合map_findall里的所有结点的编号信息,用变量wos储存当前结点的属性信息,变量wos的初始值为根结点的属性信息;
最后,调用mathch方法将变量wos与关键字keyword进行遍历匹配,若变量wos中包含有关键字keyword,则判断该根结点为有意义块;否则就直接输出“该模糊XML文档中不包含所查询的关键字”,并提示用户输入新的关键字;
entrySet和content均为自定义的集合名称,wos为自定义的变量名称,getKey方法为现有的获取Map类型中数据的键的方法,getValue方法为现有的获取Map类型中数据的值的方法;keySet方法为将获取Map类型中数据的键存储为集合的现有方法;mathch方法为现有的数据匹配方法。