代码解释
可以直接官网学习http://jena.apache.org/tutorials/rdf_api.html#ch-Jena%20RDF%20Packages
Tutorial01
package jena.examples.rdf ;
import org.apache.jena.rdf.model.*;
import org.apache.jena.vocabulary.*;
/** Tutorial 1 creating a simple model */
public class Tutorial01 extends Object {
// some definitions
static String personURI = "http://somewhere/JohnSmith";
static String fullName = "John Smith";
public static void main (String args[]) {
// create an empty model
Model model = ModelFactory.createDefaultModel();
// create the resource
Resource johnSmith = model.createResource(personURI);
// add the property
johnSmith.addProperty(VCARD.FN, fullName);
}
}
Model
在Jena中, 一个图(graph)被称为一个模型并被Model接口所表示,所以需要建模分析。
ModelFactory类 是创建不同类型模型的首选方式。在这种情况下,想要空的内存模型,所以要调用ModelFactory.createDefaultModel()。这种方法返回 Model实例,将使用它创建表示家庭中每个成员的 Resource。创建了资源后,可以编写关于这些资源的语句并添加到模型中。
资源(Resource) 是一些实体。它可以是诸如网页的web资源,或者它可以是具体的物理事物,例如树或汽车。它可以是一个抽象的想法,如象棋或足球。资源由URI命名。
addProperty 方法添加属性,两个参数,左边是属性,右边是属性值。
vCard
由IETF开发的用于描述人员和组织的规范。https://www.w3.org/TR/vcard-rdf/
此代码主要涉及 Identification Properties
Tutorial02
package jena.examples.rdf ;
import org.apache.jena.rdf.model.*;
import org.apache.jena.vocabulary.*;
/** Tutorial 2 resources as property values */
public class Tutorial02 extends Object {
public static void main (String args[]) {
// some definitions
String personURI = "http://somewhere/JohnSmith";
String givenName = "John";
String familyName = "Smith";
String fullName = givenName + " " + familyName;
// create an empty model
Model model = ModelFactory.createDefaultModel();
// create the resource
// and add the properties cascading style
Resource johnSmith = model.createResource(personURI)
.addProperty(VCARD.FN, fullName)
.addProperty(VCARD.N,
model.createResource()
.addProperty(VCARD.Given, givenName)
.addProperty(VCARD.Family, familyName));
}
}
createResource()
添加属性VCARD.N,属性值为一个资源,该资源有两个属性VCARD.Given和VCARD.Family
Tutorial03
package jena.examples.rdf ;
import org.apache.jena.rdf.model.*;
import org.apache.jena.vocabulary.*;
/** Tutorial 3 Statement attribute accessor methods */
public class Tutorial03 extends Object {
public static void main (String args[]) {
// some definitions
String personURI = "http://somewhere/JohnSmith";
String givenName = "John";
String familyName = "Smith";
String fullName = givenName + " " + familyName;
// create an empty model
Model model = ModelFactory.createDefaultModel();
// create the resource
// and add the properties cascading style
Resource johnSmith
= model.createResource(personURI)
.addProperty(VCARD.FN, fullName)
.addProperty(VCARD.N,
model.createResource()
.addProperty(VCARD.Given, givenName)
.addProperty(VCARD.Family, familyName));
// list the statemen