是否有一种优雅的方式来存储本体图和与节点相关的定义/数据?

Wis*_*ker 4 perl ontology graph

我编写了一个简单的模块来存储和操作本体,该本体使用Perl在平面文件中提供.为此,我使用了极好的Graph模块.

我必须处理的一个问题是如何在本体中存储顶点的文本定义.每个术语都有一个小文本描述,我想存储和检索.目前,由于Graph不直接支持,我使用内部哈希.

我想知道,有一种更优雅的方式是使用单一数据结构来存储本体图与节点相关的定义/数据吗?

小智 8

以下事情浮现在脑海中:

  • 如果这只是一个"简单本体",即分类,甚至更简单,一个嵌套的术语列表,那么一个简单的YAML文件听起来就足够了.一旦反序列化为Perl哈希,您就已将任何嵌套映射到哈希/数组.

  • 如果您希望您的本体(字典,子字符,超级字母)更加标准化,您可能需要查看RDF :: SKOS.SKOS是简单(非逻辑)本体的W3C标准.

  • 如果你大胆,你可能也想看TM(主题图).它具有与SKOS类似的"功能",但是是ISO(非W3C)标准.

  • 如果您希望本体增长/发展并且还包含简单的逻辑语句(请参阅描述逻辑),您可能需要查看其中一个RDF包.我使用过RDF :: Redland,还有RDF :: SimpleTobyKjetil所做的,值得一试.最近有很多活动.

  • 如果你的本体是大的,或者你想在你的本体上存储大量的实例数据,那么RDF :: AllegroGraph就是你要走的路.但那使用外部服务器.认真的软件.

分手注意事项:并非所有看起来像图形的东西都是一个.实际上,Topic Maps和RDF都不是图形结构.