Le istanze - romeorizzi/esami-RO-public GitHub Wiki
Ogni istanza è codificata in un file .yaml
.
Cosa sono i file YAML?
YAML Ain't a Markup Language (YAML) è un formato per la serializzazione dei dati che sfrutta concetti di altri linguaggi come C, Perl o Python, ispirandosi anche ai file .XML.
Noi lo usiamo per creare dei file di configurazione per le istanze degli esercizi. Offre infatti tanti vantaggi, tra cui un'alta leggibilità, flessibilità e libertà di personalizzare i campi che contiene come più si vuole.
-
Per creare o modificare un file .yaml hai bisogno solo di un editor di testo.
-
Per controllare la sintassi dei tuoi file .yaml, puoi sfruttare parser online come questo.
Per maggiori dettagli, puoi dare un'occhiata qui, oppure qui o ancora qui.
Template delle istanze
Nella cartella collections\yaml_templates
puoi trovare un file di esempio per ogni tipologia di esercizio supportata al momento (marzo 2021):

Un'istanza è descritta da un insieme di campi e dai loro rispettivi valori.
I campi seguenti sono solitamente presenti in tutte le istanze:
- name: tipologia dell'esercizio;
- title: titolo dell'esercizio;
- tags: parole chiave per categorizzare l'esercizio, visualizzate nella mappa;
- description1: testo che contiene la consegna dell'esercizio;
- tasks: insieme di richieste dell'esercizio.
A volte può esserci anche un campo di descrizione aggiuntivo, description2. Il campo tasks rappresenta un tipo complesso, corrispondente a un insieme di richieste. Ogni richiesta è descritta da:
- tot_points: i punti in palio per quella richiesta;
- ver_points: i punti verificabili
- description1: il testo della richiesta;
- graphml (opzionale): il grafo in formato .graphml a cui fa riferimento la richiesta.
Per esempio, considera il template graphs_planarity0.yaml
:

L'esercizio, della tipologia graphs_planarity
, è caratterizzato da quattro tag e ha quattro task da svolgere. Per questa tipologia, non sono ancora disponibili dei verificatori e quindi il numero di ver_points è pari a 0. Ogni task fa riferimento a un grafo, di cui è indicato il path nel campo graphml.