我有带有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手动创建数千个类。
答案 0 :(得分:2)
确实有很多方法可以做到这一点。这是我到目前为止使用的一对夫妇:
对于一次性练习,我的首选方法是使用Open Refine(以前的Google优化)
您可以与其他人一起导入本体,并使用它们来理解数据。您选择根节点。如果您没有唯一ID,则可以在其他列中生成它们。您必须将根节点视为URI,并且可以键入它(从您和其他本体中分配一个或多个)。然后,您可以选择将本体中的哪些属性映射到CSV的标题,并且每列的所有单元格将自动变为:您建模的三元模式的对象,您选择的类型的对象,并将其视为URI,文本,日期等 - 有很多选项可供选择。然后你只需导出为RDF / XML或RDF / Turtle。
如果您的CSV文件非常大,则可以增加Open Refine的内存。到目前为止,我已经设法转换了大约五十万行的CSV,因为列很多,结果文件有很多三元组。
但是,如果您使用大型CSV文件,Protégé将无法打开它们,或者工作速度会非常慢。
有几种选择,包括使用Open Data Spaces以及R2RML。