以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  racer对本体实例的推理  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=30473)


--  作者:Ambrosia
--  发布时间:4/13/2006 10:13:00 AM

--  racer对本体实例的推理
想请教各位高手,racer对本体实例的推理。

问题的提出:
racer是大家公认的professional reasoner,有很高的效率和准确性,同时也是一种dig推理器,可与jena连接,适用性较广。但就目前我做过的实验来看,racer似乎很难用于对本体实例进行直接的推理。这里所谓的本体实例,是指由metadata定义的data。一般我们所说的本体,实际上是对metadata进行描述而非对data进行描述,作用类似于schema。而我的实验中是用本体对数据进行描述,相当于xml document.

问题的描述:
我对以下ontology instance 进行推理

<geoF:City rdf:ID="Auckland">
 <hasSpatialRelation>
  <geoF:SpatialDistanceRelation rdf:nodeID="AucklandDistanceRelation">
   <destination rdf:resource="#Wellington"/>
   <spatialDistance>800</spatialDistance>
   <hasSpatialUnits rdf:resource="#kilometers"/>
  </geoF:SpatialDistanceRelation>
 </hasSpatialRelation>
 <hasSpatialRelation>
  <geoF:DirectionRelation rdf:nodeID="AucklandOrientationRelation">
   <isLeftOf rdf:resource="#LosAngeles"/>
   <isOriented rdf:resource="#North"/>
  </geoF:DirectionRelation>
 </hasSpatialRelation>
</geoF:City>

<geoF:City rdf:ID="Wellington"/>
<geoF:City rdf:ID="LosAngeles"/>

用jena解析后:
subject: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#Auckland
predicate: http://www.w3.org/1999/02/22-rdf-syntax-ns#type
object: http://www.mindswap.org/2003/owl/geo/geoFeatures20040307.owl#City
subject: UAucklandDistanceRelation
predicate: http://www.w3.org/1999/02/22-rdf-syntax-ns#type
object: http://www.mindswap.org/2003/owl/geo/geoFeatures20040307.owl#SpatialDistanceRelation
subject: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#Auckland
predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#hasSpatialRelation
object: UAucklandDistanceRelation
subject: UAucklandDistanceRelation
predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#destination
object: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#Wellington
subject: null
predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#spatialDistance
object: 800
subject: UAucklandDistanceRelation
predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#hasSpatialUnits
object: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#kilometers
subject: UAucklandOrientationRelation
predicate: http://www.w3.org/1999/02/22-rdf-syntax-ns#type
object: http://www.mindswap.org/2003/owl/geo/geoFeatures20040307.owl#DirectionRelation
subject: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#Auckland
predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#hasSpatialRelation
object: UAucklandOrientationRelation
subject: UAucklandOrientationRelation
predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#isLeftOf
object: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#LosAngeles
subject: UAucklandOrientationRelation
predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#isOriented
object: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#North
subject: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#Wellington
predicate: http://www.w3.org/1999/02/22-rdf-syntax-ns#type
object: http://www.mindswap.org/2003/owl/geo/geoFeatures20040307.owl#City
subject: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#LosAngeles
predicate: http://www.w3.org/1999/02/22-rdf-syntax-ns#type
object: http://www.mindswap.org/2003/owl/geo/geoFeatures20040307.owl#City

可以很明显的看出predict http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#isLeftOf的主体和客体

用racer推理出来的结果:
subject: 166aa18:10253d3ea9e:-7ff9

predicate: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#isLeftOf

object: http://www.mindswap.org/2003/owl/geo/geoRelations20040307.owl#LosAngeles

subject为乱码,而且每次试验显示的乱码不一样,说明是随机生成的。大家有没有碰到过这种情况阿?

问题的解答:
racer对data部分reasoning时,是否需要添加更多的规则;还是由于用metadata定义的data结构过于复杂,racer无能为力呢?

谢谢各位的回复,欢迎大家来讨论这个问题!


--  作者:Ambrosia
--  发布时间:4/13/2006 1:31:00 PM

--  
谢谢各位的浏览!希望大家看过后留下自己的看法和问题,这样才能对大家都有所促进。直接给我发短消息也不一定能把问题解释清楚,不如写出来给大家作参考,谢谢。
--  作者:Ambrosia
--  发布时间:4/13/2006 10:25:00 PM

--  
555,没人回阿
--  作者:trureal
--  发布时间:5/22/2006 3:46:00 PM

--  
我倒是很关心“jena解析”和“racer推理”是怎么实现的呢,在Jena的文档里有介绍吗?
--  作者:icebuddy
--  发布时间:9/5/2006 9:12:00 AM

--  
subject不是乱码,是随即生成的uri
--  作者:jpz6311whu
--  发布时间:9/5/2006 10:22:00 AM

--  
166aa18:10253d3ea9e:-7ff9这样的都是匿名结点
--  作者:Ambrosia
--  发布时间:9/5/2006 11:57:00 AM

--  
汗,这就是不爱收拾烂摊子的下场-_-||这个问题解决了!我的感觉是这些所谓的推理器都可以把问题复杂化
--  作者:jp2107
--  发布时间:9/6/2006 10:36:00 AM

--  
呵呵,可否把原因提示下,racer里面是否是自己定义推理还是根据本体里面的关系自己来定义呢
--  作者:Ambrosia
--  发布时间:9/6/2006 10:45:00 AM

--  
racer只能对直接的关系进行推理,对于这种间接的语义关系,需要自己定义规则
--  作者:jp2107
--  发布时间:9/6/2006 10:53:00 AM

--  
可以私下交流下吗 , 呵呵
qq:4963573
--  作者:icebuddy
--  发布时间:9/14/2006 9:04:00 AM

--  
楼主是怎么解决的?
--  作者:Ambrosia
--  发布时间:9/14/2006 10:45:00 AM

--  
不是已经说啦吗,呵呵,自己去编代码把
--  作者:sl130com
--  发布时间:9/29/2006 2:40:00 PM

--  
求助!!!
Jena与Racer连接报错,注Racer已安装并打开。
报错信息:
java.net.MalformedURLException: unknown protocol: e

 at java.net.URL.<init>(URL.java:544)

 at java.net.URL.<init>(URL.java:434)

 at java.net.URL.<init>(URL.java:383)

 at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:205)

 at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:2078)

 at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:2059)

 at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:2020)

 at sl1.DIGreasoner.main(DIGreasoner.java:37)

com.hp.hpl.jena.shared.WrappedIOException: rethrew: java.net.MalformedURLException: unknown protocol: e

 at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:209)

 at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:2078)

 at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:2059)

 at com.hp.hpl.jena.ontology.impl.OntModelImpl.read(OntModelImpl.java:2020)

 at sl1.DIGreasoner.main(DIGreasoner.java:37)

Caused by: java.net.MalformedURLException: unknown protocol: e

 at java.net.URL.<init>(URL.java:544)

 at java.net.URL.<init>(URL.java:434)

 at java.net.URL.<init>(URL.java:383)

 at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:205)

 ... 4 more

Exception in thread "main"
主程序:
public class DIGreasoner {
public static String NS = "urn:x-hp-jena:eg/";


public static void main( String[] args ) {

// set up a configuration resource to connect to the reasoner
  // on port 2004 on the local system
  Model cModel = ModelFactory.createDefaultModel();
  Resource conf = cModel.createResource();
  conf.addProperty( ReasonerVocabulary.EXT_REASONER_URL,
                    cModel.createResource( "http://localhost:8080" ) );

  // create the reasoner factory and the reasoner

    DIGReasonerFactory drf = (DIGReasonerFactory) ReasonerRegistry.
        theRegistry()
        .getFactory(DIGReasonerFactory.URI);

  DIGReasoner r = (DIGReasoner) drf.create( conf );

  // now make a model
  OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_DL_MEM );
  spec.setReasoner( r );
  OntModel m = ModelFactory.createOntologyModel( spec, null );

  // load an input document
  //m.read( "http://protege.stanford.edu/plugins/owl/owl-library/koala.owl" );
  m.read( "E:\\本体工具\\protege_Installers\\animal\\animal/Animal.owl" );

  // list the inconsistent classes
  StmtIterator i = m.listStatements( null, OWL.equivalentClass, OWL.Nothing );
  while (i.hasNext()) {
      System.out.println( "Class " + i.nextStatement().getSubject() + " is unsatisfiable" );

  }

}}


--  作者:cindygirl_zhou
--  发布时间:9/30/2006 12:49:00 PM

--  
没有明白
楼主说有问题,大家讨论
突然说问题解决了
人家问如何解说,回答说让大家去编代码去
......
还是没明白到底什么问题,怎么解决的
--  作者:wtcpin
--  发布时间:10/2/2006 10:56:00 AM

--  
呵呵,也是哈。楼主太懒了。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
93.750ms