La classe Résultat

La classe Result (Résultat) est un élément essentiel de Boardz. Elle permet de stocker des données de mesures ou d'indicateurs et de procéder à des calculs et des transformations.

les données sont accompagnées de certaines métadonnées qui indiquent la structure interne de ces données, et indiquent aux autres constituant qui manipulent ces résultats comment ils doivent les utiliser et les parcourir. Certaines sources de données ne pourront produire que certains types de structure, certains composants d'affichage ne pourront admettre que certaines structures en entrée, certains opérateurs ne sauront (ou ne pourront) pas traiter toutes les combinaisons de structures. Le fait de formaliser cette description permettra au code du Boardz d'être robuste, au regard des injonctions de “configuration” par les administrateurs de données.

Attributs d'un résultat

data : Les données effectives.

aritytype : le type de structure : “scalar”, “assoc”, “matrix”, mais aussi “records”, ou “null” pour un résultat vide.

arity : l'arité des données (à comprendre comme le nombre de dimensions d'index qui indexent la donnée de base, 0 pour un pur scalaire, 1 pour une association, 2 pour une matrice, …)

aritycounts[] : Un tableau modifié dynamiquement et indiquant le nombre d'élement(max) dans chacune des dimensions.

dimensions[] : Il s'agit d'un tableau contenant dans l'ordre des dimensions d'indice, les unités de ces dimensions d'indice.

Algèbre des résultats

L'algèbre des résultats fournit des opérateurs algébriques et des transformations qui pourront être invoqués par écriture de formules dans les indicateurs calculés. Les opérateurs combinent un ou deux opérandes en tenant compte de leur arités respectives.

Addition

Syntaxe : %R1 + %R2

Scalaire + Scalaire : Résultat scalaire de l'addition

Scalaire + Assoc : toutes les valeurs de l'association additionnée du scalaire

Assoc + Scalaire : toutes les valeurs de l'association additionnée du scalaire

Assoc + Assoc : toutes les valeurs portant la même clef additionnées. Les clefs manquantes sont considérées à valeur nulle. Les clefs résultantes sont l'union des clefs des opérandes.

Scalaire + matrice : extension de Scalaire + Assoc

matrice + Scalaire : extension de Assoc + scalaire

matrice + assoc : Réduction à Assoc + scalaire pour les clefs identiques de première dimension.

assoc + matrice : Réduction à scalaire + Assoc pour les clefs identiques de première dimension

matrice + matrice : Réduction à Assoc + Assoc pour les clefs identiques de première dimension. Union des clefs manquantes.

Soustraction

Syntaxe : %R1 - %R2

Scalaire - Scalaire : Résultat scalaire de la soustraction

Scalaire - Assoc : toutes les valeurs de l'association soustraites du scalaire

Assoc - Scalaire : toutes les valeurs de l'association moins la valeur du scalaire

Assoc - Assoc : différence algébrique de toutes les valeurs portant la même clef. Les clefs manquantes sont considérées à valeur nulle. Les clefs résultantes sont l'union des clefs des opérandes.

Scalaire - matrice : extension de Scalaire - Assoc

matrice - Scalaire : extension de Assoc - scalaire

matrice - assoc : Réduction à Assoc - scalaire pour les clefs identiques de première dimension.

assoc - matrice : Réduction à scalaire - Assoc pour les clefs identiques de première dimension

matrice - matrice : Réduction à Assoc - Assoc pour les clefs identiques de première dimension. Union des clefs manquantes.

Multiplication

Syntaxe : %R1 * %R2

Scalaire * Scalaire : Résultat scalaire du produit

Scalaire * Assoc : toutes les valeurs de l'association multipliées par le scalaire

Assoc * Scalaire : toutes les valeurs de l'association multipliées par le scalaire

Assoc * Assoc : produit algébrique de toutes les valeurs portant la même clef. Les clefs résultantes sont l'intersection des clefs des opérandes.

Scalaire * matrice : extension de Scalaire * Assoc

matrice - Scalaire : extension de Assoc * scalaire

matrice - assoc : Réduction à Assoc - scalaire pour les clefs identiques de première dimension.

assoc - matrice : Réduction à scalaire - Assoc pour les clefs identiques de première dimension

matrice - matrice : Réduction à Assoc - Assoc pour les clefs identiques de première dimension. Union des clefs manquantes.