|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你通过从书的数量和开发周期及运行速度来证明:net网页编程和ruby要比java简单。
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.ckuyun.com/developerworks/xml/library/j-jena/>
a dc:Article;
dc:creator"PhilipMcCarthy"^^xsd:string;
dc:subject"jena,rdf,java,semanticweb"^^xsd:string;
dc:title"IntroductiontoJena"^^xsd:string.
清单1申明了“Jena简介”这篇文章由PhilipMcCarthy撰写而且主题包含jena、rdf、java和语义web。辞汇表是DublinCore元数据分类的一部分。要利用Jena的原始的JavaAPI复制这些RDF声明,您大概要实行相似清单2的事情:
清单2.利用原始的JenaAPI断言RDF示例
StringNS="http://purl.org/dc/elements/1.1/";
OntModelm=createModel();
OntClassarticleCls=m.createClass(NS+"Article");
Individuali=articleCls.createIndividual(
"http://www.ckuyun.com/developerworks/xml/library/j-jena/");
Propertytitle=m.getProperty(NS+"title");
Literall=m.createTypedLiteral("IntroductiontoJena");
i.setPropertyValue(title,l);
Propertycreator=m.getProperty(NS+"creator");
l=m.createTypedLiteral("PhilipMcCarthy");
i.setPropertyValue(creator,l);
Propertysubject=m.getProperty(NS+"subject");
l=m.createTypedLiteral("jena,rdf,java,semanticweb");
i.setPropertyValue(subject,l);
m.write(System.out,"N3");
<p>
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net网页编程也不过3,4本书足以,这就是区别。 |
|