以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  SWRL推理一问,Thanks  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=58542)


--  作者:jiashin
--  发布时间:1/26/2008 11:59:00 PM

--  SWRL推理一问,Thanks
请问各位:

Class C中有十个Instance,Class C有二个属性 hasA,hasB
Instance名称分别为 ins_1、ins_2、ins_3到ins_10,

hasA属性中已经有设定ins_1、ins_2、ins_3三个实例,
我要使用SWRL推理出hasB的实列(为hasA没有的的实例)

C(?i) ^ “这边该如何写”→ hasB(do something)

ps. HasB属性中就是要放hasA所没有的实例。

Thanks.


--  作者:wanggou
--  发布时间:1/27/2008 9:27:00 AM

--  
看了半天没理解你要干嘛
--  作者:jiashin
--  发布时间:1/27/2008 2:46:00 PM

--  
总共有十个instance,
属性hasA已有设定其中三个instance,
我要使用SWRL写rule推理出属性hasB为hasA所没有的instance

hasA已有三个instance,推理结果hasB要有七个instance

谢谢回答。


[此贴子已经被作者于2008-1-27 15:49:03编辑过]

--  作者:chris
--  发布时间:1/27/2008 4:44:00 PM

--  
swrl的语法已经不太记得了
你看看swrl中有没有取非的运算符啊

--  作者:jiashin
--  发布时间:1/27/2008 6:18:00 PM

--  
没有呢,我有找过SWRL 文件,感谢您的回答

http://www.w3.org/Submission/SWRL/


--  作者:jiashin
--  发布时间:1/28/2008 9:44:00 PM

--  
Class里有十个instance,二个object属性(hasA, hasB),一个datatype属性(hasName)

C(?x)  ∧  C(?y)  ∧  C(?z)  ∧  hasA(?x, ?y)  ∧  hasName(?y, ?n1)  ∧  hasName(?z, ?n2)  ∧  swrlb:notEqual(?n1, ?n2)  →  hasB(?x, ?z)

这样写会有问题,错误如下
Exception importing SWRL rules and OWL knowledge: edu.stanford.smi.protegex.owl.swrl.bridge.jess.exceptions.SWRLJessBridgeException: Jess reported an error in routine invokeSWRLBuiltIn
 while executing (invokeSWRLBuiltIn Rule-1 swrlb:notEqual ?n1 ?n2)
 while executing rule LHS (Node2)
 while executing rule LHS (Node2)
 while executing rule LHS (Node2)
 while executing rule LHS (Node2)
 while executing rule LHS (Node2)
 while executing rule LHS (Node2)
 while executing rule LHS (MTELN)
 while executing rule LHS (TECT).

Message: Error invoking built-in 'swrlb:notEqual' from Jess: Exception thrown by built-in 'swrlb:notEqual' in rule 'Rule-1': Expecting ordered type for argument 0 for built-in 'swrlb:notEqual'.

请问该如何解决此问题,感谢您。


--  作者:chris
--  发布时间:1/30/2008 1:37:00 PM

--  
Expecting ordered type for argument 0 for built-in 'swrlb:notEqual'
从这个错误信息看,就是你的参数类型不对
我帮你搜了下:swrlb:notEqual is a expecting OWL datatype values not OWL individuals
你的n1,n2是不是实例而不是数据类型呢?
多用google吧

--  作者:chris
--  发布时间:1/30/2008 1:40:00 PM

--  
http://www.daml.org/2004/04/swrl/builtins.html
去这里看看吧
--  作者:jiashin
--  发布时间:1/30/2008 2:51:00 PM

--  
hasName是datatype
n1,n2是数据类型

Thanks.


--  作者:beanbun
--  发布时间:2/7/2008 11:01:00 AM

--  
我现在也碰到了一个同样的问题, 能不能问一下楼主这个问题是怎么解决的啊. 谢谢了
--  作者:wstone
--  发布时间:2/8/2008 10:57:00 AM

--  
凑分原来这么简单
--  作者:kingzhangyt
--  发布时间:4/19/2008 11:56:00 AM

--  
可以看看这个网站http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ,或许有帮助!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms