协议规范
协议设计
概述
领域标准保障概念互通,是全系统的基础和核心,实现上主要基于Schema完成全生命周期的管理。
Schema最核心的是题型,问卷编辑器本身也受到问卷题型的影响,不同的题型配置需要搭配不同的设置模板,所以编辑器也需要一个Schema来描述和约束。基于此思路,我们设计了Meta Schema协议,用来描述问卷Schema的元协议,一份Meta Schema同时约束问卷业务协议和题型物料的搭配使用,可用于搭建端的编辑器产出问卷Schema和组件的资产包、用于渲染段的渲染器产出页面和问卷表单。
术语约定
Meta Schema
元协议,描述了Schema允许的字段、结构、枚举值,使用Meta生成Schema。
问卷Schema
问卷业务协议,在Meta Schema的结构框架下,用于描述业务需要的结构,能够描述题型、问卷有效期、答题时间、提交限制等。
编辑器
实现问卷管理端可视化加工问卷的能力。编辑器引用Meta Schema实现题型物料描述协议,实现设置器构建题型的协议,实例化问卷协议。
渲染器
实现问卷投放端渲染实际投放的问卷。渲染器使用编辑器产出的代码包和问卷Schema来渲染页面和表单,根据用户交互产生表单问卷数据实例。
协议结构
业务描述
内容为问卷协议、题型协议,业务协议围绕问卷领域描述了6项配置:
基础配置
题型配置
页头配置
页尾配置
提交配置
皮肤配置
这份协议的结构稳定,每一项配置都支持扩展使用,并且保证每份配置的独立性和完整性。
详情可查《问卷业务协议规范》
物料描述
内容为题型物料协议, 包含题型和设置器,在实现业务协议的同时,还增加了业务协议交互组件的描述协议。
详情可查《题型物料协议规范》
题型设计
问卷领域最核心的部分是题型和逻辑,最基础的题型有两类:开放式题型和封闭式题型。基础的值类型有两种:数值型和文本型,数值型仅用于评分和NPS题型。
所有的题型基于BaseElement派生出来,实现两个基本的开放式题型InputElement和封闭式题型OptionElement,单行输入题型继承InputElement,单选题型继承OptionElement,具体实现的题型使用包装器注册到题型的Registry,根据规则自动解析对应的题型实现类。
对于题型的判断方法,可以放在BaseElement实现,使用baseType get方法获取当前题型最基本的题型枚举值如block、text或者option,用于基本题型的抽象方法,可以实现isOption、isMatrix、isOther判断该提醒更具体的属性。
每个具体实现类,可以实现自己的特性,比如NPS虽然继承的选项题型,但是本身并没有options值,需要根据npsMin和npsMax生成数值序列,放在options字段中,实现兼容选项类题型,那么在显示逻辑、跳题逻辑、无效问卷逻辑等设置时,就不需要考虑选项类题型的差异性了。而对于引用逻辑,可以考虑使用compute方法实现引用。
题目
题目包括了整个问题,包括题干及其它相关信息,例如选项、提示、逻辑等。题目的作用是帮助受访者理解问题的目的和意义,并提供必要的上下文和信息,以便受访者能够正确回答问题。
例如,"你最近是否购买过我们的产品?如果是,请回答以下问题:"这个例子中,"你最近是否购买过我们的产品?"就是题干,"如果是,请回答以下问题:"则是题目的一部分,它提示受访者接下来将要回答的问题。
题干
题干是指问题的具体描述或要求。题干通常是一个短语、句子或段落,旨在引导受访者回答问题并提供必要的上下文信息。
例如:你最近是否购买过我们的产品?
题型
题型是指问题的结构和形式,包括选择题、填空题、打分题、矩阵题等。题型决定了问题的回答方式和回答内容的形式。例如,选择题可以让受访者从给定的选项中选择一个或多个答案,而填空题则要求受访者填写自己的答案。
题型的设计允许自定义扩展,以下是问卷支持和可自定义扩展的题型:
开放式题型
单行输入题
多行输入题
手机号题
填空题
图片上传题
问卷上传题
矩阵单行输入题
矩阵多行输入题
隐藏题
封闭式题型
单选题
多选题
评分题
NPS题
投票题
判断题
排序题
预约题
车牌选择题
车型选择题
日期选择题
时间选择题
城市选择题
多级联动题
地图选择题
矩阵单选题
矩阵多选题
组合题
Block类型
段落标题
协议题
分页
矩阵
在矩阵题中,行和列是两个重要的概念,它们通常用于组织问题和选项,以帮助受访者更清晰、更快速地回答问卷。行是一系列类似的问题,每个问题通常包含一个描述或标签,例如"您对以下哪些方面比较关注?","以下是本产品的各个特性,请选择您认为最重要的三个特性"等。受访者需要根据自己的看法,在该问题下面选择一个或多个选项。列是一组类似的选项,通常包含一系列相关的描述、属性、特征等,例如"价格低廉","质量可靠","操作简单"等。受访者需要根据自己的看法,在该列下面选择一个或多个选项。行和列的交叉点形成了一个单元格,每个单元格代表了一个特定的问题和选项组合,它们一起构成了矩阵题的基本结构。受访者需要在每个单元格中选择一个或多个选项,以表达自己的看法、态度或偏好。
逻辑
显示
显示逻辑是指根据受访者之前的答案,控制后续问题是否显示的逻辑。显示逻辑也称为条件逻辑或分支逻辑。
跳题
跳题逻辑是一种显示逻辑,它根据受访者当前的答案,决定要跳过接下来的问题或页面。跳题逻辑也称为跳过逻辑或跳转逻辑。
互斥
互斥逻辑是一种显示逻辑,它控制多个问题之间的关系,确保受访者只能回答其中一个问题。互斥逻辑也称为排他逻辑,通常在设计单选题和多选题时使用。
例如,在一个问卷中,受访者可能需要回答一个单选题,其中有三个选项:选项A、选项B和选项C。如果使用互斥逻辑,那么当受访者选择了选项A时,选项B和选项C将被自动禁用,以确保受访者只回答其中一个选项。同样地,当受访者选择了选项B或选项C时,选项A也将被自动禁用。
随机
随机逻辑是一种显示逻辑,它可以在问卷设计中随机选择或排列问题或选项,以减少潜在的顺序偏差或顺序效应。随机逻辑通常应用于涉及顺序影响的问题,例如对某个产品或服务的满意度评价。
引用
引用逻辑是一种问卷逻辑,也被称为后续问题逻辑或者嵌套逻辑。该逻辑可以在问卷中提供更多的深入信息,通过让受访者参照先前回答的问题,来回答后续问题。