Environnement. More...
#include "cogitant/environment.h"
Public Types | |
Itérateurs pour le parcours des éléments de l'environnement (graphes et règles). | |
typedef Set< EnvironmentObject * >::iterator | iterator |
typedef Set< EnvironmentObject * >::const_iterator | const_iterator |
Itérateurs pour le parcours filtré des éléments de l'environnement par leur type. | |
typedef EnvironmentObjectCondIterator< Graph *, Graph *&, EnvironmentObject::OT_GRAPH > | graph_iterator |
typedef EnvironmentObjectCondIterator< Graph *, Graph const *const &, EnvironmentObject::OT_GRAPH > | graph_const_iterator |
typedef EnvironmentObjectCondIterator< Rule *, Rule *&, EnvironmentObject::OT_RULE > | rule_iterator |
typedef EnvironmentObjectCondIterator< Rule *, Rule const *const &, EnvironmentObject::OT_RULE > | rule_const_iterator |
Public Member Functions | |
Constructeurs - destructeur. | |
Environment (EnvironmentAllocator const *alloc=NULL) | |
Constructeur. More... | |
Environment (Environment const &o, EnvironmentAllocator const *alloc=NULL) | |
Constructeur par recopie. More... | |
virtual | ~Environment () |
Destructeur. More... | |
Modifications | |
Support * | support () |
Support. More... | |
Set< EnvironmentObject * > * | objects () |
Accès direct aux objets contenus dans l'environnement. More... | |
IOHandler * | ioHandler () |
Gestionnaire d'entrées/sorties. More... | |
EnvironmentObjectExtension::Factory & | extensionFactory () |
Fabrique d'EnvironmentObjectExtension. More... | |
void | deleteObject (iSet i) |
Destruction d'un objet mémorisé. More... | |
EnvironmentObject * | detachObject (iSet i) |
Détache l'objet de l'environnement. More... | |
iSet | addObject (EnvironmentObject *g) |
Ajout d'un objet à l'environnement. More... | |
void | replaceObject (iSet i, EnvironmentObject *g) |
Remplacement d'un objet de l'environnement par un objet qui n'en faisait pas partie. More... | |
EnvironmentObject * | objects (iSet i) |
Accès direct à un objet par son identificateur. More... | |
void | clear () |
Suppression de tous les objets (graphes et règles) contenus dans l'environnement. More... | |
Modifications - Graphes | |
Graph * | newExternalGraph () |
Création d'un graphe vide. More... | |
iSet | newGraph () |
Création d'un graphe vide. More... | |
Graph * | newExternalGraph (Graph const *g, bool extmode=false) |
Création d'un graphe par recopie d'un graphe existant. More... | |
iSet | newGraph (Graph const *g, bool extmode=false) |
Création d'un graphe par recopie d'un graphe existant. More... | |
iSet | newGraph (iSet g, bool extmode=false) |
Création d'un graphe par recopie d'un graphe existant (repéré par son identificateur). More... | |
iSet | addGraph (Graph *g) |
Ajout d'un graphe à l'environnement. More... | |
Graph * | graphs (iSet i) |
Accès direct à un graphe par son identificateur. More... | |
void | deleteGraph (iSet i) |
Destruction d'un graphe mémorisé. More... | |
Graph * | detachGraph (iSet i) |
Détache le graphe de l'environnement. More... | |
Modifications - Règles | |
Rule * | newExternalRule () |
Création d'une règle vide. More... | |
iSet | newRule () |
Création d'une règle vide. More... | |
Rule * | newExternalRule (Rule const *g) |
Création d'une règle par recopie d'un règle existante. More... | |
iSet | newRule (Rule const *g) |
Création d'une règle par recopie d'une règle existante. More... | |
iSet | newRule (iSet g) |
Création d'une règle par recopie d'une règle existante. More... | |
iSet | addRule (Rule *g) |
Ajout d'une règle à l'environnement. More... | |
Rule * | rules (iSet i) |
Accès direct à une règle par son identificateur. More... | |
void | deleteRule (iSet i) |
Destruction d'une règle mémorisée. More... | |
Rule * | detachRule (iSet i) |
Détache la règle de l'environnement. More... | |
Modifications - Contraintes | |
ColoredGraphConstraint * | newExternalColoredGraphConstraint (bool positive=false) |
Création d'une contrainte vide sous la forme d'un graphe bicoloré. More... | |
Constraint * | newExternalConstraint (bool positive=false) |
Création d'une contrainte vide. More... | |
iSet | newConstraint (bool positive=false) |
Création d'une contrainte vide. More... | |
Constraint * | newExternalConstraint (Constraint const *g) |
Création d'une contrainte par recopie d'un contrainte existante. More... | |
iSet | newConstraint (Constraint const *g) |
Création d'une contrainte par recopie d'une contrainte existante. More... | |
iSet | newConstraint (iSet g) |
Création d'une contrainte par recopie d'une contrainte existante. More... | |
iSet | addConstraint (Constraint *g) |
Ajout d'une contrainte à l'environnement. More... | |
Constraint * | constraints (iSet i) |
Accès direct à une contrainte par son identificateur. More... | |
void | deleteConstraint (iSet i) |
Destruction d'une contrainte mémorisée. More... | |
Constraint * | detachConstraint (iSet i) |
Détache la contrainte de l'environnement. More... | |
Parcours. | |
const_iterator | begin () const |
Retourne un itérateur de début pour le parcours des éléments. More... | |
iterator | begin () |
Retourne un itérateur de début pour le parcours des éléments. More... | |
const_iterator | end () const |
Retourne un itérateur de fin pour le parcours des éléments du graphe. More... | |
Parcours de l'environnement par leur type. | |
graph_const_iterator | graphBegin () const |
graph_iterator | graphBegin () |
graph_const_iterator | graphEnd () const |
rule_const_iterator | ruleBegin () const |
rule_iterator | ruleBegin () |
rule_const_iterator | ruleEnd () const |
Accesseurs | |
Support const * | support () const |
Support. More... | |
Set< EnvironmentObject * > const * | objects () const |
Accès direct aux objets contenus dans l'environnement. More... | |
IOHandler const * | ioHandler () const |
Gestionnaire d'entrées/sorties. More... | |
EnvironmentObject const * | objects (iSet i) const |
Accès direct à un objet par son identificateur. More... | |
Graph const * | graphs (iSet i) const |
Accès direct à un graphe par son identificateur. More... | |
Rule const * | rules (iSet i) const |
Accès direct à une règle par son identificateur. More... | |
Constraint const * | constraints (iSet i) const |
Accès direct à une contrainte par son identificateur. More... | |
nSet | sizeObjects () const |
Nombre d'objets stockés dans l'environnement. More... | |
iSet | findObject (std::string const &n) const |
Recherche d'un objet par son nom. More... | |
iSet | findGraph (std::string const &n) const |
Recherche d'un graphe par son nom. More... | |
void | ensureObject (iSet i) const |
S'assure de l'existence d'un objet de l'environnement. More... | |
void | ensureObject (iSet i, EnvironmentObject::Type t, bool strict=false) const |
S'assure de l'existence d'un objet de l'environnement et vérifie son type. More... | |
EnvironmentAllocator const * | allocator () const |
Allocateur. More... | |
ObserverMessageFactory * | messageFactory () const |
Fabrique de messages. More... | |
EnvironmentObjectExtension::Factory const & | extensionFactory () const |
Fabrique d'EnvironmentObjectExtension. More... | |
Raccourcis pour les opérations. | |
OpeProjectionBundle * | opeProjectionBundle (unsigned int numero=0) const |
Accès à l'opération de calcul des projections par défaut. More... | |
OpeProjectionBundle * | newOpeProjectionBundle () const |
Création d'une nouvelle opération de calcul des projections à partir de l'opération par défaut. More... | |
void | projections (iSet g, iSet h, ResultOpeProjection &res, bool injective=false) |
Calcul des projections. More... | |
void | projections (Graph const *g, Graph const *h, ResultOpeProjection &res, bool injective=false) |
Calcul des projections. More... | |
void | projectionImage (Graph const *g, Graph const *h, Projection const *p, Graph *image) |
Calcul de l'image par une projection. More... | |
void | ruleApplications (Graph const *g, Rule const *r, ResultOpeProjection &res, bool irr=false) |
Calcul des applications possibles d'une règle sur un graphe. More... | |
bool | ruleApply (Graph *g, Rule const *r, Projection const *p, bool onlyif, GraphSubset *addednodes=NULL) |
Application d'une règle sur un graphe conceptuel selon un Projection_Soc. More... | |
unsigned long | rulesClosure (Graph *g, Set< Rule *> const *r=NULL, unsigned long nma=0, unsigned long nmp=0, GraphSubset *addednodes=NULL) |
Calcul d'une fermeture d'un graphe par un ensemble de règles. More... | |
unsigned long | rulesClosureNormalize (Graph *g, Set< Rule *> const *r=NULL, unsigned long nma=0, unsigned long nmp=0, bool conjunctivetypes=true) |
Calcul d'une fermeture d'un graphe par un ensemble de règles en normalisant le graphe au fur et à mesure de l'application des règles. More... | |
bool | constraintSatisfaction (Graph const *g, Constraint const *c, ResultOpeProjection *projcond=NULL, ResultOpeProjection *projinter=NULL) |
Vérification de la validité d'un graphe par rapport à une contrainte. More... | |
void | disjointSum (Graph *dest, Graph const *src, bool fusioncc=false, GraphSubset const *subsetsrc=NULL) |
Somme disjointe de deux graphes. More... | |
iSet | disjointSumNewId (iSet oldid) const |
Accès à l'identificateur d'un sommet ajouté lors de l'appel précédent à l'OpeDisjointSum associée à l'environnement. More... | |
void | externalJoin (Graph *g1, iSet ig1, Graph const *g2, iSet ig2) |
Joint externe. More... | |
void | externalJoin (Graph *g1, Graph const *g2, std::vector< std::pair< iSet, iSet > > const &couples, GraphSubset const *subsetg2=NULL) |
Joint externe. More... | |
void | subgraph (Graph *result, Graph const *src, GraphSubset const &subset, bool copychildren=true) |
Sous-graphe d'un graphe. More... | |
nSet | normalize (Graph *g, bool conjunctivetypes=true, GraphSubset const *subset1=NULL, GraphSubset const *subset2=NULL) |
Mise sous forme normale. More... | |
void | makeIrredundant (Graph *g) |
Mise sous forme irredondante. More... | |
bool | verifyConformity (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Vérification de la conformité. More... | |
bool | verifySignature (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Vérification des signatures des relation. More... | |
bool | verifyEdges (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Vérification des arêtes pendantes. More... | |
bool | verifyNormalForm (Graph const *g, bool verifycc=true, OpeVerification::ListErrors *err=NULL) const |
Vérification de la forme normale d'un graphe. More... | |
bool | verifyConjunctiveType (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Vérification des types conjonctifs. More... | |
bool | verifyBannedType (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Vérification des types bannis. More... | |
bool | verifyCoreferenceClass (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Vérification des classes de coréférence. More... | |
bool | verifyIrredundant (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Vérification de la forme irredondante d'un graphe. More... | |
bool | verifyGraph (Graph const *g, OpeVerification::ListErrors *err=NULL) const |
Effectue toutes les opérations de vérification sur un graphe. More... | |
bool | verifySupportBannedType (OpeVerification::ListErrors *err=NULL) const |
Vérification des types bannis du support. More... | |
bool | verifySupportSignature (OpeVerification::ListErrors *err=NULL) const |
Vérification des signatures des types de relation du support. More... | |
bool | isConnected (Graph const *g, iSet idig=0, GraphSubset const *subset=NULL) const |
Test de la connexité du graphe. More... | |
nSet | connectedComponentsSize (Graph const *g, iSet idig=0, GraphSubset const *subset=NULL) const |
Nombre de composantes connexes du graphe. More... | |
nSet | connectedComponents (Graph const *g, std::vector< GraphSubset > &cc, iSet idig=0, GraphSubset const *subset=NULL) const |
Composantes connexes du graphe. More... | |
void | individualGraphExpand (Graph *g, iSet ignode, Graph const *indgraph) const |
Développement d'un graphe individu sur un sommet concept individuel. More... | |
void | individualGraphMultipleExpand (Graph *g, Set< Graph const *> *indg) const |
Développement des sommets concepts individuels d'un graphe par un ensemble de graphes individuels. More... | |
void | signatureApply (Graph *g, iSet rnode=ISET_NULL) const |
Application des signatures sur les sommets relations du graphe. More... | |
void | supportSignatureSpecialize () |
Spécialisation des signatures afin que chaque signature définie pour un type de relation dans le support soit une spécialisation des signatures des super-types de ce type. More... | |
Raccourcis pour les opérations d'entrée/sortie. | |
Ces différentes méthodes permettent un accès aux opérations d'entrée/sortie en utilisant l'instance de cogitant::IOHandler associée à l'environnement. | |
void | readSupport (std::string const &file, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Chargement d'un support. More... | |
void | readSupport (std::istream &s, std::string streamname="", IOHandler::Format format=IOHandler::BCGCT, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Chargement d'un support. More... | |
iSet | readGraphs (std::string const &file, std::vector< iSet > *graphs=NULL, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Chargement de graphes (ou règles, ou contraintes). More... | |
iSet | readGraphs (std::istream &s, std::string streamname="", std::vector< iSet > *graphs=NULL, IOHandler::Format format=IOHandler::BCGCT, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Chargement de graphes (ou règles, ou contraintes). More... | |
iSet | read (std::string const &file, std::vector< iSet > *graphs=NULL, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Chargement d'un fichier contenant support, graphes, règles ou contraintes. More... | |
void | writeSupport (std::string const &file, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Sauvegarde du support. More... | |
void | writeSupport (std::ostream &s, IOHandler::Format format=IOHandler::BCGCT) |
Sortie du support sur un flux. More... | |
void | writeGraphs (std::string const &file, std::vector< iSet > const &graphs, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Sauvegarde de graphes (ou règles, ou contraintes). More... | |
void | writeGraphs (std::ostream &s, std::vector< iSet > const &graphs, IOHandler::Format format=IOHandler::BCGCT) |
Sortie d'un graphe (ou règle, ou contrainte) sur un flux. More... | |
void | writeGraph (std::string const &file, iSet graph, unsigned int versionformat=0, GaugeUpdater *upd=NULL) |
Sauvegarde d'un graphe (ou règle, ou contrainte). More... | |
void | writeGraph (std::ostream &s, iSet graph, IOHandler::Format format=IOHandler::LINEARFORM) |
Sortie d'un graphe (ou règle, ou contrainte) sur un flux. More... | |
Public Member Functions inherited from cogitant::CogitantObject | |
CogitantObject () | |
Constructeur. More... | |
CogitantObject (CogitantObject const &o) | |
Constructeur par recopie. More... | |
virtual | ~CogitantObject () |
Destructeur. More... | |
PropertySet * | properties () |
Accès à l'ensemble des propriétés. More... | |
virtual std::string | toString () const |
Transformation en chaîne de caractères. More... | |
std::string | className () const |
Nom de la classe. More... | |
PropertySet const * | properties () const |
Accès en lecture seule à l'ensemble des propriétés. More... | |
bool | hasProperties () const |
Existence de propriétés. More... | |
CogitantObject & | operator= (CogitantObject const &ob) |
Affectation. More... | |
Protected Member Functions | |
void | allocMembers () |
Allocation de tous les membres. More... | |
void | allocMembers (Environment const &o) |
Allocation de tous les membres par copie des membres d'un environnement existant. More... | |
void | allocMembersOperations () |
Allocation des membres opérations. More... | |
void | deleteMembers () |
Destruction de tous les membres. More... | |
void | addDefaultIOOperations () |
Ajoute au IOHandler de l'environnement des gestionnaires pour les formats standard. More... | |
virtual iSet | newISet () |
Identificateur utilisé par aucun objet. More... | |
bool | verifyGraph (OpeVerificationGraph *ope, Graph const *g, iSet node, OpeVerification::ListErrors *err=NULL) const |
Exécute une vérification du graphe. More... | |
Protected Member Functions inherited from cogitant::CogitantObject | |
virtual PropertySet * | allocProperties () const |
Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More... | |
Divers. | |
Environment & | operator= (Environment const &ob) |
Affectation. More... | |
void | printInternalInfo (std::ostream &os) const |
Affichage d'informations pouvant être utiles à l'optimisation. More... | |
std::ostream & | operator<< (std::ostream &os, const Environment &ob) |
Sortie sur un flux. More... | |
Environnement.
L'environnement est l'objet qui contient le support et tous les graphes définis sur ce support. Il est possible de créer plusieurs environnements dans un programme, mais dans ce cas, il est impossible d'effectuer des opérations faisant intervenir des objets d'environnements différents. L'environnement mémorise un support et un ensemble de EnvironmentObject (habituellement des graphes et des règles) qui sont détruits lors de la destruction de l'environnement. Ces objets sont repérés par un identificateur (cogitant::iSet) qui reste constant jusqu'à la destruction de l'objet. Un objet qui est mémorisé dans l'environnement (appel à newGraph(), addGraph(), newRule(), addRule()) ne doit pas être détruit par l'opérateur delete
mais par l'appel à la méthode deleteObject() (ou deleteGraph() ou deleteRule()) de la classe Environment.
cogitant::Environment::Environment | ( | EnvironmentAllocator const * | alloc = NULL | ) |
Constructeur.
L'allocateur par défaut est utilisé si alloc = NULL
. Un support vide est créé.
cogitant::Environment::Environment | ( | Environment const & | o, |
EnvironmentAllocator const * | alloc = NULL |
||
) |
Constructeur par recopie.
Si alloc = NULL
, un allocateur par défaut est créé, sinon l'allocateur passé est utilisé.
|
virtual |
Destructeur.
iSet cogitant::Environment::addConstraint | ( | Constraint * | g | ) |
Ajout d'une contrainte à l'environnement.
Après cet appel, la contrainte est mémorisée dans l'environnement et ne doit donc pas être détruite par l'opérateur delete. Cette méthode est équivalente à addObject() dans le cas où g repère une Constraint.
g | règle à rajouter à l'environnement. |
|
protected |
Ajoute au IOHandler de l'environnement des gestionnaires pour les formats standard.
Ajout d'un graphe à l'environnement.
Après cet appel, le graphe est mémorisé dans l'environnement et ne doit donc pas être détruit par l'opérateur delete. Cette méthode est équivalente à addObject() dans le cas où g repère un Graph.
g | graphe à rajouter à l'environnement. |
iSet cogitant::Environment::addObject | ( | EnvironmentObject * | g | ) |
Ajout d'un objet à l'environnement.
Après cet appel, l'objet est mémorisé dans l'environnement et ne doit donc pas être détruit par l'opérateur delete.
g | objet à rajouter à l'environnement. |
Ajout d'une règle à l'environnement.
Après cet appel, la règle est mémorisée dans l'environnement et ne doit donc pas être détruite par l'opérateur delete. Cette méthode est équivalente à addObject() dans le cas où g repère une Rule.
g | règle à rajouter à l'environnement. |
|
inline |
Allocateur.
|
protected |
Allocation de tous les membres.
|
protected |
Allocation de tous les membres par copie des membres d'un environnement existant.
|
protected |
Allocation des membres opérations.
const_iterator cogitant::Environment::begin | ( | ) | const |
Retourne un itérateur de début pour le parcours des éléments.
iterator cogitant::Environment::begin | ( | ) |
Retourne un itérateur de début pour le parcours des éléments.
void cogitant::Environment::clear | ( | ) |
Suppression de tous les objets (graphes et règles) contenus dans l'environnement.
Tous les graphes et toutes les règles contenus dans l'environnement (les objets accessibles par la méthode objects()) sont détruits. Par contre, les graphes et règles définis sur le support de l'environnement, mais non contenus dans l'environnement ne sont pas détruits (il s'agit des objets qui ont été créés par newExternalGraph() et qui doivent être détruits par delete). L'appel à cette méthode ne détruit pas le support (cf. cogitant::Support::clear()).
nSet cogitant::Environment::connectedComponents | ( | Graph const * | g, |
std::vector< GraphSubset > & | cc, | ||
iSet | idig = 0 , |
||
GraphSubset const * | subset = NULL |
||
) | const |
Composantes connexes du graphe.
g | le graphe à vérifier. |
cc | (D/R) vecteur d'ensembles de sommets (GraphSubset), chaque ensemble représentant en sortie un sous graphe de g qui est une composante connexe du graphe. |
idig | identificateur du InternalGraph à vérifier, par défaut 0, ce qui correspond au graphe de niveau 0. |
subset | si NULL , recherche la connexité en prenant en compte tous les sommets de l'InternalGraph idig, dans le cas contraire, ne considère que les sommets de subset. |
nSet cogitant::Environment::connectedComponentsSize | ( | Graph const * | g, |
iSet | idig = 0 , |
||
GraphSubset const * | subset = NULL |
||
) | const |
Nombre de composantes connexes du graphe.
g | le graphe à vérifier. |
idig | identificateur du InternalGraph à vérifier, par défaut 0, ce qui correspond au graphe de niveau 0. |
subset | si NULL , recherche la connexité en prenant en compte tous les sommets de l'InternalGraph idig, dans le cas contraire, ne considère que les sommets de subset. |
|
inline |
Accès direct à une contrainte par son identificateur.
ExceptionIncorrectType |
References cogitant::EnvironmentObject::asConstraint().
|
inline |
Accès direct à une contrainte par son identificateur.
ExceptionIncorrectType |
References cogitant::EnvironmentObject::asConstraint().
bool cogitant::Environment::constraintSatisfaction | ( | Graph const * | g, |
Constraint const * | c, | ||
ResultOpeProjection * | projcond = NULL , |
||
ResultOpeProjection * | projinter = NULL |
||
) |
Vérification de la validité d'un graphe par rapport à une contrainte.
Cette opération utilise les opérations de projection "0" et "1" de l'environnement.
g | le graphe à vérifier. |
c | la contrainte à utiliser. |
projcond | si non NULL, stocke la ou les projections trouvées qui font que la contrainte n'est pas respectée. Il est inutile d'utiliser ce paramètre si on cherche simplement à vérifier si un graphe est valide par rapport à une contrainte. Par contre, ce paramètre peut être utilisé pour obtenir la (ou les) projection(s) de la condition de la contrainte dans le graphe qui font que le graphe n'est pas valide. Dans ce cas là, il faut configurer l'instance de ResultOpeProjection passée avant d'appeler constraintSatisfaction() afin, par exemple, de limiter le nombre de projections cherchées, ou s'interesser simplement au nombre de projections, etc. |
projinter | si non NULL, stocke la ou les projections trouvées qui font que la contrainte n'est pas respectée. En association avec projcond qui contient les projections de la condition de la contrainte sur le graphe, cet argument contiendra les projections de l'interdiction de la contrainte sur le graphe. Il n'a donc de sens qu'avec les contraintes négatives. En effet, pour une contrainte positive, un Graph ne respecte pas une Constraint dans le cas où il existe une projection de la condition qui ne peut être étendue en une projection de l'obligation sur le graphe. Cette dernière projection est donc introuvable dans le cas d'une contrainte positive, et ne peut donc être stockée. |
void cogitant::Environment::deleteConstraint | ( | iSet | i | ) |
Destruction d'une contrainte mémorisée.
La contrainte est détruite puis l'identificateur est libéré pour un usage futur. Cette méthode est équivalente à deleteObject() dans le cas où i repère une Constraint.
i | identificateur de la contrainte à détacher. |
ExceptionIncorrectType |
void cogitant::Environment::deleteGraph | ( | iSet | i | ) |
Destruction d'un graphe mémorisé.
Le graphe est détruit puis l'identificateur est libéré pour un usage futur. Cette méthode est équivalente à deleteObject() dans le cas où i repère un Graph.
i | identificateur du graphe à détruire. |
ExceptionIncorrectType |
|
protected |
Destruction de tous les membres.
void cogitant::Environment::deleteObject | ( | iSet | i | ) |
Destruction d'un objet mémorisé.
L'objet est détruit puis l'identificateur est libéré pour un usage futur.
void cogitant::Environment::deleteRule | ( | iSet | i | ) |
Destruction d'une règle mémorisée.
La règle est détruite puis l'identificateur est libéré pour un usage futur. Cette méthode est équivalente à deleteObject() dans le cas où i repère une Rule.
i | identificateur de la règle à détacher. |
ExceptionIncorrectType |
Constraint* cogitant::Environment::detachConstraint | ( | iSet | i | ) |
Détache la contrainte de l'environnement.
Après appel à cette méthode, la contraitne n'est plus mémorisée dans l'environnement et doit être détruite par l'opérateur delete. Cette méthode est équivalente à detachObject() dans le cas où i repère une Constraint.
i | identificateur de la contrainte à détacher. |
ExceptionIncorrectType |
Détache le graphe de l'environnement.
Après appel à cette méthode, le graphe n'est plus mémorisé dans l'environnement et doit être détruit par l'opérateur delete. Cette méthode est équivalente à detachObject() dans le cas où i repère un Graph.
i | identificateur du graphe à détacher. |
ExceptionIncorrectType |
EnvironmentObject* cogitant::Environment::detachObject | ( | iSet | i | ) |
Détache l'objet de l'environnement.
Après appel à cette méthode, l'objet n'est plus mémorisé dans l'environnement et doit être détruit par l'opérateur delete.
i | identificateur de l'objet à détacher. |
Détache la règle de l'environnement.
Après appel à cette méthode, la règle n'est plus mémorisée dans l'environnement et doit être détruite par l'opérateur delete. Cette méthode est équivalente à detachObject() dans le cas où i repère une Rule.
i | identificateur de la règle à détacher. |
ExceptionIncorrectType |
void cogitant::Environment::disjointSum | ( | Graph * | dest, |
Graph const * | src, | ||
bool | fusioncc = false , |
||
GraphSubset const * | subsetsrc = NULL |
||
) |
Somme disjointe de deux graphes.
Le premier graphe passé est modifié et contient après l'appel la somme disjointe des deux graphes.
dest | graphe auquel seront ajoutés des sommets de l'autre graphe. |
src | graphe à ajouter. Ce graphe n'est pas modifié. |
fusioncc | si true les classes de coréférence de même nom sont fusionnées. Ces classes ne sont pas fusionnées si fusioncc vaut false . |
subsetsrc | si différent de NULL, rajoute à dest uniquement les sommets de src qui sont dans subsetsrc. Si égal à NULL (par défaut), rajoute à dest tous les sommets de src. |
Accès à l'identificateur d'un sommet ajouté lors de l'appel précédent à l'OpeDisjointSum associée à l'environnement.
oldid | Identificateur dans le graphe ajouté. |
const_iterator cogitant::Environment::end | ( | ) | const |
Retourne un itérateur de fin pour le parcours des éléments du graphe.
void cogitant::Environment::ensureObject | ( | iSet | i | ) | const |
S'assure de l'existence d'un objet de l'environnement.
i | identificateur de l'objet à vérifier. |
ExceptionUnknownObject | si l'objet à vérifier n'existe pas dans l'environnement. |
void cogitant::Environment::ensureObject | ( | iSet | i, |
EnvironmentObject::Type | t, | ||
bool | strict = false |
||
) | const |
S'assure de l'existence d'un objet de l'environnement et vérifie son type.
i | identificateur de l'objet à vérifier. |
t | type de l'object à vérifier. |
strict | si true effectue des vérifications supplémentaires. Dans le cas d'un OT_GRAPH, vérifie si le graphe n'a pas d'arêtes pendantes. |
ExceptionUnknownObject | si l'objet à vérifier n'existe pas dans l'environnement. |
ExceptionIncorrectType | si l'objet à vérifier n'est pas du bon type. |
|
inline |
Fabrique d'EnvironmentObjectExtension.
|
inline |
Fabrique d'EnvironmentObjectExtension.
References cogitant::IOHandler::BCGCT, CGTDLLEXPORT, cogitant::ISET_NULL, cogitant::IOHandler::LINEARFORM, and cogitant::operator<<().
Joint externe.
Réalise, dans g1 le joint externe avec g2. Les deux sommets ig1 (de g1) et ig2 (de g2) sont fusionnés. Le graphe g1 est modifié par l'appel à la méthode, le graphe g2 n'est pas modifié et continue d'exister.
g1 | graphe contenant en sortie le résultat du joint externe. |
ig1 | identifant de sommet concept de g1. Ce sommet ne doit pas être dans un emboîtement. |
g2 | graphe à joindre à g1. N'est pas modifié par la méthode. |
ig2 | identifiant de sommet concept de g2 à joindre avec ig1. Ce sommet ne doit pas être dans un emboîtement. |
void cogitant::Environment::externalJoin | ( | Graph * | g1, |
Graph const * | g2, | ||
std::vector< std::pair< iSet, iSet > > const & | couples, | ||
GraphSubset const * | subsetg2 = NULL |
||
) |
Joint externe.
Réalise, dans g1 le joint externe avec g2. Les couples de sommets concepts issus de couples sont fusionnés, le premier élément de chaque couple est un identifiant de sommet concept de g1, et le second, un identifiant de sommet concept de g2. Le graphe g1 est modifié par l'appel à la méthode, le graphe g2 n'est pas modifié et continue d'exister.
g1 | graphe contenant en sortie le résultat du joint externe. |
g2 | graphe à joindre à g1. N'est pas modifié par la méthode. |
couples | couples d'identifiants de sommet concept de g1 et g2. Ces sommet ne doivent pas être dans un emboîtement. |
subsetg2 | si différent de NULL, rajoute à dest uniquement les sommets de src qui sont dans subsetg2. Si égal à NULL (par défaut), rajoute à dest tous les sommets de src. |
iSet cogitant::Environment::findGraph | ( | std::string const & | n | ) | const |
Recherche d'un graphe par son nom.
n | nom du graphe cherché. |
iSet cogitant::Environment::findObject | ( | std::string const & | n | ) | const |
Recherche d'un objet par son nom.
n | nom de l'objet cherché. |
Accès direct à un graphe par son identificateur.
ExceptionIncorrectType |
References cogitant::EnvironmentObject::asGraph().
Accès direct à un graphe par son identificateur.
ExceptionIncorrectType |
References cogitant::EnvironmentObject::asGraph().
void cogitant::Environment::individualGraphExpand | ( | Graph * | g, |
iSet | ignode, | ||
Graph const * | indgraph | ||
) | const |
Développement d'un graphe individu sur un sommet concept individuel.
g | le graphe contenant le sommet concept individuel à développer. |
ignode | identificateur du sommet concept individuel de g à développer. |
indgraph | le graphe individu. |
void cogitant::Environment::individualGraphMultipleExpand | ( | Graph * | g, |
Set< Graph const *> * | indg | ||
) | const |
Développement des sommets concepts individuels d'un graphe par un ensemble de graphes individuels.
g | le graphe contenant les sommets concepts individuels à développer. |
indg | l'ensemble des graphes individuels à utiliser pour développer les sommets concepts de g. |
|
inline |
Gestionnaire d'entrées/sorties.
|
inline |
Gestionnaire d'entrées/sorties.
bool cogitant::Environment::isConnected | ( | Graph const * | g, |
iSet | idig = 0 , |
||
GraphSubset const * | subset = NULL |
||
) | const |
Test de la connexité du graphe.
g | le graphe à vérifier. |
idig | identificateur du InternalGraph à vérifier, par défaut 0, ce qui correspond au graphe de niveau 0. |
subset | si NULL , recherche la connexité en prenant en compte tous les sommets de l'InternalGraph idig, dans le cas contraire, ne considère que les sommets de subset. |
true
si le graphe est connexe, false
s'il ne l'est pas. void cogitant::Environment::makeIrredundant | ( | Graph * | g | ) |
Mise sous forme irredondante.
g | le graphe à mettre sous forme irredondante, le graphe est modifié par l'appel à la méthode. |
|
inline |
Fabrique de messages.
iSet cogitant::Environment::newConstraint | ( | bool | positive = false | ) |
Création d'une contrainte vide.
La contrainte créée ne doit pas être détruite par l'opérateur delete mais par l'appel à la méthode deleteConstraint().
positive | si égal à true la contrainte créée est une contrainte positive, si false (par défaut) c'est une contrainte négative. |
iSet cogitant::Environment::newConstraint | ( | Constraint const * | g | ) |
Création d'une contrainte par recopie d'une contrainte existante.
La contrainte créée ne doit pas être détruite par l'opérateur delete mais par l'appel à la méthode deleteConstraint().
Création d'une contrainte par recopie d'une contrainte existante.
La contrainte créée ne doit pas être détruite par l'opérateur delete mais par l'appel à la méthode deleteConstraint().
g | identifiant de la contrainte à dupliquer. |
ExceptionIncorrectType |
ColoredGraphConstraint* cogitant::Environment::newExternalColoredGraphConstraint | ( | bool | positive = false | ) |
Création d'une contrainte vide sous la forme d'un graphe bicoloré.
La contrainte n'est pas mémorisée dans l'environnement : elle n'a pas d'identificateur et doit être détruite explicitement par l'opérateur delete.
positive | si égal à true la contrainte créée est une contrainte positive, si false (par défaut) c'est une contrainte négative. |
Constraint* cogitant::Environment::newExternalConstraint | ( | bool | positive = false | ) |
Création d'une contrainte vide.
La contrainte n'est pas mémorisée dans l'environnement : elle n'a pas d'identificateur et doit être détruite explicitement par l'opérateur delete.
positive | si égal à true la contrainte créée est une contrainte positive, si false (par défaut) c'est une contrainte négative. |
Constraint* cogitant::Environment::newExternalConstraint | ( | Constraint const * | g | ) |
Création d'une contrainte par recopie d'un contrainte existante.
La contrainte créée n'est pas mémorisée dans l'environnement: elle n'a pas d'identificateur et doit être détruite explicitement par l'opérateur delete.
Graph* cogitant::Environment::newExternalGraph | ( | ) |
Création d'un graphe vide.
Le graphe créé n'est pas mémorisé dans l'environnement: il n'a pas d'identificateur et doit être détruit explicitement par l'opérateur delete.
Création d'un graphe par recopie d'un graphe existant.
Le graphe créé n'est pas mémorisé dans l'environnement.
g | pointeur sur le graphe à dupliquer. |
extmode | si false les noeuds de g sont copiés, sinon les noeuds de g sont partagés avec le nouveau graphe créé (noeuds externes). |
Rule* cogitant::Environment::newExternalRule | ( | ) |
Création d'une règle vide.
La règle créée n'est pas mémorisée dans l'environnement: elle n'a pas d'identificateur et doit être détruite explicitement par l'opérateur delete.
Création d'une règle par recopie d'un règle existante.
La règle créée n'est pas mémorisée dans l'environnement: elle n'a pas d'identificateur et doit être détruite explicitement par l'opérateur delete.
iSet cogitant::Environment::newGraph | ( | ) |
Création d'un graphe vide.
Le graphe créé ne doit pas être détruit par l'opérateur delete mais par l'appel à la méthode deleteGraph().
Création d'un graphe par recopie d'un graphe existant.
Le graphe créé ne doit pas être détruit par l'opérateur delete mais par l'appel à la méthode deleteGraph().
g | pointeur sur le graphe à dupliquer. |
extmode | si false les noeuds de g sont copiés, sinon les noeuds de g sont partagés avec le nouveau graphe créé (noeuds externes). |
Création d'un graphe par recopie d'un graphe existant (repéré par son identificateur).
Le graphe créé ne doit pas être détruit par l'opérateur delete mais par l'appel à la méthode deleteGraph().
g | identifiant du graphe à dupliquer. |
extmode | si false les noeuds de g sont copiés, sinon les noeuds de g sont partagés avec le nouveau graphe créé (noeuds externes). |
ExceptionIncorrectType |
|
protectedvirtual |
Identificateur utilisé par aucun objet.
OpeProjectionBundle* cogitant::Environment::newOpeProjectionBundle | ( | ) | const |
Création d'une nouvelle opération de calcul des projections à partir de l'opération par défaut.
Cette méthode crée dynamiquement et retourne un nouvel OpeProjectionBundle ayant les mêmes caractéristiques que l'opération par défaut. L'objet retourné doit donc être détruit par delete après utilisation. Cet objet peut être utilisé pour un parcours de projections à l'aide des méthodes OpeProjectionBundle::begin() et OpeProjectionBundle::end().
iSet cogitant::Environment::newRule | ( | ) |
Création d'une règle vide.
La règle créée ne doit pas être détruite par l'opérateur delete mais par l'appel à la méthode deleteRule().
Création d'une règle par recopie d'une règle existante.
La règle créée ne doit pas être détruite par l'opérateur delete mais par l'appel à la méthode deleteRule().
Création d'une règle par recopie d'une règle existante.
La règle créée ne doit pas être détruite par l'opérateur delete mais par l'appel à la méthode deleteRule().
g | identifiant de la règle à dupliquer. |
ExceptionIncorrectType |
nSet cogitant::Environment::normalize | ( | Graph * | g, |
bool | conjunctivetypes = true , |
||
GraphSubset const * | subset1 = NULL , |
||
GraphSubset const * | subset2 = NULL |
||
) |
Mise sous forme normale.
g | le graphe à mettre sous forme normale. |
conjunctivetypes | utilisation de types conjonctifs pour calculer la forme normale. |
subset1 | permet une optimisation du calcul de la normalisation dans le cas où le graphe à normaliser est composé de deux parties qui sont (chacune) sous forme normale. Pour une utilisation simple, passer NULL. |
subset2 | permet une optimisation du calcul de la normalisation dans le cas où le graphe à normaliser est composé de deux parties qui sont (chacune) sous forme normale. Pour une utilisation simple, passer NULL. |
|
inline |
Accès direct aux objets contenus dans l'environnement.
NULL
).
|
inline |
Accès direct à un objet par son identificateur.
References cogitant::Set< SetContent >::iGetContent().
|
inline |
Accès direct aux objets contenus dans l'environnement.
NULL
).
|
inline |
Accès direct à un objet par son identificateur.
References cogitant::Set< SetContent >::iGetContent().
OpeProjectionBundle* cogitant::Environment::opeProjectionBundle | ( | unsigned int | numero = 0 | ) | const |
Accès à l'opération de calcul des projections par défaut.
L'utilisation d'une opération de calcul de projections n'est pas réentrente, l'environnement garde donc 2 opérations de projections pouvant être utilisées conjointement. Habituellement, il n'est pas nécessaire d'utiliser cette méthode à moins de savoir exactement ce que vous faites.
numero | numéro de l'opération recherchée. L'opération 0 est utilisée pour le calcul des projections (projections()), et l'opération 1 est utilisée pour rechercher les applications non redondantes d'une règle. |
Environment& cogitant::Environment::operator= | ( | Environment const & | ob | ) |
Affectation.
void cogitant::Environment::printInternalInfo | ( | std::ostream & | os | ) | const |
Affichage d'informations pouvant être utiles à l'optimisation.
void cogitant::Environment::projectionImage | ( | Graph const * | g, |
Graph const * | h, | ||
Projection const * | p, | ||
Graph * | image | ||
) |
Calcul de l'image par une projection.
g | graphe projeté. |
h | graphe dans lequel g est projeté. |
p | projection de g dans h. |
image | (D/R) image de g dans h selon p. Un graphe vide doit être passé comme paramètre, après l'appel à cette méthode, ce graphe contiendra l'image par la projection. |
void cogitant::Environment::projections | ( | iSet | g, |
iSet | h, | ||
ResultOpeProjection & | res, | ||
bool | injective = false |
||
) |
Calcul des projections.
g | identificateur du graphe projeté. |
h | identificateur du graphe dans lequel g est projeté. |
res | (D/R) ensemble des projections de g dans h. |
injective | si true , recherche des seules projections injectives, sinon (par défaut) toutes les projections sont cherchées. |
void cogitant::Environment::projections | ( | Graph const * | g, |
Graph const * | h, | ||
ResultOpeProjection & | res, | ||
bool | injective = false |
||
) |
Calcul des projections.
g | graphe projeté. |
h | graphe dans lequel g est projeté. |
res | (D/R) ensemble des projections de g dans h. |
injective | si true , recherche des seules projections injectives, sinon (par défaut) toutes les projections sont cherchées. |
iSet cogitant::Environment::read | ( | std::string const & | file, |
std::vector< iSet > * | graphs = NULL , |
||
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Chargement d'un fichier contenant support, graphes, règles ou contraintes.
file | nom du fichier devant être lu. Le format d'analyse du fichier est déterminé automatiquement par le IOHandler de l'environnement en fonction de l'extension du fichier. |
graphs | (R) identificateurs dans l'environnement des graphes (ou règles) lus. Ce paramètre est optionnel. |
versionformat | forcer l'interprétation de la variante du format si différent de 0. |
upd | visualisation de l'avancement de la lecture par un GaugeUpdater créé au préalable. |
NULL
. iSet cogitant::Environment::readGraphs | ( | std::string const & | file, |
std::vector< iSet > * | graphs = NULL , |
||
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Chargement de graphes (ou règles, ou contraintes).
file | nom du fichier devant être lu. Le format d'analyse du fichier est déterminé automatiquement par le IOHandler de l'environnement en fonction de l'extension du fichier. |
graphs | (R) identificateurs dans l'environnement des graphes (ou règles) lus. Ce paramètre est optionnel. |
versionformat | forcer l'interprétation de la variante du format si différent de 0. |
upd | visualisation de l'avancement de la lecture par un GaugeUpdater créé au préalable. |
NULL
. iSet cogitant::Environment::readGraphs | ( | std::istream & | s, |
std::string | streamname = "" , |
||
std::vector< iSet > * | graphs = NULL , |
||
IOHandler::Format | format = IOHandler::BCGCT , |
||
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Chargement de graphes (ou règles, ou contraintes).
Même usage que la méthode readGraphs() ci-dessus, si ce n'est que la lecture se fait dans un flux et non à partir d'un nom de fichier.
void cogitant::Environment::readSupport | ( | std::string const & | file, |
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Chargement d'un support.
file | nom du fichier devant être lu. Le format d'analyse du fichier est déterminé automatiquement par le IOHandler de l'environnement en fonction de l'extension du fichier. |
versionformat | forcer l'interprétation de la variante du format si différent de 0. |
upd | visualisation de l'avancement de la lecture par un GaugeUpdater créé au préalable. |
ExceptionIO |
void cogitant::Environment::readSupport | ( | std::istream & | s, |
std::string | streamname = "" , |
||
IOHandler::Format | format = IOHandler::BCGCT , |
||
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Chargement d'un support.
Même usage que la méthode readSupport() ci-dessus, si ce n'est que la lecture se fait dans un flux et non à partir d'un nom de fichier.
void cogitant::Environment::replaceObject | ( | iSet | i, |
EnvironmentObject * | g | ||
) |
Remplacement d'un objet de l'environnement par un objet qui n'en faisait pas partie.
Après cet appel, l'objet passé en paramètre est mémorisé dans l'environnement, et ne doit donc pas être détruit par delete.
i | identificateur dans l'ensemble de l'objet à supprimer et à remplacer. Cet objet est détruit. |
g | objet à rajouter à l'environnement. |
void cogitant::Environment::ruleApplications | ( | Graph const * | g, |
Rule const * | r, | ||
ResultOpeProjection & | res, | ||
bool | irr = false |
||
) |
Calcul des applications possibles d'une règle sur un graphe.
Utilisation avancée. Le calcul des applications de la règle utilise l'opération de calcul des projections "0", c'est à dire, celle qui est accessible par opeProjection(0). Le calcul des applications peut donc être "configuré" en modifiant certains paramètres de cette oépration avant de lancer ruleApplications(). Par exemple, on peut demander le calcul des seules applications injectives ou les applications de la règle dans le graphe de niveau 0 ou dans tous les graphes emboîtés.
g | le graphe. |
r | la règle. |
irr | si true ne recherche que les applications irredondantes de la règle, c'est à dire celles qui ajoutent de l'information qui n'est pas déjà présente dans le graphe (utilisation d'une instance de OpeRuleIrredundantProjection correctement renseignée avec ResultOpeProjection::opeAcceptableProjection()). Si false toutes les applications sont cherchées (en fait, dans ce cas, la méthode ResultOpeProjection::opeAcceptableProjection() n'est pas appelée et une éventuelle opération de filtre installée par l'utilisateur est prise en compte). |
res | (D/R) ensemble calculé des projections de l'hypothèse de r dans g, définissant ainsi les applications possibles de r sur g. res peut être configuré (voir ResultOpeProjection) avant l'appel à cette méthode. |
bool cogitant::Environment::ruleApply | ( | Graph * | g, |
Rule const * | r, | ||
Projection const * | p, | ||
bool | onlyif, | ||
GraphSubset * | addednodes = NULL |
||
) |
Application d'une règle sur un graphe conceptuel selon un Projection_Soc.
Le graphe passé en paramètre est modifié par l'application de la règle.
g | le graphe. |
r | la règle. |
p | une Projection_Soc de l'hypothèse de r dans g. |
onlyif | si true la règle n'est appliquée suivant la Projection que dans le cas où elle ajoute de l'information qui n'est pas déjà présente dans le graphe (c'est à dire : il n'existe pas de projection du nouveau graphe dans l'ancien). |
addednodes | si non NULL, les identificateurs des sommets ajoutés à g sont ajoutés à ce GraphSubset. |
true
si la règle a été effectivement appliquée, false
si g n'a pas été modifié. Accès direct à une règle par son identificateur.
ExceptionIncorrectType |
References cogitant::EnvironmentObject::asRule().
Accès direct à une règle par son identificateur.
ExceptionIncorrectType |
References cogitant::EnvironmentObject::asRule().
unsigned long cogitant::Environment::rulesClosure | ( | Graph * | g, |
Set< Rule *> const * | r = NULL , |
||
unsigned long | nma = 0 , |
||
unsigned long | nmp = 0 , |
||
GraphSubset * | addednodes = NULL |
||
) |
Calcul d'une fermeture d'un graphe par un ensemble de règles.
Le graphe passé est modifié par l'application des règles.
g | le graphe. |
r | l'ensemble de règles. Si NULL est passé (par défaut), toutes les règles de l'environnement sont utilisées pour calculer une fermeture. |
nma | le nombre maximum d'applications de règles à prendre en compte. Selon la forme des règles il est possible que la fermeture soit infinie, c'est à dire qu'il soit toujours possible d'appliquer une règle de façon non redondante. C'est pourquoi il est possible de fixer le nombre maximum d'applications de règles qui peuvent être appliquées. Si la valeur 0 est passée (par défaut) aucune limite n'est posée sur le nombre d'applications, et cette méthode peut potentiellement ne jamais se terminer. |
nmp | le nombre maximum de passes de l'ensemble de règles à prendre en compte. Une passe correspond à la recherche de toutes les applications des règles, une par une, sur le graphe. L'application de ces règles modifie le graphe, et peut donc permettre d'autres applications, mais lors d'une passe, cela n'est pas pris en compte. Si la valeur 0 est passée (par défaut), aucune limite n'est posée. |
addednodes | si non NULL, les identificateurs des sommets ajoutés à g sont ajoutés à ce GraphSubset. |
unsigned long cogitant::Environment::rulesClosureNormalize | ( | Graph * | g, |
Set< Rule *> const * | r = NULL , |
||
unsigned long | nma = 0 , |
||
unsigned long | nmp = 0 , |
||
bool | conjunctivetypes = true |
||
) |
Calcul d'une fermeture d'un graphe par un ensemble de règles en normalisant le graphe au fur et à mesure de l'application des règles.
Le graphe passé est modifié par l'application des règles et les mises sous forme normale.
g | le graphe. |
r | l'ensemble de règles. Si NULL est passé (par défaut), toutes les règles de l'environnement sont utilisées pour calculer une fermeture. |
nma | le nombre maximum d'applications de règles à prendre en compte. Selon la forme des règles il est possible que la fermeture soit infinie, c'est à dire qu'il soit toujours possible d'appliquer une règle de façon non redondante. C'est pourquoi il est possible de fixer le nombre maximum d'applications de règles qui peuvent être appliquées. Si la valeur 0 est passée (par défaut) aucune limite n'est posée sur le nombre d'applications, et cette méthode peut potentiellement ne jamais se terminer. |
nmp | le nombre maximum de passes de l'ensemble de règles à prendre en compte. Une passe correspond à la recherche de toutes les applications des règles, une par une, sur le graphe. L'application de ces règles modifie le graphe, et peut donc permettre d'autres applications, mais lors d'une passe, cela n'est pas pris en compte. Si la valeur 0 est passée (par défaut), aucune limite n'est posée. |
conjunctivetypes | utilisation de types conjonctifs pour calculer la forme normale. |
Application des signatures sur les sommets relations du graphe.
Cette opération modifie les types des sommets concepts voisins d'un sommet relation afin que le sommet relation respecte sa signature. L'opération spécialise donc les types des concepts voisins en ajoutant les types de concepts de la signature. Attention, suite à l'application de cette opération, un graphe ne contenant que des types de concepts primitifs peut contenir des types de concepts conjonctifs. Il peut aussi contenir des types de concepts bannis. Aucune vérification n'est effectuée par cette opération, voir Environment::verifBannedType() pour cela.
g | le graphe sur lequel les signatures doivent être appliquées. |
rnode | le sommet relationde g à considérer, ou ISET_NULL pour appliquer les signatures sur tous les sommets relations de g. |
nSet cogitant::Environment::sizeObjects | ( | ) | const |
Nombre d'objets stockés dans l'environnement.
(y compris les objets effacés dont l'identificateur n'a pas encore été réutilisé).
void cogitant::Environment::subgraph | ( | Graph * | result, |
Graph const * | src, | ||
GraphSubset const & | subset, | ||
bool | copychildren = true |
||
) |
Sous-graphe d'un graphe.
Le premier graphe passé est modifié et contient après l'appel le sous-graphe du second paramètre composé des sommets passés dans le troisième paramètre.
result | graphe dans lequel le résultat de l'opération sera stocké. Si ce graphe comporte des sommets, ils seront détruits par l'opération |
src | graphe "source". |
subset | sous-ensemble de l'ensemble des sommets de src définissant un sous-graphe. |
copychildren | si true la méthode copie les graphes emboîtés dans les sommets sélectionnés, sinon, ils ne sont pas copiés. |
|
inline |
Support.
|
inline |
Support.
void cogitant::Environment::supportSignatureSpecialize | ( | ) |
Spécialisation des signatures afin que chaque signature définie pour un type de relation dans le support soit une spécialisation des signatures des super-types de ce type.
Cette opération modifie donc les signatures définies dans le support, afin qu'une vérification par verifySupportSignature() ne retourne aucune erreur. Pour cela, elle spécialise les signatures des types de relations dont la signature n'est pas une spécialisation des signatures des super-types.
bool cogitant::Environment::verifyBannedType | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification des types bannis.
Cette méthode cherche les sommets concepts qui ont un type conjonctif banni.
g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe respecte la contrainte, false
sinon. bool cogitant::Environment::verifyConformity | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification de la conformité.
g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe est correctement formé, false
sinon. bool cogitant::Environment::verifyConjunctiveType | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification des types conjonctifs.
Cette méthode cherche les sommets concepts qui ont un type conjonctif contenant deux types primitifs dont l'un est une spécialisation de l'autre.
g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe respecte la contrainte, false
sinon. bool cogitant::Environment::verifyCoreferenceClass | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification des classes de coréférence.
Cette méthode vérifie qu'une classe de coréférence ne contient pas deux sommets concepts ayant des marqueurs individuels différents, et que la conjonction des types de tous les sommets concepts de la classe de coréférence n'est pas un type interdit.
g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe respecte la contrainte, false
sinon. bool cogitant::Environment::verifyEdges | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification des arêtes pendantes.
g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe est correctement formé, false
sinon.
|
protected |
Exécute une vérification du graphe.
bool cogitant::Environment::verifyGraph | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Effectue toutes les opérations de vérification sur un graphe.
g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe ne contient aucun problème, false
sinon. bool cogitant::Environment::verifyIrredundant | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification de la forme irredondante d'un graphe.
Cette méthode vérifie si un graphe est sous forme irredondante.
false
dans le cas où un des graphes emboîtés contient de la redondance. g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe est irredondant, false
sinon. bool cogitant::Environment::verifyNormalForm | ( | Graph const * | g, |
bool | verifycc = true , |
||
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification de la forme normale d'un graphe.
Dans le cas d'un graphe emboîté, cetté méthode vérifie que chaque emboîtement est sous forme normale, c'est à dire que tout graphe interne (considéré comme un graphe simple) est sous forme normale.
g | le graphe à vérifier. |
verifycc | si true recherche aussi les classes de coréférence. Si false ne considère que les marqueurs individuels. Ainsi, si false est passé, même s'il y a des sommets liés par un lien de coréférence explicite, le graphe sera reconnu comme étant sous forme normale à condition qu'il n'utilise pas 2 fois le même marqueur individuel. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe est sous forme normale, false
sinon. bool cogitant::Environment::verifySignature | ( | Graph const * | g, |
OpeVerification::ListErrors * | err = NULL |
||
) | const |
Vérification des signatures des relation.
g | le graphe à vérifier. |
err | (D/R) Liste d'erreurs détectées par la vérification. L'opération ajoute à err les erreurs trouvée et n'efface pas un éventuel contenu de err. Si err = NULL , ce paramètre n'est pas pris en compte. |
true
si le graphe est correctement formé, false
sinon. bool cogitant::Environment::verifySupportBannedType | ( | OpeVerification::ListErrors * | err = NULL | ) | const |
Vérification des types bannis du support.
Cette méthode vérifie que chacun des types conjonctifs interdits du support ne contient pas deux types primitifs tels que l'un est une spécialisation de l'autre.
err | si non NULL, contient en sortie les types bannis qui sont incorrects. |
true
si l'ensemble des types bannis respecte la contrainte, false
sinon. bool cogitant::Environment::verifySupportSignature | ( | OpeVerification::ListErrors * | err = NULL | ) | const |
Vérification des signatures des types de relation du support.
Cette méthode vérifie que les signatures du support sont définies telles que la signature d'un type de relation est une spécialisation des signatures des super-types de ce type de relation.
err | si non NULL, contient en sortie les types de relations dont la signature est incorrecte. |
true
si l'ensemble des types de relations respecte la contrainte, false
sinon. void cogitant::Environment::writeGraph | ( | std::string const & | file, |
iSet | graph, | ||
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Sauvegarde d'un graphe (ou règle, ou contrainte).
file | nom du fichier devant être écrit. Le format du fichier est déterminé automatiquement par le IOHandler de l'environnement en fonction de l'extension du fichier. |
graph | identificateur dans l'environnement du graphe (ou règle) à sauvegarder. |
versionformat | forcer l'écriture à la variante du format si différent de 0. |
upd | visualisation de l'avancement de l'écriture par un GaugeUpdater créé au préalable. |
void cogitant::Environment::writeGraph | ( | std::ostream & | s, |
iSet | graph, | ||
IOHandler::Format | format = IOHandler::LINEARFORM |
||
) |
Sortie d'un graphe (ou règle, ou contrainte) sur un flux.
Cette méthode est un raccourci aux méthodes disponibles dans IOHandler et permet de sortir facilement un graphe sur un flux, en utilisant un format de fichier déterminé au moment de l'appel (par défaut, forme linéaire).
s | flux de sortie du graphe. |
graph | identificateur du graphe (ou règle) à sortir. |
format | format de sortie. |
void cogitant::Environment::writeGraphs | ( | std::string const & | file, |
std::vector< iSet > const & | graphs, | ||
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Sauvegarde de graphes (ou règles, ou contraintes).
file | nom du fichier devant être écrit. Le format du fichier est déterminé automatiquement par le IOHandler de l'environnement en fonction de l'extension du fichier. |
graphs | identificateurs dans l'environnement des graphes (ou règles) à sauvegarder. |
versionformat | forcer l'écriture à la variante du format si différent de 0. |
upd | visualisation de l'avancement de l'écriture par un GaugeUpdater créé au préalable. |
void cogitant::Environment::writeGraphs | ( | std::ostream & | s, |
std::vector< iSet > const & | graphs, | ||
IOHandler::Format | format = IOHandler::BCGCT |
||
) |
Sortie d'un graphe (ou règle, ou contrainte) sur un flux.
Cette méthode est un raccourci aux méthodes disponibles dans IOHandler et permet de sortir facilement des graphes sur un flux, en utilisant un format de fichier déterminé au moment de l'appel (par défaut, BCGCT).
s | flux de sortie du graphe. |
graphs | identificateur des graphes (ou règles) à sortir. |
format | format de sortie. |
void cogitant::Environment::writeSupport | ( | std::string const & | file, |
unsigned int | versionformat = 0 , |
||
GaugeUpdater * | upd = NULL |
||
) |
Sauvegarde du support.
file | nom du fichier devant être écrit. Le format du fichier est déterminé automatiquement par le IOHandler de l'environnement en fonction de l'extension du fichier. |
versionformat | forcer l'écriture à la variante du format si différent de 0. |
upd | visualisation de l'avancement de l'écriture par un GaugeUpdater créé au préalable. |
ExceptionIO |
void cogitant::Environment::writeSupport | ( | std::ostream & | s, |
IOHandler::Format | format = IOHandler::BCGCT |
||
) |
Sortie du support sur un flux.
Cette méthode est un raccourci aux méthodes disponibles dans IOHandler et permet de sortir facilement le support sur un flux, en utilisant un format de fichier déterminé au moment de l'appel (par défaut, BCGCT).
s | flux de sortie du graphe. |
format | format de sortie. |
|
friend |
Sortie sur un flux.
La fonction est redéfinie pour une sortie sur le flux plus complète que le résultat de toString().