如何在本体中自动创建类?

时间:2017-02-23 10:49:21

标签: csv sparql owl ontology protege

我有带有followig数据的CSV文件(小提取):

ITEM_ID FAMILY      SUBFAMILY
555     Adventure   Adventure and extreme sports
444     Nightlife   International restaurants
333     Adventure   Adventure and extreme sports

我还有一个我在Protégé中创建的猫头鹰格式的本体。我知道可以将CSV文件加载到本体中,如果我已经创建了所有类(即“冒险”,“夜生活”等来自FAMILY,以及“冒险与极限运动”,“国际餐厅”,来自SUBFAMILY)。为此,我可以使用SPARQL将项目(ITEM_ID)作为实例加载。

但是我的问题是我是否也可以使用SPARQL和CSV自动创建类?我们的想法是避免基于存储在CSV中的FAMILY和SUBFAMILY手动创建数千个类。

1 个答案:

答案 0 :(得分:2)

确实有很多方法可以做到这一点。这是我到目前为止使用的一对夫妇:

1。 OpenRefine with RDF plug-in

对于一次性练习,我的首选方法是使用Open Refine(以前的Google优化)

您可以与其他人一起导入本体,并使用它们来理解数据。您选择根节点。如果您没有唯一ID,则可以在其他列中生成它们。您必须将根节点视为URI,并且可以键入它(从您和其他本体中分配一个或多个)。然后,您可以选择将本体中的哪些属性映射到CSV的标题,并且每列的所有单元格将自动变为:您建模的三元模式的对象,您选择的类型的对象,并将其视为URI,文本,日期等 - 有很多选项可供选择。然后你只需导出为RDF / XML或RDF / Turtle。

如果您的CSV文件非常大,则可以增加Open Refine的内存。到目前为止,我已经设法转换了大约五十万行的CSV,因为列很多,结果文件有很多三元组。

但是,如果您使用大型CSV文件,Protégé将无法打开它们,或者工作速度会非常慢。

2。 Virtuoso CSV赞助商

有几种选择,包括使用Open Data Spaces以及R2RML