面向对象软件开发者的Semantic Web入门
大概是去年这个时候,W3C发布了面向对象软件开发者的Semantic Web入门,自己最近也常常在想本体(Ontology)如何映射到面向对象结构中去,以我浅显的理解:面向对象程序设计本质上是以类为核心的,将类作为对事情的一种抽象(模型),这个类有状态(数据域),有行为(方法域),可以继承(inherit),互相之间有通信协议(interface),在语义网的结构里,一样也有类,有实例,有属性,但是,语义网,就我理解而言是以谓词为核心的,谓词是一种陈述,左边是定义域,右边是值域,通过这种陈述将两者关联起来,从这里看来,语义网的模型是一种分布式的模型,网式的模型,通过谓词来传递关系,进行推理。从这些区别来看,基于语义网的面向对象开发似乎是一件比较痛苦的事情,要不断平衡这两者的差别,不断的做细小的工作来保证从本体到面向对象系统的映射过程中不丢失信息。
W3C的这篇文章我未曾细看,准备有空的时候读下。匆匆扫了几眼,它似乎介绍了一种在面向对象系统中处理语义网模型的一种框架。我知道的类似于Jena提供的API就是这种结构,显然,它提供了方便,不过并没有解决问题,兴许,本质上,这两种思维就是格格不入的。另外,我觉得研究本体跟数据库系统的映射也是一个很有意思的话题哦。
其实,提供处理语义网的API并不仅限于Jena,也并不仅限于Java语言的,W3C的这篇文章的Appendix里提到了几个lib,Java下面还有WonderWeb OWL API ,以及名气比较大的Protege OWL API。C语言下面的有Redland - RDF Application Framework–可能不能处理本体。PHP语言也有,pOWL - Semantic Web Development Platform ,呵呵,比较令人吃惊的。
本人语义网初学,不当之处,请一定要帮忙指出哦。:)





