Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

Protected Member Functions | List of all members
cogitant::Environment Class Reference

Environnement. More...

#include "cogitant/environment.h"

Inheritance diagram for cogitant::Environment:
cogitant::CogitantObject

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_GRAPHgraph_iterator
 
typedef EnvironmentObjectCondIterator< Graph *, Graph const *const &, EnvironmentObject::OT_GRAPHgraph_const_iterator
 
typedef EnvironmentObjectCondIterator< Rule *, Rule *&, EnvironmentObject::OT_RULErule_iterator
 
typedef EnvironmentObjectCondIterator< Rule *, Rule const *const &, EnvironmentObject::OT_RULErule_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
Supportsupport ()
 Support. More...
 
Set< EnvironmentObject * > * objects ()
 Accès direct aux objets contenus dans l'environnement. More...
 
IOHandlerioHandler ()
 Gestionnaire d'entrées/sorties. More...
 
EnvironmentObjectExtension::FactoryextensionFactory ()
 Fabrique d'EnvironmentObjectExtension. More...
 
void deleteObject (iSet i)
 Destruction d'un objet mémorisé. More...
 
EnvironmentObjectdetachObject (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...
 
EnvironmentObjectobjects (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
GraphnewExternalGraph ()
 Création d'un graphe vide. More...
 
iSet newGraph ()
 Création d'un graphe vide. More...
 
GraphnewExternalGraph (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...
 
Graphgraphs (iSet i)
 Accès direct à un graphe par son identificateur. More...
 
void deleteGraph (iSet i)
 Destruction d'un graphe mémorisé. More...
 
GraphdetachGraph (iSet i)
 Détache le graphe de l'environnement. More...
 
Modifications - Règles
RulenewExternalRule ()
 Création d'une règle vide. More...
 
iSet newRule ()
 Création d'une règle vide. More...
 
RulenewExternalRule (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...
 
Rulerules (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...
 
RuledetachRule (iSet i)
 Détache la règle de l'environnement. More...
 
Modifications - Contraintes
ColoredGraphConstraintnewExternalColoredGraphConstraint (bool positive=false)
 Création d'une contrainte vide sous la forme d'un graphe bicoloré. More...
 
ConstraintnewExternalConstraint (bool positive=false)
 Création d'une contrainte vide. More...
 
iSet newConstraint (bool positive=false)
 Création d'une contrainte vide. More...
 
ConstraintnewExternalConstraint (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...
 
Constraintconstraints (iSet i)
 Accès direct à une contrainte par son identificateur. More...
 
void deleteConstraint (iSet i)
 Destruction d'une contrainte mémorisée. More...
 
ConstraintdetachConstraint (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...
 
ObserverMessageFactorymessageFactory () const
 Fabrique de messages. More...
 
EnvironmentObjectExtension::Factory const & extensionFactory () const
 Fabrique d'EnvironmentObjectExtension. More...
 
Raccourcis pour les opérations.
OpeProjectionBundleopeProjectionBundle (unsigned int numero=0) const
 Accès à l'opération de calcul des projections par défaut. More...
 
OpeProjectionBundlenewOpeProjectionBundle () 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...
 
PropertySetproperties ()
 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...
 
CogitantObjectoperator= (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 PropertySetallocProperties () 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.

Environmentoperator= (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...
 

Detailed Description

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.

See also
The Environment class.
Examples:
converter.cpp, minimal.cpp, and wxdisplay.cpp.

Constructor & Destructor Documentation

◆ Environment() [1/2]

cogitant::Environment::Environment ( EnvironmentAllocator const *  alloc = NULL)

Constructeur.

L'allocateur par défaut est utilisé si alloc = NULL. Un support vide est créé.

◆ Environment() [2/2]

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é.

◆ ~Environment()

virtual cogitant::Environment::~Environment ( )
virtual

Destructeur.

Member Function Documentation

◆ addConstraint()

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.

Precondition
la contrainte passée en paramètre ne doit pas déjà être mémorisée dans un environnement.
Parameters
grègle à rajouter à l'environnement.
Returns
l'identifiant attribué à la contrainte.

◆ addDefaultIOOperations()

void cogitant::Environment::addDefaultIOOperations ( )
protected

Ajoute au IOHandler de l'environnement des gestionnaires pour les formats standard.

◆ addGraph()

iSet cogitant::Environment::addGraph ( Graph g)

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.

Precondition
le graphe passé en paramètre ne doit pas déjà être mémorisé dans un environnement.
Parameters
ggraphe à rajouter à l'environnement.
Returns
l'identifiant attribué au graphe.

◆ addObject()

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.

Parameters
gobjet à rajouter à l'environnement.
Precondition
l'objet passé en paramètre ne doit pas déjà être mémorisé dans un environnement.
Returns
l'identifiant attribué à l'objet.

◆ addRule()

iSet cogitant::Environment::addRule ( Rule g)

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.

Precondition
la règle passée en paramètre ne doit pas déjà être mémorisée dans un environnement.
Parameters
grègle à rajouter à l'environnement.
Returns
l'identifiant attribué à la règle.

◆ allocator()

EnvironmentAllocator const* cogitant::Environment::allocator ( ) const
inline

Allocateur.

◆ allocMembers() [1/2]

void cogitant::Environment::allocMembers ( )
protected

Allocation de tous les membres.

◆ allocMembers() [2/2]

void cogitant::Environment::allocMembers ( Environment const &  o)
protected

Allocation de tous les membres par copie des membres d'un environnement existant.

Warning
L'allocateur n'est pas copié. L'allocateur est en effet fixé au moment du constructeur de l'environnement et ne peut être modifié par la suite.

◆ allocMembersOperations()

void cogitant::Environment::allocMembersOperations ( )
protected

Allocation des membres opérations.

◆ begin() [1/2]

const_iterator cogitant::Environment::begin ( ) const

Retourne un itérateur de début pour le parcours des éléments.

◆ begin() [2/2]

iterator cogitant::Environment::begin ( )

Retourne un itérateur de début pour le parcours des éléments.

◆ clear()

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()).

Examples:
converter.cpp.

◆ connectedComponents()

nSet cogitant::Environment::connectedComponents ( Graph const *  g,
std::vector< GraphSubset > &  cc,
iSet  idig = 0,
GraphSubset const *  subset = NULL 
) const

Composantes connexes du graphe.

Parameters
gle 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.
idigidentificateur du InternalGraph à vérifier, par défaut 0, ce qui correspond au graphe de niveau 0.
subsetsi 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.
Returns
le nombre de composantes connexes.
See also
OpeConnectedComponent, Conceptual graph operations.

◆ connectedComponentsSize()

nSet cogitant::Environment::connectedComponentsSize ( Graph const *  g,
iSet  idig = 0,
GraphSubset const *  subset = NULL 
) const

Nombre de composantes connexes du graphe.

Parameters
gle graphe à vérifier.
idigidentificateur du InternalGraph à vérifier, par défaut 0, ce qui correspond au graphe de niveau 0.
subsetsi 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.
Returns
le nombre de composantes connexes de l'InternalGraph passé en paramètre.
See also
OpeConnectedComponent, Conceptual graph operations.

◆ constraints() [1/2]

Constraint* cogitant::Environment::constraints ( iSet  i)
inline

Accès direct à une contrainte par son identificateur.

Precondition
i repère une Constraint.
Exceptions
ExceptionIncorrectType

References cogitant::EnvironmentObject::asConstraint().

◆ constraints() [2/2]

Constraint const* cogitant::Environment::constraints ( iSet  i) const
inline

Accès direct à une contrainte par son identificateur.

Precondition
i repère une Constraint.
Exceptions
ExceptionIncorrectType

References cogitant::EnvironmentObject::asConstraint().

◆ constraintSatisfaction()

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.

Parameters
gle graphe à vérifier.
cla contrainte à utiliser.
projcondsi 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.
projintersi 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.
Returns
true ssi le graphe est valide pour la contrainte.
See also
OpeConstraintSatisfaction, opeProjection(), Graph checkout operations according to a constraint.

◆ deleteConstraint()

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.

Parameters
iidentificateur de la contrainte à détacher.
Exceptions
ExceptionIncorrectType

◆ deleteGraph()

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.

Parameters
iidentificateur du graphe à détruire.
Exceptions
ExceptionIncorrectType

◆ deleteMembers()

void cogitant::Environment::deleteMembers ( )
protected

Destruction de tous les membres.

◆ deleteObject()

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.

◆ deleteRule()

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.

Parameters
iidentificateur de la règle à détacher.
Exceptions
ExceptionIncorrectType

◆ detachConstraint()

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.

Parameters
iidentificateur de la contrainte à détacher.
Returns
pointeur sur la contrainte.
Exceptions
ExceptionIncorrectType

◆ detachGraph()

Graph* cogitant::Environment::detachGraph ( iSet  i)

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.

Parameters
iidentificateur du graphe à détacher.
Returns
pointeur sur le graphe.
Exceptions
ExceptionIncorrectType

◆ detachObject()

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.

Parameters
iidentificateur de l'objet à détacher.
Returns
pointeur sur l'objet.

◆ detachRule()

Rule* cogitant::Environment::detachRule ( iSet  i)

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.

Parameters
iidentificateur de la règle à détacher.
Returns
pointeur sur la règle.
Exceptions
ExceptionIncorrectType

◆ disjointSum()

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.

Parameters
destgraphe auquel seront ajoutés des sommets de l'autre graphe.
srcgraphe à ajouter. Ce graphe n'est pas modifié.
fusionccsi 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.
subsetsrcsi 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.
See also
OpeDisjointSum.

◆ disjointSumNewId()

iSet cogitant::Environment::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.

Parameters
oldidIdentificateur dans le graphe ajouté.
Returns
L'identificateur de la copie de oldid ajoutée au graphe lors de l'appel précédent à OpeDisjointSum.
Warning
ruleApply(), rulesClosure(), etc. font appel à l'opération de somme disjointe.

◆ end()

const_iterator cogitant::Environment::end ( ) const

Retourne un itérateur de fin pour le parcours des éléments du graphe.

◆ ensureObject() [1/2]

void cogitant::Environment::ensureObject ( iSet  i) const

S'assure de l'existence d'un objet de l'environnement.

Parameters
iidentificateur de l'objet à vérifier.
Exceptions
ExceptionUnknownObjectsi l'objet à vérifier n'existe pas dans l'environnement.

◆ ensureObject() [2/2]

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.

Parameters
iidentificateur de l'objet à vérifier.
ttype de l'object à vérifier.
strictsi 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.
Exceptions
ExceptionUnknownObjectsi l'objet à vérifier n'existe pas dans l'environnement.
ExceptionIncorrectTypesi l'objet à vérifier n'est pas du bon type.

◆ extensionFactory() [1/2]

EnvironmentObjectExtension::Factory& cogitant::Environment::extensionFactory ( )
inline

◆ extensionFactory() [2/2]

EnvironmentObjectExtension::Factory const& cogitant::Environment::extensionFactory ( ) const
inline

◆ externalJoin() [1/2]

void cogitant::Environment::externalJoin ( Graph g1,
iSet  ig1,
Graph const *  g2,
iSet  ig2 
)

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.

Parameters
g1graphe contenant en sortie le résultat du joint externe.
ig1identifant de sommet concept de g1. Ce sommet ne doit pas être dans un emboîtement.
g2graphe à joindre à g1. N'est pas modifié par la méthode.
ig2identifiant de sommet concept de g2 à joindre avec ig1. Ce sommet ne doit pas être dans un emboîtement.

◆ externalJoin() [2/2]

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.

Parameters
g1graphe contenant en sortie le résultat du joint externe.
g2graphe à joindre à g1. N'est pas modifié par la méthode.
couplescouples d'identifiants de sommet concept de g1 et g2. Ces sommet ne doivent pas être dans un emboîtement.
subsetg2si 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.

◆ findGraph()

iSet cogitant::Environment::findGraph ( std::string const &  n) const

Recherche d'un graphe par son nom.

Parameters
nnom du graphe cherché.
Returns
l'identificateur du premier graphe trouvé dont la propriété Property::GRAPH_NAME est égale à n ou cogitant::ISET_NULL si aucun graphe de l'environnement n'a ce nom.

◆ findObject()

iSet cogitant::Environment::findObject ( std::string const &  n) const

Recherche d'un objet par son nom.

Parameters
nnom de l'objet cherché.
Returns
l'identificateur du premier objet trouvé dont la propriété Property::GRAPH_NAME est égale à n ou cogitant::ISET_NULL si aucun objet de l'environnement n'a ce nom.

◆ graphs() [1/2]

Graph* cogitant::Environment::graphs ( iSet  i)
inline

Accès direct à un graphe par son identificateur.

Precondition
i repère un Graph.
Exceptions
ExceptionIncorrectType
Examples:
minimal.cpp, and wxdisplay.cpp.

References cogitant::EnvironmentObject::asGraph().

◆ graphs() [2/2]

Graph const* cogitant::Environment::graphs ( iSet  i) const
inline

Accès direct à un graphe par son identificateur.

Precondition
i repère un Graph.
Exceptions
ExceptionIncorrectType

References cogitant::EnvironmentObject::asGraph().

◆ individualGraphExpand()

void cogitant::Environment::individualGraphExpand ( Graph g,
iSet  ignode,
Graph const *  indgraph 
) const

Développement d'un graphe individu sur un sommet concept individuel.

Parameters
gle graphe contenant le sommet concept individuel à développer.
ignodeidentificateur du sommet concept individuel de g à développer.
indgraphle graphe individu.
See also
OpeIndividualGraphExpand.

◆ individualGraphMultipleExpand()

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.

Parameters
gle graphe contenant les sommets concepts individuels à développer.
indgl'ensemble des graphes individuels à utiliser pour développer les sommets concepts de g.
See also
OpeIndividualGraphMultipleExpand.

◆ ioHandler() [1/2]

IOHandler* cogitant::Environment::ioHandler ( )
inline

Gestionnaire d'entrées/sorties.

Examples:
converter.cpp.

◆ ioHandler() [2/2]

IOHandler const* cogitant::Environment::ioHandler ( ) const
inline

Gestionnaire d'entrées/sorties.

◆ isConnected()

bool cogitant::Environment::isConnected ( Graph const *  g,
iSet  idig = 0,
GraphSubset const *  subset = NULL 
) const

Test de la connexité du graphe.

Parameters
gle graphe à vérifier.
idigidentificateur du InternalGraph à vérifier, par défaut 0, ce qui correspond au graphe de niveau 0.
subsetsi 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.
Returns
true si le graphe est connexe, false s'il ne l'est pas.
See also
OpeConnectedComponent, Conceptual graph operations.

◆ makeIrredundant()

void cogitant::Environment::makeIrredundant ( Graph g)

Mise sous forme irredondante.

Parameters
gle graphe à mettre sous forme irredondante, le graphe est modifié par l'appel à la méthode.

◆ messageFactory()

ObserverMessageFactory* cogitant::Environment::messageFactory ( ) const
inline

Fabrique de messages.

◆ newConstraint() [1/3]

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().

Parameters
positivesi égal à true la contrainte créée est une contrainte positive, si false (par défaut) c'est une contrainte négative.
Returns
l'identifiant de la contrainte créée.
See also
Representation of a constraint.

◆ newConstraint() [2/3]

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().

Returns
l'identifiant de la contrainte créée.

◆ newConstraint() [3/3]

iSet cogitant::Environment::newConstraint ( iSet  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().

Parameters
gidentifiant de la contrainte à dupliquer.
Returns
l'identifiant de la contrainte créée.
Exceptions
ExceptionIncorrectType

◆ newExternalColoredGraphConstraint()

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.

Parameters
positivesi égal à true la contrainte créée est une contrainte positive, si false (par défaut) c'est une contrainte négative.
Returns
pointeur sur la règle créée.
See also
Representation of a constraint.

◆ newExternalConstraint() [1/2]

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.

Parameters
positivesi égal à true la contrainte créée est une contrainte positive, si false (par défaut) c'est une contrainte négative.
Returns
pointeur sur la règle créée.
See also
Representation of a constraint.

◆ newExternalConstraint() [2/2]

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.

Returns
pointeur sur la règle créée.

◆ newExternalGraph() [1/2]

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.

Returns
pointeur sur le graphe créé.

◆ newExternalGraph() [2/2]

Graph* cogitant::Environment::newExternalGraph ( Graph const *  g,
bool  extmode = false 
)

Création d'un graphe par recopie d'un graphe existant.

Le graphe créé n'est pas mémorisé dans l'environnement.

Parameters
gpointeur sur le graphe à dupliquer.
extmodesi false les noeuds de g sont copiés, sinon les noeuds de g sont partagés avec le nouveau graphe créé (noeuds externes).
Returns
un pointeur sur le nouveau graphe. Ce graphe n'a pas d'identificateur dans l'environnement et doit être détruit explicitement par l'opérateur delete.

◆ newExternalRule() [1/2]

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.

Returns
pointeur sur la règle créée.

◆ newExternalRule() [2/2]

Rule* cogitant::Environment::newExternalRule ( Rule const *  g)

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.

Returns
pointeur sur la règle créée.

◆ newGraph() [1/3]

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().

Returns
l'identifiant du graphe créé.

◆ newGraph() [2/3]

iSet cogitant::Environment::newGraph ( Graph const *  g,
bool  extmode = false 
)

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().

Parameters
gpointeur sur le graphe à dupliquer.
extmodesi false les noeuds de g sont copiés, sinon les noeuds de g sont partagés avec le nouveau graphe créé (noeuds externes).
Returns
l'identifiant du graphe créé.

◆ newGraph() [3/3]

iSet cogitant::Environment::newGraph ( iSet  g,
bool  extmode = false 
)

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().

Parameters
gidentifiant du graphe à dupliquer.
extmodesi false les noeuds de g sont copiés, sinon les noeuds de g sont partagés avec le nouveau graphe créé (noeuds externes).
Returns
l'identifiant du graphe créé.
Exceptions
ExceptionIncorrectType

◆ newISet()

virtual iSet cogitant::Environment::newISet ( )
protectedvirtual

Identificateur utilisé par aucun objet.

◆ newOpeProjectionBundle()

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().

◆ newRule() [1/3]

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().

Returns
l'identifiant de la règle créée.

◆ newRule() [2/3]

iSet cogitant::Environment::newRule ( Rule const *  g)

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().

Returns
l'identifiant de la règle créée.

◆ newRule() [3/3]

iSet cogitant::Environment::newRule ( iSet  g)

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().

Parameters
gidentifiant de la règle à dupliquer.
Returns
l'identifiant de la règle créée.
Exceptions
ExceptionIncorrectType

◆ normalize()

nSet cogitant::Environment::normalize ( Graph g,
bool  conjunctivetypes = true,
GraphSubset const *  subset1 = NULL,
GraphSubset const *  subset2 = NULL 
)

Mise sous forme normale.

Parameters
gle graphe à mettre sous forme normale.
conjunctivetypesutilisation de types conjonctifs pour calculer la forme normale.
subset1permet 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.
subset2permet 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.
Returns
Nombre de fusions effectuées par l'opération. Retourne donc 0 si le graphe était déjà sous forme normale.
See also
OpeNormalForm.

◆ objects() [1/4]

Set<EnvironmentObject*>* cogitant::Environment::objects ( )
inline

Accès direct aux objets contenus dans l'environnement.

Warning
Certains indices ne correspondent pas à des objets (repérés par une valeur NULL).
Examples:
converter.cpp.

◆ objects() [2/4]

EnvironmentObject* cogitant::Environment::objects ( iSet  i)
inline

Accès direct à un objet par son identificateur.

References cogitant::Set< SetContent >::iGetContent().

◆ objects() [3/4]

Set<EnvironmentObject*> const* cogitant::Environment::objects ( ) const
inline

Accès direct aux objets contenus dans l'environnement.

Warning
Certains indices ne correspondent pas à des objets (repérés par une valeur NULL).

◆ objects() [4/4]

EnvironmentObject const* cogitant::Environment::objects ( iSet  i) const
inline

Accès direct à un objet par son identificateur.

References cogitant::Set< SetContent >::iGetContent().

◆ opeProjectionBundle()

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.

Parameters
numeronumé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.
Returns
l'opération en question.

◆ operator=()

Environment& cogitant::Environment::operator= ( Environment const &  ob)

Affectation.

◆ printInternalInfo()

void cogitant::Environment::printInternalInfo ( std::ostream &  os) const

Affichage d'informations pouvant être utiles à l'optimisation.

◆ projectionImage()

void cogitant::Environment::projectionImage ( Graph const *  g,
Graph const *  h,
Projection const *  p,
Graph image 
)

Calcul de l'image par une projection.

Parameters
ggraphe projeté.
hgraphe dans lequel g est projeté.
pprojection 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.

◆ projections() [1/2]

void cogitant::Environment::projections ( iSet  g,
iSet  h,
ResultOpeProjection res,
bool  injective = false 
)

Calcul des projections.

Parameters
gidentificateur du graphe projeté.
hidentificateur du graphe dans lequel g est projeté.
res(D/R) ensemble des projections de g dans h.
injectivesi true, recherche des seules projections injectives, sinon (par défaut) toutes les projections sont cherchées.
See also
OpeProjection, Projection calculation.
Examples:
minimal.cpp.

◆ projections() [2/2]

void cogitant::Environment::projections ( Graph const *  g,
Graph const *  h,
ResultOpeProjection res,
bool  injective = false 
)

Calcul des projections.

Parameters
ggraphe projeté.
hgraphe dans lequel g est projeté.
res(D/R) ensemble des projections de g dans h.
injectivesi true, recherche des seules projections injectives, sinon (par défaut) toutes les projections sont cherchées.
See also
OpeProjection, Projection calculation.

◆ read()

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.

Parameters
filenom 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.
versionformatforcer l'interprétation de la variante du format si différent de 0.
updvisualisation de l'avancement de la lecture par un GaugeUpdater créé au préalable.
Returns
l'identifiant dans l'environnement du premier graphe lu (ou ISET_NULL si aucun graphe n'a été lu). Ceci permet de ne pas utiliser le paramètre graphs dans le cas où il est certain que le fichier ne contient qu'un seul graphe : il est possible dans ce cas d'utiliser la valeur de retour de la méthode pour connaître l'identifiant en mémoire de ce graphe. Il est à noter toutefois que le chargement d'un fichier contenant plusieurs graphes n'entraîne pas d'erreur ou d'exception même si le paramètre graphs est égal à NULL.
Examples:
converter.cpp.

◆ readGraphs() [1/2]

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).

Parameters
filenom 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.
versionformatforcer l'interprétation de la variante du format si différent de 0.
updvisualisation de l'avancement de la lecture par un GaugeUpdater créé au préalable.
Returns
l'identifiant dans l'environnement du premier graphe lu (ou ISET_NULL si aucun graphe n'a été lu). Ceci permet de ne pas utiliser le paramètre graphs dans le cas où il est certain que le fichier ne contient qu'un seul graphe : il est possible dans ce cas d'utiliser la valeur de retour de la méthode pour connaître l'identifiant en mémoire de ce graphe. Il est à noter toutefois que le chargement d'un fichier contenant plusieurs graphes n'entraîne pas d'erreur ou d'exception même si le paramètre graphs est égal à NULL.
Examples:
converter.cpp, minimal.cpp, and wxdisplay.cpp.

◆ readGraphs() [2/2]

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.

◆ readSupport() [1/2]

void cogitant::Environment::readSupport ( std::string const &  file,
unsigned int  versionformat = 0,
GaugeUpdater upd = NULL 
)

Chargement d'un support.

Parameters
filenom 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.
versionformatforcer l'interprétation de la variante du format si différent de 0.
updvisualisation de l'avancement de la lecture par un GaugeUpdater créé au préalable.
Exceptions
ExceptionIO
Examples:
converter.cpp, and minimal.cpp.

◆ readSupport() [2/2]

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.

◆ replaceObject()

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.

Parameters
iidentificateur dans l'ensemble de l'objet à supprimer et à remplacer. Cet objet est détruit.
gobjet à rajouter à l'environnement.
Precondition
l'objet passé en paramètre ne doit pas déjà être mémorisé dans un environnement.

◆ ruleApplications()

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.

Parameters
gle graphe.
rla règle.
irrsi 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.
See also
OpeRuleApplications.

◆ ruleApply()

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.

Parameters
gle graphe.
rla règle.
pune Projection_Soc de l'hypothèse de r dans g.
onlyifsi 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).
addednodessi non NULL, les identificateurs des sommets ajoutés à g sont ajoutés à ce GraphSubset.
Returns
true si la règle a été effectivement appliquée, false si g n'a pas été modifié.
Warning
Aucune vérification n'est faite sur la précondition p est une projection de l'hypothèse de r dans g.
See also
OpeRuleApply.

◆ rules() [1/2]

Rule* cogitant::Environment::rules ( iSet  i)
inline

Accès direct à une règle par son identificateur.

Precondition
i repère une Rule.
Exceptions
ExceptionIncorrectType

References cogitant::EnvironmentObject::asRule().

◆ rules() [2/2]

Rule const* cogitant::Environment::rules ( iSet  i) const
inline

Accès direct à une règle par son identificateur.

Precondition
i repère une Rule.
Exceptions
ExceptionIncorrectType

References cogitant::EnvironmentObject::asRule().

◆ rulesClosure()

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.

Parameters
gle graphe.
rl'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.
nmale 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.
nmple 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.
addednodessi non NULL, les identificateurs des sommets ajoutés à g sont ajoutés à ce GraphSubset.
Returns
Le nombre d'applications effectuées.
See also
OpeRulesClosure.

◆ rulesClosureNormalize()

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.

Parameters
gle graphe.
rl'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.
nmale 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.
nmple 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.
conjunctivetypesutilisation de types conjonctifs pour calculer la forme normale.
Returns
Le nombre d'applications effectuées.
See also
rulesClosure(), normalize().

◆ signatureApply()

void cogitant::Environment::signatureApply ( Graph g,
iSet  rnode = ISET_NULL 
) const

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.

Parameters
gle graphe sur lequel les signatures doivent être appliquées.
rnodele sommet relationde g à considérer, ou ISET_NULL pour appliquer les signatures sur tous les sommets relations de g.
See also
OpeSignatureApply.

◆ sizeObjects()

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é).

◆ subgraph()

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.

Parameters
resultgraphe 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
srcgraphe "source".
subsetsous-ensemble de l'ensemble des sommets de src définissant un sous-graphe.
copychildrensi true la méthode copie les graphes emboîtés dans les sommets sélectionnés, sinon, ils ne sont pas copiés.
Precondition
subset doit effectivement définir un sous-graphe de src. Plus précisément subset ne doit contenir que des identificateurs de sommets concepts et relations de src appartenant au même InternalGraph (pas obligatoirement celui de niveau 0).

◆ support() [1/2]

Support* cogitant::Environment::support ( )
inline

Support.

Examples:
converter.cpp.

◆ support() [2/2]

Support const* cogitant::Environment::support ( ) const
inline

Support.

◆ supportSignatureSpecialize()

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.

See also
OpeSupportSignatureSpecialize.

◆ verifyBannedType()

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.

Parameters
gle 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.
Returns
true si le graphe respecte la contrainte, false sinon.
See also
OpeVerifBannedType.

◆ verifyConformity()

bool cogitant::Environment::verifyConformity ( Graph const *  g,
OpeVerification::ListErrors err = NULL 
) const

Vérification de la conformité.

Parameters
gle 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.
Returns
true si le graphe est correctement formé, false sinon.
See also
OpeVerifConformity.

◆ verifyConjunctiveType()

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.

Parameters
gle 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.
Returns
true si le graphe respecte la contrainte, false sinon.
See also
OpeVerifConjunctiveType.

◆ verifyCoreferenceClass()

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.

Parameters
gle 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.
Returns
true si le graphe respecte la contrainte, false sinon.
See also
OpeVerifCoreferenceClass.

◆ verifyEdges()

bool cogitant::Environment::verifyEdges ( Graph const *  g,
OpeVerification::ListErrors err = NULL 
) const

Vérification des arêtes pendantes.

Parameters
gle 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.
Returns
true si le graphe est correctement formé, false sinon.
Warning
Un même identifiant de sommet relation peut être ajouté plusieurs fois dans io_errors si plusieurs de ses arêtes liées sont pendantes.
See also
OpeVerifEdges.

◆ verifyGraph() [1/2]

bool cogitant::Environment::verifyGraph ( OpeVerificationGraph ope,
Graph const *  g,
iSet  node,
OpeVerification::ListErrors err = NULL 
) const
protected

Exécute une vérification du graphe.

◆ verifyGraph() [2/2]

bool cogitant::Environment::verifyGraph ( Graph const *  g,
OpeVerification::ListErrors err = NULL 
) const

Effectue toutes les opérations de vérification sur un graphe.

Parameters
gle 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.
Returns
true si le graphe ne contient aucun problème, false sinon.
See also
verifyConformity(), verifySignature(), verifyEdges(), verifyNormalForm(), verifyConjunctiveType(), verifyBannedType(), verifyCoreferenceClass(), verifyIrredundant()..

◆ verifyIrredundant()

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.

Warning
Dans le cas d'un graphe emboîté, cette méthode prend en compte les emboîtements, ainsi, même si le graphe racine est irredondant, la méthode peut retourner false dans le cas où un des graphes emboîtés contient de la redondance.
Parameters
gle 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.
Returns
true si le graphe est irredondant, false sinon.
See also
OpeVerifIrredundant.

◆ verifyNormalForm()

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.

Parameters
gle graphe à vérifier.
verifyccsi 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.
Returns
true si le graphe est sous forme normale, false sinon.
See also
OpeVerifNormalForm.

◆ verifySignature()

bool cogitant::Environment::verifySignature ( Graph const *  g,
OpeVerification::ListErrors err = NULL 
) const

Vérification des signatures des relation.

Parameters
gle 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.
Returns
true si le graphe est correctement formé, false sinon.
Warning
Un même identifiant de sommet relation peut être ajouté plusieurs fois dans err si plusieurs de ses sommets concepts voisins ne vérifient pas la signature.
See also
OpeVerifSignature.

◆ verifySupportBannedType()

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.

Parameters
errsi non NULL, contient en sortie les types bannis qui sont incorrects.
Returns
true si l'ensemble des types bannis respecte la contrainte, false sinon.
See also
OpeVerifSupportBannedTypes.

◆ verifySupportSignature()

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.

Parameters
errsi non NULL, contient en sortie les types de relations dont la signature est incorrecte.
Returns
true si l'ensemble des types de relations respecte la contrainte, false sinon.
See also
OpeVerifSupportSignature.

◆ writeGraph() [1/2]

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).

Parameters
filenom 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.
graphidentificateur dans l'environnement du graphe (ou règle) à sauvegarder.
versionformatforcer l'écriture à la variante du format si différent de 0.
updvisualisation de l'avancement de l'écriture par un GaugeUpdater créé au préalable.
Examples:
minimal.cpp.

◆ writeGraph() [2/2]

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).

Parameters
sflux de sortie du graphe.
graphidentificateur du graphe (ou règle) à sortir.
formatformat de sortie.

◆ writeGraphs() [1/2]

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).

Parameters
filenom 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.
graphsidentificateurs dans l'environnement des graphes (ou règles) à sauvegarder.
versionformatforcer l'écriture à la variante du format si différent de 0.
updvisualisation de l'avancement de l'écriture par un GaugeUpdater créé au préalable.
Examples:
converter.cpp.

◆ writeGraphs() [2/2]

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).

Parameters
sflux de sortie du graphe.
graphsidentificateur des graphes (ou règles) à sortir.
formatformat de sortie.

◆ writeSupport() [1/2]

void cogitant::Environment::writeSupport ( std::string const &  file,
unsigned int  versionformat = 0,
GaugeUpdater upd = NULL 
)

Sauvegarde du support.

Parameters
filenom 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.
versionformatforcer l'écriture à la variante du format si différent de 0.
updvisualisation de l'avancement de l'écriture par un GaugeUpdater créé au préalable.
Exceptions
ExceptionIO
Examples:
converter.cpp.

◆ writeSupport() [2/2]

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).

Parameters
sflux de sortie du graphe.
formatformat de sortie.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const Environment ob 
)
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().