我开始了 博诺 这个项目是世界上最大的琵琶音乐收藏的网络接口,从几个角度来看,它是一个具有挑战性的收藏。这些作品大部分在1400到1600年之间,但从1200年代中期到现在都有。不用说,这些作品的分类方式和归属对象有很大的差异。很明显,任何一种死板的、由数据库强制执行的层次结构都不适合这个集合,所以我的想法变成了标签。
但并非所有的标签都是相同的。我将有代表一个人/角色的标签(作曲家、翻译家、翻译家等)、代表为其编写的工具的标签,以及代表该作品如何被几个世纪以来使用的六种不同分类系统中的任何一种分类的标签。
我们将使用半控制的标签词汇来防止失控的标签扩散(例如del.icio.us),但我希望将这些标签视为属于不同的组。当编辑器进行仪器标记等操作时,不应提供人物标签。
有人做过这样的事吗?我有几种方法可以做到这一点,但是如果有一个现有的系统做得很好,它将节省我实现/调试的时间。
FWIW:这是一个Django系统,我正在考虑从Django标签开始,然后从那里进行黑客攻击,可能会添加一个类别字段或…
2007年提交的django标签有一个问题14,它试图解决这个问题。不知道开发人员是否计划添加此功能。
但是,有一个 machinetags 分支 django-tagging 由Gregor M_¼Llegger主持 https://code.launchpad.net/~gregor-muellegger/django-tagging/machinetags/ . 它允许分配标记名称空间(和/或值),并方便按名称空间/值查询标记。所以你可以在一件作品上贴上标签 instrument:<instrument_name> 或 instrument=<instrument_name> 例如。
machinetags
django-tagging
instrument:<instrument_name>
instrument=<instrument_name>
它主要与Django标记的主干同步( 最新提交是 但是有许多提交丢失)。我记得大约一年前我自己用那个分支做了一个项目;它工作得很好。有关更多详细信息,请阅读分支机构的文档和有关该问题的评论。