导出和导入ARC2 RDF数据的最佳方式是什么


What is the best way to export and import ARC2 RDF data?

最初,我做这件事的方式不对:

  • 我使用MySQL来复制表

这很糟糕,因为ARC2对它的一个表列使用了一个依赖于平台的哈希函数。

所以,我认为解决方案很简单:

// To export
$store->createBackup('backup_file.spog');
// To import
$store->query('LOAD <file://FULL_PATH_TO_FILE/backup_file.spog>');

我想发布这个问题,以防有人提出更多建议。我还是RDF和ARC2的新手。

关于ARC2问题的更多信息:

  • 为了在MySQL数据库中查找主题URI,ARC2使用http://php.net/crc32散列函数。生成的整数不是32位。尽管crc32()使用"一次32位长度的输入字符串"准备校验和,但生成的整数值取决于平台,可以在PHP_INT_SIZE和PHP_INT_MAX常量中看到

这个问题没有答案(除了我在问题中提出的答案),所以我只回答我自己的问题。唯一的选择一定是我迄今为止找到的。。。显然,在ARC2中没有其他方法可以进行完全导入/导出转储,除了。。。

// To export
$store->createBackup('backup_file.spog');
// To import
$store->query('LOAD <file://FULL_PATH_TO_FILE/backup_file.spog>');
是的,创建SPOG备份似乎是最简单的选择。然而,有一天我遇到了一些问题,我使用了rdf导出:
$ser = ARC2::getRDFXMLSerializer();
$all = $store->query("SELECT ?s ?p ?o WHERE { ?s ?p ?o }");
$rdfxml2 = $ser->getSerializedTriples($all['result']['rows']);  
file_put_contents('storename.rdf', $rdfxml2);