问题描述
我是语义网的新手,我想建立一个基于本体的数据库。我使用protégé创建了一个本体,然后使用Java创建了本体模型(ontologyModel),还将关系数据库转换为RDF,我使用了d2rq,然后修改了d2rq生成的映射文件以匹配在protégé中创建的本体中使用的术语。我有数据库(实例)的RDF文件。我想将本体和RDF文件结合起来,这意味着我想使用RDF文件的实例来填充本体。我创建了RDF模型(RDFmodel)并将RDF文件导入到其中。然后我尝试像这样使用OntModel.add(RDFmodel)将它们结合起来:
String file = "/Users/.../file.owl";
String file2 = "/Users/...file2.ttl";
OntModel ontologyModel = ModelFactory.createOntologyModel(pelletreasonerFactory.THE_SPEC);
InputStream in = FileManager.get().open(file);
jenaModel.read(in,null);
Model RDFmodel = ModelFactory.createDefaultModel();
InputStream in2 = FileManager.get().open(file2);
RDFmodel.read(in2,null);
ontologyModel.add(RDFmodel);
但是它不起作用,因为我得到的结果模型中重复的类具有相同的名称,这意味着在RDF文件中存在一个带有实例的类(Person),而本体中我们也存在一个没有实例的Person类。最终,我们在同一模型中得到了两类(人)。我希望您能为我提供帮助。预先感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)