Graphe conceptuel coloré. More...
#include "cogitant/coloredgraph.h"
Public Member Functions | |
Constructeurs - destructeur. | |
ColoredGraph (Environment const *env, GraphAllocator const *alloc=NULL) | |
Constructeur. More... | |
ColoredGraph (Graph const &o, bool external=false, Environment const *env=NULL, GraphAllocator const *alloc=NULL) | |
Constructeur par recopie. More... | |
virtual | ~ColoredGraph () |
Destructeur. More... | |
Modifications. | |
void | color (iSet node, unsigned int c) |
Modification de la couleur d'un noeud du graphe. More... | |
virtual void | initNature () |
Vérification de la propriété nature. More... | |
Accesseurs. | |
unsigned int | color (iSet node) const |
Accès à la couleur d'un noeud du graphe. More... | |
GraphSubset | coloredSubset (unsigned int c) const |
Accès au sous ensemble des noeuds du graphe qui portent la couleur. More... | |
void | coloredSubset (unsigned int c, GraphSubset &s) const |
Ajout des noeuds d'une couleur donnée à un sous ensemble donné. More... | |
Opérateurs | |
ColoredGraph & | operator= (Graph const &ob) |
Affectation. More... | |
Public Member Functions inherited from cogitant::Graph | |
Graph (Environment const *env, GraphAllocator const *alloc=NULL) | |
Constructeur. More... | |
Graph (Graph const &o, bool external=false, Environment const *env=NULL, GraphAllocator const *alloc=NULL) | |
Constructeur par recopie. More... | |
~Graph () | |
Destructeur. More... | |
Set< GraphObject * > * | nodes () |
Ensemble des noeuds du graphe. More... | |
Set_Simple_Final< Set_Simple_Final< Edge > * > * | edges () |
Ensemble des arêtes du graphe. More... | |
GraphObject * | nodes (iSet i) |
Accès direct à un noeud par son identificateur. More... | |
Set_Simple_Final< Edge > * | edges (iSet i) |
Accès direct aux voisins d'un noeud par son identificateur. More... | |
iSet | newInternalGraph (iSet idparent) |
Création d'un graphe interne (InternalGraph). More... | |
iSet | newGenericConcept (iSet t, iSet idparent=0) |
Création d'un sommet Concept générique. More... | |
iSet | newGenericConcept (ConceptType::ConjunctiveType const &t, iSet idparent=0) |
Création d'un sommet concept générique muni d'un type conjonctif. More... | |
iSet | newGenericConcept (std::string const &t, iSet idparent=0) |
Création d'un sommet Concept générique. More... | |
iSet | newGenericConcept (std::vector< std::string > const &t, iSet idparent=0) |
Création d'un sommet concept générique muni d'un type conjonctif. More... | |
iSet | newIndividualConcept (iSet t, iSet im, iSet idparent=0) |
Création d'un sommet Concept individuel. More... | |
iSet | newIndividualConcept (ConceptType::ConjunctiveType const &t, iSet im, iSet idparent=0) |
Création d'un sommet Concept individuel muni d'un type conjonctif. More... | |
iSet | newIndividualConcept (std::string const &t, std::string const &im, iSet idparent=0) |
Création d'un sommet Concept individuel. More... | |
iSet | newIndividualConcept (std::vector< std::string > const &t, std::string const &im, iSet idparent=0) |
Création d'un sommet Concept individuel muni d'un type conjonctif. More... | |
iSet | newValueConcept (iSet t, std::string const &value, iSet idparent=0) |
Création d'un sommet Concept valeur. More... | |
iSet | newValueConcept (std::string const &t, std::string const &value, iSet idparent=0) |
Création d'un sommet Concept valeur. More... | |
iSet | newGenericValueConcept (iSet t, iSet idparent=0) |
Création d'un sommet Concept valeur avec la valeur générique du datatype passé. More... | |
iSet | newGenericValueConcept (std::string const &t, iSet idparent=0) |
Création d'un sommet Concept valeur avec la valeur générique du datatype passé. More... | |
iSet | newRelation (iSet t, iSet idparent=0) |
Création d'un sommet Relation. More... | |
iSet | newRelation (std::string const &t, iSet idparent=0) |
Création d'un sommet Relation. More... | |
iSet | newRelation (iSet t, std::vector< iSet > const &n, iSet idparent=0) |
Création d'un sommet Relation. More... | |
iSet | newRelation (std::string const &t, std::vector< iSet > const &n, iSet idparent=0) |
Création d'un sommet Relation. More... | |
iSet | newBinaryRelation (iSet t, iSet c1, iSet c2) |
Création d'un sommet Relation binaire. More... | |
iSet | newBinaryRelation (std::string const &t, iSet c1, iSet c2) |
Création d'un sommet Relation binaire. More... | |
iSet | newNesting (iSet t, iSet idparent) |
Création d'un emboîtement (Nesting). More... | |
iSet | newNesting (std::string const &t, iSet idparent) |
Création d'un emboîtement (Nesting). More... | |
iSet | newNesting (iSet t, iSet idparent, Graph const &g, bool fusioncc=false) |
Création d'un emboîtement (Nesting) contenant un graphe déjà créé. More... | |
iSet | newCoreferenceClass (std::string name="") |
Création d'une classe de coréférence (CoreferenceClass). More... | |
iSet | newNode (GraphObject const *o, iSet idparent=0) |
Création d'un objet dans le graphe par copie d'un objet existant. More... | |
void | addGraph (Graph const &h, iSet parent=0, bool fusioncc=false, GraphSubset *subh=NULL) |
Ajout d'un sous ensemble de graphe au graphe. More... | |
void | deleteObject (iSet i, bool compact=true, bool msg=true, bool pendingvertices=true) |
Suppression d'un objet. More... | |
void | deleteObjects (GraphSubset const &gs, bool compact=true, bool msg=true, bool pendingvertices=true) |
Suppression d'objets. More... | |
void | deleteNestings (iSet icn) |
Suppression des emboîtements d'un sommet concept. More... | |
void | clear () |
Vider le graphe. More... | |
void | link (iSet r, unsigned int l, iSet c) |
Lie un sommet relation avec un sommet concept. More... | |
void | recreateNeighbourhood (iSet r) |
Recalcule les voisins du sommet relation r après un changement de type). More... | |
void | addCoreference (iSet concept, iSet coref) |
Ajout d'un sommet concept à une classe de coréférence. More... | |
void | removeCoreference (iSet concept, iSet coref) |
Suppression d'un sommet concept d'une classe de coréférence. More... | |
iSet | addCoreferenceLink (iSet c1, iSet c2) |
Ajout d'un lien de coréférence entre deux sommet soncepts. More... | |
iSet | fusionCoreferenceClasses (iSet cc1, iSet cc2, bool compact=true) |
Fusion de deux classes de coréférence. More... | |
void | addSimplifyConceptType (iSet icn, iSet ct) |
Ajout d'un type à un sommet concept et simplification du type de ce sommet. More... | |
void | addSimplifyConceptType (iSet icn, ConceptType::ConjunctiveType const &ct) |
Ajout d'un type à un sommet concept et simplification du type de ce sommet. More... | |
void | simplifyConceptType (iSet c) |
Simplification du type d'un sommet concept. More... | |
void | changeConceptValue (iSet c, std::string const &v) |
Modifie la valeur portée par un sommet concept. More... | |
void | removeProperty (Property::Type pt) |
Supprime la propriété passée de tous les GraphObject composant le graphe. More... | |
void | changeProperty (iSet inode) |
Cette méthode se charge de notifier les observateurs du graphe avec un ObserverMessage::GRAPH_NODE_CHANGE. More... | |
virtual void | reserveNodes (nSet const size) |
Réservation d'espace dans l'ensemble des noeuds (concepts, relations, emboîtements, graphes internes). More... | |
void | setExternalMode (bool ext) |
Fixe le mode d'ajout des nouveaux noeuds. More... | |
void | setInCoupleOfLambdas (CoupleOfLambdas const *r) |
Modification du couple de lambas-graphes contenant le graphe. More... | |
void | compact (bool msg=true) |
Compactage des objets composant le graphe. More... | |
void | merge (bool addtypes, iSet c1, iSet c2, bool compact=true, bool msg=true) |
Fusion de deux sommets concepts avec ajout au premier des types du second. More... | |
void | join (iSet c1, iSet c2) |
Fusion de deux sommets concepts ayant la même étiquette et n'ayant pas d'emboîtements. More... | |
bool | updateIndexIndividuals () const |
Mise à jour de l'index des individus permettant un calcul plus efficaces des projections (plus particulièrement OpeProjLIPIndividual). More... | |
Type | objectType () const |
Type de l'objet. More... | |
void | individualMarkers (std::vector< iSet > &im) |
Ajoute à l'ensemble passé l'ensemble des marqueurs individuels utilisés dans l'EnvironmentObject. More... | |
std::string | iSetString () const |
Retourne une chaine contenant l'identifiant de l'objet pouvant être utile pour du débogage. More... | |
Set< GraphObject * > const * | nodes () const |
Ensemble des noeuds. More... | |
GraphObject const * | nodes (iSet i) const |
Accès direct à un noeud par son identificateur. More... | |
Set_Simple_Final< Set_Simple_Final< Edge > * > const * | edges () const |
Ensemble des arêtes étiquetées. More... | |
Set_Simple_Final< Edge > const * | edges (iSet i) const |
Accès direct aux voisins d'un noeud par son identificateur. More... | |
bool | edgeP (iSet a, iSet b, Edge::Label l) const |
Existence d'une arc étiqueté l entre les éléments a et b. More... | |
std::string | coreferenceClassUniqueName () const |
Détermination d'un nom utilisé par aucune classe de coréférence. More... | |
CoupleOfLambdas const * | inCoupleOfLambdas () const |
Couple de lambda-graphes dans laquelle se trouve le Graph. More... | |
GraphAllocator const * | allocator () const |
Allocateur du graphe. More... | |
void | findIndividual (iSet ind, std::vector< iSet > &result) const |
Accès aux sommets portant le marqueur individuel passé. More... | |
bool | hasIndexIndividuals () const |
Est-ce que l'index de marqueurs individuels est construit. More... | |
const_iterator | begin () const |
Retourne un itérateur de début pour le parcours des éléments du graphe. More... | |
iterator | begin () |
Retourne un itérateur de début pour le parcours des éléments du graphe. More... | |
const_iterator | end () const |
Retourne un itérateur de fin pour le parcours des éléments du graphe. More... | |
concept_const_iterator | conceptBegin (iSet const idp=ISET_NULL) const |
concept_iterator | conceptBegin (iSet const idp=ISET_NULL) |
concept_const_iterator | conceptEnd (iSet const idp=ISET_NULL) const |
relation_const_iterator | relationBegin (iSet const idp=ISET_NULL) const |
relation_iterator | relationBegin (iSet const idp=ISET_NULL) |
relation_const_iterator | relationEnd (iSet const idp=ISET_NULL) const |
nesting_const_iterator | nestingBegin (iSet const idp=ISET_NULL) const |
nesting_iterator | nestingBegin (iSet const idp=ISET_NULL) |
nesting_const_iterator | nestingEnd (iSet const idp=ISET_NULL) const |
internalgraph_const_iterator | internalGraphBegin (iSet const idp=ISET_NULL) const |
internalgraph_iterator | internalGraphBegin (iSet const idp=ISET_NULL) |
internalgraph_const_iterator | internalGraphEnd (iSet const idp=ISET_NULL) const |
coreferenceclass_const_iterator | coreferenceClassBegin () const |
coreferenceclass_iterator | coreferenceClassBegin () |
coreferenceclass_const_iterator | coreferenceClassEnd () const |
iSet | parent (iSet i) const |
Identificateur du parent d'un objet. More... | |
iSet | root () const |
Identificateur du InternalGraph racine. More... | |
iSet | nestedGraph (iSet nesting) const |
Identificateur du graphe emboîté dans l'emboîtement. More... | |
iSet | relationNeighbour (iSet r, Edge::Label l) const |
Identificateur d'un voisin d'un sommet relation. More... | |
iSet | findCoreferenceClass (std::string const &name) const |
Recherche d'une classe de coréférence par son nom. More... | |
iSet | coreferenceClass (iSet concept) const |
Classe de coréférence d'un sommet concept. More... | |
iSet | coreferenceClassVertex (iSet coref) const |
Accès à un sommet de la classe de coréférence. More... | |
bool | coreferentConcepts (iSet c1, iSet c2, bool cc=true) const |
Est-ce que les deux sommets concepts sont coréférents (portent le même marqueur individuel ou associés à la même classe de coréférence) ou pas. More... | |
nSet | size (GraphObject::Type t) const |
Nombre d'objets du graphe d'un type donné. More... | |
nSet | conceptSize () const |
Nombre de sommets concepts. More... | |
nSet | relationSize () const |
Nombre de sommets relations. More... | |
unsigned int | relationArity (iSet r) const |
Arité du sommet relation. More... | |
iSet | findIndividual (iSet m, iSet ig=0) const |
Recherche d'un sommet concept individuel étiqueté par le marqueur passé. More... | |
iSet | findByIdentifier (std::string const &id) const |
Recherche d'un noeud du graphe par son identificateur chargé depuis un fichier (Property::IDENTIFIER). More... | |
void | ensureObject (iSet i) const |
S'assure de l'existence d'un objet du graphe. More... | |
void | ensureObject (iSet i, GraphObject::Type t) const |
S'assure de l'existence d'un objet du graphe et vérifie son type. More... | |
nSet | heavyObjects () const |
Retourne le nombre d'objets ayant des propriétés (et occupant donc plus d'espace mémoire que les objets simples). More... | |
Graph & | operator= (Graph const &ob) |
Affectation. More... | |
void | printInternalInfo (std::ostream &os) const |
Affichage d'informations pouvant être utiles à l'optimisation. More... | |
Public Member Functions inherited from cogitant::EnvironmentObject | |
EnvironmentObject (Environment const *env) | |
Constructeur. More... | |
EnvironmentObject (EnvironmentObject const &o, Environment const *env=NULL) | |
Constructeur par recopie. More... | |
~EnvironmentObject () | |
Destructeur. More... | |
Graph * | asGraph () |
Conversion explicite de l'objet en graphe conceptuel. More... | |
Rule * | asRule () |
Conversion explicite de l'objet en règle. More... | |
Constraint * | asConstraint () |
Conversion explicite de l'objet en contrainte. More... | |
ColoredGraphConstraint * | asColoredGraphConstraint () |
Conversion explicite de l'objet en contrainte sous forme de graphe bicoloré. More... | |
CoupleOfLambdas * | asCoupleOfLambdas () |
Conversion explicite de l'objet en couple de lambdas graphes. More... | |
virtual void | setName (std::string const &n) |
Changement du nom de l'objet. More... | |
void | setId (iSet id) |
Changement de l'identificateur d'environnement. More... | |
virtual void | setEnvironment (Environment const *env) |
Changement de l'environnement de l'objet. More... | |
std::vector< EnvironmentObjectExtension * > & | extensions () |
Accès aux extensions de l'objet. More... | |
EnvironmentObjectExtension * | extension (const char *id) |
Accès à une extension de l'objet par son identifiant. More... | |
void | addExtension (EnvironmentObjectExtension *ext) |
Ajoute une extension. More... | |
Graph const * | asGraph () const |
Conversion explicite de l'objet en graphe conceptuel. More... | |
Rule const * | asRule () const |
Conversion explicite de l'objet en règle. More... | |
Constraint const * | asConstraint () const |
Conversion explicite de l'objet en contrainte. More... | |
ColoredGraphConstraint const * | asColoredGraphConstraint () const |
Conversion explicite de l'objet en contrainte sous forme de graphe bicoloré. More... | |
CoupleOfLambdas const * | asCoupleOfLambdas () const |
Conversion explicite de l'objet en couple de lambdas graphes. More... | |
virtual std::string | name () const |
Nom de l'objet. More... | |
iSet | id () const |
Identificateur de l'objet dans l'Environment. More... | |
Environment const * | environment () const |
Environnement dans lequel l'objet est défini. More... | |
Support const * | support () const |
Support sur lequel l'objet est défini. More... | |
std::vector< EnvironmentObjectExtension * > const & | extensions () const |
Accès aux extensions de l'objet. More... | |
EnvironmentObjectExtension const * | extension (const char *id) const |
Accès à une extension de l'objet par son identifiant. More... | |
Public Member Functions inherited from cogitant::ObservableObject | |
ObservableObject () | |
Constructeur. More... | |
ObservableObject (ObservableObject const &o) | |
Constructeur par recopie. More... | |
~ObservableObject () | |
Destructeur. More... | |
ObserverSet const & | observers () const |
Accès à l'ensemble des observateurs. More... | |
bool | hasObservers () const |
Existence d'observateurs. More... | |
bool | hasObservers (ObserverMessage::Type mt) const |
Existence d'observateurs qui écoutent le type de message passé. More... | |
void | attachObserver (Observer *obs) |
Ajoute un nouvel observateur à l'objet. More... | |
void | detachObserver (Observer *obs) |
Supprime le lien entre l'observateur et l'objet. More... | |
void | notifyObservers (ObserverMessage const *msg) |
Envoie le message de modification à tous les observateurs. 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... | |
Additional Inherited Members | |
Public Types inherited from cogitant::Graph | |
typedef Set< GraphObject * >::iterator | iterator |
typedef Set< GraphObject * >::const_iterator | const_iterator |
typedef GraphObjectCondIterator< Concept *, Concept *&, GraphObject::OT_CONCEPT > | concept_iterator |
typedef GraphObjectCondIterator< Concept *, Concept const *const &, GraphObject::OT_CONCEPT > | concept_const_iterator |
typedef GraphObjectCondIterator< Relation *, Relation *&, GraphObject::OT_RELATION > | relation_iterator |
typedef GraphObjectCondIterator< Relation *, Relation const *const &, GraphObject::OT_RELATION > | relation_const_iterator |
typedef GraphObjectCondIterator< Nesting *, Nesting *&, GraphObject::OT_NESTING > | nesting_iterator |
typedef GraphObjectCondIterator< Nesting *, Nesting const *const &, GraphObject::OT_NESTING > | nesting_const_iterator |
typedef GraphObjectCondIterator< InternalGraph *, InternalGraph *&, GraphObject::OT_INTERNALGRAPH > | internalgraph_iterator |
typedef GraphObjectCondIterator< InternalGraph *, InternalGraph const *const &, GraphObject::OT_INTERNALGRAPH > | internalgraph_const_iterator |
typedef GraphObjectCondIterator< CoreferenceClass *, CoreferenceClass *&, GraphObject::OT_COREFERENCECLASS > | coreferenceclass_iterator |
typedef GraphObjectCondIterator< CoreferenceClass *, CoreferenceClass const *const &, GraphObject::OT_COREFERENCECLASS > | coreferenceclass_const_iterator |
Public Types inherited from cogitant::EnvironmentObject | |
enum | Type { OT_GRAPH, OT_COUPLEOFLAMBDAS, OT_RULE, OT_POSITIVECONSTRAINT, OT_NEGATIVECONSTRAINT, OT_POSITIVECOLOREDGRAPHCONSTRAINT, OT_NEGATIVECOLOREDGRAPHCONSTRAINT } |
Type d'objet. More... | |
Protected Member Functions inherited from cogitant::Graph | |
void | allocMembers () |
Allocation de tous les membres. More... | |
void | allocMembers (Graph const &o) |
Allocation de tous les membres par copie des membres d'un graphe existant. More... | |
void | deleteMembers () |
Destruction de tous les membres. More... | |
iSet | add (GraphObject const *obj, iSet p) |
Ajout d'un objet. More... | |
void | internalDeleteObject (iSet i) |
Suppression d'un objet. More... | |
bool | validISet (iSet i) const |
Validité d'un identificateur d'objet. More... | |
Protected Member Functions inherited from cogitant::ObservableObject | |
virtual ObserverSet * | allocObservers () const |
Fonction créant l'instance d'une sous classe de ObserverSet pour la représentation de l'ensemble des observateurs de l'objet. More... | |
ObserverSet & | observers () |
Accès à l'ensemble des observateurs. 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... | |
Graphe conceptuel coloré.
Un graphe conceptuel coloré est un graphe conceptuel dans lequel tous les sommets ont une couleur. Cette couleur est représentée par une entier stocké dans la propriété Property::COLOR. Les noeuds qui n'ont pas cette propriété sont considérés comme des noeuds de couleur 0. Les contraintes de graphes conceptuels sont des graphes conceptuels bicolores.
cogitant::ColoredGraph::ColoredGraph | ( | Environment const * | env, |
GraphAllocator const * | alloc = NULL |
||
) |
Constructeur.
L'allocateur par défaut est utilisé si alloc = NULL
.
env | environnement dans lequel le graphe est défini. |
alloc | allocateur pour les membres. |
cogitant::ColoredGraph::ColoredGraph | ( | Graph const & | o, |
bool | external = false , |
||
Environment const * | env = NULL , |
||
GraphAllocator const * | alloc = NULL |
||
) |
Constructeur par recopie.
Ce constructeur peut être utilisé pour créer un ColoredGraph à partir d'un Graph. Dans ce cas, les propriétés Property::COLOR des objets du Graph copié seront prises en compte. Les sommets qui n'ont pas cette propriété seront considérés comme ayant la couleur 0.
o | graphe à copier. |
external | façon dont la copie doit être faite. Voir Graph::Graph(). |
env | environnement dans lequel le graphe créé est défini. Il est conseillé de laisser la valeur par défaut (NULL ) qui définit l'environnement du nouveau graphe avec celui du graphe copié. |
alloc | = NULL , un allocateur par défaut (instance de GraphAllocator) est utilisé pour la copie, sinon l'allocateur passé est utilisé. |
|
virtual |
Destructeur.
void cogitant::ColoredGraph::color | ( | iSet | node, |
unsigned int | c | ||
) |
Modification de la couleur d'un noeud du graphe.
node | identificateur du noeud dont la couleur doit être modifiée. |
c | nouvelle couleur du graphe. |
unsigned int cogitant::ColoredGraph::color | ( | iSet | node | ) | const |
Accès à la couleur d'un noeud du graphe.
node | identificateur du noeud demandé. |
GraphSubset cogitant::ColoredGraph::coloredSubset | ( | unsigned int | c | ) | const |
Accès au sous ensemble des noeuds du graphe qui portent la couleur.
c | couleur recherchée. |
void cogitant::ColoredGraph::coloredSubset | ( | unsigned int | c, |
GraphSubset & | s | ||
) | const |
Ajout des noeuds d'une couleur donnée à un sous ensemble donné.
c | la couleur recherchée. |
s | l'ensemble. |
|
virtual |
Vérification de la propriété nature.
La propriété Property::GRAPH_NATURE doit avoir certaines valeurs particulières dans le cas d'un ColoredGraph. Ces valeurs permettent aux opérations de sauvegarde / chargement de stocker la nature du graphe. Au moment de la sauvegarde, cette méthode est donc appelée et se charge de réinitialiser la valeur de la propriété à la "bonne" valeur pour la sauvegarde dans le cas où elle a été modifiée par l'utilisateur. Dans le cadre d'une utilisation normale de la bibliothèque, il n'est pas nécessaire d'appeler explicitement cette méthode.
Reimplemented in cogitant::ColoredGraphConstraint.
ColoredGraph& cogitant::ColoredGraph::operator= | ( | Graph const & | ob | ) |
Affectation.
Cet opérateur permet de copier un Graph (non coloré) dans un ColoredGraph.