以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  探讨建立领域本体并进行索引的技术问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=40998)


--  作者:smilelife
--  发布时间:12/8/2006 8:10:00 PM

--  探讨建立领域本体并进行索引的技术问题
项目需要建某领域本体(具有时空特性)并建立多维索引,目前属于原型性质的研究实现,在设计方案,有几个不清楚的问题跟大家请求探讨一下吧(初级水平,不要见笑)
1 基于Protégé编辑本体,采用OWL存储,建立索引会涉及哪些技术细节呢?
2.OWL对于属性间约束表达能力有限,比如产品生产开始时间应早于结束时间,如何实现呢?是否一定要引入规则语言?与OWL语言相结合的OWLRule+和SWRL语言哪个合适呢?在Protégé中如何实现规则语言的编辑?可以无缝实现吗?
3.Protégé如何编辑实现OWL推理能力?如a=b,b=c推出a=c如何实现?
4.如果系统扩展投入使用,又会有哪些相应变化?比如是否要改用数据库存储?
总结一下,好像就是这个案例中Protégé能做什么,不能做什么?Protégé无法实现的如何弥补?有相似案例吗?
呵呵,大家畅所欲言吧,也许对很多人有用

--  作者:rongfw
--  发布时间:12/9/2006 4:08:00 PM

--  
顶起!!
--  作者:timearrow
--  发布时间:12/9/2006 10:43:00 PM

--  
1关于索引,好像目前的本体持久化API大都提倡透明性,也就是说不提倡用户绕过API直接对数据库进行操作。这样无法直接对数据库常用查询字段做索引了,因为甚至不知道database schema。而透过API看见的就是本体了,没有捆绑推理机的看见的就是asserted的本体描述,捆绑了的看见的就是inferred的本体。这时候要做索引,我想就是对常查询的本体部分绕过推理过程,缓存推理结果,直接索引到结果。。。
2规则层的东西偶还没涉及到,呵呵
3protege owl api好像可以捆绑推理机,完成推理吧
4系统投入使用后,本体如何变就视乎你的本体进化策略了,你如果根据使用过程refine你的本体,本体自然要变化。你也可能import进其他的本体,也可能要从语义上merge进其他的本体,那就是onto mapping了。总之如何变也是你要考虑进设计实现的东西。至于要不要本体persistence,等到你的本体大了,自然不可能都load内存来操作,只能持久化到数据库了。
--  作者:男孩
--  发布时间:12/12/2006 10:48:00 AM

--  
ding

--  作者:smilelife
--  发布时间:12/16/2006 7:11:00 PM

--  
谢谢楼上的回答和大家的支持,正在慢慢体会中。。。
这两天在摸索推理问题所以一直没来,有收获也有不明白的地方,现在写出来和大家分享吧,如果显得很简单不要笑哦,呵呵

--  作者:smilelife
--  发布时间:12/16/2006 7:16:00 PM

--  
推理原理:owl形式本体文件(*.owl)+推理机(Racer等)+java推理程序,如采用pizza_20041007.owl+Racer推理机+ReasonerExample.java
环境:jdk-1_5_0_04-windows-i586-p虚拟机+
      eclipse-SDK-3.2-win32+
      Protege_3.2\plugins\edu.stanford.smi.protegex.owl下文件+
      Protege_3.2\Protege.jar文件
注意:java推理程序需要Eclipse环境,Jbuilder编译执行时找不到包
--  作者:smilelife
--  发布时间:12/16/2006 7:21:00 PM

--  
连接到Internet情况下成功,但离线出现问题,提示
The system cannot find the ontology:http://protege.standford.edu/plugins/owl/protege
Select "Add Repository" to add a repository taht contains this ontology, or select "Cancel" to stop loading and exit
报错如下
INFO: Loading triples
SEVERE: Exception caught -- java.net.UnknownHostException: protege.stanford.edu
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at sun.net.NetworkClient.doConnect(Unknown Source)
 at sun.net.www.http.HttpClient.openServer(Unknown Source)
 at sun.net.www.http.HttpClient.openServer(Unknown Source)
 at sun.net.www.http.HttpClient.<init>(Unknown Source)
 at sun.net.www.http.HttpClient.New(Unknown Source)
 at sun.net.www.http.HttpClient.New(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.getInputStream(Unknown Source)
 at edu.stanford.smi.protegex.owl.repository.impl.HTTPRepository.update(Unknown Source)
 at edu.stanford.smi.protegex.owl.repository.impl.HTTPRepository.<init>(Unknown Source)
 at edu.stanford.smi.protegex.owl.repository.RepositoryManager.getRepository(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.getRepository(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.runImport(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.processImports(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.loadTriples(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.JenaOWLModel.load(Unknown Source)
 at edu.stanford.smi.protegex.owl.ProtegeOWL.createJenaOWLModelFromInputStream(Unknown Source)
 at ReasonerExample.main(ReasonerExample.java:30)
看来需在线访问若干URL,于是下载http://protege.standford.edu/plugins/owl/protege本体后放在本地,通过eclipse“Add Repository”试图加载,但无论“Local folder”"Local file"都不成功,大家帮我分析下为什么吧?
--  作者:smilelife
--  发布时间:12/16/2006 7:33:00 PM

--  
一计不成又生一计
下载上述本体后放在本地,并将pizza_20041007.owl中“xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"”改为
“xmlns:protege="protege.stanford.edu/plugins/owl/protege#"”,
报错并提示找不到另一个本体“http://www.co-ode.org/ontologies/pizza/protege.stanford.edu/plugins/owl/protege”,还有个"http://dummy-ontologies.com/dummy.owl"的问题,如下
WARNING: A warning occurred at parsing the OWL ontology

    http://dummy-ontologies.com/dummy.owl

    at line 3496 and column 6.
    Jena parse error message: {W136} Relative URIs are not permitted in RDF  <protege.stanford.edu/plugins/owl/protege#subclassesDisjoint> -- com.hp.hpl.jena.rdf.arp.impl.XMLHandler$1: {W136} Relative URIs are not permitted in RDF  <protege.stanford.edu/plugins/owl/protege#subclassesDisjoint>
 at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:188)
 at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:183)
 at com.hp.hpl.jena.rdf.arp.impl.AbsXMLContext.checkURI(AbsXMLContext.java:156)
 at com.hp.hpl.jena.rdf.arp.impl.URIReference.fromQName(URIReference.java:189)
 at com.hp.hpl.jena.rdf.arp.states.WantPropertyElement.startElement(WantPropertyElement.java:58)
 at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.startElement(XMLHandler.java:131)
 at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
 at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(Unknown Source)
 at org.apache.xerces.impl.XMLNamespaceBinder.startElement(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
 at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
 at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
 at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
 at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:106)
 at com.hp.hpl.jena.rdf.arp.ARP.load(ARP.java:143)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser$1.invokeARP(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.loadTriples(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.JenaOWLModel.load(Unknown Source)
 at edu.stanford.smi.protegex.owl.ProtegeOWL.createJenaOWLModelFromInputStream(Unknown Source)
 at ReasonerExample.main(ReasonerExample.java:30)

SEVERE: Exception caught -- java.net.UnknownHostException: www.co-ode.org
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at sun.net.NetworkClient.doConnect(Unknown Source)
 at sun.net.www.http.HttpClient.openServer(Unknown Source)
 at sun.net.www.http.HttpClient.openServer(Unknown Source)
 at sun.net.www.http.HttpClient.<init>(Unknown Source)
 at sun.net.www.http.HttpClient.New(Unknown Source)
 at sun.net.www.http.HttpClient.New(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.getInputStream(Unknown Source)
 at edu.stanford.smi.protegex.owl.repository.impl.HTTPRepository.update(Unknown Source)
 at edu.stanford.smi.protegex.owl.repository.impl.HTTPRepository.<init>(Unknown Source)
 at edu.stanford.smi.protegex.owl.repository.RepositoryManager.getRepository(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.getRepository(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.runImport(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.processImports(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.loadTriples(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParser.run(Unknown Source)
 at edu.stanford.smi.protegex.owl.jena.JenaOWLModel.load(Unknown Source)
 at edu.stanford.smi.protegex.owl.ProtegeOWL.createJenaOWLModelFromInputStream(Unknown Source)
 at ReasonerExample.main(ReasonerExample.java:30)
这几个本体的解析都没出现在pizza_20041007.owl和ReasonerExample.java,实际是在protege的jar包中,于是我在想:该问题应该只是对这个例子存在吧,如果自己写本体推理总要在线实现就太不合理了。下一步准备这两天分析下pizza_20041007.owl或自己写个下本体再试试吧,大家也来出出主意吧,呵呵


--  作者:smilelife
--  发布时间:12/20/2006 8:55:00 AM

--  
确定是本体导入的问题,因为尝试使用SWRLTab时,打开family.swrl.owl例子也出现这个问题,在线没问题,离线就说找不到swrlb.owl和swrl.owl.谁能指点一下本体导入的技术吧;抑或是我没掌握Eclipse的Add Repository功能?
help me......:(
我的问题很easy?或....怎么没人帮我啊

--  作者:goodhero
--  发布时间:12/21/2006 9:33:00 AM

--  
把本体download到本地,然后用下面的方法将本体装入Model,所有需要import的本体也要这样做
OntModel m=ModelFactory.createOntologyModel();
OntDocumentManager dm=m.getDocumentManager();
dm.addAltEntry("http://protege.stanford.edu/plugins/owl/protege","file:"+"本地路径");
m.read("http://protege.stanford.edu/plugins/owl/protege");

--  作者:coco
--  发布时间:1/4/2007 3:03:00 PM

--  
支持.
--  作者:petrelsj
--  发布时间:1/8/2007 10:44:00 AM

--  

--  作者:惊风
--  发布时间:1/8/2007 6:01:00 PM

--  
ding
--  作者:惊风
--  发布时间:1/8/2007 6:03:00 PM

--  
要开题了,正犯愁呢.本体啊本体
--  作者:sunshow
--  发布时间:1/8/2007 9:54:00 PM

--  
就是啊,要开题了 ,犯愁啊........
--  作者:flyingFang
--  发布时间:1/9/2007 6:51:00 AM

--  
以下是引用timearrow在2006-12-9 22:43:00的发言:
1关于索引,好像目前的本体持久化API大都提倡透明性,也就是说不提倡用户绕过API直接对数据库进行操作。这样无法直接对数据库常用查询字段做索引了,因为甚至不知道database schema。而透过API看见的就是本体了,没有捆绑推理机的看见的就是asserted的本体描述,捆绑了的看见的就是inferred的本体。这时候要做索引,我想就是对常查询的本体部分绕过推理过程,缓存推理结果,直接索引到结果。。。
2规则层的东西偶还没涉及到,呵呵
3protege owl api好像可以捆绑推理机,完成推理吧
4系统投入使用后,本体如何变就视乎你的本体进化策略了,你如果根据使用过程refine你的本体,本体自然要变化。你也可能import进其他的本体,也可能要从语义上merge进其他的本体,那就是onto mapping了。总之如何变也是你要考虑进设计实现的东西。至于要不要本体persistence,等到你的本体大了,自然不可能都load内存来操作,只能持久化到数据库了。

先问第一个问题:
(1) “本体持久化API”  这是什么东东? 在哪里能找到?这个API是有一个业界通用的东西,还是各自研究小组有其自己的实现?支持所有的数据库类型么?还是只支持mysql?



--  作者:vicki0802
--  发布时间:1/13/2007 10:22:00 PM

--  
我也很想知道楼上的问题,大侠们 解释解释吧.
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
2,085.938ms