如何使用jena读取本体(owl文件)并从CSV文件填充此本体(ontModel),然后将填充的OntModel写入OWL文件
答案 0 :(得分:3)
您的问题分为三个部分:
Model
Model
的内容写入文件使用Jena(参见Model.read()
和Model.write()
方法可以很容易地实现第一和第三种方法,而FileManager
则可以从不同位置获得一些额外的便利支持。)
第二部分是棘手的。通常,在将CSV文件转换为RDF时,我们假设每行代表一个RDF资源及其属性。您有三个任务要做:
例如,请考虑以下CSV:
id,name,age,occupation
2718,fred,107,ninja
我们可以使用CSV的第一行来建议RDF谓词名称。 foaf:name
和foaf:age
是前两列的合适选择,但我们的命名空间可能需要第三列http://example.com/vocab#occupation
的新谓词。资源URI将基于数据的密钥,在本例中为id
列,表明第一行表示的资源的URI将为http://example.com/data/employee/2718
。最后,我们必须映射数据。名称只是一个字符串,age是一个整数,占用是一个资源。鉴于这些选择,我们可能会得到如下输出:
<http://example.org/data/employee/2718>
a foaf:Person;
foaf:name "fred";
foaf:age "107"^^xsd:integer;
example_com:occupation <http://dbpedia.org/resource/Ninja>.
W3C工作草案R2RML定义了用于执行这些类型翻译的标准化映射语言。各种implementations of R2RML可用。当然,如果您的映射相当稳定,那么只需编写一些代码就可以为您的特定输入数据执行CSV转换,这将非常简单。