星期五, 九月 01, 2006

设想一种新的文档编辑器

在做毕业设计的时候,就发现用Word进行文档编辑,存在很多不方便的地方,尤其是排版的调整和文体内部逻辑关系的确定上,不尽如人意。因此设想在文档编辑器中引入现在图像处理软件里很普遍的层的概念,在逻辑层次上以广义表的结构来组织文档,而在排版层次上,以结构单位的柔性移动来实现。
传统的文档编辑器之所以会产生上述的弊端,在于它把文档组织成一个一维的结构,所有的文字,符号,图片等等,是放在一个串里面。在排版上的弊端在于,串的结构必然导致牵一发而动全身的效果,许多微小的改变需要大得更多的改变来消除在排版上的不利影响;而在逻辑结构上,文档本身可能更类似于树而非串,这样有天然的不相容性。
现在通过层和容器的嵌套来构建广义表型的结构。层具有垂直方向上的并行性,这样可以把相对独立的内容组织到不同的层里面去。例如自下而上依次为背景水纹,文本,图片,证章,批注等等。而在层的内部,则使用容器作为基本的单位,就好像电子表格中的单元格一样,将内容放置到容器中。与电子表格不同之处在于,单元格相互之间的位置关系是固定的,由各自的行列值确定,而容器则像是浮动于当前层中,相互之间可能具有三维的位置关系,且不固定,这就是所谓的柔性移动。
同样,在容器内部也可以添加层,从而形成树型的组织。
由此形成的文档,具有双重的结构:一种是排版结构,由层和容器的位置所决定,无论是总体还是局部,都可以很方便的调整,而且具有所见即所得的效果;另一种是逻辑结构,通过层和容器的嵌套和从属关系来确定,即便排版改变了,逻辑结构也不会有变化。
以后有了新的想法,再加进来。
如果有时间的话,也许会尝试自己做一个试试看。

今天洗澡的时候突然想到,DreamWeaver就是一个类似的编辑器:在同一个页面文件内部,它通过层来实现便利的排版结构;而在页面文件之间,则通过超链接实现逻辑结构。但这和我设想的编辑器还有所差别。此外,作为网页编辑器,并不具备文档编辑器所具有的排版页的概念。对于文档的编辑来说,横向的界限要受纸张大小的限制,纵向可以无限延伸,由纸张向文档投影来实现分页。

今天突然又想到,Word里面的文本框,就类似于容器的概念,它可以在当前层上自由的浮动。但相异之处在于,文本框只能发文本,而容器本身就是一个广义表。如果大门叔叔看到这篇文章,把Word改进一下的话,那我就支持他买正版:-)

今天又想到一点,如果在文档内部嵌入逻辑结构的话,是有利于实现多媒体信息的基于内容的检索的。比如我要搜索一幅与zouyuanrenren有关的图像。像类似于zouyuanrenren这种名称,如果用图像处理的方法单从图像来获取信息的话,几乎是不可能的。那么除了在图像的文件名中包含zouyuanrenren外,在整个文档中与图像同一个容器,或同一个层的文本内容中,如果包含zouyuanrenren,那该图像作为搜索结果的可能性会比较大。我不知道现有的搜索引擎对图像除了文件名以外还作了怎样的处理,可能他们是在整个页面中查找搜索关键字。但这样的方法显然质量和性能都不能令人满意。

没有评论:

发表评论