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