Skip to content

Commit

Permalink
Merge pull request #484 from KhiopsML/462-improving-uniqueness-manage…
Browse files Browse the repository at this point in the history
…ment-in-multi-table-schemas

462 improving uniqueness management in multi table schemas
  • Loading branch information
marcboulle authored Dec 20, 2024
2 parents 3d5d35f + a7d8ba4 commit 9367755
Show file tree
Hide file tree
Showing 50 changed files with 866 additions and 774 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1591,7 +1591,7 @@ void KDMultiTableFeatureConstruction::ComputeAllClassesCompliantRules(

// On interdit les cles de la classe
// De facon generale, il s'agit d'un principe: la cle ne sert qu'a encoder une structure et la
// memoriser: il ne s'agit pas d'attributs porteurs d'information. Pour la classe racine, les cle
// memoriser: il ne s'agit pas d'attributs porteurs d'information. Pour la classe principale, les cle
// apparaissent une seule fois instance, et ne peuvent etre informatives. Pour les classes secondaires
// inclues, les cles sont soient unique par instance principale (la cle de l'incluant) sans interet,
// soit avec un role d'identifiant dans la table secondaire, sans interet autre que compter le nombre
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ class KDMultiTableFeatureConstruction : public KDFeatureConstruction
// . templateDerivationRule: regle de derivation en cours de construction, selon les parametres de
// construction
// - controle de la profondeur d'extraction
// . sPriorTreeNodeName: identifiant du noeud de l'arbre de construction a partir de la racine
// . sPriorTreeNodeName: identifiant du noeud de l'arbre de construction a partir de la classe principale
// Utilise si non vide, pour indiquer qu'une trace de debugging est demandee
// . nDepth: profondeur dans l'arbre de construction, limite par la variable externe nMaxRuleDepth
// . dRuleCost: cout de la regle en cours de construction, limite par la variable externe dMaxRuleCost
Expand Down Expand Up @@ -390,7 +390,7 @@ class KDMultiTableFeatureConstruction : public KDFeatureConstruction
// . nSelectionSize: taille de selection
// . nMaxSelectionOperandNumber: nombre max d'operandes a constuire
// . dMaxSelectionCost: cout maximum de selection
// . sPriorTreeNodeName: identifiant du noeud de l'arbre de construction a partir de la racine
// . sPriorTreeNodeName: identifiant du noeud de l'arbre de construction a partir de la classe principale
// Utilise si non vide, pour indiquer qu'une trace de debugging est demandee
// . oaSelectionOperands: tableau des dimensions de partition (KDClassSelectionOperandStats: attribut ou regle)
// utilisables en operandes de selection . oaSelectionOperandIndexedFrequencies: tableau des effectif indexes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -823,7 +823,7 @@ void KDSelectionOperandDataSampler::ExtractAllSelectionReferencedObjects(KWMTDat
oaRootObjects.Sort();

// Analyse des objets
// Le tri des classes externes, puis le tri des obejt par classe garantit que l'index attribue a chaque
// Le tri des classes externes, puis le tri des objets par classe garantit que l'index attribue a chaque
// objet racine externe est unique et reproductible
// Note sur l'optimisation:
// . on pourrait eviter le tri des objets en utilisant directement leur CraetionIndex, mais ce serait
Expand Down
6 changes: 3 additions & 3 deletions src/Learning/KDDomainKnowledge/KDTextFeatureConstruction.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ class KDTextFeatureConstruction : public KDFeatureConstruction
ObjectDictionary* odConstructedAttributes) const;

// Construction d'un attribut de type texte a partir d'un chemin d'attribut dans un schema multi-table
// L'attribut construit est insere en unused dans la classe et permet de ramener a la racine l'attribut
// texte correspondant au chemin d'attribut, avec le type Text ou TextList selon la nature simple ou multiple du
// chemin
// L'attribut construit est insere en unused dans la classe et permet de ramener a la classe principale
// l'attribut texte correspondant au chemin d'attribut, avec le type Text ou TextList selon la
// nature simple ou multiple du chemin
KWAttribute* ConstructPathAttribute(KDClassCompliantRules* classCompliantRules, KWClass* kwcClass,
const KDTextAttributePath* textAttributePath) const;

Expand Down
2 changes: 1 addition & 1 deletion src/Learning/KNITransfer/KNIDatabaseTransferView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ void KNIDatabaseTransferView::KNITransferDatabase()
// Recopie des caracteristiques de la table principale ou des tables secondaires
else
{
// Cas du mapping racine (premier des mapping)
// Cas du mapping principal (premier des mappings)
if (nMapping == 0)
{
strcpy(recodingOperands.InputFile.DataPath, "");
Expand Down
12 changes: 6 additions & 6 deletions src/Learning/KWData/KWAttribute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -551,7 +551,7 @@ void KWAttribute::Write(ostream& ost) const
ost << ";";

// Meta-donnees
WriteNotLoadedMetaData(ost);
WritePrivateMetaData(ost);
if (metaData.GetKeyNumber() > 0)
{
ost << ' ';
Expand Down Expand Up @@ -611,21 +611,21 @@ void KWAttribute::WriteJSONFields(JSONFile* fJSON)
metaData.WriteJSONKeyReport(fJSON, "metaData");
}

void KWAttribute::WriteNotLoadedMetaData(ostream& ost) const
void KWAttribute::WritePrivateMetaData(ostream& ost) const
{
KWMetaData usedNotLoadedMetaData;
KWMetaData privateMetaData;

// Memorisation dans une meta-data temporaire de l'information d'utilisation d'un attribut non charge en memoire
// Permet de transferer cette information "privee", par exemple pour une tache parallele
if (GetUsed() and not GetLoaded())
{
usedNotLoadedMetaData.SetNoValueAt("_NotLoaded");
privateMetaData.SetNoValueAt("_NotLoaded");
ost << ' ';
usedNotLoadedMetaData.Write(ost);
privateMetaData.Write(ost);
}
}

void KWAttribute::ReadNotLoadedMetaData()
void KWAttribute::ReadPrivateMetaData()
{
if (GetMetaData()->GetKeyNumber() > 0 and GetMetaData()->IsMissingTypeAt("_NotLoaded"))
{
Expand Down
10 changes: 5 additions & 5 deletions src/Learning/KWData/KWAttribute.h
Original file line number Diff line number Diff line change
Expand Up @@ -208,14 +208,14 @@ class KWAttribute : public KWDataItem
void BuildAdvancedTypeSpecification();

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// Gestion des attribut Used mais pas Loaded, pour la lecture/ecriture de dictionnaire dans les fichiers
// Gestion des attributs Used mais pas Loaded, pour la lecture/ecriture de dictionnaire dans les fichiers
// Permet de transferer cette information "privee", par exemple pour une tache parallele

// Ecriture si necessaire de l'information NotLoaded dans les meta-data
void WriteNotLoadedMetaData(ostream& ost) const;
// Ecriture si necessaire des informations prives dans les meta-data (_NotLoaded)
void WritePrivateMetaData(ostream& ost) const;

// Lecture et prise en compte de l'information NotLoaded depuis les meta-data et nettoyage de ceux-ci
void ReadNotLoadedMetaData();
// Lecture et prise en compte des informations privees depuis les meta-data et nettoyage de ceux-ci
void ReadPrivateMetaData();

// Bloc d'attribut eventuel auquel l'attribut appartient
KWAttributeBlock* attributeBlock;
Expand Down
2 changes: 1 addition & 1 deletion src/Learning/KWData/KWCLex.inc
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ char *yytext;

// Desactivation de warnings pour le Visual C++
#ifdef __MSC__
#pragma warning(disable : 4505) // C4505: la fonction locale non référencée a été supprimée
#pragma warning(disable : 4505) // C4505: la fonction locale non referencee a ete supprimee
#pragma warning(disable : 4996) // C4996: warning for deprecated POSIX names isatty and fileno
#endif // __MSC__

Expand Down
2 changes: 1 addition & 1 deletion src/Learning/KWData/KWCLex.lex
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

// Desactivation de warnings pour le Visual C++
#ifdef __MSC__
#pragma warning(disable : 4505) // C4505: la fonction locale non référencée a été supprimée
#pragma warning(disable : 4505) // C4505: la fonction locale non referencee a ete supprimee
#pragma warning(disable : 4996) // C4996: warning for deprecated POSIX names isatty and fileno
#endif // __MSC__

Expand Down
Loading

0 comments on commit 9367755

Please sign in to comment.