以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  [求助] 关于jena rules  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=60892)


--  作者:skyhui
--  发布时间:4/3/2008 8:05:00 PM

--  [求助] 关于jena rules
我自定义了一条规则,编译之后总报错:
Exception in thread "main" com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException: Malformed rule
At '[ rule: ( ?X p1:locatedIn SonomaRegion ) -> print ( ' Its very good ' ?X ) ] . '
 at com.hp.hpl.jena.reasoner.rulesys.Rule$Parser.doParseRule(Rule.java:1019)
 at com.hp.hpl.jena.reasoner.rulesys.Rule$Parser.parseRule(Rule.java:970)
 at com.hp.hpl.jena.reasoner.rulesys.Rule.parseRules(Rule.java:622)
 at com.hp.hpl.jena.reasoner.rulesys.Rule.rulesFromURL(Rule.java:461)
 at jena.examples.ontology.persistentOntology.MakeRule.main(MakeRule.java:53)

求各位高人赐教 。规则文本,本体,还有代码都在附件中了。
谢先!


--  作者:iamwym
--  发布时间:4/4/2008 3:59:00 AM

--  
jena没有自己的rule吧

你还是贴rule出来看看吧


--  作者:skyhui
--  发布时间:4/4/2008 6:11:00 PM

--  
谢谢iamwym
--  作者:skyhui
--  发布时间:4/4/2008 6:13:00 PM

--  
我自定义的rule是:

@include <OWLMicro>.
@include <RDFS>.
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix p1: <http://www.w3.org/TR/2003/WD-owl-guide-20030331/wine>.

[rule: (?X  p1:locatedIn  SonomaRegion) -> print('Its very good' ?X)].


--  作者:skyhui
--  发布时间:4/4/2008 6:15:00 PM

--  
这是最简单的一条规则,按理说 不该通不过啊。。。
求高人解答
--  作者:jpz6311whu
--  发布时间:4/4/2008 6:55:00 PM

--  
SonomaRegion
--这个有问题
--  作者:skyhui
--  发布时间:4/4/2008 7:36:00 PM

--  
SonomaRegion是本体中的一个实例。 不能这么表示吗?
。。。。。。

--  作者:skyhui
--  发布时间:4/4/2008 7:38:00 PM

--  
我改成 [rule: (?X  p1:locatedIn  ?SonomaRegion) -> print('Its very good' ?X)].
或者[rule: (?X  p1:locatedIn  ‘SonomaRegion’) -> print('Its very good' ?X)].
也都不行的。


--  作者:jpz6311whu
--  发布时间:4/4/2008 7:55:00 PM

--  
是实例的话,用pre:localname这种形式,或者<>尖括号写完整uri

你可以试试:
p1:SonomaRegion
或者
<http://www.w3.org/TR/2003/WD-owl-guide-20030331/wine#SonomaRegion>


--  作者:skyhui
--  发布时间:4/4/2008 8:36:00 PM

--  
仍旧不可行啊 老大。。。
还是报那个错:Exception in thread "main" com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException: Malformed rule
At '[ rule: ( ?X p1:locatedIn <http://www.w3.org/TR/2003/WD-owl-guide-20030331/wine#SonomaRegion> ) -> print ( ' Its very good ' ?X ) ] . '
 at com.hp.hpl.jena.reasoner.rulesys.Rule$Parser.doParseRule(Rule.java:1019)
 at com.hp.hpl.jena.reasoner.rulesys.Rule$Parser.parseRule(Rule.java:970)
 at com.hp.hpl.jena.reasoner.rulesys.Rule.parseRules(Rule.java:622)
 at com.hp.hpl.jena.reasoner.rulesys.Rule.rulesFromURL(Rule.java:461)
 at jena.examples.ontology.persistentOntology.MakeRule.main(MakeRule.java:53)
--  作者:skyhui
--  发布时间:4/4/2008 8:51:00 PM

--  
是不是使用GenericRuleReasoner的时候,哪边还要配置一下的(比如环境啊什么的)?
已经反复鼓捣好久了,都没搞定。
迷茫啊。。。。
--  作者:jpz6311whu
--  发布时间:4/4/2008 9:44:00 PM

--  
中括号外面不加点试试
--  作者:skyhui
--  发布时间:4/6/2008 9:43:00 AM

--  
不加点,然后把规则改成:
@include <OWLMicro>.
@include <RDFS>.


@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix p1: <http://www.w3.org/TR/2003/WD-owl-guide-20030331/wine#>.

[rule: (?X  p1:locatedIn  p1:SonomaRegion) -> print('Its very good' ?X)]

是可行的!

谢谢jpz6311whu大哥!真的非常感谢!

另问:写jena规则时,什么时候该用逗号,什么时候该用前缀而不用写全。。。。。。
能不能介绍些好的资料给我。
再次感谢!


--  作者:jpz6311whu
--  发布时间:4/6/2008 12:47:00 PM

--  
你看官方文档吧,里面写得很全
--  作者:skyhui
--  发布时间:4/6/2008 3:11:00 PM

--  
嗯。
谢谢您!
--  作者:myldb_sw
--  发布时间:10/10/2008 12:13:00 PM

--  
能不能将你的规则文本,本体,以及代码发给我,论坛已经无法下载了
我刚学Jena,Jena 2 Inference support看了一遍,但仍然为如何编写Jena规则不太清楚,希望通过学习你的例子提高自己
我的邮箱是:myldb@tom.com
谢谢!!!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
70.313ms