基于信用评价和知识共享为中心的网络协作模型设想(续1: 信用评价模块)

一、信用评价的目的

        对系统中的人,以及由人创作的作品内容,以评价人的知识经验和个人信用为基础,进行可更新的、可取消的、可跟踪的、记名的数值评价。

二、信用评价的主体和客体 

        主体:具有能动性的人;
        客体:由人提供的内容(直接客体)、提供内容的人(间接客体);

        说明:
        人在整个信用评价的体系中处于一个微妙的地位,即人既是评价的主体,又可以作为内容的提供者,成为被评价的客体,当然,人作为客体时,主要作为“内容提供者”这一间接客体,即不是直接评价“人”,而是通过评价某人提供的某内容,间接的把评价结果转化为对该人的评价。
        这里弱化了一点,即人的行为。从整体的概念上讲,“由人提供内容”本身属于人的行为之一,内容是行为的产物,而以上的客体叙述中,只列出了内容和提供内容的人,显然并不完备。在现实生活中,一个人需要被评价的,除了其行为的产物,往往还包括其行为本身的影响和产生行为的动机。但是,作为一个网络协作平台,一般是以内容为中心的,也因此,人的行为(包括行为的影响和产生动机)很大程度上可以根据行为的产物——内容来间接评价,因此,小弟认为,此处对人的行为的评价的弱化是可以接受的。

三、应用情景分析 

        1、情景一:人员A,在“.Net技术”领域的“怎样建立一个可重用的通用Web评价模块”这一主题下,发表了一篇文章(记为内容a)。人员B,通过内容搜索引擎,找到这篇文章,读过文章之后,认为文章写得很不错,因此,对其进行评价,评价时,他首先给文章打分(所有的评分取值都在0-10之间),B为内容a打了8分的同时,他还给出了一段为什么打这个分的描述性文字——“很有参考价值,正好可以将思想借用到是我的项目中去,太感谢了!”。(其他可参考数据:人员A有一个总的信用值7分,在领域“.Net技术”有一个信用值8分和一个用发贴数代表的经验值23; 人员B有一个总的信用值8分,在领域“.Net技术”有一个信用值9分和一个用发贴数代表的经验值52)

        1) 问题 
        以上的情景应该是一个比较通常的评价的过程,那么先来分析一下,这个简单的过程会涉及哪些问题:
        ·人员A刚创建内容a时,内容a还没有被任何他人评价过,那么,内容a这时处于一个什么地位呢?之所以会问这一问题是因为,当采用评分机制来帮助筛选内容时,未被评价过的内容,是属于“好”内容,还是“差”内容呢?问得更明白些,一个未经过评价的内容,是不是应该有一个初始评分呢?这个初始评分,以什么为标准来确定呢?是统一的采用中间值,比如5分来评定,还是,根据作者原有的信用值和领域经验计算一个初始值,如果要计算,那么怎样计算才合理呢?
        ·人员B对内容a进行了一次评价(8分,以及一段文字),那么,人员B的这一评价,会对内容a的平均分值产生什么影响,又会对内容a的作者人员A的信用值产生什么影响呢?是简单的将评价累积平均到内容a及人员A原有的评价分值还是该根据人员B原有的信用值和领域经验,将评价附加一个权值,再与内容a和人员A原有的信用分值进行累计平均呢?如果要这样做,那么这个权值又该怎样计算才合理呢? 
        
        2) 分析
        以上两个问题,未必能轻易解决,但是,至少,每个被评价对象需要一个初始评价值,并且,每一次评价,需要有一个表示评价可靠程度的权值,我想应该没有太大疑问,退一步说,怎样计算这两个值得问题,属于专业领域问题,甚至,对不同的领域,如果有必要也可以有不同的计算方法,因此,作为一个通用信用评价模块来说,只需记录这两个值即可。对于权值,一个简单可行的运用方法就是,取大于1的正整数,最小值为1,当一个评价的权值大与1时,则可理解为,该评价分量更重(比如,可以在计算平均值时,简单的将这一个评价,当作多个评价来处理,高手一句话,胜过低手十句。这我想应该不难理解,现实生活中,我们经常也会说,对同一问题,某专家的评语肯定要比一个无名小卒的评语分量更重的)。对于怎样将对内容的评价转化为对内容作者的评价,同样是一个专业领域问题,计算逻辑也不应该是放在评价模块内部的。

        2、情景二:延续情景一,在上次人员B对人员A的内容a作完评价的三天后,人员B很气愤地再次找到人员A的a这篇文章,为什么呢?因为他气愤地发现,人员A在文章a中给出的范例,理论性太浓,完全不符合人员B的项目需要,他觉得可能第一眼看到时过高评价a了,他想把原来的评分8分改为6分比较合适,并且它可能希望对A说明一下,为什么这样改变评价值,但是,这时,已经有其他人也对a进行过多次评价了,现在包括B上次给出的评价外,又有9人对a作出过评价,现在内容a的平均分值为7.1分。(其他可参考数据:人员A的总信用值现在为7.3分,在领域“.Net技术”的信用值7.5分和用发贴数代表的经验值25; 人员B总信用值8分,在领域“.Net技术”信用值9分和用发贴数代表的经验值52)

        1) 问题
        ·新的问题出现了,人员B企图修改以前的评价,那么这个新的修改后的6分的评价是该完全代替原来8分的评价呢,还是该像新评价一样进行叠加呢?叠加是简单的处理方式,但是,不追回以前的错误评价是否合理呢?如果不叠加,而是采用更新原来的评价,那么,由原来的的评价引出的对人员A的信用评分值是不是应该也追回和更改呢?评价模块该怎样维护这种一致性呢?

        2) 分析
        很显然,叠加的处理方式不合理也不公平。设想,如果A和B私下关系很好,而B信用值和领域经验值很高,则如果B可以多次叠加评价A的作品a的话,势必造成评价数据混乱和不真实。而采用后一种的方式的话,则要求评价模块,必须要有一个对历史评价的追踪机制,以在日后更新评价或撤销评价时,作出应有的对被评价对象的信用评分的更新的同步。


四、数据结构设计  

        1、分析
        对于被评价的对象,主要需记录两方面的属性:
        1) 被评价次数 (体现该对象的被关注程度);
        2) 平均评价分值 (对人,体现该对象的能力值,对内容,体现内容包含信息的有用性);

        对过程,主要记录的属性:
        1) 可追踪的、可更新的、可取消的信用评价记录日志; 

        2、设计 
       

五、接口设计 

       
        说明:
        对人的评价没有显式的CUD操作,但是实际上每次对Article的评价处理,都要对Article的作者同步更新评价值。

六、其他

        本文的讨论的前提,请参见:基于信用评价和知识共享为中心的网络协作模型设想

//文章结束
原文地址:https://www.cnblogs.com/teddyma/p/98681.html