以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (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=17257)


--  作者:abigsmile
--  发布时间:4/20/2005 10:54:00 PM

--  跪求:把本体语言转换成关系数据库的程序或者方法
rt
想要把 RDF(s), OWL 文件对应到关系数据库上。
敬请各位大虾指导一下。
--  作者:yanxq
--  发布时间:4/21/2005 9:56:00 PM

--  
我在做,可以多联系。
共总正在进行中...
--  作者:海军中校
--  发布时间:4/22/2005

--  
怎么和你联系阿?我也很有兴趣
--  作者:hal9000
--  发布时间:4/22/2005 12:10:00 AM

--  
如果你是说存储的话Jena中的RDB Persistence就行
--  作者:yanxq
--  发布时间:4/22/2005 12:24:00 AM

--  
jena中的方法太简单了,建立了一个垂直表,表中的栏目分别为:property,subject和object,基本不能用吧。
--  作者:hal9000
--  发布时间:4/22/2005 12:30:00 AM

--  
OWL是用RDF来描述的,RDF中所有的东西都是主谓宾啊,这样不是最直接吗?
--  作者:yanxq
--  发布时间:4/22/2005 10:38:00 PM

--  
这是一种最通用的建立数据库的方法,因为最通用,所以最没用。原因有二:
  1) 类之间语义关系的丢失
  2) 在进行查询时,一般需要多次的表的join工作,费时费力
--  作者:happysw
--  发布时间:4/23/2005 6:29:00 PM

--  
以下是引用yanxq在2005-4-22 22:38:23的发言:
这是一种最通用的建立数据库的方法,因为最通用,所以最没用。原因有二:
   1) 类之间语义关系的丢失
   2) 在进行查询时,一般需要多次的表的join工作,费时费力


jena的存储方式也可以支持OWL,为什么说会丢失类之间的语义关系?
--  作者:jiexincao
--  发布时间:4/23/2005 8:25:00 PM

--  
如果多个概念之间存在一定的语义关系,你怎样用一条SQL语句实现对以三元组形式存储的OWL或者RDF文件的检索?
如果不能用一条SQL语句将所需的三元组检索出来,那么就可能需要一个存储过程(当然也可以直接写一段程序,多次检索数据库),来根据三元组描述出来的语义关系,进行“推理”,然后检索出所需的三元组,换句话说,这些语义关系需要通过一个比较复杂的推理程序来反映出来,并实现“语义检索”。
jena可以实现吗?效率如何,好像有人在说jena会用掉上G的内存,呵呵。
所以是否直接用三元组存储比较好值得思考。
--  作者:abigsmile
--  发布时间:4/23/2005 10:37:00 PM

--  
感谢各位的支持,是这样的:
有一个已经建立好的本体(如rdfs,或者owl 文件)
让一个程序去处理它,让它自动的转化为 数据库 的模式
比如:就比如把 文件中的 类 对应生成一张数据库中的表,其实因该用oo数据库比较好,考虑到没有什么好的商业化的oo数据库
所以要用 关系数据库。
--  作者:yanxq
--  发布时间:4/23/2005 11:45:00 PM

--  
比如subclassof,subpropertyof等类,属性之间的语义关系在jena的表中无法体现
--  作者:hal9000
--  发布时间:4/24/2005 2:13:00 AM

--  
以下是引用jiexincao在2005-4-23 20:25:55的发言:
如果多个概念之间存在一定的语义关系,你怎样用一条SQL语句实现对以三元组形式存储的OWL或者RDF文件的检索?
如果不能用一条SQL语句将所需的三元组检索出来,那么就可能需要一个存储过程(当然也可以直接写一段程序,多次检索数据库),来根据三元组描述出来的语义关系,进行“推理”,然后检索出所需的三元组,换句话说,这些语义关系需要通过一个比较复杂的推理程序来反映出来,并实现“语义检索”。
jena可以实现吗?效率如何,好像有人在说jena会用掉上G的内存,呵呵。
所以是否直接用三元组存储比较好值得思考。

Jena是会用掉上G的内存,如果你所处理的问题真正的需要的话。你所说是语义检索Jena是能实现的,用RQL+RDBModel,效率还不太清楚,不过肯定是比对内存里的Model进行RQL查询要慢好多。不过我觉得如果不是Model超大的话,不直接对数据库查找,而是先把Statements导入到内存里比较合适,一般好像也都这么做的,所以才有人要用上G的内存吧。

我认为如果不是用这种方式的话,要实现语义检索才会需要写存储过程,而且当你对“语义”的要求比较高的时候,就相当于你自己在写一个简单的推理机。

To楼主 :如果只是SubClass之类的包容关系的话,楼主可以参考Hibernate里面继承关系的实现方式:一共有三种策略,看Hibernate的文档就知道了。


--  作者:happysw
--  发布时间:4/24/2005 8:27:00 AM

--  
以下是引用yanxq在2005-4-23 23:45:28的发言:
比如subclassof,subpropertyof等类,属性之间的语义关系在jena的表中无法体现


subclassof等也可以三元组的形式存储。
个人认为Jena存储的好处就是通用性,即使本体描述语言发展了,也最终可以转化为三元组的方式存储。但令人担忧的就是效率问题。
如果针对某种本体语言,例如owl,设计专门的存储方式,效率应该会提高,但是随着比owl更强大的语言的出现,这种针对某种语言(如owl)的存储方式或许又需要改变了。
--  作者:jiexincao
--  发布时间:4/25/2005 1:00:00 PM

--  
以下是引用hal9000在2005-4-24 2:13:04的发言:
Jena是会用掉上G的内存,如果你所处理的问题真正的需要的话。你所说是语义检索Jena是能实现的,用RQL+RDBModel,效率还不太清楚,不过肯定是比对内存里的Model进行RQL查询要慢好多。不过我觉得如果不是Model超大的话,不直接对数据库查找,而是先把Statements导入到内存里比较合适,一般好像也都这么做的,所以才有人要用上G的内存吧。

我认为如果不是用这种方式的话,要实现语义检索才会需要写存储过程,而且当你对“语义”的要求比较高的时候,就相当于你自己在写一个简单的推理机。


对于我们一般做个论文,把Statements导入到内存里的方法是可行的。但是,考虑的实际问题的复杂性,还是应该考虑自己写个推理机。其实这种推理机应该也是可实现的,只是可能需要反复的检索数据库,效率可能又会低了一点,但是其通用性应该会比jena强一点。
--  作者:hal9000
--  发布时间:4/25/2005 9:22:00 PM

--  
我想这是取决于应用问题--你的KB有多大,你需要什么复杂程度的推理。如果只是单单使用一点的话,当然你还是和原来程序设计一样,需要对象建模、数据库概念、物理建模、然后在需要的时候为KB提供内容就可以了。然而对这样的应用,我不认为从OWL本体直接映射到数据库模型是个好主意,--因为照我看来,对面向对象程序来说,数据库应该是为对象提供持久化的方式,而本体设计和面向对象设计在方式上有非常大的不同!!直接的映射的话不会适合面向对象程序的需要。
其实如果是很简单的推理要求的话,不把它看作是推理,直接用程序实现不就好了?
我看到的把Statements导入内存的正是在做应用的,他们有很高的效率要求。现在考虑的是怎么把本体存在数据库中的问题,如果需要复杂的推理,本身就是应用效率瓶颈的推理过程,直接在数据库上进行会有什么样的结果?(内存和磁盘)。把Statements导入内存这种方式并不复杂(如果模型不是非常大的话):启动的时候把Statement读到MemModel里,对Jena的Graph包装一下,读的时候不变,写的时候同时写Mem和RDB,这样也就是只是启动的时候很慢和内存占用比较大,但大多数这样的应用都是放在强劲的服务器里,几天才启动一次的。
--  作者:jiexincao
--  发布时间:4/28/2005 2:42:00 PM

--  
从寒假开始,断断续续的花了几个月看一些资料,最终希望做一个基于语义的检索系统(算是一个搜索引擎的模型吧)。一直在疑惑能不能利用目前的国内外已有的研究成果做一个有一定通用性的试验系统:至少能一方面能够实现基于语义的检索,另一方面能够同时向多个用户提供检索服务。基于这种考虑,推理直接用程序实现会极大的影响通用性;而把Statements导入内存是否合适也需要思考一番;为了能够实现通用的推理和向多用户提供服务,牺牲响应时间也是一个折中。
当然,这些想法只是目前的自己脑海里一点模糊的思路,是否可行,结果如何都尚未可知,还请大家多多指教。

--  作者:fuyudong
--  发布时间:5/8/2005 10:38:00 AM

--  
小弟在这方面也有困惑,希望各位高手指点,我只是想找到从本体到关系数据库的映射关系。

fuyudong@163.com


--  作者:linforest
--  发布时间:5/9/2005 7:21:00 PM

--  
那么有没有关系数据库到本体的工具呢?
--  作者:jiexincao
--  发布时间:5/11/2005 12:56:00 PM

--  
有个叫D2R 的,可以将关系数据库转换成RDF,我这有篇文章,可是现在上传好像出了问题,改天传上去
--  作者:jiexincao
--  发布时间:5/16/2005 4:22:00 PM

--  
http://www.wiwiss.fu-berlin.de/suhl/bizer/d2rmap/D2Rmap.htm
D2R的网址,好像东西很多
--  作者:solowang
--  发布时间:5/19/2005 12:21:00 PM

--  
各位同仁,我也在做本体语言向关系数据库的存储方面的研究.希望能和你们交流.
QQ :280404991

--  作者:huanwang00
--  发布时间:5/16/2006 3:11:00 PM

--  
关注中!
--  作者:wangyfs
--  发布时间:5/17/2006 3:37:00 PM

--  
关注中.............期待
--  作者:anew88
--  发布时间:5/18/2006 10:08:00 AM

--  
我也在想这个。但我还是时不时会怀疑,用关系数据库能完全表达本体吗?只是有点怀疑,不过就算可以的话,那么在数据处理上可能会相当相当复杂。个人看法:)
--  作者:hohowu
--  发布时间:5/18/2006 12:52:00 PM

--  
我做的是从概念,关系上来设定表,然后解析owl文件,存储到里面的。
当然比较简单,像datatype property什么的就没有涉及到。只有subclass 和 object property

--  作者:huanwang00
--  发布时间:5/18/2006 11:33:00 PM

--  
http://www.xml.org.cn/dispbbs.asp?boardID=2&ID=27350
http://bbs.w3china.org/dispbbs.asp?boardID=2&ID=9620
我也在看这方面的资料,这是在百度上搜到的本论坛上关于此问题的相关帖子。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
250.000ms