Каков наилучший способ экспорта и импорта данных ARC2 RDF? - PullRequest
4 голосов
/ 12 февраля 2012

Изначально я сделал это неправильно:

  • Я использовал 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:

  • Для поиска URI субъекта в базе данных MySQL ARC2 использует функцию хеширования http://php.net/crc32. Полученное целое число не 32 бита. Хотя crc32 () подготавливает контрольную сумму, используя «входную строку 32-разрядной длины за раз», полученное целочисленное значение зависит от платформы, что можно увидеть в константах PHP_INT_SIZE и PHP_INT_MAX

Ответы [ 2 ]

3 голосов
/ 30 апреля 2012

Нет ответов на этот вопрос (кроме ответа, который я предложил на свой вопрос), поэтому я просто отвечу на свой вопрос. Единственным вариантом должен быть тот, который я нашел до сих пор ... очевидно, что в ARC2 нет других способов сделать полный дамп импорта / экспорта, кроме ...

// To export
$store->createBackup('backup_file.spog');

// To import
$store->query('LOAD <file://FULL_PATH_TO_FILE/backup_file.spog>');
2 голосов
/ 28 марта 2013

Да, создание резервной копии 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);
...