在本体中创建个人的代码?

时间:2014-03-18 06:12:58

标签: java rdf sparql jena

我想使用以下代码在我的本体中插入数据:

Resource resource = model.createResource(X_NAMESPACE + Global_ID);
Property prop = model.createProperty(RDF_NAMESPACE + "type");
Resource obj = model.createResource(X_NAMESPACE + "X");
model.add(resource, prop, obj);

首先,此代码是否正确创建了指定类型的个人? 当我运行此代码时,它保存没有问题,并且模型看起来正确,但当我想查询模型时,我遇到了问题。例如,我在X中保存了一些数据,当我检索它时,将检索所有其他数据。

1 个答案:

答案 0 :(得分:0)

您创建资源的代码是正确的,但它不是非常惯用的。 Model接口提供的方法可以使创建资源更加容易,Resource界面中的方法也可以使添加类型更容易。 Heres的代码说明了这些:

import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.vocabulary.RDF;

public class CreateResourceExample {
    public static void main(String[] args) {
        Model model = ModelFactory.createDefaultModel();
        String NS = "http://stackoverflow.com/q/22471651/1281433/";
        model.setNsPrefix( "", NS );

        // Create the class resource
        Resource thing = model.createResource( NS+"ThingA" );

        // The model API provides methods for creating resources
        // of specified types.
        Resource x = model.createResource( NS+"X", thing );

        // If you want to create the triples manually, you can 
        // use the predefined vocabulary classes.
        Resource y = model.createResource( NS+"Y" );
        model.add( y, RDF.type, thing );

        // You can also use the Resource API to add properties
        Resource z = model.createResource( NS+"Z" );
        z.addProperty( RDF.type, thing );

        // Show the model
        model.write( System.out, "TTL" );
    }
}