跳到主要内容

协议规范

协议设计

概述

领域标准保障概念互通,是全系统的基础和核心,实现上主要基于Schema完成全生命周期的管理。

Schema最核心的是题型,问卷编辑器本身也受到问卷题型的影响,不同的题型配置需要搭配不同的设置模板,所以编辑器也需要一个Schema来描述和约束。基于此思路,我们设计了Meta Schema协议,用来描述问卷Schema的元协议,一份Meta Schema同时约束问卷业务协议和题型物料的搭配使用,可用于搭建端的编辑器产出问卷Schema和组件的资产包、用于渲染段的渲染器产出页面和问卷表单。

图片

术语约定

Meta Schema

元协议,描述了Schema允许的字段、结构、枚举值,使用Meta生成Schema。

问卷Schema

问卷业务协议,在Meta Schema的结构框架下,用于描述业务需要的结构,能够描述题型、问卷有效期、答题时间、提交限制等。

编辑器

实现问卷管理端可视化加工问卷的能力。编辑器引用Meta Schema实现题型物料描述协议,实现设置器构建题型的协议,实例化问卷协议。

渲染器

实现问卷投放端渲染实际投放的问卷。渲染器使用编辑器产出的代码包和问卷Schema来渲染页面和表单,根据用户交互产生表单问卷数据实例。

协议结构

业务描述

内容为问卷协议、题型协议,业务协议围绕问卷领域描述了6项配置:

  1. 基础配置

  2. 题型配置

  3. 页头配置

  4. 页尾配置

  5. 提交配置

  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也将被自动禁用。

随机

随机逻辑是一种显示逻辑,它可以在问卷设计中随机选择或排列问题或选项,以减少潜在的顺序偏差或顺序效应。随机逻辑通常应用于涉及顺序影响的问题,例如对某个产品或服务的满意度评价。

引用

引用逻辑是一种问卷逻辑,也被称为后续问题逻辑或者嵌套逻辑。该逻辑可以在问卷中提供更多的深入信息,通过让受访者参照先前回答的问题,来回答后续问题。