【发布时间】:2014-03-26 10:03:37
【问题描述】:
当我在模型中创建资源并打印 URI 时,我得到了正确的命名空间。例如,URI 是
http://www.somesite1.com/rdfdump/resources/resourceid-1
但是,当我将资源导出到 RDF file (link to the file) 并导入它时,我得到的资源 URI 指向磁盘中文件的物理位置,例如
file:///D:/somefolder/resources/resourceid-1
我将com.hp.hpl.jena.rdf.model.Model 与com.hp.hpl.jena.ontology.OntModel 结合使用。 RDF 模型存储资源,我使用OntModel 定义了一个本体。按以下方式初始化它们。
com.hp.hpl.jena.rdf.model.Model model = ModelFactory.createDefaultModel();
OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM, model);
NS = "http://www.somesite2.com/ontology"
BASE_URL = "http://www.somesite1.com/rdfdump/"
OntClass ocResource = ontModel.createClass(NS + "#RESOURCE");
//read an RDF file into the model
RDFDataMgr.read(model, file.toURI().toString());
这就是我创建资源的方式。
String uri = BASE_URL + "resources/resourceid-1";
com.hp.hpl.jena.rdf.model.Resource rdfResource = model.createResource(uri, ocResource );
您能否指出我哪里出错了,为什么我在导入文件时没有得到正确的 URI?
我注意到的一件事是,如果 Jena RDF 模型和 OntModel 的基本 URL 相同,即 http://www.somesite.com/...,那么我无法使用
ocResource.listInstances()
尽管有资源,但它给了我 0 资源。
【问题讨论】:
-
将模型写入磁盘的代码在哪里?另外,请在问题中显示(至少一个样本)输出;我们需要查看here的数据才能使问题有意义。
标签: java uri rdf jena ontology