以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Web Services & Semantic Web Services 』  (http://bbs.xml.org.cn/list.asp?boardid=10)
----  [讨论]您眼中的推理规则  (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=70548)


--  作者:Humphrey
--  发布时间:12/16/2008 10:25:00 AM

--  [讨论]您眼中的推理规则
我正在努力,试图作出一个语义搜索模型。原打算在其中采用推理规则进行推理,但是实际实施时才发现自己想通过推理规则实现的功能,很多时候都可以直接通过SPARQL等查询语言对本体库(或知识库)查询获得。
最近又看了一些讨论,见到wanggou同志对protege推理机的介绍,其功能只有三个:
1. 检查一致性,就在reasoning那个菜单里
2. 分类
3. sparql查询
那么查询本身事实上就属于推理的一部分。我没有制定和使用过真正意义上的推理规则,所以对它的理解也不深刻。诸位使用推理规则的同志都是在什么情况下考虑使用推理规则的呢?对推理规则的理解又是怎样的呢?
欢迎大家共同讨论!
--  作者:wanggou
--  发布时间:12/16/2008 10:35:00 AM

--  
讨论一下啊
第一个,protege本身并不提供推理能力,它是通过外挂推理机实现推理的,3.4beta开始把pellet集成了,所以可以直接用
第二个,DL推理并不支持规则推理,DL的推理仅限于T-Box的包含性检测和A-Box的一致性检测
第三个,查询其实和推理并不等同,尤其是sparql,它其实并不支持DL的推理能力。比如,有这样的定义,A subClassOf B, c instanceOf A,那么如果用sparql查询B的实例,是查不到c的。本质上,sparql只能查询RDF数据。
第四个,在目前的语义Web架构下,也就是那个蛋糕层次里,规则和本体是在不同的两个层次,起的作用一个是补充DL或者OWL描述能力的不足,另一个就是提供基于规则的推理。规则推理起源于逻辑程序设计,它用的方法和DL的推理区别还是比较大的。因此将规则和DL结合起来也是目前语义Web的一个主要研究方向。这个可以参考北京大学梅婧的博士论文,应该是国内在这个领域里的重要文献。


--  作者:barryzhongzsd
--  发布时间:12/16/2008 10:51:00 AM

--  
感谢楼上提供的咨询啊~
--  作者:hasgi
--  发布时间:12/16/2008 11:42:00 AM

--  
数学推理。。。。
--  作者:Humphrey
--  发布时间:12/16/2008 8:32:00 PM

--  
wanggou同志的讲解让我了解了不少有关推理和查询之间的差异性。
不过从应用效果来说,是否可以理解成虽然查询语言的查询和推理是不能等同的,但是只要是单层的逻辑关系,查询和推理的效力就是基本相同的呢?
例如使用Jena和WordNet实现查询扩展,我们可以直接使用SPARQL对WordNet的同义词集进行查询,而自行创建提取同义词的规则也是可以的,能够达到同样的目的。
也可以概括成这样一个问题:“通常在什么情况下,应该考虑使用推理规则?”或“推理规则一般用于处理哪些类型的问题?”
这种问题似乎很傻,但是却是我们做语义网方面研究一定会遭遇的问题。那么,今天您推理了吗?
--  作者:wanggou
--  发布时间:12/16/2008 8:50:00 PM

--  
你的问题很多地方提的似是而非,不好判断呀
第一个,所谓”单层逻辑关系“所指何物?我猜你的意思是没有传递关系,不知道是不是,如果你说的是,那回答是否定的。因为推理并仅仅是指这种三段论式的传递关系。
第二个,用自定义规则来做WordNet同义词查询和用SPARQL来查,是不是一样?我猜你想问是不是可以自己定义一种类似WordNet的本体来处理同义词,这回答是肯定的。但是能力是否和SPARQL等同,要看你是如何定义你的同义词规则的。
第三个,何时使用推理,这个问题太大了,我一下子也想不出来,呵呵,这取决于你是如何理解”推理“这个名词的。如果你所谓的”推理“指本体推理,或者特指OWL DL的推理,那回答应该是否定的,因为这种形式推理,未必是日常不可或缺的。我们日常需要用到的一般意义的推理,都是哲学意义上的,并不特指这种符号逻辑里的形式推理。

--  作者:Humphrey
--  发布时间:12/17/2008 9:08:00 AM

--  
wanggou同志果然经验老到,有些概念我一时想不起怎么表达,所以只能用一段描述性语言概括,难免词不达意。我的意思确实是不包含传递关系的逻辑,这个想法源于您在二楼举的例子。
另一方面,其实我也觉得最后一个问题太宽泛了,不过我暂时也无法更确切地描述这个问题了。看到讨论区里很多同志都使用推理规则,而自己又不清楚什么时候使用更适合。目前已有的知识库(或本体库)中我只对WordNet稍有了解,所以也只能拿它说事。通过对WordNet RDF/OWL版本文件结构的了解和您的回复,我有了一个新的认识:一些本体库会将逻辑关系设置的很清楚,使得许多应用可以通过简单的查询实现,而不必依赖于复杂的推理规则;需要推理规则的是一些特殊的或复杂的应用。不知是否可以这样理解,毕竟我对推理规则只是一知半解。
--  作者:Humphrey
--  发布时间:12/17/2008 4:10:00 PM

--  
各位写了规则的同志,能谈谈您处于什么考虑才使用了复杂的推理规则吗?
是否曾想过尽可能不用推理规则实现自己的目标呢?
或者是遇到了什么情况终于非用不可了?
--  作者:wanggou
--  发布时间:12/17/2008 5:23:00 PM

--  
实际上查询和推理只是问题不同,并不具可比性
查询的目的是抽取知识,而推理解决的是从已知的知识出发得到结论,或者说得到其它知识
查询的内部实现可以涵盖推理,实际上对于像prolog这样的系统,查询本身就是通过推理实现的。
--  作者:Humphrey
--  发布时间:12/19/2008 8:08:00 PM

--  
原来是这样,看来事实上不必一心把推理规则用上。能直接用查询实现的大可使用查询,到查询不能解决问题的时候,自然而然就该轮到推理规则上阵了。
可以这样理解吧?
--  作者:wanggou
--  发布时间:12/19/2008 9:42:00 PM

--  
两个并不是对立的概念,就是这样的
并不是查询就不是推理了,查询中就有推理的
--  作者:Humphrey
--  发布时间:12/23/2008 9:41:00 AM

--  
从以上的讨论中,我们能够了解推理规则和查询是不同的,但是他们之间还是有一定的联系的。在实际操作时,我们还会遭遇到另外一个问题:推理规则和SPARQL/ARQ查询的编译环境是什么?是不是需要采用专门的编译器才能编译执行它们呢?
--  作者:wanggou
--  发布时间:12/23/2008 1:47:00 PM

--  
这个上次贴过一个帖子
关键是看需要什么样的推理,就sparql来说
jena还不行,需要pellet
--  作者:Humphrey
--  发布时间:12/23/2008 1:55:00 PM

--  
就是说只能用Pellet编辑和执行SPARQL,用Jena是不行的吗?
不过Jena有相当于SPARQL的ARQ的说,就是不知道用起来效果如何。另外,如果选择面比较广的话还可以优先考虑性能和易用程度啊!
--  作者:wanggou
--  发布时间:12/23/2008 2:34:00 PM

--  
SPARQL比ARQ好用一些
--  作者:richardjya
--  发布时间:12/24/2008 2:31:00 PM

--  如果不建本体能实现语义推理吗?能进行概念扩展吗?如何实现
如果不建本体能实现语义推理吗?能进行概念扩展吗?如何实现
--  作者:Humphrey
--  发布时间:12/25/2008 9:08:00 AM

--  
由于条件所限,我目前只能选择使用Jena实现语义推理等工作。
从wanggou同志的回复中能看得出,您的经验十分丰富。像Jena或Pellet这样的工具在执行推理程序和查询程序时通常是采用在程序中调用该工具的相关类来执行?还是必须在这个工具内部执行呢?
比如在Jena文档中,我注意到有关于其推理机和ARQ的介绍,尤其是ARQ介绍还附有程序段,但是具体执行这些程序段(ARQ查询或推理规则)时一般是怎么做的呢?

--  作者:wanggou
--  发布时间:12/25/2008 9:47:00 AM

--  
呵呵,你没认真看文档
jena和pellet都有命令行的接口,可以不用coding直接用

--  作者:Humphrey
--  发布时间:12/25/2008 1:06:00 PM

--  
不过涉及到工具组配的问题,就不能单靠在命令提示符下输入具体的命令了。
是我描述得太模糊的过错。因为现在我正打算在其他Web工具中调用Jena,据我所知ARQ是可以写成一个扩展名为.rq的文件的。推理规则也能独立存为文件以备调用吧?如果我想把查询语句或者推理规则嵌入.java文件中一并编译执行可行吗?
--  作者:wanggou
--  发布时间:12/25/2008 3:03:00 PM

--  
可以
--  作者:qupanwind
--  发布时间:12/31/2008 3:26:00 PM

--  
wanggou老兄:我倒是想问问现在的推理,没有规则的,到底有哪些方面?
--  作者:yayatu
--  发布时间:12/31/2008 8:34:00 PM

--  
以下是引用Humphrey在2008-12-23 13:55:00的发言:
就是说只能用Pellet编辑和执行SPARQL,用Jena是不行的吗?
不过Jena有相当于SPARQL的ARQ的说,就是不知道用起来效果如何。另外,如果选择面比较广的话还可以优先考虑性能和易用程度啊!

呵呵,我很想知道楼主如果执行SPARQL不用Jena提供的ARQ,用什么呢?


--  作者:Humphrey
--  发布时间:1/1/2009 8:12:00 PM

--  
我接触这些工具时间比较短,对它们也不太了解。但是我觉得,作为一款RDF/OWL处理工具,一般都应该支持一种查询语言吧?如果不使用Jena,而选择其它工具就不能使用SPARQL了吗?虽然没有做过调查和统计,但是我觉得应该是可以的。作为一种成熟的查询语言,应该有较多的查询工具支持它。
当然,如果说到用查询语言做类似推理的效果,又是另外一个问题了。或许要选择专门的推理引擎并使用专业推理语言是最好的办法。
--  作者:cjdby
--  发布时间:1/13/2009 9:55:00 PM

--  
借宝地问一下规则推理和DL推理有什么不同, 另外北京大学梅婧的博士论文能否给个连接?
谢谢

--  作者:admin
--  发布时间:1/13/2009 11:11:00 PM

--  
以下是引用cjdby在2009-1-13 21:55:00的发言:
借宝地问一下规则推理和DL推理有什么不同, 另外北京大学梅婧的博士论文能否给个连接?
谢谢


DL推理:是基于逻辑的推理。规则推理,看一下RDF Semantics就明白了。

北京大学梅婧的博士论文:www.is.pku.edu.cn/~mayyam/papers/Thesis.pdf


--  作者:cjdby
--  发布时间:1/14/2009 11:10:00 PM

--  
谢谢站长~~ RDF 推理中不包括逻辑推理么?
--  作者:wanggou
--  发布时间:1/15/2009 9:09:00 AM

--  
这问题问的似是而非
逻辑本身就是研究如何推理
我们在这里所说的逻辑和哲学上的有点区别,在这里我们的逻辑实际是带冠词的
A Logic,而不是不可数名词Logic
实质上,计算机科学或者数学里讲到的逻辑是一种语言以及在这语言上的推导规则,以及这语言的语义。
你可以说,RDF推理不是基于描述逻辑的,而不能说不是基于逻辑的
--  作者:cjdby
--  发布时间:1/16/2009 11:09:00 PM

--  
谢谢楼上~~~ 能否介绍一些基本推理的方法?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
7,281.250ms