| ... | @@ -19,3 +19,310 @@ |
... | @@ -19,3 +19,310 @@ |
|
|
| Git项目 | 总提交次数 | 历次提交信息 | - |
|
|
| Git项目 | 总提交次数 | 历次提交信息 | - |
|
|
|
| 毕设 | 最终得分 | 历次提交内容及得分 | - |
|
|
| 毕设 | 最终得分 | 历次提交内容及得分 | - |
|
|
|
|
|
|
|
|
|
# 团体/学生信息数据结构
|
|
|
|
|
|
|
|
若查询的结果类型为学生个人,则数组中相关元素的结构为:
|
|
|
|
|
|
|
|
```
|
|
|
|
{
|
|
|
|
"id": "",
|
|
|
|
"accountHomepage": "",
|
|
|
|
"accountName": "",
|
|
|
|
"mbox": "",
|
|
|
|
"phoneNumber": ""
|
|
|
|
"objectType":"Agent"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
若查询的结果类型为团体,则数组中相关元素的结构为:
|
|
|
|
```
|
|
|
|
{
|
|
|
|
"id": "",
|
|
|
|
"accountHomepage": "",
|
|
|
|
"accountName": "",
|
|
|
|
"objectType":"Group"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
# 学习内容查询结果的数据结构
|
|
|
|
|
|
|
|
一项学习内容的查询结果用一个JSON对象表示,不同学习内容的查询结果可能有不同的属性。如查询某作业的结果如下:
|
|
|
|
|
|
|
|
```
|
|
|
|
{
|
|
|
|
"id": "2000",
|
|
|
|
"name": "课后作业一",
|
|
|
|
"description": "这是课后作业一",
|
|
|
|
"type": "通用测评题",
|
|
|
|
"questions": {
|
|
|
|
"10000": "40.0",
|
|
|
|
"10001": "60.0"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
查询某作业题目的结果如下:
|
|
|
|
|
|
|
|
```
|
|
|
|
{
|
|
|
|
"id": "10000",
|
|
|
|
"name": "2020竞速作业题目一",
|
|
|
|
"description": "",
|
|
|
|
"tags": [
|
|
|
|
"竞速",
|
|
|
|
"计算复杂度"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
为了便于描述及理解,本文档将学习内容的各属性划分为通用属性(详见4.3.2节)及专有属性(详见4.3.3节)。通用属性是指所有学习内容都会包含的属性,而专有属性表示该类学习内容特有的属性。如上述论坛及作业的查询结果中,"id"、"name"及"description"这3个属性是通用属性,而"type"、"questions"是作业的专有属性,"tags"是作业题目的专有属性。每项学习内容的查询结果由通用属性及专有属性构成,示意如下:
|
|
|
|
|
|
|
|
```
|
|
|
|
{
|
|
|
|
各通用属性
|
|
|
|
各专用属性
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## 学习内容类型分类及在JSON中的表示
|
|
|
|
|
|
|
|
| 学习内容类型 | JSON中的表示 |
|
|
|
|
| ------ | ------ |
|
|
|
|
| 课程 | course |
|
|
|
|
| 作业 | homework |
|
|
|
|
| 竞赛 | competition |
|
|
|
|
| 作业题目/竞赛题目 | homework_question |
|
|
|
|
| 考试 | exam |
|
|
|
|
| 考试题目 | exam_question |
|
|
|
|
| 实验作业 | experiment_homework |
|
|
|
|
| 实验 | experiment |
|
|
|
|
| 实验步骤 | experiment_procedure |
|
|
|
|
| 在线课堂 | mooc |
|
|
|
|
| 在线课堂视频 | mooc_video |
|
|
|
|
| 答疑论坛 | forum |
|
|
|
|
| 论坛主题 | forum_topic |
|
|
|
|
| 论坛帖子 | forum_post |
|
|
|
|
| 研究数据集 | research_dataset |
|
|
|
|
| 研究项目 | research_project |
|
|
|
|
| 毕设 | graduation_project |
|
|
|
|
| Git仓库 | git_repository |
|
|
|
|
| Git提交 | git_commit |
|
|
|
|
|
|
|
|
## 学习内容通用属性
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-------------|--------|----------|
|
|
|
|
| id | string | 学习内容的id |
|
|
|
|
| name | string | 学习内容名/标题 |
|
|
|
|
| description | string | 学习内容描述 |
|
|
|
|
|
|
|
|
若查询返回的结果中某通用属性值为空,则JSON中无该属性,如下面的例子里,某论坛的查询结果就没有description属性。
|
|
|
|
|
|
|
|
```
|
|
|
|
{
|
|
|
|
"id": "7000",
|
|
|
|
"name": "答疑论坛"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## 学习内容专有属性
|
|
|
|
|
|
|
|
与通用属性相似的是,若查询返回的结果中某专有属性值为空,则JSON对象中无该属性。
|
|
|
|
|
|
|
|
专有属性中比较特殊的一个属性是ude,设置该属性主要是为了提升扩展性,所有学习内容都可能会包含该属性。该属性可能包含其它属性未描述的信息。
|
|
|
|
|
|
|
|
接下来详细介绍各类学习内容的专有属性。
|
|
|
|
|
|
|
|
### 课程
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|----------------|----------|-----------|
|
|
|
|
| instructorList | string数组 | 课程授课老师 |
|
|
|
|
| organization | string | 课程所属机构/院校 |
|
|
|
|
| ude | JSON对象 | 平台扩展属性 |
|
|
|
|
|
|
|
|
### 作业/试卷/竞赛
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-----------|----------|----------------|
|
|
|
|
| type | string | 作业的类型 |
|
|
|
|
| questions | JSON对象 | 作业所含问题id及相应的分值 |
|
|
|
|
| tags | string数组 | 作业的标签 |
|
|
|
|
|
|
|
|
### 作业题目/试卷题目
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|------|----------|-------|
|
|
|
|
| tags | string数组 | 题目的标签 |
|
|
|
|
|
|
|
|
### 实验作业
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-----------|----------|----------------|
|
|
|
|
| type | string | 作业的类型 |
|
|
|
|
| questions | JSON对象 | 作业所含问题id及相应的分值 |
|
|
|
|
| tags | string数组 | 作业的标签 |
|
|
|
|
| startDate | string | 起始时间 |
|
|
|
|
| endDate | string | 终止时间 |
|
|
|
|
|
|
|
|
### 实验
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|----------------------|----------|------------|
|
|
|
|
| modifier | string | 实验修改者 |
|
|
|
|
| experimentProcedures | string数组 | 包含的实验步骤id |
|
|
|
|
| tags | string数组 | 作业的标签 |
|
|
|
|
|
|
|
|
### 实验步骤
|
|
|
|
|
|
|
|
无
|
|
|
|
|
|
|
|
### 在线课堂
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|--------------|----------|-------|
|
|
|
|
| tags | string数组 | 作业的标签 |
|
|
|
|
| startDate | string | 起始时间 |
|
|
|
|
| endDate | string | 终止时间 |
|
|
|
|
| hoursPerWeek | string | 每周学时 |
|
|
|
|
|
|
|
|
### 在线课堂视频
|
|
|
|
|
|
|
|
无
|
|
|
|
|
|
|
|
### 论坛
|
|
|
|
|
|
|
|
无
|
|
|
|
|
|
|
|
### 论坛主题
|
|
|
|
|
|
|
|
无
|
|
|
|
|
|
|
|
### 论坛帖子
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-----------|--------|-------------------------|
|
|
|
|
| replyFrom | string | 回复的帖子,若该属性为空,表示直接在主题下留言 |
|
|
|
|
|
|
|
|
### 科研数据集
|
|
|
|
|
|
|
|
### 科研项目
|
|
|
|
|
|
|
|
### 毕设
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-----------|--------|------|
|
|
|
|
| startDate | string | 起始时间 |
|
|
|
|
| endDate | string | 终止时间 |
|
|
|
|
|
|
|
|
### Git仓库
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-------|--------|-------|
|
|
|
|
| owner | string | 仓库拥有者 |
|
|
|
|
|
|
|
|
### Git提交
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-----------|--------|-------------|
|
|
|
|
| committer | string | 本次commit的作者 |
|
|
|
|
|
|
|
|
|
|
|
|
# 学习内容完成情况 (StatementResult) 数据结构
|
|
|
|
|
|
|
|
StatementResult为JSON对象的格式,该对象根据不同类型的学习内容具有不同的属性
|
|
|
|
|
|
|
|
## 完成情况通用属性
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-----------|--------|--------------------------------------|
|
|
|
|
| id | string | 学习内容的id |
|
|
|
|
| timestamp | long | 学生完成学习时的时间戳(距离格林威治时间1970年1月1日零点的毫秒数) |
|
|
|
|
|
|
|
|
## 完成情况专有属性
|
|
|
|
|
|
|
|
### 专有属性中公用数据结构
|
|
|
|
|
|
|
|
本节提取了各学习内容专有属性中有一定共性的部分
|
|
|
|
|
|
|
|
#### Score对象
|
|
|
|
|
|
|
|
题目的得分情况
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|--------|--------|---------------|
|
|
|
|
| max | string | 题目的理论最高分 |
|
|
|
|
| min | string | 题目的理论最低分,一般为0 |
|
|
|
|
| raw | string | 学生该题目的原始得分 |
|
|
|
|
| scaled | string | 转换后的得分 |
|
|
|
|
|
|
|
|
#### ManualJudgeInfo对象
|
|
|
|
|
|
|
|
教师手动评判结果的信息
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|---------|--------|--------|
|
|
|
|
| comment | string | 教师评语 |
|
|
|
|
| report | string | 教师评阅报告 |
|
|
|
|
|
|
|
|
#### OnlineJudgeInfo对象
|
|
|
|
|
|
|
|
平台自动在线评判结果的信息
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|--------|--------|------------------------|
|
|
|
|
| body | string | 自动评测结果 |
|
|
|
|
| kernel | string | 若解析出现异常,该字段会是通用评测的原始结果 |
|
|
|
|
|
|
|
|
#### AttachmentInfo对象
|
|
|
|
|
|
|
|
学生上传的附件的信息
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|----------|--------|-----------|
|
|
|
|
| fileName | string | 文件名 |
|
|
|
|
| length | string | 文件大小 |
|
|
|
|
| sha2 | string | 文件相关信息哈希值 |
|
|
|
|
|
|
|
|
#### OperateInfo对象
|
|
|
|
|
|
|
|
学生操作信息
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|-------------|--------|------------------|
|
|
|
|
| date | string | 日期、时间信息 |
|
|
|
|
| operateType | string | 操作类型包含:START、END |
|
|
|
|
|
|
|
|
#### SubmittedContent对象
|
|
|
|
|
|
|
|
学生提交的内容信息
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|--------------|--------|-------|
|
|
|
|
| contentId | string | 内容id |
|
|
|
|
| contentTitle | string | 内容的标题 |
|
|
|
|
| content | string | 具体内容 |
|
|
|
|
| timestamp | long | 时间戳 |
|
|
|
|
|
|
|
|
###作业题目/试卷题目/竞赛题目
|
|
|
|
|
|
|
|
所含属性包含:
|
|
|
|
|
|
|
|
| 属性名 | 属性值类型 | 说明 |
|
|
|
|
|----------------|--------------------|----------|
|
|
|
|
| type | Score对象 | 得分情况 |
|
|
|
|
| questions | ManualJudgeInfo对象 | 教师手动评判信息 |
|
|
|
|
| tags | OnlineJudgeInfo对象 | 在线自动评判信息 |
|
|
|
|
| attachmentInfo | AttachmentInfo对象数组 | 学生上传的附件 |
|
|
|
|
|
|
|
|
Score、ManualJudgeInfo、OnlineJudgeInfo、AttachmentInfo对象的数据结构可参考[专有属性中公用数据结构](专有属性中公用数据结构)节。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|