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

Public Types | Protected Attributes | List of all members
cogitant::Concept Class Reference

Sommet concept. More...

#include "cogitant/graphobject.h"

Inheritance diagram for cogitant::Concept:
cogitant::GraphObject cogitant::CogitantObject

Public Types

enum  ReferentType { RT_GENERIC, RT_INDIVIDUAL, RT_VALUE, RT_GENERICVALUE }
 Type du référent d'un sommet concept. More...
 
- Public Types inherited from cogitant::GraphObject
enum  Type {
  OT_CONCEPT, OT_RELATION, OT_NESTING, OT_INTERNALGRAPH,
  OT_COREFERENCECLASS
}
 Type d'objet. More...
 

Public Member Functions

Constructeurs - destructeur.
 Concept ()
 Constructeur. More...
 
 Concept (Concept const &c)
 Constructeur par recopie. More...
 
 ~Concept ()
 Destructeur. More...
 
Modifications.
void setType (iSet t)
 Modifie le type du concept, à l'aide d'un type primitif. More...
 
void setType (ConceptType::ConjunctiveType const &t)
 Modifie le type du concept, à l'aide d'un type conjonctif. More...
 
void setReferent (ReferentType rt, iSet im)
 Modifie la valeur du référent du sommet. More...
 
void setGeneric (iSet t)
 Modifie le sommet concept en sommet concept générique. More...
 
void setGeneric (ConceptType::ConjunctiveType const &t)
 Modifie le sommet concept en sommet concept générique muni du type conjonctif passé. More...
 
void setIndividual (iSet t, iSet im)
 Modifie le sommet concept en sommet concept individuel. More...
 
void setIndividual (ConceptType::ConjunctiveType const &t, iSet im)
 Modifie le sommet concept en sommet concept individuel. More...
 
void setLabel (iSet t, ReferentType rt, iSet im)
 Modifie l'étiquette du sommet concept. More...
 
void setLabel (ConceptType::ConjunctiveType const &t, ReferentType rt, iSet im)
 Modifie l'étiquette du sommet concept. More...
 
void addType (iSet t)
 Ajoute un type à la conjonction de types. More...
 
void addType (ConceptType::ConjunctiveType const &t)
 Ajoute un ensemble de types à la conjonction de types. More...
 
void delType (iSet t)
 Supprime un type à la conjonction de types. More...
 
void setGenericValue (iSet dt)
 Modifie le sommet concept en sommet valeur générique. More...
 
void setValueLiteral (std::string const &v)
 Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur de type DatatypeManager::LITERAL. More...
 
void setValueString (std::string const &v, iSet dt=DatatypeManager::STRING)
 Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur contenant une chaîne. More...
 
void setValueInteger (long v, iSet dt=DatatypeManager::INTEGER)
 Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur contenant un entier. More...
 
void setValueFloat (float v, iSet dt=DatatypeManager::FLOAT)
 Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur contenant un réel. More...
 
void setValueUserDatatype (UserDatatypeValue *v, iSet udt)
 Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur d'un datatype utilisateur. More...
 
Conceptoperator= (Concept const &c)
 Affectation. More...
 
Accesseurs.
std::string toString () const
 Transformation en chaîne de caractères. More...
 
Type objectType () const
 Type de l'objet. More...
 
iSet primitiveType () const
 Type de l'élément. More...
 
iSet datatype () const
 Type de données du sommet. More...
 
std::string label () const
 
std::string valueToString () const
 Conversion simple de la valeur en chaîne. More...
 
long valueInteger () const
 Accès sans aucune vérification à la valeur. More...
 
float valueFloat () const
 Accès sans aucune vérification à la valeur. More...
 
std::string const & valueString () const
 Accès sans aucune vérification à la valeur. More...
 
UserDatatypeValue const * valueOther () const
 Accès sans aucune vérification à la valeur. More...
 
ReferentType referentType () const
 Type de référent. More...
 
iSet individual () const
 Marqueur individuel. More...
 
bool hasSupportType () const
 Est-ce que le type du sommet est un type de concept du support. More...
 
bool hasDatatype () const
 Est-ce que le type du sommet est un type de données. More...
 
bool hasPrimitiveType () const
 Est-ce que le type du sommet est défini sous la forme d'un type primitif. More...
 
bool hasConjunctiveType () const
 Est-ce que le type du sommet est défini sous la forme d'un type conjonctif (c'est à dire un vecteur de iSet) ou un type primitif (un iSet). More...
 
ConceptType::ConjunctiveType const & conjunctiveType () const
 Accès au type conjonctif. More...
 
void conceptType (ConceptType::ConjunctiveType &result) const
 Cette méthode peut être appelée dans tous les cas, que le type du sommet soit défini sous la forme d'un type primitif ou sous la forme d'un type conjonctif. More...
 
iSet type () const
 Retourne le type primitif. More...
 
bool hasType (iSet t) const
 Est-ce que le type conjonctif contient le type primitif passé. More...
 
- Public Member Functions inherited from cogitant::GraphObject
 GraphObject ()
 Constructeur. More...
 
ConceptasConcept ()
 Conversion explicite de l'objet en sommet concept. More...
 
RelationasRelation ()
 Conversion explicite de l'objet en sommet relation. More...
 
NestingasNesting ()
 Conversion explicite de l'objet en emboîtement. More...
 
InternalGraphasInternalGraph ()
 Conversion explicite de l'objet en graphe interne. More...
 
CoreferenceClassasCoreferenceClass ()
 Conversion explicite de l'objet en classe de coreference. More...
 
Concept const * asConcept () const
 Conversion explicite de l'objet en sommet concept. More...
 
Relation const * asRelation () const
 Conversion explicite de l'objet en sommet relation. More...
 
Nesting const * asNesting () const
 Conversion explicite de l'objet en emboîtement. More...
 
InternalGraph const * asInternalGraph () const
 Conversion explicite de l'objet en graphe interne. More...
 
CoreferenceClass const * asCoreferenceClass () const
 Conversion explicite de l'objet en classe de coréférence. 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...
 
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 Attributes

iSet m_primitivetype
 Type primitif. More...
 
union {
   struct {
      ConceptType::ConjunctiveType *   m_conjunctivetype
 Type conjonctif. More...
 
      iSet   m_individual
 Marqueur individuel. More...
 
   }   m_genericindividual
 Sommet concept "classique" : générique ou individuel. More...
 
   struct {
      bool   m_generic
 Valeur générique ou pas. More...
 
      union {
         long   m_integer
 Sommet concept valeur : long, utilisé dans le cas où DatatypeManager::isInteger(m_primitivetype). More...
 
         float   m_float
 Sommet concept valeur : float, utilisé dans le cas où DatatypeManager::isFloat(m_primitivetype). More...
 
         std::string *   m_string
 Sommet concept valeur : string, utilisé dans le cas où DatatypeManager::isString(m_primitivetype). More...
 
         UserDatatypeValue *   m_other
 Sommet concept valeur : autre type de valeur. More...
 
      } 
 Valeur portée par le sommet concept valeur. More...
 
   }   m_value
 Sommet concept valeur. More...
 
}; 
 Partie variable de l'étiquette du sommet. More...
 

Additional Inherited Members

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

Detailed Description

Sommet concept.

Member Enumeration Documentation

Type du référent d'un sommet concept.

Enumerator
RT_GENERIC 

Sommet concept générique.

RT_INDIVIDUAL 

Sommet concept individuel.

Un marqueur individuel doit être mémorisé dans le sommet concept.

RT_VALUE 

Sommet concept valeur.

RT_GENERICVALUE 

Sommet concept valeur générique.

Constructor & Destructor Documentation

cogitant::Concept::Concept ( )

Constructeur.

cogitant::Concept::Concept ( Concept const &  c)

Constructeur par recopie.

cogitant::Concept::~Concept ( )

Destructeur.

Member Function Documentation

void cogitant::Concept::addType ( iSet  t)

Ajoute un type à la conjonction de types.

Cette méthode peut être appelée dans tous les cas, que le type du sommet soit un type primitif (auquel cas, le type devient un type conjonctif) ou un type déjà conjonctif. Aucune vérification n'est effectuée : il est possible d'ajouter deux fois le même type, ou d'utiliser un type conjonctif interdit.

Parameters
tnouveau type (primitif, repéré par son identificateur dans le support) à ajouter.
void cogitant::Concept::addType ( ConceptType::ConjunctiveType const &  t)

Ajoute un ensemble de types à la conjonction de types.

Cette méthode peut être appelée dans tous les cas, que le type du sommet soit un type primitif (auquel cas, le type devient un type conjonctif) ou un type déjà conjonctif. Aucune vérification n'est effectuée : il est possible d'ajouter deux fois le même type, ou d'utiliser un type conjonctif interdit.

Parameters
tensemble de types à ajouter.
void cogitant::Concept::conceptType ( ConceptType::ConjunctiveType result) const

Cette méthode peut être appelée dans tous les cas, que le type du sommet soit défini sous la forme d'un type primitif ou sous la forme d'un type conjonctif.

ConceptType::ConjunctiveType const& cogitant::Concept::conjunctiveType ( ) const

Accès au type conjonctif.

Precondition
hasConjunctiveType() == true.
iSet cogitant::Concept::datatype ( ) const
inline

Type de données du sommet.

void cogitant::Concept::delType ( iSet  t)

Supprime un type à la conjonction de types.

Parameters
ttype à supprimer.
Precondition
le type conjonctif contient t.
bool cogitant::Concept::hasConjunctiveType ( ) const
inline

Est-ce que le type du sommet est défini sous la forme d'un type conjonctif (c'est à dire un vecteur de iSet) ou un type primitif (un iSet).

Si cette méthode retourne true, il faut appeler conjunctiveType() pour connaître le type, sinon il faut appeler type().

Warning
Cette méthode retourne true si le type est défini sous la forme d'un vecteur, même si ce vecteur ne contient qu'un seul élement.

References cogitant::ISET_NULL.

bool cogitant::Concept::hasDatatype ( ) const
inline

Est-ce que le type du sommet est un type de données.

References cogitant::DatatypeManager::isDatatype().

bool cogitant::Concept::hasPrimitiveType ( ) const
inline

Est-ce que le type du sommet est défini sous la forme d'un type primitif.

Si cette méthode retourne true, il faut appeler type() pour connaître le type sinon il faut appeler conjunctiveType().

References cogitant::ISET_NULL.

bool cogitant::Concept::hasSupportType ( ) const
inline

Est-ce que le type du sommet est un type de concept du support.

References cogitant::DatatypeManager::isDatatype(), and cogitant::ISET_NULL.

bool cogitant::Concept::hasType ( iSet  t) const

Est-ce que le type conjonctif contient le type primitif passé.

Parameters
ttype à rechercher.
iSet cogitant::Concept::individual ( ) const
inline

Marqueur individuel.

Returns
l'identifiant du marqueur individuel (se rapporte à l'ensemble des marqueurs individuels du support sur lequel le graphe est défini).
Precondition
referentType() == Concept::RT_INDIVIDUAL.
Type cogitant::Concept::objectType ( ) const
virtual

Type de l'objet.

Cette méthode doit être redéfinie dans toutes les classes concrètes.

Implements cogitant::GraphObject.

Concept& cogitant::Concept::operator= ( Concept const &  c)

Affectation.

iSet cogitant::Concept::primitiveType ( ) const
inline

Type de l'élément.

Returns
l'identifiant du type de concept (se rapporte à l'ensemble des types de concepts du support sur lequel le graphe est défini).
Precondition
hasPrimitiveType() == true.
ReferentType cogitant::Concept::referentType ( ) const
inline

Type de référent.

References cogitant::DatatypeManager::isDatatype(), and cogitant::ISET_NULL.

void cogitant::Concept::setGeneric ( iSet  t)

Modifie le sommet concept en sommet concept générique.

Parameters
tidentifiant du type de concept (se rapporte à l'ensemble des types de concepts du support sur lequel le graphe est défini).
void cogitant::Concept::setGeneric ( ConceptType::ConjunctiveType const &  t)

Modifie le sommet concept en sommet concept générique muni du type conjonctif passé.

Parameters
ttype conjonctif (se rapporte à l'ensemble des types de concepts du support sur lequel le graphe est défini).
Warning
Après appel à cette méthode, type() ne peut plus être appelé sur l'object, il faut appeler conjunctiveType() à la place.
void cogitant::Concept::setGenericValue ( iSet  dt)

Modifie le sommet concept en sommet valeur générique.

Parameters
dtidentifiant de datatype.
void cogitant::Concept::setIndividual ( iSet  t,
iSet  im 
)

Modifie le sommet concept en sommet concept individuel.

Parameters
tidentifiant du type de concept (se rapporte à l'ensemble des types de concepts du support sur lequel le graphe est défini).
imidentifiant du marqueur individuel (se rapporte à l'ensemble des marqueurs individuels du support sur lequel le graphe est défini).
void cogitant::Concept::setIndividual ( ConceptType::ConjunctiveType const &  t,
iSet  im 
)

Modifie le sommet concept en sommet concept individuel.

Parameters
ttype conjonctif (se rapporte à l'ensemble des types de concepts du support sur lequel le graphe est défini).
imidentifiant du marqueur individuel (se rapporte à l'ensemble des marqueurs individuels du support sur lequel le graphe est défini).
Warning
Après appel à cette méthode, type() ne peut plus être appelé sur l'object, il faut appeler conjunctiveType() à la place.
void cogitant::Concept::setLabel ( iSet  t,
ReferentType  rt,
iSet  im 
)

Modifie l'étiquette du sommet concept.

Parameters
tidentifiant du type de concept (se rapporte à l'ensemble des types de concepts du support sur lequel le graphe est défini).
rttype du référent.
imidentifiant du marqueur individuel (se rapporte à l'ensemble des marqueurs individuels du support sur lequel le graphe est défini). Cette valeur n'est prise en compte uniquement si rt = RT_INDIVIDUAL, sinon elle est ignorée.
void cogitant::Concept::setLabel ( ConceptType::ConjunctiveType const &  t,
ReferentType  rt,
iSet  im 
)

Modifie l'étiquette du sommet concept.

Parameters
ttype conjonctif (se rapporte à l'ensemble des types de concepts du support sur lequel le graphe est défini).
rttype du référent.
imidentifiant du marqueur individuel (se rapporte à l'ensemble des marqueurs individuels du support sur lequel le graphe est défini). Cette valeur n'est prise en compte uniquement si rt = RT_INDIVIDUAL, sinon elle est ignorée.
Warning
Après appel à cette méthode, type() ne peut plus être appelé sur l'object, il faut appeler conjunctiveType() à la place.
void cogitant::Concept::setReferent ( ReferentType  rt,
iSet  im 
)

Modifie la valeur du référent du sommet.

Parameters
rttype du référent.
imidentifiant du marqueur individuel (se rapporte à l'ensemble des marqueurs individuels du support sur lequel le graphe est défini). Cette valeur n'est prise en compte uniquement si rt = RT_INDIVIDUAL, sinon elle est ignorée.
void cogitant::Concept::setType ( iSet  t)

Modifie le type du concept, à l'aide d'un type primitif.

Parameters
tnouvelle valeur de m_primitivetype.
void cogitant::Concept::setType ( ConceptType::ConjunctiveType const &  t)

Modifie le type du concept, à l'aide d'un type conjonctif.

Parameters
tnouvelle valeur de m_conjunctivetype.
void cogitant::Concept::setValueFloat ( float  v,
iSet  dt = DatatypeManager::FLOAT 
)

Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur contenant un réel.

Parameters
vnouvelle valeur.
dtnouveau type de données.
void cogitant::Concept::setValueInteger ( long  v,
iSet  dt = DatatypeManager::INTEGER 
)

Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur contenant un entier.

Parameters
vnouvelle valeur.
dtnouveau type de données.
void cogitant::Concept::setValueLiteral ( std::string const &  v)

Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur de type DatatypeManager::LITERAL.

Parameters
vnouvelle valeur.
void cogitant::Concept::setValueString ( std::string const &  v,
iSet  dt = DatatypeManager::STRING 
)

Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur contenant une chaîne.

Parameters
vnouvelle valeur.
dtnouveau type de données.
void cogitant::Concept::setValueUserDatatype ( UserDatatypeValue v,
iSet  udt 
)

Modifie l'étiquette du sommet concept pour le transformer en sommet concept valeur d'un datatype utilisateur.

Parameters
vValeur.
udtDatatype utilisateur.
std::string cogitant::Concept::toString ( ) const
virtual

Transformation en chaîne de caractères.

Il est préférable de redéfinir cette méthode dans les sous classes pour l'adapter aux spécificités de chaque classe. Habituellement, cette méthode doit retourner une chaîne assez courte.

Returns
le nom de la classe (appel à className()).

Reimplemented from cogitant::CogitantObject.

iSet cogitant::Concept::type ( ) const

Retourne le type primitif.

Cette méthode retourne le type primitif s'il est défini, et dans le cas où le sommet est muni d'un type conjonctif, elle retourne un type primitif formant ce type conjonctif. Il n'est donc pas conseillé d'utiliser cette méthode.

Deprecated:
float cogitant::Concept::valueFloat ( ) const
inline

Accès sans aucune vérification à la valeur.

Cette méthode ne doit être utilisée que si DatatypeManager::isFloat(datatype()).

long cogitant::Concept::valueInteger ( ) const
inline

Accès sans aucune vérification à la valeur.

Cette méthode ne doit être utilisée que si DatatypeManager::isInteger(datatype()).

UserDatatypeValue const* cogitant::Concept::valueOther ( ) const
inline

Accès sans aucune vérification à la valeur.

Cette méthode ne doit être utilisée que si DatatypeManager::isUserDatatype(datatype()).

std::string const& cogitant::Concept::valueString ( ) const
inline

Accès sans aucune vérification à la valeur.

Cette méthode ne doit être utilisée que si DatatypeManager::isString(datatype()).

std::string cogitant::Concept::valueToString ( ) const

Conversion simple de la valeur en chaîne.

Warning
Cette conversion n'utilise pas le DatatypeManager est n'est donc capable que de faire une conversion dans le cas des datatypes prédéfinis. Elle n'a donc d'intérêt que pour la mise au point du programme.

Member Data Documentation

union { ... }

Partie variable de l'étiquette du sommet.

Cette partie variable dépend du type du sommet : s'il s'agit d'un sommet générique ou d'un sommet individuel, la partie variable est composée d'un (pointeur sur) un type conjonctif et d'un marqueur individuel. S'il s'agit d'un sommet valeur, la partie variable contient la valeur.

ConceptType::ConjunctiveType* cogitant::Concept::m_conjunctivetype

Type conjonctif.

Si le sommet concept a un type primitif, m_conjunctivetype vaut NULL, et le type primitif est contenu dans m_primitivetype.

float cogitant::Concept::m_float

Sommet concept valeur : float, utilisé dans le cas où DatatypeManager::isFloat(m_primitivetype).

bool cogitant::Concept::m_generic

Valeur générique ou pas.

struct { ... } cogitant::Concept::m_genericindividual

Sommet concept "classique" : générique ou individuel.

iSet cogitant::Concept::m_individual

Marqueur individuel.

Si le sommet concept est générique, m_individual vaut ISET_NULL.

long cogitant::Concept::m_integer

Sommet concept valeur : long, utilisé dans le cas où DatatypeManager::isInteger(m_primitivetype).

UserDatatypeValue* cogitant::Concept::m_other

Sommet concept valeur : autre type de valeur.

iSet cogitant::Concept::m_primitivetype
protected

Type primitif.

Cet attribut mémorise si le sommet est générique ou individuel (dans ce cas, DatatypeManager::isDatatype(m_primitivetype) == false) ou un sommet valeur (... == true). Si le sommet concept générique ou individuel a un type conjonctif, m_primitivetype vaut ISET_NULL, et le type conjonctif est contenu dans m_genericindividual.m_conjunctivetype.

std::string* cogitant::Concept::m_string

Sommet concept valeur : string, utilisé dans le cas où DatatypeManager::isString(m_primitivetype).

struct { ... } cogitant::Concept::m_value

Sommet concept valeur.