语境
我正在写一些选择题练习题,我想以简单的纯文本数据格式存储它们。我以前使用制表符分隔,但这使得在文本编辑器中编辑有点尴尬。我想使用一种有点像 bibtex 的格式。
例如,
@Article{journals/aim/Sloman99,
title = "Review of Affective Computing",
author = "Aaron Sloman",
journal = "AI Magazine",
year = "1999",
number = "1",
volume = "20",
url = "http://dblp.uni-trier.de/db/journals/aim/aim20.html#Sloman99",
pages = "127--133",
}
重要的属性似乎是:
- 数据由记录组成
- 每条记录都有多个属性值对
- 每个属性值对可以记录在一个新行上,但可以跨越多行
- 易于在文本编辑器中手动输入文本数据
- 现成的工具可转换为表格数据
例如,这有点像可能有用的东西
@
id: 1
question: 1 + 1
a: 1
b: 2
c: 3
d: 4
correct: b
@
id: 2
question: What is the capital city of the country renowned for koalas,
emus, and kangaroos?
a: Canberra
b: Melbourne
c: Sydney
d: Australia
correct: a
虽然我对编写多项选择题的特定背景感兴趣,但我也对以这种或类似类型的格式表示数据的更广泛的问题感兴趣。
最初的想法
我最初的想法包括以下几点:
- YAML
- JSON
- 使用允许多行记录的自定义字段和记录分隔符分隔数据
- 带有某种形式的自定义解析器的自定义文件格式
我只快速浏览了 YAML 和 JSON;我的第一印象是他们可能会过度杀戮。自定义定界可能很好,但它可能要求所有字段以一致的顺序出现在所有记录中。编写我自己的解析器听起来有点繁琐。