CN107545041B - 一种基于本体和推理机制的旅游路线检索方法 - Google Patents
一种基于本体和推理机制的旅游路线检索方法 Download PDFInfo
- Publication number
- CN107545041B CN107545041B CN201710665668.1A CN201710665668A CN107545041B CN 107545041 B CN107545041 B CN 107545041B CN 201710665668 A CN201710665668 A CN 201710665668A CN 107545041 B CN107545041 B CN 107545041B
- Authority
- CN
- China
- Prior art keywords
- relationship
- travel
- ontology
- instance
- startkeyword
- 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.)
- Active
Links
Images
Abstract
本发明公开了一种基于本体和推理机制的旅游路线检索方法,属于本体检索领域。本发明首先根据用户的检索条件到旅游本体中进行查询判断;然后针对判断结果运用自定义推理规则挖掘旅游本体中不同实例间关系;最后分析不同实例间关系,运用推理检索旅游路线。本发明将本体应用于旅游领域,能够建立旅游相关概念之间的逻辑关系结构;通过关联处理和推理规则,能够达到扩充本体的目的;运用推理查询,能够得到旅游路线的检索结果。
Description
技术领域
本发明涉及一种基于本体和推理机制的旅游路线检索方法,属于本体检索领域。
背景技术
旅游路线检索作为人们出行的必要环节,如何提供满足用户需求的旅游路线检索结果成为研究热点。词语包括语法、语义、语用。目前,针对旅游路线的检索,往往是从语法出发,一方面依赖关键字匹配的方式,对语义相近的词语无法判断其概念上的相似性;另一方面检索结果往往是特定的,缺乏关联机制。因此,为了保证能够理解用户的意图,需要运用语义和语用,而引入本体能够解决这个问题。
本体是描述概念和概念之间关系的模型,作为一种有效表现概念层次结构和语义的模型,能满足用户在语义上和知识上的需求,因此在信息检索领域得到广泛的应用。构建领域本体能很大程度上揭示概念间的语义关系,应用于相关领域的信息检索,可以扩大检索范围,提高检索的查全率和查准率。同时,由于本体中概念与属性的关联性,所以结合语义推理能力和推理机制,能够扩展本体,不仅可以检索到直接结果,还可以检索到隐形结果。
在信息检索领域,国外有不少应用本体的项目以及基于本体的信息检索系统。Ontobroker用形式化本体描述背景知识,并明确化Web文档的语义,以便综合利用本体论的表达能力和推理机制,帮助用户检索所需的网页内容。Voorhees提出基于本体的查询扩展,使用了本体中的概念进行查询扩展。Maki提出了基于本体结构的方法,利用本体中的路径来进行用户查询的扩展。
国内对将本体应用于信息检索领域也进行了相关研究。万捷等人提出基于内容的信息检索系统,利用本体对检索需求进行语义扩充,并用文档分析器对检索文档进行过滤,提高了检索准确性。徐振宁等人通过构造形式化的领域本体,提出一种将知识表示和知识处理引入互联网信息处理的方法,为互联网上的半结构化数据和关系数据库提供了统一的语义模型。宋峻峰采用描述逻辑作为构造本体的本体语言,使用本体中定义的词汇来标记文档,生成基于本体的文档逻辑视图和用户信息需求逻辑视图,实现了语义层次的检索,改善了检索性能。但目前尚无采用基于本体和推理机制的旅游路线检索方法。
发明内容
本发明提供了一种基于本体和推理机制的旅游路线检索方法,以用于帮助用户检索旅游路线。
本发明的技术方案是:一种基于本体和推理机制的旅游路线检索方法,首先根据用户的检索条件到旅游本体中进行查询判断;然后针对判断结果运用自定义推理规则挖掘旅游本体中不同实例间关系;最后分析不同实例间关系,运用推理检索旅游路线。
所述方法的具体步骤如下:
检索条件:旅游路线起点关键字startKeyword、终点关键字endKeyword、条件condition;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示;
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示;
初始实例集:检索条件中的旅游实例,用InitialInstance表示;
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系;
Step1、获取检索条件的旅游路线起点关键字startKeyword,到旅游本体中进行查询:若startKeyword不存在,则执行Step9;若存在,将其存入初始实例集InitialInstance={startKeyword},接着执行Step2;
Step2、获取检索条件的旅游路线终点关键字endKeyword,到旅游本体中进行查询:若endKeyword不存在,则执行Step9;若存在,在旅游本体中查询endKeyword的实例individuali,并存入目标实例集ObjectInstance={individual1,individual2,…,individualm},接着执行Step3;其中,i=1,...,m;m表示旅游本体中查询endKeyword的实例的个数;
Step3、获取检索的旅游路线条件condition,将condition转变成与旅游本体对应的关系属性Relation,并存入目标规则集ObjectRule={Relation},接着执行Step4;
Step4、从集合InitialInstance={startKeyword}中取出初始实例startKeyword,到旅游本体中查询startKeyword的三元关系ternaryRelationj:若不存在,则执行Step9;若存在,将startKeyword的三元关系ternaryRelationj存入集合Relationship={ternaryRelation1,ternaryRelation2,…,ternaryRelationn},接着执行Step5;其中,j=1,...,n;n表示旅游本体中查询startKeyword的三元关系的个数;
Step5、从旅游本体中获取已经定义的不同实例的旅游关系属性relationk,依据集合ObjectRule={Relation}中的关系属性Relation,定义旅游本体中不同实例间关系属性relationk符合关系属性Relation的推理规则集Rule,接着执行Step6;其中,Rule:{(?xsrelationk?ys)→(?xs Relation?ys)};k=1,...,p;p表示旅游本体中不同实例间关系属性的个数;xs,ys∈SourceInstance;relationk∈SourceRule;s=1,...,r;r表示集合Rule中推理规则的个数;
Step6、从集合Rule中取出xs为startKeyword的推理规则Rulet,依据推理规则Rulet:(?startKeyword relationk?yt)→(?startKeyword Relation?yt)获取与集合InitialInstance={startKeyword}中初始实例startKeyword相关联的源实例yt,并判断源实例yt是否属于集合ObjectInstance={individual1,individual2,…,individualm}:若不属于,将非目标实例zt=yt,并存入非目标实例集MiddleInstance={zt},然后执行Step7;若属于,则将源实例yt存入集合ResultInstance={yt},然后执行Step8;其中,t=1,...,q;q表示集合Rule中取出xs为startKeyword的推理规则的个数;
Step7、从集合
Relationship={ternaryRelation1,ternaryRelation2,…,ternaryRelationn}中取出初始实例startKeyword到非目标实例zt的关系属性relationk,结合relationk将集合ObjectRule={Relation}中的关系属性Relation进行推理运算得到推理运算后的Relation',将集合ObjectRule={Relation}中的关系属性Relation=Relation',并将集合InitialInstance={startKeyword}中的初始实例startKeyword=zt,然后返回Step4;
Step8、输出旅游路线:起点实例为集合InitialInstance={startKeyword}中初始实例startKeyword,中间实例为集合MiddleInstance={zt}中非目标实例zt,目标实例为集合ResultInstance={yt}中源实例yt;
Step9、结束。
本发明的有益效果是:本发明将本体应用于旅游领域,能够建立旅游相关概念之间的逻辑关系结构;通过关联处理和推理规则,能够达到扩充本体的目的;运用推理查询,能够得到旅游路线的检索结果。
附图说明
图1是本发明中旅游本体的类结构层次图;
图2是本发明中旅游本体的数据属性图;
图3是本发明中旅游本体的美食类实例图;
图4是本发明中旅游本体的住宿类实例图;
图5是本发明中旅游本体的公交类实例图;
图6是本发明中旅游本体的景观类实例图;
图7是本发明中旅游本体的购物类实例图;
图8是本发明中旅游本体的娱乐类实例图;
图9是本发明的旅游本体中实例关系图;
图10是本发明的流程图。
具体实施方式
下面结合附图和实施例,对本发明作进一步说明,但本发明的内容并不限于所述范围。
实施例1:如图1-10所示,一种基于本体和推理机制的旅游路线检索方法,首先根据用户的检索条件到旅游本体中进行查询判断;然后针对判断结果运用自定义推理规则挖掘旅游本体中不同实例间关系;最后分析不同实例间关系,运用推理检索旅游路线。
所述方法的具体步骤如下:
检索条件:旅游路线起点关键字startKeyword、终点关键字endKeyword、条件condition;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示;
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示;
初始实例集:检索条件中的旅游实例,用InitialInstance表示;
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系;
Step1、获取检索条件的旅游路线起点关键字startKeyword,到旅游本体中进行查询:若startKeyword不存在,则执行Step9;若存在,将其存入初始实例集InitialInstance={startKeyword},接着执行Step2;
Step2、获取检索条件的旅游路线终点关键字endKeyword,到旅游本体中进行查询:若endKeyword不存在,则执行Step9;若存在,在旅游本体中查询endKeyword的实例individuali,并存入目标实例集ObjectInstance={individual1,individual2,…,individualm},接着执行Step3;其中,i=1,...,m;m表示旅游本体中查询endKeyword的实例的个数;
Step3、获取检索的旅游路线条件condition,将condition转变成与旅游本体对应的关系属性Relation(即自然语言表达的关系属性采用符号的形式表达),并存入目标规则集ObjectRule={Relation},接着执行Step4;
Step4、从集合InitialInstance={startKeyword}中取出初始实例startKeyword,到旅游本体中查询startKeyword的三元关系ternaryRelationj:若不存在,则执行Step9;若存在,将startKeyword的三元关系ternaryRelationj存入集合Relationship={ternaryRelation1,ternaryRelation2,…,ternaryRelationn},接着执行Step5;其中,j=1,...,n;n表示旅游本体中查询startKeyword的三元关系的个数;
Step5、从旅游本体中获取已经定义的不同实例的旅游关系属性relationk,依据集合ObjectRule={Relation}中的关系属性Relation,定义旅游本体中不同实例间关系属性relationk符合关系属性Relation的推理规则集Rule,接着执行Step6;其中,Rule:{(?xsrelationk?ys)→(?xs Relation?ys)};k=1,...,p;p表示旅游本体中不同实例间关系属性的个数;xs,ys∈SourceInstance;relationk∈SourceRule;s=1,...,r;r表示集合Rule中推理规则的个数;
Step6、从集合Rule中取出xs为startKeyword的推理规则Rulet,依据推理规则Rulet:(?startKeyword relationk?yt)→(?startKeyword Relation?yt)获取与集合InitialInstance={startKeyword}中初始实例startKeyword相关联的源实例yt,并判断源实例yt是否属于集合ObjectInstance={individual1,individual2,…,individualm}:若不属于,将非目标实例zt=yt,并存入非目标实例集MiddleInstance={zt},然后执行Step7;若属于,则将源实例yt存入集合ResultInstance={yt},然后执行Step8;其中,t=1,...,q;q表示集合Rule中取出xs为startKeyword的推理规则的个数;
Step7、从集合
Relationship={ternaryRelation1,ternaryRelation2,…,ternaryRelationn}中取出初始实例startKeyword到非目标实例zt的关系属性relationk,结合relationk将集合ObjectRule={Relation}中的关系属性Relation进行推理运算得到推理运算后的Relation'(如相加、加减等相关的推理方式),将集合ObjectRule={Relation}中的关系属性Relation=Relation',并将集合InitialInstance={startKeyword}中的初始实例startKeyword=zt,然后返回Step4;
Step8、输出旅游路线:起点实例为集合InitialInstance={startKeyword}中初始实例startKeyword,中间实例为集合MiddleInstance={zt}中非目标实例zt,目标实例为集合ResultInstance={yt}中源实例yt;
Step9、结束。
实施例2:如图9所示,
用户的检索条件如表1所示,
表1
起点 | 条件 | 终点 |
故宫 | 距离小于500m | 景观 |
所述基于本体和推理机制的旅游路线检索方法的具体步骤如下:
检索条件:旅游路线起点关键字、终点关键字、条件;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示,即SourceInstance={丽江古城、丽江88号小吃店、摩挲人家手织坊、古城大水车、四方街、花花色私房菜、丽雅轩酒店、绿山缘客栈};
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示,即SourceRule={distance=194m,distance=387m,distance=525m,distance=204m,distance=128m,distance=125m,distance=225m,distance=178m};
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系。
Step1.获取检索的旅游路线起点关键字startKeyword=“故宫”,到旅游本体中进行查询:startKeyword=“故宫”在旅游本体中不存在,所以执行Step9;
Step9.结束。
实施例3:如图9所示,
用户的检索条件如表2所示,
表2
起点 | 条件 | 终点 |
丽江古城 | 距离小于500m | 银行 |
所述基于本体和推理机制的旅游路线检索方法的具体步骤如下:
检索条件:旅游路线起点关键字、终点关键字、条件;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示,即SourceInstance={丽江古城、丽江88号小吃店、摩挲人家手织坊、古城大水车、四方街、花花色私房菜、丽雅轩酒店、绿山缘客栈};
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示,即SourceRule={distance=194m,distance=387m,distance=525m,distance=204m,distance=128m,distance=125m,distance=225m,distance=178m};
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系。
Step1.获取检索的旅游路线起点关键字startKeyword=“丽江古城”,到旅游本体中进行查询:startKeyword=“丽江古城”在旅游本体中存在,所以将其存入初始实例集InitialInstance={丽江古城};
Step2.获取检索的旅游路线终点关键字endKeyword=“银行”,到旅游本体中进行查询判断:endKeyword=“银行”在旅游本体中不存在,则执行Step9;
Step9.结束。
实施例4:如图9所示,
用户的检索内容如表3所示,
表3
起点 | 条件 | 终点 |
丽江古城 | 距离小于500m | 景观 |
所述基于本体和推理机制的旅游路线检索方法的具体步骤如下:
检索条件:旅游路线起点关键字、终点关键字、条件;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示,即SourceInstance={丽江古城、丽江88号小吃店、摩挲人家手织坊、古城大水车、四方街、花花色私房菜、丽雅轩酒店、绿山缘客栈};
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示,即SourceRule={distance=194m,distance=387m,distance=525m,distance=204m,distance=128m,distance=125m,distance=225m,distance=178m};
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系。
Step1.获取检索的旅游路线起点关键字startKeyword=“丽江古城”,到旅游本体中进行查询:startKeyword=“丽江古城”在旅游本体中存在,所以将其存入初始实例集InitialInstance={丽江古城};
Step2.获取检索的旅游路线终点关键字endKeyword=“景观”,到旅游本体中进行查询:endKeyword=“景观”在旅游本体中存在,则继续在旅游本体中查询endKeyword=“景观”的实例individual1=“丽江古城”、individual2=“古城大水车”、individual3=“四方街”,然后存入目标实例集ObjectInstance={丽江古城,古城大水车,四方街};
Step3.获取检索的旅游路线条件condition=“距离小于500m”,将condition=“距离小于500m”转变成与旅游本体对应的关系属性Relation=“distance<500m”,然后存入目标规则集ObjectRule={distance<500m};
Step4.从集合InitialInstance={丽江古城}中取出初始实例startKeyword=“丽江古城”,到旅游本体中查询startKeyword=“丽江古城”的三元关系ternaryRelation1“丽江古城distance=194m摩挲人家手织坊”、ternaryRelation2=“丽江古城distance=387m丽江88号小吃店”、ternaryRelation3=“丽江古城distance=525m花花色私房菜”、ternaryRelation4=“丽江古城distance=204m四方街”,然后将其存入集合Relationship={ternaryRelation1,ternaryRelation2,ternaryRelation3,ternaryRelation4};
Step5.从旅游本体中获取已经定义的关系属性relation1=“distance=194m”、relation2=“distance=387m”、relation3=“distance=525m”、relation4=“distance=204m”、relation5=“distance=128m”、relation6=“distance=125m”、relation7=“distance=225m”、relation8=“distance=178m”,依据集合ObjectRule={distance<500m}中的关系属性Relation=“distance<500m”,定义旅游本体中不同实例间关系属性relation1、relation2、relation4、relation5、relation6、relation7、relation8符合关系属性Relation=“distance<500m”的推理规则集Rule={Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<500m?摩挲人家手织坊),Rule2:(?丽江古城distance=387m?丽江88号小吃店)->(?丽江古城distance<500m?丽江88号小吃店),Rule3:(?丽江古城distance=204m?四方街)->(?丽江古城distance<500m?四方街),Rule4:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<500m?古城大水车),Rule5:(?四方街distance=125m?花花色私房菜)->(?四方街distance<500m?花花色私房菜),Rule6:(?四方街distance=225m?绿山缘客栈)->(?四方街distance<500m?绿山缘客栈),Rule7:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<500m?丽雅轩酒店)};
Step6.从集合Rule中取出推理规则Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<500m?摩挲人家手织坊),Rule2:(?丽江古城distance=387m?丽江88号小吃店)->(?丽江古城distance<500m?丽江88号小吃店),Rule3:(?丽江古城distance=204m?四方街)->(?丽江古城distance<500m?四方街),依据推理规则Rule1、Rule2、Rule3获取与集合InitialInstance={丽江古城}中初始实例startKeyword=“丽江古城”相关联的源实例y1=“摩挲人家手织坊”、y2=“丽江88号小吃店”、y3=“四方街”,然后判断源实例y1、y2、y3是否属于集合ObjectInstance={丽江古城、古城大水车、四方街}:
(1)y1=“摩挲人家手织坊”不属于集合ObjectInstance={丽江古城,古城大水车,四方街},将非目标实例z1=y1=“摩挲人家手织坊”,并存入非目标实例集MiddleInstance={摩挲人家手织坊},然后执行Step7;
Step7.从集合
Relationship={ternaryRelation1=“丽江古城distance=194m摩挲人家手织坊”,ternaryRelation2=“丽江古城distance=387m丽江88号小吃店”,ternaryRelation3=“丽江古城distance=525m花花色私房菜”,ternaryRelation4=“丽江古城distance=204m四方街”}中,取出初始实例startKeyword=“丽江古城”到非目标实例z1=“摩挲人家手织坊”的关系属性relation1=“distance=194m”,结合relation1=“distance=194m”将集合ObjectRule={distance<500m}中的关系属性Relation=“distance<500m”进行推理运算Relation'=“distance<500m-194m=306m”,集合ObjectRule={distance<306m},同时将startKeyword=z1=“摩挲人家手织坊”,集合InitialInstance={摩挲人家手织坊},返回Step4;
Step4.从集合InitialInstance={摩挲人家手织坊}中取出初始实例startKeyword=“摩挲人家手织坊”,到旅游本体中查询startKeyword=“摩挲人家手织坊”的三元关系ternaryRelation1=“摩挲人家手织坊distance=128m古城大水车”,然后将其存入集合Relationship={ternaryRelation1};
Step5.从旅游本体中获取已经定义的关系属性relation1=“distance=194m”、relation2=“distance=387m”、relation3=“distance=525m”、relation4=“distance=204m”、relation5=“distance=128m”、relation6=“distance=125m”、relation7=“distance=225m”、relation8=“distance=178m”,依据集合ObjectRule={distance<306m}中的关系属性Relation=“distance<306m”,定义旅游本体中不同实例间关系属性relation1、relation4、relation5、relation6、relation7、relation8符合关系属性Relation=“distance<306m”的推理规则集Rule={Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<306m?摩挲人家手织坊),Rule2:(?丽江古城distance=204m?四方街)->(?丽江古城distance<306m?四方街),Rule3:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<306m?古城大水车),Rule4:(?四方街distance=125m?花花色私房菜)->(?四方街distance<306m?花花色私房菜),Rule5:(?四方街distance=225m?绿山缘客栈)->(?四方街distance<306m?绿山缘客栈),Rule6:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<306m?丽雅轩酒店)};
Step6.从集合Rule中取出推理规则Rule3:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<306m?古城大水车),依据推理规则Rule3获取与集合InitialInstance={摩挲人家手织坊}中初始实例startKeyword=“摩挲人家手织坊”相关联的源实例y1=“古城大水车”,然后判断源实例y1是否属于集合ObjectInstance={丽江古城,古城大水车,四方街}:
y1=“古城大水车”属于集合ObjectInstance={丽江古城,古城大水车,四方街},将源实例y1=“古城大水车”存入集合ResultInstance={古城大水车},然后执行Step8;
Step8.输出旅游路线:起点实例为“丽江古城”,中间实例为“摩挲人家手织坊”,目标实例为“古城大水车”;
Step9.结束。
(2)y2=“丽江88号小吃店”不属于集合ObjectInstance={丽江古城,古城大水车,四方街},将非目标实例z2=y2=“丽江88号小吃店”,并存入非目标实例集MiddleInstance={丽江88号小吃店},然后执行Step7;
Step7.从集合
Relationship={ternaryRelation1=“丽江古城distance=194m摩挲人家手织坊”,ternaryRelation2=“丽江古城distance=387m丽江88号小吃店”,ternaryRelation3=“丽江古城distance=525m花花色私房菜”,ternaryRelation4=“丽江古城distance=204m四方街”},取出初始实例startKeyword=“丽江古城”到非目标实例z2=“丽江88号小吃店”的关系属性relation2=“distance=387m”,结合relation2=“distance=387m”将集合ObjectRule={distance<500m}中的关系属性Relation=“distance<500m”进行推理运算Relation'=“distance<500m-387m=113m”,集合ObjectRule={distance<113m},同时startKeyword=z2=“丽江88号小吃店”,集合InitialInstance={丽江88号小吃店},返回Step4;
Step4.从集合InitialInstance={丽江88号小吃店}中取出初始实例startKeyword=“丽江88号小吃店”,到旅游本体中查询startKeyword=“丽江88号小吃店”的三元关系ternaryRelationj(j=1,...,n)不存在,所以执行Step9;
Step9.结束。
(3)y3=“四方街”属于集合ObjectInstance={丽江古城,古城大水车,四方街},将源实例y3=“四方街”存入集合ResultInstance={四方街},然后执行Step8;
Step8.输出旅游路线:起点实例为“丽江古城”,中间实例没有,目标实例为“四方街”;
Step9.结束。
实施例5:如图9所示,
用户的检索条件如表4所示,
表4
起点 | 条件 | 终点 |
丽江古城 | 距离小于400m | 餐馆 |
所述基于本体和推理机制的旅游路线检索方法的具体步骤如下:
检索条件:旅游路线起点关键字、终点关键字、条件;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示,即SourceInstance={丽江古城、丽江88号小吃店、摩挲人家手织坊、古城大水车、四方街、花花色私房菜、丽雅轩酒店、绿山缘客栈};
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示,即SourceRule={distance=194m,distance=387m,distance=525m,distance=204m,distance=128m,distance=125m,distance=225m,distance=178m};
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系。
Step1.获取检索的旅游路线起点关键字startKeyword=“丽江古城”,到旅游本体中进行查询:startKeyword=“丽江古城”在旅游本体中存在,所以将其存入初始实例集InitialInstance={丽江古城};
Step2.获取检索的旅游路线终点关键字endKeyword=“餐馆”,到旅游本体中进行查询:endKeyword=“餐馆”在旅游本体中存在,则继续在旅游本体中查询endKeyword=“餐馆”的实例individual1=“丽江88号小吃店”、individual2=“花花色私房菜”,然后存入目标实例集ObjectInstance={丽江88号小吃店,花花色私房菜};
Step3.获取检索的旅游路线条件condition=“距离小于400m”,将condition=“距离小于400m”转变成与旅游本体对应的关系属性Relation=“distance<400m”,然后存入目标规则集ObjectRule={distance<400m};
Step4.从集合InitialInstance={丽江古城}中取出初始实例startKeyword=“丽江古城”,到旅游本体中查询startKeyword=“丽江古城”的三元关系ternaryRelation1=“丽江古城distance=194m摩挲人家手织坊”、ternaryRelation2=“丽江古城distance=387m丽江88号小吃店”、ternaryRelation3=“丽江古城distance=525m花花色私房菜”、ternaryRelation4=“丽江古城distance=204m四方街”,然后将其存入集合Relationship={ternaryRelation1,ternaryRelation2,ternaryRelation3,ternaryRelation4};
Step5.从旅游本体中获取已经定义的关系属性relation1=“distance=194m”、relation2=“distance=387m”、relation3=“distance=525m”、relation4=“distance=204m”、relation5=“distance=128m”、relation6=“distance=125m”、relation7=“distance=225m”、relation8=“distance=178m”,依据集合ObjectRule={distance<400m}中的关系属性Relation=“distance<400m”,定义旅游本体中不同实例间关系属性relation1、relation2、relation4、relation5、relation6、relation7、relation8符合关系属性Relation=“distance<400m”的推理规则集Rule={Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<400m?摩挲人家手织坊),Rule2:(?丽江古城distance=387m?丽江88号小吃店)->(?丽江古城distance<400m?丽江88号小吃店),Rule3:(?丽江古城distance=204m?四方街)->(?丽江古城distance<400m?四方街),Rule4:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<400m?古城大水车),Rule5:(?四方街distance=125m?花花色私房菜)->(?四方街distance<400m?花花色私房菜),Rule6:(?四方街distance=225m?绿山缘客栈)->(?四方街distance<400m?绿山缘客栈),Rule7:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<400m?丽雅轩酒店)};
Step6.从集合Rule中取出推理规则Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<500m?摩挲人家手织坊),Rule2:(?丽江古城distance=387m?丽江88号小吃店)->(?丽江古城distance<500m?丽江88号小吃店),Rule3:(?丽江古城distance=204m?四方街)->(?丽江古城distance<500m?四方街),依据推理规则Rule1、Rule2、Rule3获取与集合InitialInstance={丽江古城}中初始实例startKeyword=“丽江古城”相关联的源实例y1=“摩挲人家手织坊”、y2=“丽江88号小吃店”、y3=“四方街”,然后判断源实例y1、y2、y3是否属于集合ObjectInstance={丽江88号小吃店,花花色私房菜}:
(1)y1=“摩挲人家手织坊”不属于集合ObjectInstance={丽江88号小吃店,花花色私房菜},将非目标实例z1=y1=“摩挲人家手织坊”,并存入非目标实例集MiddleInstance={摩挲人家手织坊},然后执行Step7;
Step7.从集合
Relationship={ternaryRelation1=“丽江古城distance=194m摩挲人家手织坊”,ternaryRelation2=“丽江古城distance=387m丽江88号小吃店”,ternaryRelation3=“丽江古城distance=525m花花色私房菜”,ternaryRelation4=“丽江古城distance=204m四方街”}中,取出初始实例startKeyword=“丽江古城”到非目标实例z1=“摩挲人家手织坊”的关系属性relation1=“distance=194m”,结合relation1=“distance=194m”将集合ObjectRule={distance<400m}中的关系属性Relation=“distance<400m”进行推理运算Relation'=“distance<400m-194m=206m”,集合ObjectRule={distance<206m},同时startKeyword=z1=“摩挲人家手织坊”,集合InitialInstance={摩挲人家手织坊},返回Step4;
Step4.从集合InitialInstance={摩挲人家手织坊}中取出初始实例startKeyword=“摩挲人家手织坊”,到旅游本体中查询startKeyword=“摩挲人家手织坊”的三元关系ternaryRelation1=“摩挲人家手织坊distance=128m古城大水车”,然后将其存入集合Relationship={ternaryRelation1};
Step5.从旅游本体中获取已经定义的关系属性relation1=“distance=194m”、relation2=“distance=387m”、relation3=“distance=525m”、relation4=“distance=204m”、relation5=“distance=128m”、relation6=“distance=125m”、relation7=“distance=225m”、relation8=“distance=178m”,依据集合ObjectRule={distance<206m}中的关系属性Relation=“distance<206m”,定义旅游本体中不同实例间关系属性relation1、relation4、relation5、relation6、relation8符合关系属性Relation=“distance<206m”的推理规则集Rule={Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<206m?摩挲人家手织坊),Rule2:(?丽江古城distance=204m?四方街)->(?丽江古城distance<206m?四方街),Rule3:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<206m?古城大水车),Rule4:(?四方街distance=125m?花花色私房菜)->(?四方街distance<206m?花花色私房菜),Rule5:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<206m?丽雅轩酒店)};
Step6.从集合Rule中取出推理规则Rule3:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<206m?古城大水车),依据推理规则Rule3获取与集合InitialInstance={摩挲人家手织坊}中初始实例startKeyword=“摩挲人家手织坊”相关联的源实例y1=“古城大水车”,然后判断源实例y1是否属于集合ObjectInstance={丽江88号小吃店、花花色私房菜}:
y1=“古城大水车”不属于集合ObjectInstance={丽江88号小吃店,花花色私房菜},将非目标实例z1=y1=“古城大水车”,并存入非目标实例集MiddleInstance={摩挲人家手织坊,古城大水车},然后执行Step7;
Step7.从集合
Relationship={ternaryRelation1=“摩挲人家手织坊distance=128m古城大水车”},取出初始实例startKeyword=“摩挲人家手织坊”到非目标实例z1=“古城大水车”的关系属性relation5=“distance=128m”,结合relation5=“distance=128m”将集合ObjectRule={distance<206m}中的关系属性Relation=“distance<206m”进行推理运算Relation'=“distance<206m-128m=78m”,集合ObjectRule={distance<78m},同时startKeyword=z1=“古城大水车”,集合InitialInstance={古城大水车},返回Step4;
Step4.从集合InitialInstance={古城大水车}中取出初始实例startKeyword=“古城大水车”,到旅游本体中查询startKeyword=“古城大水车”的三元关系ternaryRelationj(j=1,...,n)不存在,所以执行Step9;
Step9.结束。
(2)y2=“丽江88号小吃店”属于集合ObjectInstance{丽江88号小吃店,花花色私房菜},将源实例y2=“丽江88号小吃店”存入集合ResultInstance={丽江88号小吃店},然后执行Step8;
Step8.输出旅游路线:起点实例为“丽江古城”,中间实例没有,目标实例为“丽江88号小吃店”;
Step9.结束。
(3)y3=“四方街”不属于集合ObjectInstance={丽江88号小吃店,花花色私房菜},将非目标实例z3=y3=“四方街”,并存入非目标实例集MiddleInstance={四方街},然后执行Step7;
Step7.从集合
Relationship={ternaryRelation1=“丽江古城distance=194m摩挲人家手织坊”,ternaryRelation2=“丽江古城distance=387m丽江88号小吃店”,ternaryRelation3=“丽江古城distance=525m花花色私房菜”,ternaryRelation4=“丽江古城distance=204m四方街”},取出初始实例startKeyword=“丽江古城”到非目标实例z3=“四方街”的关系属性relation4=“distance=204m”,结合relation4=“distance=204m”将集合ObjectRule={distance<400m}中的关系属性Relation=“distance<400m”进行推理运算Relation'=“distance<400m-204m=196m”,集合ObjectRule={distance<196m},同时startKeyword=z3=“四方街”,集合InitialInstance={四方街},返回Step4;
Step4.从集合InitialInstance={四方街}中取出初始实例startKeyword=“四方街”,到旅游本体中查询startKeyword=“四方街”的三元关系ternaryRelation1=“四方街distance=125m花花色私房菜”、ternaryRelation2=“四方街distance=225m绿山缘客栈”,然后将其存入集合Relationship={ternaryRelation1,ternaryRelation2};
Step5.从旅游本体中获取已经定义的关系属性relation1=“distance=194m”、relation2=“distance=387m”、relation3=“distance=525m”、relation4=“distance=204m”、relation5=“distance=128m”、relation6=“distance=125m”、relation7=“distance=225m”、relation8=“distance=178m”,依据集合ObjectRule={distance<196m}中的关系属性Relation=“distance<196m”,定义旅游本体中不同实例间关系属性relation1、relation5、relation6、relation8符合关系属性Relation=“distance<196m”的推理规则集Rule={Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<196m?摩挲人家手织坊),Rule2:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<196m?古城大水车),Rule3:(?四方街distance=125m?花花色私房菜)->(?四方街distance<196m?花花色私房菜),Rule4:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<196m?丽雅轩酒店)};
Step6.从集合Rule中取出推理规则Rule3:(?四方街distance=125m?花花色私房菜)->(?四方街distance<196m?花花色私房菜),依据推理规则Rule3获取与集合InitialInstance={四方街}中初始实例startKeyword=“四方街”相关联的源实例y1=“花花色私房菜”,然后判断源实例y1是否属于集合ObjectInstance={丽江88号小吃店,花花色私房菜}:
y1=“花花色私房菜”属于集合ObjectInstance={丽江88号小吃店,花花色私房菜},将源实例y1=“花花色私房菜”存入集合ResultInstance={花花色私房菜},然后执行Step8;
Step8.输出旅游路线:起点实例为“丽江古城”,中间实例为“四方街”,目标实例为“花花色私房菜”;
Step9.结束。
实施例6:如图9所示,
用户的检索条件如表5所示,
表5
起点 | 条件 | 终点 |
四方街 | 距离小于400m | 住宿 |
所述基于本体和推理机制的旅游路线检索方法的具体步骤如下:
检索条件:旅游路线起点关键字、终点关键字、条件;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示,即SourceInstance={丽江古城、丽江88号小吃店、摩挲人家手织坊、古城大水车、四方街、花花色私房菜、丽雅轩酒店、绿山缘客栈};
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示,即SourceRule={distance=194m,distance=387m,distance=525m,distance=204m,distance=128m,distance=125m,distance=225m,distance=178m};
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系。
Step1.获取检索的旅游路线起点关键字startKeyword=“四方街”,到旅游本体中进行查询:startKeyword=“四方街”在旅游本体中存在,所以将其存入初始实例集InitialInstance={四方街};
Step2.获取检索的旅游路线终点关键字endKeyword=“住宿”,到旅游本体中进行查询:endKeyword=“住宿”在旅游本体中存在,则继续在旅游本体中查询endKeyword=“住宿”的实例individual1=“丽雅轩酒店”、individual2=“绿山缘客栈”,然后存入目标实例集ObjectInstance={丽雅轩酒店,绿山缘客栈};
Step3.获取检索的旅游路线条件condition=“距离小于400m”,将condition=“距离小于400m”转变成与旅游本体对应的关系属性Relation=“distance<400m”,然后存入目标规则集ObjectRule={distance<400m};
Step4.从集合InitialInstance={四方街}中取出初始实例startKeyword=“四方街”,到本体中查询startKeyword=“四方街”的三元关系ternaryRelation1=“四方街distance=125m花花色私房菜”、ternaryRelation2=“四方街distance=225m绿山缘客栈”,然后将其存入集合Relationship={ternaryRelation1,ternaryRelation2};
Step5.从旅游本体中获取已经定义的关系属性relation1=“distance=194m”、relation2=“distance=387m”、relation3=“distance=525m”、relation4=“distance=204m”、relation5=“distance=128m”、relation6=“distance=125m”、relation7=“distance=225m”、relation8=“distance=178m”,依据集合ObjectRule={distance<400m}中的关系属性Relation=“distance<400m”,定义旅游本体中不同实例间关系属性relation1、relation2、relation4、relation5、relation6、relation7、relation8符合关系属性Relation=“distance<400m”的推理规则集Rule={Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<400m?摩挲人家手织坊),Rule2:(?丽江古城distance=387m?丽江88号小吃店)->(?丽江古城distance<400m?丽江88号小吃店),Rule3:(?丽江古城distance=204m?四方街)->(?丽江古城distance<400m?四方街),Rule4:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<400m?古城大水车),Rule5:(?四方街distance=125m?花花色私房菜)->(?四方街distance<400m?花花色私房菜),Rule6:(?四方街distance=225m?绿山缘客栈)->(?四方街distance<400m?绿山缘客栈),Rule7:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<400m?丽雅轩酒店)};
Step6.从集合Rule中取出推理规则Rule5:(?四方街distance=125m?花花色私房菜)->(?四方街distance<400m?花花色私房菜),Rule6:(?四方街distance=225m?绿山缘客栈)->(?四方街distance<400m?绿山缘客栈),依据推理规则Rule5、Rule6获取与集合InitialInstance={四方街}中初始实例startKeyword=“四方街”的相关联源实例y1=“绿山缘客栈”、y2=“花花色私房菜”,然后判断源实例y1、y2是否属于集合ObjectInstance={丽雅轩酒店,绿山缘客栈}:
(1)y1=“绿山缘客栈”属于集合ObjectInstance={丽雅轩酒店,绿山缘客栈},将源实例y1=“绿山缘客栈”存入集合ResultInstance={绿山缘客栈},然后执行Step8;
Step8.输出旅游路线:起点实例为“丽江古城”,中间实例没有,目标实例为“绿山缘客栈”;
Step9.结束。
(2)y2=“花花色私房菜”不属于集合ObjectInstance={丽雅轩酒店,绿山缘客栈},将非目标实例z2=y2=“花花色私房菜”,并存入非目标实例集MiddleInstance={花花色私房菜},然后执行Step7;
Step7.从集合
Relationship={ternaryRelation1=“四方街distance=125m花花色私房菜”,ternaryRelation2=“四方街distance=225m绿山缘客栈”},取出初始实例startKeyword=“四方街”到非目标实例z2=“花花色私房菜”的关系属性relation6=“distance=125m”,结合relation6=“distance=125m”将集合ObjectRule={distance<400m}中的关系属性Relation=“distance<400m”进行推理运算Relation'=“distance<400m-125m=275m”,集合ObjectRule={distance<275m},同时startKeyword=z2=“花花色私房菜”,集合InitialInstance={花花色私房菜},返回Step4;
Step4.从集合InitialInstance={花花色私房菜}中取出初始实例startKeyword=“花花色私房菜”,到旅游本体中查询startKeyword=“花花色私房菜”的三元关系ternaryRelation1=“花花色私房菜distance=178m丽雅轩酒店”,然后将其存入集合Relationship={ternaryRelation1};
Step5.从旅游本体中获取已经定义的关系属性relation1=“distance=194m”、relation2=“distance=387m”、relation3=“distance=525m”、relation4=“distance=204m”、relation5=“distance=128m”、relation6=“distance=125m”、relation7=“distance=225m”、relation8=“distance=178m”,依据集合ObjectRule={distance<275m}中的关系属性Relation=“distance<275m”,定义旅游本体中不同实例间关系属性relation1、relation4、relation5、relation6、relation7、relation8符合关系属性Relation=“distance<275m”的推理规则集Rule={Rule1:(?丽江古城distance=194m?摩挲人家手织坊)->(?丽江古城distance<275m?摩挲人家手织坊),Rule2:(?丽江古城distance=204m?四方街)->(?丽江古城distance<275m?四方街),Rule3:(?摩挲人家手织坊distance=128m?古城大水车)->(?摩挲人家手织坊distance<275m?古城大水车),Rule4:(?四方街distance=125m?花花色私房菜)->(?四方街distance<275m?花花色私房菜),Rule5:(?四方街distance=225m?绿山缘客栈)->(?四方街distance<275m?绿山缘客栈),Rule6:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<275m?丽雅轩酒店)};
Step6.从集合Rule中取出推理规则Rule6:(?花花色私房菜distance=178m?丽雅轩酒店)->(?花花色私房菜distance<275m?丽雅轩酒店),依据推理规则Rule6获取与集合InitialInstance={花花色私房菜}中初始实例startKeyword=“花花色私房菜”相关联的源实例y1=“丽雅轩酒店”,然后判断源实例y1是否属于集合ObjectInstance={丽雅轩酒店、绿山缘客栈}:
y1=“丽雅轩酒店”属于集合ObjectInstance={丽雅轩酒店,绿山缘客栈},将源实例y1=“丽雅轩酒店”存入集合ResultInstance={丽雅轩酒店},然后执行Step8;
Step8.输出旅游路线:起点实例为“四方街”,中间实例为“花花色私房菜”,目标实例为“丽雅轩酒店”;
Step9.结束。
本发明的工作原理是:
建立了旅游本体,包括描述类、描述属性、添加实例、建立联系。主要内容如下:
(1)描述类:定义旅游领域中的概念,并建立层次关系;
(2)描述属性:定义实例所需的属性;
(3)添加实例:为旅游领域中的相关类添加实例;
(4)建立联系:通过建立关系属性,将不同实例联系起来。
旅游本体中第(1)方面是描述类,是对一类具有共同特征的实例对象的统一描述。通过采用自顶向下的方法,将旅游中的美食、住宿、交通、景观、购物、娱乐作为顶层类。参考旅游地理学中对旅游资源分类的标准,将六个顶层类向下拓展,定义所有顶层类的子类。例如,美食类中包括的子类为正餐、特色小吃、餐馆,旅游本体中的所有类及子类如图1所示。
旅游本体中第(2)方面是描述属性,是对具体实例的固有属性和外部关系的描述。旅游本体的属性主要有两种:数据属性和对象属性。数据属性用于对类的具体实例进行数据的赋值,作为实例的数据描述;对象属性用于将类的具体实例联系起来,作为实例的关系描述。
从旅游本体中的美食、住宿、交通、景观、购物、娱乐顶层类出发,定义它们的数据属性,作为描述具体实例的固有属性。例如,在美食类中定义的数据属性为营业时间、推荐餐厅、费用信息、电话,所有顶层类的数据属性如图2所示。
从旅游本体中类之间、类与实例之间、实例之间的关系出发,定义它们之间的对象属性,包括:
1、类之间定义的对象属性为has subclass,用于描述父子类继承关系;
2、在类与实例之间定义的对象属性为has individual,用于描述一个类对应的具体实例;
3、实例之间定义的对象属性用于描述实例之间的关系,如距离(distance)、费用(cost)、时间(time)等。对象属性的描述如图3-图9所示。
旅游本体中第(3)方面是添加实例,是对旅游本体中从抽象的类概念到具体的实例表述。在旅游本体中,从旅游中的美食、住宿、交通、景观、购物、娱乐顶层类中的底层子类出发,给相关类添加实例,用于丰富旅游本体的知识内容,如图3-图8所示。
旅游本体中第(4)方面是建立联系,通过(2)中定义的对象属性,将实例之间关联起来,形成一个语义网,通过其中一个实例能够找到其他相关联的实例。在旅游本体中,从旅游中的美食、住宿、交通、景观、购物、娱乐顶层类中相关子类添加的实例出发,建立不同实例之间的距离关系属性,如图9所示。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (1)
1.一种基于本体和推理机制的旅游路线检索方法,其特征在于:首先根据用户的检索条件到旅游本体中进行查询判断;然后针对判断结果运用自定义推理规则挖掘旅游本体中不同实例间关系;最后分析不同实例间关系,运用推理检索旅游路线;
所述方法的具体步骤如下:
检索条件:旅游路线起点关键字startKeyword、终点关键字endKeyword、条件condition;
源实例集:旅游本体中已经存在的旅游实例,用SourceInstance表示;
源规则集:旅游本体中已经定义的不同实例的旅游关系属性,用SourceRule表示;
初始实例集:检索条件中的旅游实例,用InitialInstance表示;
目标实例集:检索结果中的旅游实例,用ObjectInstance表示;
目标规则集:检索条件中的旅游关系属性,用ObjectRule表示;
三元关系:表示通过对象属性将两个不同旅游实例关联的映射关系;
Step1、获取检索条件的旅游路线起点关键字startKeyword,到旅游本体中进行查询:若startKeyword不存在,则执行Step9;若存在,将其存入初始实例集InitialInstance={startKeyword},接着执行Step2;
Step2、获取检索条件的旅游路线终点关键字endKeyword,到旅游本体中进行查询:若endKeyword不存在,则执行Step9;若存在,在旅游本体中查询endKeyword的实例individuali,并存入目标实例集ObjectInstance={individual1,individual2,…,individualm},接着执行Step3;其中,i=1,...,m;m表示旅游本体中查询endKeyword的实例的个数;
Step3、获取检索的旅游路线条件condition,将condition转变成与旅游本体对应的关系属性Relation,并存入目标规则集ObjectRule={Relation},接着执行Step4;
Step4、从集合InitialInstance={startKeyword}中取出初始实例startKeyword,到旅游本体中查询startKeyword的三元关系ternaryRelationj:若不存在,则执行Step9;若存在,将startKeyword的三元关系ternaryRelationj存入集合Relationship={ternaryRelation1,ternaryRelation2,…,ternaryRelationn},接着执行Step5;其中,j=1,...,n;n表示旅游本体中查询startKeyword的三元关系的个数;
Step5、从旅游本体中获取已经定义的不同实例的旅游关系属性relationk,依据集合ObjectRule={Relation}中的关系属性Relation,定义旅游本体中不同实例间关系属性relationk符合关系属性Relation的推理规则集Rule,接着执行Step6;其中,Rule:{(?xsrelationk?ys)→(?xs Relation?ys)};k=1,...,p;p表示旅游本体中不同实例间关系属性的个数;xs,ys∈SourceInstance;relationk∈SourceRule;s=1,...,r;r表示集合Rule中推理规则的个数;
Step6、从集合Rule中取出xs为startKeyword的推理规则Rulet,依据推理规则Rulet:(?startKeyword relationk?yt)→(?startKeyword Relation?yt)获取与集合InitialInstance={startKeyword}中初始实例startKeyword相关联的源实例yt,并判断源实例yt是否属于集合ObjectInstance={individual1,individual2,…,individualm}:若不属于,将非目标实例zt=yt,并存入非目标实例集MiddleInstance={zt},然后执行Step7;若属于,则将源实例yt存入集合ResultInstance={yt},然后执行Step8;其中,t=1,...,q;q表示集合Rule中取出xs为startKeyword的推理规则的个数;
Step7、从集合
Relationship={ternaryRelation1,ternaryRelation2,…,ternaryRelationn}中取出初始实例startKeyword到非目标实例zt的关系属性relationk,结合relationk将集合ObjectRule={Relation}中的关系属性Relation进行推理运算得到推理运算后的Relation',将集合ObjectRule={Relation}中的关系属性Relation=Relation',并将集合InitialInstance={startKeyword}中的初始实例startKeyword=zt,然后返回Step4;
Step8、输出旅游路线:起点实例为集合InitialInstance={startKeyword}中初始实例startKeyword,中间实例为集合MiddleInstance={zt}中非目标实例zt,目标实例为集合ResultInstance={yt}中源实例yt;
Step9、结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710665668.1A CN107545041B (zh) | 2017-08-07 | 2017-08-07 | 一种基于本体和推理机制的旅游路线检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710665668.1A CN107545041B (zh) | 2017-08-07 | 2017-08-07 | 一种基于本体和推理机制的旅游路线检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107545041A CN107545041A (zh) | 2018-01-05 |
CN107545041B true CN107545041B (zh) | 2021-01-05 |
Family
ID=60970843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710665668.1A Active CN107545041B (zh) | 2017-08-07 | 2017-08-07 | 一种基于本体和推理机制的旅游路线检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107545041B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136028A (zh) * | 2006-07-10 | 2008-03-05 | 日电(中国)有限公司 | 基于自然语言的位置查询系统以及基于关键词的位置查询系统 |
US8060519B2 (en) * | 2006-09-28 | 2011-11-15 | Kabushiki Kaisha Toshiba | Ontology-integration-position specifying apparatus, ontology-integration supporting method, and computer program product |
CN103440314A (zh) * | 2013-08-27 | 2013-12-11 | 北京工业大学 | 一种基于Ontology的语义检索方法 |
CN105678383A (zh) * | 2016-01-04 | 2016-06-15 | 北京飞舜信息技术有限公司 | 基于本体模型的移动知识服务系统 |
-
2017
- 2017-08-07 CN CN201710665668.1A patent/CN107545041B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136028A (zh) * | 2006-07-10 | 2008-03-05 | 日电(中国)有限公司 | 基于自然语言的位置查询系统以及基于关键词的位置查询系统 |
US8060519B2 (en) * | 2006-09-28 | 2011-11-15 | Kabushiki Kaisha Toshiba | Ontology-integration-position specifying apparatus, ontology-integration supporting method, and computer program product |
CN103440314A (zh) * | 2013-08-27 | 2013-12-11 | 北京工业大学 | 一种基于Ontology的语义检索方法 |
CN105678383A (zh) * | 2016-01-04 | 2016-06-15 | 北京飞舜信息技术有限公司 | 基于本体模型的移动知识服务系统 |
Non-Patent Citations (1)
Title |
---|
基于语义Web的旅游路线个性化定制系统;姬鹏飞 等;《计算机工程》;20161031;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107545041A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239513B (zh) | 一种面向领域数据的语义检索方法 | |
CN104182454B (zh) | 基于领域本体构建的多源异构数据语义集成的模型及方法 | |
CN103646032B (zh) | 一种基于本体和受限自然语言处理的数据库查询方法 | |
CN102156726B (zh) | 基于语义相似度的地理要素查询扩展方法 | |
CN105653706A (zh) | 一种基于文献内容知识图谱的多层引文推荐方法 | |
CN106874422A (zh) | 一种面向关系型数据库的图查询方法 | |
CN103605752A (zh) | 一种基于语义识别的地址匹配方法 | |
CN102087669A (zh) | 基于语义关联的智能搜索引擎系统 | |
CN104268271A (zh) | 一种兴趣和网络结构双内聚的社交网络社区发现方法 | |
CN101566988A (zh) | 一种模糊语义搜索方法、系统及设备 | |
CN102880721B (zh) | 垂直搜索引擎的实现方法 | |
CN106156271A (zh) | 基于分布式存储的关联信息索引系统及其建立与使用方法 | |
CN102571752B (zh) | 基于服务关联索引图的QoS感知Top-k服务组合系统 | |
CN104933031A (zh) | 一种基于语义网无监督的自动问答方法 | |
Wang et al. | Research and implementation of the customer-oriented modern hotel management system using fuzzy analytic hiererchical process (FAHP) | |
CN104156431A (zh) | 一种基于实体图社团结构的rdf关键词查询方法 | |
CN107545041B (zh) | 一种基于本体和推理机制的旅游路线检索方法 | |
CN103631839A (zh) | 一种页面地域权重模型实现方法 | |
CN105912649A (zh) | 一种数据库模糊检索方法和系统 | |
CN115082010A (zh) | 一种电力领域元数据智能管理方法、存储介质及系统 | |
CN114547322A (zh) | 一种用于识别水环境污染的知识图谱方法 | |
Baglioni et al. | Improving geodatabase semantic querying exploiting ontologies | |
Zeng et al. | Active recommendation of tourist attractions based on visitors interests and semantic relatedness | |
Zhang et al. | An automatic approach to extracting geographic information from Internet | |
Zhao et al. | Ontology construction of the field of tourism in Africa |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |