Jenabean:将JavaBeans轻松绑定到RDF

Java 开发人员是幸运的,因为在 Jena 中他们可以利用一种良好的 RDF 框架。Jena 提供了一个编写和读取 RDF 的 API,它可以以多种方式进行保存和持久化。

Jena 的设计目标是可以良好地处理 RDF 数据模型,正如 JDBC 适合处理关系模型一样。数据库应用程序中编写的大量代码都用来保存 Java 对象,还有一些代码用来从数据库中聚集对象。用 Java 代码编写的语义 Web 应用程序面临一个类似的问题:它们必须实现 Java 对象和 RDF 之间的相互转换。因此,开发人员必须编写大量的代码来消除自身模型(一般为 JavaBeans)和 Jena 的以 RDF 为中心的 API 之间的差异。

本文展示 Jenabean 的 Java-to-RDF 绑定框架如何简化上述过程并减少所需的代码量。您将审视一些 Jena 客户端代码并将其与 Jenabean 的基于 JavaBean 的编程模型对比。首先查看一个简单的例子,我将向您展示如何实现以下操作:

将一个 bean 保存为 RDF

将其属性与特定的 RDF 属性绑定

将其与其他对象关联

再次回读 bean

Jenabean 编程模型

考虑清单 1 中的简单 RDF 示例,为方便阅读,它使用了 N-triple(N3)格式:

清单 1. RDF 示例(N3 格式)

<http://www.ibm.com/developerworks/xml/library/j-jena/>
   a    dc:Article ;
   dc:creator "Philip McCarthy"^^xsd:string ;
   dc:subject "jena, rdf, java, semantic web"^^xsd:string ;
   dc:title "Introduction to Jena"^^xsd:string .

清单 1 说明了 “Jena 简介” 这篇文章由 Philip McCarthy 撰写并且主题包括 jena、rdf、java 和语义 web。词汇表是 Dublin Core 元数据分类的一部分。要使用 Jena 的原始的 Java API 复制这些 RDF 声明,您可能要执行类似清单 2 的工作:

清单 2. 使用原始的 Jena API 断言 RDF 示例

String NS = "http://purl.org/dc/elements/1.1/";
OntModel m = createModel();
OntClass articleCls = m.createClass(NS +"Article");
Individual i = articleCls.createIndividual(
  "http://www.ibm.com/developerworks/xml/library/j-jena/");
Property title = m.getProperty(NS + "title");
Literal l = m.createTypedLiteral("Introduction to Jena");
i.setPropertyValue(title,l);
Property creator = m.getProperty(NS + "creator");
l = m.createTypedLiteral("Philip McCarthy");
i.setPropertyValue(creator,l);
Property subject = m.getProperty(NS + "subject");
l = m.createTypedLiteral("jena, rdf, java, semantic web");
i.setPropertyValue(subject,l);
m.write(System.out, "N3");

时间: 2025-01-02 13:55:05

Jenabean:将JavaBeans轻松绑定到RDF的相关文章

ASP.NET AJAX 4.0的一些新特性详解

目标 在本次动手实验中,您将学习如何: • 利用全新的客户端模板将数据轻松绑定到您的用户界面. • 使用 DataView 控件在客户端呈现数据. • 通过创建自定义标记扩展,扩展模板引擎. • 声明式地实例化行为和控件. 系统要求 您必须拥有以下工具才能完成本实验: • Microsoft Visual Studio 2008 或 2010. • ASP.NET 4.0 Preview 4AJAX 安装 您必须执行以下步骤来为本实验做好准备.主要包括下载和安装 ASP.NET AJAX 4.0

飞信qq业务介绍

飞信QQ主要功能有哪些?如何使用? 答:飞信QQ 的主要功能有: 1. 手机聊QQ 2. 短信查在线QQ好友 3. 短信速配QQ好友 4. 短信修改QQ资料 5. 娱乐功能 6. QQ客户端金色小手机 飞信与飞信QQ的关系? 答:飞信是中国移动公司推出的即时通信产品,通过连接互联网与移动网,实现多平台多网络的无缝沟通.飞信QQ为中国移动与腾讯公司合作产品,主要提供飞信手机用户同QQ用户的短信互通.主要功能包括短信查询QQ在线好友.速配QQ好友.聊QQ等.通过手机短信开通飞信QQ必须要先开通飞信.

CYQ.Data 轻量数据层之路 抢先体验版本功能说明演示 (二十九)

本系列所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引 本系列所有相关下载:CYQ.Data 轻量数据层之路 bug反馈.优化建议.最新框架下载 前言:   一直都是发布版本才写文章,这次为抢先体验版本[V2.5]做一下简单的功能介绍   以下进行功能更新说明[相比V2.0版本]: 1:修正DebugInfo属性在异常发生时无法取得操作语句的问题 2:MAction增加Bind方法可以轻松绑定DropDownList等控件 3:MDataTable增加ToList<T>泛型方

CYQ.Data 轻量数据层之路 bug反馈、优化建议、最新框架下载

重要说明: 所有相关的版本及下载,均转移并发布于秋色园QBlog的CYQ.Data专题博客中:http://www.cyqdata.com/cyqdata   欢迎大伙在使用过程若遇bug可及时反馈,如果有好的建议,请留言!!!   相关开源进群讨论:详见:CYQ.Data 轻量数据层之路 框架开源 所有信息汇总一览:详见:CYQ.Data 轻量数据层之路 框架开源系列 索引    V1.3版本[华丽的开始] 框架下载:V1.3 版本 点击下载 源码下载:V1.3 源码 点击下载   V1.4版

轻松实现javascript数据双向绑定_javascript技巧

双向数据绑定指的是当对象的属性发生变化时能够同时改变对应的UI,反之亦然.换句话说,如果我们有一个user对象,这个对象有一个name属性,无论何时你对user.name设置了一个新值,UI也会展示这个新的值.同样的,如果UI包含一个用于数据用户名字的输入框,输入一个新值也会导致user对象的name属性发生相应的改变. 许多流行的javascript框架,像Ember.js,Angular.js或者KnockoutJS都会把双向数据绑定作为其中的主要特性来宣传.这并不意味着从头开始实现它很难,

轻松实现JavaBeans到XML的相互转换

为了灵活的满足Web应用和Web services需求的变化,Java和XML的轻便性和可扩展性使它们成为解决这一问题的理想选择.SAX (Simple API for XML), DOM (Document Object Model), XSL (Extensible Stylesheet Language), XSLT (XSL Transformations), SOAP (Simple Object Access Protocol), and BML (Bean Markup Langu

轻松应对WS-Security规范互操作性挑战,第1部分

轻松应对WS-Security规范互操作性挑战,第1部分:问题概述与四个可用解决办法 互操作性问题概述 大部分互操作性问题都不是源自基础 Web 服务规 范(这些规范已经相当成熟和稳定了),而是由于各种 WS-* Web 服务扩展规范 (如 WS-Security)造成的.随着这些标准的不断发展,供应商必须选择支持哪 个版本的规范,而有时候开发人员会需要处理不同规范间不兼容的问题. WS-Security 标准提供了将身份验证.完整性和保密性应用到 SOAP 消 息的机制.在企业中采用 Web

在火狐中体验轻松支付:抛弃网银

大家还在因为在Firefox火狐浏览器里无法进行网购.订票.在线缴费而困扰么?还在纠结于每次到网银付款的时候,都要切换到IE浏览器或者IE Tab么?那你就out了.现在已经有很多支付产品和支付方式,都可以帮助大家在火狐浏览器中轻松进行网购支付.下面,小编就来带领大家一起来体验一下两种比较常用的在线支付产品:支付宝快捷支付和财付通一点通. 体验一:使用支付宝的快捷支付功能 现在支付宝提供的快捷支付功能,可以支持绝大部分银行的储蓄卡和信用卡,通过与支付宝绑定,直接付款,无需登录只支持IE内核浏览器

轻松学习XML教程

xml|教程 XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高.不要害怕和逃避,毕竟我们还年轻. 提纲 本文共分五大部分.分别是XML快速入门