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.

⚠️ **GitHub.com Fallback** ⚠️