我有包含以下数据的CSV文件(一小段内容):
ITEM_ID FAMILY SUBFAMILY
555 Adventure Adventure and extreme sports
444 Nightlife International restaurants
333 Adventure Adventure and extreme sports
我还有一个在Protégé中创建的猫头鹰格式的本体。我知道,如果我已经创建了所有的类(例如来自FAMILY的“冒险”,“夜生活”等,以及“冒险和极限运动”,“国际餐厅”, (例如SUBFAMILY)。为此,我可以使用SPARQL加载项目(ITEM_ID)作为实例。
但是我的问题是我是否还可以使用SPARQL和CSV自动创建类?这样做的目的是避免基于存储在CSV中的FAMILY和SUBFAMILY手动创建数千个类。
确实有很多方法可以做到这一点。到目前为止,这是我使用过的几对:
对于一次性练习,我的首选方法是使用Open Refine(以前的Google Refine)
您可以将您的本体与其他本体一起导入,并使用它们来使数据有意义。您选择根节点。如果您没有唯一的ID,则可以在其他列中生成它们。您必须将根节点视为URI,然后可以键入它(从您的本体和其他本体中分配一个或多个分类)。然后,您选择应该将本体中的哪些属性映射到CSV的标题,并且每列的所有单元格都会自动变为:您建模的三重模式的对象,所选的类型以及被视为URI的文本,日期等-有很多可供选择的选项。然后,您只需导出为RDF / XML或RDF / Turtle。
如果CSV文件很大,则可以增加Open Refine的内存。到目前为止,我已经成功转换了大约50万行的CSV,因为该列很多,所以生成的文件具有大量的三元组。
但是,如果您使用的是大型CSV文件,Protégé要么不会打开它们,要么会非常缓慢地工作。
那里有几个选项,包括使用Open Data Spaces和R2RML。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句