D 的个人博客

但行好事莫问前程

  menu
417 文章
3446695 浏览
5 当前访客
ღゝ◡╹)ノ❤️

88250 的“一分钟想法”

88250 在重复着无数人的思考。

1 知识共享

在各种网络社区上有很多有想法的人。有想法的人聚在一起是一件好事,但是太多的想法应该有一个“汇总”。具体说,应该提供一个让大家方便知道对方想法的应用,不应该只单纯依赖搜索功能来提供,因为目前的搜索功能不够智能。换句话说,搜索不是提供知识共享系统化的有效途径。

我 们在某个技术社区讨论问题的时候往往缺少必要的“前提假设”。例如,A 提出了一个问题 x,B、C、D 参与了进来讨论。但讨论过程中 B 发现自己对问题 x 的基础背景 y 与 C 掌握的不同,然后 B 与 C 开始就背景知识 y 讨论。与此同时 D 发现就问题 x 而言,基础背景知识 y 并不够“基础”,还有很多相关的知识点需要达成统一认识才能对问题 x 进行讨论。因此,D 与 A 开始了问题 x 的“元问题”讨论。后来,E、F .... 参与了问题 x 的讨论,并重复着 A、B、C、D 的问题讨论方式。后来,M 对这些讨论进行了汇总,可同时又引起了对这个汇总的若干讨论....

这个场景中,在大家一起讨论问题前缺乏了统一的前提假设,缺乏的是大 家对问题的本质理解,没有对某一问题进行"已知的全面"的研究。这个"已知的全面"我认为应该是建立在目前 Internet 上可以提供的信息域内的。知识共享是 Internet 带给我们的最大好处之一,但是这样海量的信息如果不以某种方式进行建模规划,对我们来说又有多大价值呢?

就刚才讨论问题的例子来说,如果所有问题 x 的讨论参与者都有统一的背景知识,那问题 x 可能就不是问题了,因为问题 x 早已经有了解决。

前面说的“知识”可以是一个问题,一个想法,或者就是一个具体的知识点,下面亦同。

我想在建立一个“知识共享”应用:

  1. 将 Wikipedia 里的词条进行图形化显示
    Wikipedia 是目前较为全面的百科了,我们的很多思考都是建立在已有知识上的。将其词条、及其相关引用以图结构(Graph-based)的方式进行汇总显示有利于让我们知道自己感兴趣的词条在整个知识系统中的位置,对我们去挖掘相关知识有很大的帮助。
  2. 建立“知识地图”
    举个应用场景:A 想提出一个问题 x,在“知识地图”对 x 进行了定位,发现没有对 x 的历史记录以及相关问题的记录。然后 A 正式提出了问题 x,大家在讨论时都基于 Wikipedia 以及已有的“知识地图”进行讨论,讨论结果将被收录于“知识地图”中。


“知识共享”设计难点

  1. 知识地图如何进行描述 / 建模?
    知识地图应该是一个基于图的数据结构,图中的每个节点表示一个知识,还有很关键的一点就是对知识进行有效的定位。在知识地图中的节点将与 Wikipedia 的词条进行关联,也就是前面提到的问题的“前提假设”。....

 

2 OpenTag

Tag 在以信息为主的站点中已经非常普及了。举个列子,一篇文章“Java 持久化中的 Hibernate”被发布了,那么 Tag 的建立方式可以有如下两种:

  1. 作者对这篇文章进行内容分类
    至少作者应该添加“Java”与“Hibernate”这两个 Tag,其突出的是作者对文章内容的归纳,也即关键字。
  2. 读者对这篇文章进行个人分类
    读者 A 可能会添加“Java”与“Hibernate”;读者 B 可能会添加“冬眠”、“Java”与“英语”....其突出的是对各读者对文章内容的归纳,是个性化的标记。

delicious 从它的使用者的角度对这两种 Tag 建立方式进行了统一。你可以看到作者的 Tag,同时作为读者还可以对其加入自己的 Tag,并提供了 Tag 订阅。这样做是非常大的一个进步(至少从“开放式应用”的角度上来看)。但是,这个进步也许还不是足够开放。我认为可以在 Tag 的建立方式上创新一下:文章作者在发布文章的时候添加文章的 Tag,但该文章的浏览者可以对其 Tag 作出评分,并且可以补充 Tag。

还 是前面的例子:文章作者添加了“Java”与“Hibernate”,浏览者 A 对 Tag “Java”进行了加分,“Hibernate”进行了减分,并补充了一个 Tag:“Spring”;浏览者 B 也对“Java”进行了加分,同时也对“Spring”进行了加分;…… 一段时间后,这篇文章的 Tag 可以从高分到低分进行排序,从而可以确定该文章最符合的分类。这样,订阅这个 Tag 的人就可以更准确地找到自己想要的内容了。

不过,这样的开放是有很多前提的,最重要的一点就是文章的质量。高质量的文章会吸引更多的读者进行 Tag 评分与补充。另外,任何“开发式”应用最大的问题就是如何管理,海量的垃圾、无用信息如何过滤....

3 我的原创!

网 络上的文章数不胜数,可惜很多文章都是重复的、质量低下的。转载网站甚至什么都不标明就将原作者们的劳动成果“偷”过来换流量了....一个高质量的论坛 服务、博客服务我认为应该是不能出现非原创内容的,或者是一篇帖子、文章的转载 / 引用内容不应该超过某个比例,而且引用内容应该注明。这个限制可以为论坛、博客的浏览者提供更好的知识。

内容是否是原创应该如何判别呢? 这个问题很难解决,所涉及的领域在计算机科学(内容语义、模式识别)上尚未形成完美的解决方案。但是从应用的角度出发,我觉得是可以作一定的判断的。利用 Google Search API,可以将节选文本内容在网络上进行搜索,发现了重复的就认为是转载 / 引用。虽然这样不可能做到精确判别,但是这是有效的。因为很多人在转载文章时不会刻意去对转载内容进行修饰。

4 B3log(Bulletin Board Blog)


这个想法是 OpenTag 的衍生产物,后 Web 2.0 过渡期????
众所周知,Blog / Space 是一种以个人为中心的应用;BBS / Forum 则是以社区为中心的应用。这两者之间可以互通的地方相信大家都各执己见。我是这样认为的:从 Syndication 来看,Atom 标准的一个扩展(Thread)规范非常简单、直接地解决了论坛、Blog 数据聚合的问题。但是,从应用看确实不是那么简单。

  1. 分类问题
    博 客的分类一般有两种:固定分类、Tag 分类。我觉得以 Tag 进行文章知识的整理是最可行的,因为一片文章往往涉及不定个数的知识点或关注面。而论坛的分类(板块)都是固定的,相应版区下面有相应的文章。如果把论坛 的版区设计为动态的,以 Tag 进行分版,关注什么 Tag 就订阅它(delicious),这是统一博客与论坛应用的基础。
  2. 视图问题
    如 果你是个 Blogger,你最关注一定是博客的浏览量、评论数以及订阅数。可以这么说,博客是自己在网络上的家,博主非常在乎别人对自己的关注。一般发表的博客文 章都是博主对生活、工作、学习的态度,以引发一些共鸣。当然,专业、技术博客发表的文章一般是对某个领域的见解;如果你是个 Forumer,你最关注的一定是回复的有效性。在论坛里一般都是问问题,传说中的高手可能会写一些思想方面的文章(可以放在博客里)给大家看。从“思想 方面的文章”看,与博客有共通之处。视图,我认为就是自我对世界的认知接受感官。有的人对博客视图敏感,有的人对论坛视图敏感而已。但是,出于开发应用的 角度,这也许过于抽象。
  3. 回复问题
    总的看来,无论是回帖还是博客评论,都可以看做是“回复”。我认为,把对博客文章的评论当作是论坛的回帖是可行的,反之亦然。


整合 Blog 和 Forum 虽早已有尝试(JavaEye),但那不是我想像中的 :-)

....

突然间 Google Wave 进入了大家的视野,又一个以 Open 为主的设计。也许哪一天所谓的面向对象可以真正面向对象了(而不是现在的面向类),开放-封闭原则的价值才真正能够体现。