D 的个人博客

开源程序员,自由职业者

小而美的 Java 博客系统 Solo
Golang 在线 IDE Wide
黑客与画家的社区 Sym
  menu
401 文章
1,868 评论
3399524 浏览
6 当前访客
ღゝ◡╹)ノ❤️

StoneAge Dict 技术方案的可行性[1]

上次和项目经理讨论了技术选型的事,现在简单地说一下,等下次开会再系统地讲。
1. 平台环境:
    Java1.5+
2. 用户接口:
    Web: JSP, JSF+Spring2.5x
    Desktop: JavaFX
3. 技术:
    dictzip(解析StarDict词库), XML
因为StarDict是目前很受欢迎的一个开源(GPLv3)辞典,拥有很多它做过格式统一的词库。我们可以基于这些词库构建我们的产品。

StarDict词库基本格式说明:
1. 词库*.dict.dz文件使用dictzip算法(基于gzip)压缩的,保存了词汇的解释
2. 词汇索引文件*.idx,普通二进制文件,例如:
     star       0                                             231
     ^单词    ^在dict.dz中的offset             ^在dict.dz中的解释长度
3. 信息文件*.ifo,普通文本。保存一些这个词库的说明信息,比如词汇量,版本,作者等

我们可以将StarDict的所有词库转换为我们的格式,用XML存储,压缩算法未定。

下面是词库转换子系统的可选方案:
方案一:
直接使用StarDict的C++库。Java写Adapaters,JNI调用,构建Converter。
方案二:
纯Java编写转换StarDict词库。

目前,方案二已经在实验中,可以转换少量的词汇。(Heap space overflow)

好了,先到这里。
吃年饭了,祝大家新春愉快 :-)
等晚上继续实验。。。。
 

评论