我使用Java库Jena来解析我的RDFS本体:
model = ModelFactory.createOntologyModel(OntModelSpec.RDFS_MEM);
model.read(new FileInputStream(ontologyPath), "");
然后添加一些语句并保存如下:
s = model.createStatement(resource, hasName, user.getName());
model.add(s);
m.write(System.out, "RDF/XML");
显然,语句随后被写入本体文件。
我的问题是:应该这样吗?通常的做法是本体和三元组保持在同一个文件中,还是应该分开?此外,如果它们应该分开,我该如何处理耶拿?
这在很大程度上是应用程序特有的问题。对于小的、一次性的东西,将属性和类声明与实例数据放在同一个本体中没有太大问题。但是,当您想要重用某个词汇表时,将其分开通常更有意义。
在耶拿,让他们保持相同的模式是很容易的;你只需要创建一个模型,然后用它做所有的事情。你可能不需要一个这样的例子。要在不同的模型中加载东西,最简单的方法是使用OntModels和子模型,或者使用联合模型。在文档中查找相关的地方,至少是开始的地方,可能是:
- void ontmodel# addSubModel(Model Model)
- Model #union(Model Model)
- 公共静态模型ModelFactory#createUnion(Model m1, Model m2)