Есть ли элегантный способ хранить график онтологии и определения / данные, связанные с узлами?

StackOverflow https://stackoverflow.com/questions/3803405

  •  25-09-2019
  •  | 
  •  

Вопрос

Я написал простой модуль для хранения и манипулирования онтологией, которая предоставляется в плоском файле с использованием Perl. Для этого я использую Графический модуль который отлично.

Одним из проблем, с которым мне предстоит иметь дело, является то, как хранить текстовые определения для вершин в онтологии. Каждый термин имеет небольшое текстовое описание, которое я хочу хранить и получать. На данный момент, как график не поддерживает это напрямую, я использую внутреннюю хеш.

Мне было интересно, есть ли более элегантный способ иметь единую структуру данных для хранения как на онтологии графика а также Определения / данные, связанные с узлами?

Это было полезно?

Решение

То Graph Модуль позволяет прикрепить атрибуты к вершинам и краям. Это то, что вы имеете в виду, когда вы говорите, что вы используете внутреннюю хеш? Если нет, возможно, это поможет:

use Graph;
my $g = Graph->new;

my ($v1, $v2) = qw(A B);
$g->add_edge($v1, $v2);

$g->set_vertex_attribute($_, 'desc', "Vertex $_") for $v1, $v2;
print $g->get_vertex_attribute($_, 'desc'), "\n"  for $v1, $v2;

Другие советы

Следующие вещи приходят на ум:

  • Если это просто «простая онтология», то есть таксономией, или даже проще, вложенный список терминов, то простой Ямл файл звучит достаточно. Однажды десериализовали в хэш Perl, вы сопоставили любое гнездо в хэши / массивы.

  • Если вы хотите, чтобы ваша онтология (словарь, подставные, сверхстреки) быть более стандартизированным, вы можете посмотреть на RDF :: SKOS.. Скитание Это стандарт W3C для просто (не логики) онтологии.

  • Если вы дерзкие, вы также можете посмотреть на Тм (Тема карты). Он имеет аналогичную «функциональность» как SKOS, но является стандартом ISO (не W3C).

  • Если вы ожидаете, что ваша онтология выращивает / развивается, а также проводить простые логические утверждения (см. Описание Логики), вы можете посмотреть на одну из пакетов RDF. я использовал RDF :: Redland., но также RDF :: просто или что Тоби а также Kjetil. Делай, стоит попробовать. Много деятельности в последнее время.

  • Если ваша онтология большая, или вы хотите хранить много данных экземпляра вместе с вашей онтологией, затем RDF :: Allegrograph это путь к работе. Но это использует внешний сервер. Серьезное программное обеспечение.

Падение примечания: не все, что выглядит как график, - это один. Ни одна тема карты, ни RDF - это графические структуры на самом деле.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top