Как построить иерархию?

Я хочу проанализировать кусок документа и построить из него онтологию. У этого документа может быть много характеристик, и это может быть иерархия.

Каков наилучший метод программирования для построения этой иерархии с неограниченной высотой? Дерево?

Я ищу широкий «путь» программирования, а не необходимый код.


person TIMEX    schedule 19.11.2009    source источник


Ответы (2)


Я не уверен в лучшем, но один подход, который я использовал в прошлом, состоит в том, чтобы определить простой объект, который включает в себя свойство, которое представляет собой набор того же типа, что и он сам, поэтому вы можете в основном объединять объекты в цепочку; подумайте о «вложенных папках» (папка может содержать несколько дочерних папок).

Вы можете либо использовать этот подход в качестве основы для объекта, содержащего информацию, которую вы хотите собрать, либо вы можете отдать ее на откуп плоской коллекции более подробных объектов, которые просто ссылаются на объекты, определяющие древовидную структуру. Лучший подход будет зависеть от того, что вы пытаетесь сделать.

Это помогает? на каком языке вы работаете?

Вероятно, есть куча «правильных» шаблонов проектирования для проблемы, которую вы пытаетесь решить.

person Adrian K    schedule 19.11.2009
comment
объект, который включает в себя свойство, представляющее собой набор того же типа, что и он сам == Tree. - person S.Lott; 19.11.2009

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

Если вы анализируете документ, может быть интересен ANTLR.

person mpen    schedule 19.11.2009