语义网络技术为我们展望一幅美景,但是,语义网络相关技术复杂且众多,用它们将美景变成现实不是一件容易的工作,有点摸不着头脑的感觉。我最近在网上发现了一个实例,使用众多语义网络技术实现了一个mashup(混搭)服务,是一个详细的step-by-step的教程,而且开放所有资源。这个实例就是meex。
meex将音乐风格、音乐家信息、演出活动等内容mashup在一起,分别来自三个数据源:
- MusicMoz用一个XML文件存储音乐风格分类和艺术家信息
- MusicBrainz用一个PostgreSQL数据库dump存储艺术家和作品信息
- EVDB通过REST服务对外提供事件和活动信息
meex使用OWL描述的概念模型驱动mashup逻辑,使用了以下众多产品和技术。
- OWL: 描述meex业务的相关概念的关系,即各个数据源之间的关系,也是mashup逻辑模型
- RDF: 将所有的数据源都转换成RDF格式,然后输入到Jena引擎进行处理
- GRDDL:将XML转换成RDF的工具
- D2RQ: 将数据库转换成RDF的工具
- Jena: 一个开源的用于开发语义网络应用的Java 开发框架,将统一成RDF格式的数据mashup在一起。内容包括:
- RDF数据的存储
- OWL推理
- SPARQL: 统一成RDF格式的数据的查询语言
- Joseki: 为Jena设计的SPARQL服务器端
- Jena提供的SPARQL客户端,提供RDF数据查询接口
- Exhibit: Javascript库,是一个结构化数据的展现工具