Le contexte
J'écris quelques questions pratiques à choix multiples et j'aimerais les stocker dans un format de données en texte simple. J'ai déjà utilisé des tabulations, mais cela rend l'édition un peu délicate dans un éditeur de texte. Je voudrais utiliser un format un peu comme bibtex.
Par exemple,
@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",
}
Les propriétés importantes semblent être:
- Les données sont constituées d'enregistrements
- Chaque enregistrement a plusieurs paires attribut-valeur
- Chaque paire attribut-valeur peut être enregistrée sur une nouvelle ligne, mais peut s'étendre sur plusieurs lignes
- Saisie facile des données textuelles dans un éditeur de texte
- Outils facilement disponibles pour convertir en données tabulaires
Par exemple, voici quelque chose un peu comme ce qui pourrait fonctionner
@
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
Bien que je m'intéresse au contexte spécifique de la rédaction de questions à choix multiples, je suis également intéressé par la question plus large de la représentation des données dans ce format ou un type similaire de format.
Réflexions initiales
Mes pensées initiales étaient les suivantes:
- YAML
- JSON
- Données délimitées avec délimiteurs de champs et d'enregistrements personnalisés qui permettent des enregistrements sur plusieurs lignes
- Un format de fichier personnalisé avec une certaine forme d'analyseur personnalisé
Je n'ai eu qu'un bref aperçu de YAML et JSON; Mes premières impressions sont qu'elles pourraient être excessives. La délimitation personnalisée peut être bonne, mais elle nécessiterait probablement que tous les champs soient présents dans un ordre cohérent pour tous les enregistrements. Écrire mon propre analyseur sonne un peu compliqué.
la source
Réponses:
Pourquoi ne pas utiliser XML? Il existe de nombreux bons analyseurs qui traduisent directement les fichiers XML en structures de données, même un pour R ( http://cran.r-project.org/web/packages/XML/index.html ).
Le format ressemble à ceci (exemple tiré de http://www.w3schools.com/xml/default.asp ).
Par exemple, en utilisant le package XML:
donne accès au corps complet des notes,
est juste le premier nœud et ainsi de suite ...
la source
J'irais avec YAML. Simple à éditer et dispose de nombreux analyseurs dans différentes langues:
Vous pouvez ensuite écrire un petit script pour mélanger au hasard les réponses incorrectes et correctes et produire le LaTeX suggéré dans la réponse de DQdlM.
EDIT : Ce script rubis:
Produira la sortie suivante
la source
Cela peut ne pas répondre pleinement aux demandes au-delà de vos questions à choix multiples, mais il existe un cours d' examen pour LaTeX.
Les questions à choix multiples sont formées comme suit:
En l'incluant
\printanswers
dans votre préambule, elle met en évidence la bonne réponse.la source
Le mode org peut le faire. Une façon serait la suivante:
Si vous souhaitez inspecter visuellement un tableau récapitulatif rapide, insérez ce qui suit
Mettez le curseur dans le
#+BEGIN
bloc et faitesC-c C-x C-u
pour obteniret si vous souhaitez importer (vers R, par exemple), insérez un nom de table comme celui-ci:
puis insérez et exécutez le bloc de code R suivant avec
C-c C-c
:cela donne
La bonne nouvelle est que le bloc de données
df
est maintenant stocké dans la*R*
session active et est disponible pour le post-traitement comme vous le souhaitez. Tout cela étant dit, si c'était moi, je commencerais probablement par le package d' examens (en R) pour l'application spécifique de stockage / écriture de questions à choix multiples, bien que cet exemple YAML soit vraiment cool.la source
Voici quelques idées supplémentaires:
Utilisez R lui-même:
Utilisez reStructuredText , qui est un langage de balisage léger, similaire au markdown, qui peut être analysé dans un DOM (Python), par exemple:
Il existe un rédacteur rst2xml qui convertit ce qui précède en:
Il y a aussi un rédacteur rst2latex, donc votre test peut être facilement formaté pour l'impression, et vous pouvez traiter les données en utilisant python et le modèle d'objet de document.
L'avantage de cette option est que rst est facile à lire et à écrire, contrairement à XML, mais vos données sont toujours structurées pour être utilisées dans R, Python, etc.
la source