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

Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cogitant::OperationInput Class Referenceabstract

Opération de lecture d'objets dans un flux. More...

#include "cogitant/io.h"

Inheritance diagram for cogitant::OperationInput:
cogitant::OperationIO cogitant::IStreamReader cogitant::Operation cogitant::OperationBase cogitant::ObservableObject cogitant::CogitantObject cogitant::OperationBCGCTInput cogitant::OperationCGIFInput cogitant::OperationInputXml cogitant::OperationRdfsN3Input cogitant::OperationCoGXMLInput cogitant::OperationInputXmlSelector cogitant::OperationRdfsXmlInput

Classes

class  MapIdentISet
 Cette classe permet de gérer de façon efficace les correspondances entre identificateurs lus dans les fichiers et iSet dans le graphe en cours de construction. More...
 

Public Member Functions

Error check ()
 Vérification des paramètres. More...
 
void run ()
 Lancement de l'opération. More...
 
std::string streamName () const
 Nom du flux. More...
 
IStream const * currentStream () const
 Méthode abstraite retournant le flux en cours de lecture. More...
 
Constructeurs - destructeur.
 OperationInput (Environment *env)
 Constructeur. More...
 
 OperationInput (OperationInput const &o)
 Constructeur par recopie. More...
 
 ~OperationInput ()
 Destructeur. More...
 
Entrée des paramètres.
virtual void setParamStream (std::istream *stream, std::string const &streamname)
 Choix du flux (C++) de lecture et de son nom. More...
 
void setParamReadSupport (bool support)
 
void setParamReadObjects (bool objects)
 
void setParamInEnvironment (bool inenvironment)
 
void setParamConvertCgtInterface (bool c)
 
void setParamGraphObjectIdentifiers (bool c)
 Choix de la conservation des identificateurs des objets du graphes. More...
 
void setParamAutoCreateTypes (bool a)
 Accepte des types de concepts, relations, emboîtements inconnus lors du chargement d'un graphe. More...
 
void setParamAutoCreateIndividuals (bool a)
 Accepte des marqueurs individuels inconnus lors du chargement d'un graphe. More...
 
void setParamIgnoreRedeclarationIndividuals (bool r)
 Accepte (et ignore) la redéclaration de marqueurs individuels. More...
 
void setParamForceDestinationGraph (iSet dg=ISET_NULL)
 Force la lecture des connaissances graphe dans un objet Graph bien précis. More...
 
void setParamPropertyFilter (PropertySet::Filter *f)
 Fixe le filtre de propriétés. More...
 
void setParamBaseIds (std::string const &b)
 Fixe la base des identificateurs relatifs. More...
 
void setParamResultEnvironmentIds (std::vector< iSet > *resultenvironmentids)
 
void setParamResultObjects (Set< EnvironmentObject *> *resultobjects)
 
void copyConfig (OperationInput const &src)
 Copie la configuration de l'opération passée en paramètre dans la configuration de l'opération courante. More...
 
Accès aux résultats.
std::vector< iSet > * getResultEnvironmentIds () const
 
Set< EnvironmentObject * > * getResultObjects () const
 
- Public Member Functions inherited from cogitant::OperationIO
virtual bool binaryFile () const
 Les fichiers gérés par cette opération doivent-ils être ouverts en mode binaire. More...
 
 OperationIO (Environment *env)
 Constructeur. More...
 
 ~OperationIO ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::Operation
Environmentenvironment () const
 Environnement. More...
 
void setEnvironment (Environment *env)
 Modification de l'environnement sur lequel est défini l'opération. More...
 
 Operation (Environment *env)
 Constructeur. More...
 
 Operation (Operation const &o)
 Constructeur par recopie. More...
 
 ~Operation ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::OperationBase
void stop ()
 Stopper l'opération dès que possible. More...
 
bool isStopped () const
 Est-ce que l'opération a été stoppée. More...
 
 OperationBase ()
 Constructeur. More...
 
 OperationBase (OperationBase const &o)
 Constructeur par recopie. More...
 
 ~OperationBase ()
 Destructeur. 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...
 
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...
 
- Public Member Functions inherited from cogitant::IStreamReader
virtual ~IStreamReader ()
 Destructeur. More...
 

Protected Member Functions

IStream::LexemeType assertLexeme (IStream::Lexeme &s, IStream::LexemeType l1, wchar_t sc1=0, IStream::LexemeType l2=IStream::LEX_UNKNOWN, wchar_t sc2=0, IStream::LexemeType l3=IStream::LEX_UNKNOWN, wchar_t sc3=0, IStream::LexemeType l4=IStream::LEX_UNKNOWN, wchar_t sc4=0, IStream::LexemeType l5=IStream::LEX_UNKNOWN, wchar_t sc5=0)
 Lit le lexème suivant qui doit être d'un des types donnés. More...
 
IStream::LexemeType assertLexeme (IStream::Lexeme &s, IStream::LexemeType ltypes[], wchar_t lchars[])
 Lit le lexème suivant qui doit être d'un des types donnés. More...
 
IStream::LexemeType verifyLexeme (IStream::Lexeme const &l, IStream::LexemeType l1, wchar_t sc1=0, IStream::LexemeType l2=IStream::LEX_UNKNOWN, wchar_t sc2=0, IStream::LexemeType l3=IStream::LEX_UNKNOWN, wchar_t sc3=0, IStream::LexemeType l4=IStream::LEX_UNKNOWN, wchar_t sc4=0, IStream::LexemeType l5=IStream::LEX_UNKNOWN, wchar_t sc5=0)
 Vérifie si un lexème est d'un des types donnés. More...
 
IStream::LexemeType verifyLexeme (IStream::Lexeme const &l, IStream::LexemeType ltypes[], wchar_t lchars[])
 Vérifie si un lexème est d'un des types donnés. More...
 
virtual _NO_RETURN_PRE void throwException (unsigned int code, std::string const &streamname, unsigned int line, std::string const &msg="") const _NO_RETURN_POST
 Lève une exception du type correspondant à une erreur d'analyse du flux d'entrée. More...
 
virtual _NO_RETURN_PRE void throwExceptionCurrent (unsigned int code, std::string const &msg="") const _NO_RETURN_POST
 Lève une exception (par appel à throwException()) sur la ligne courante sur le flux courant. More...
 
virtual ExceptionInputcreateWarning (unsigned int code, std::string const &streamname, unsigned int line, std::string const &msg) const =0
 Crée une exception non fatale. More...
 
void throwWarningCurrent (unsigned int code, std::string const &msg="")
 Lève une exception non fatale. More...
 
virtual IStream::Line currentLine () const
 Retourne la ligne en cours d'analyse. More...
 
virtual std::string currentStreamName () const
 Retourne le nom du flux en cours d'analyse. More...
 
void convertCgtInterface (Graph *g)
 Conversion du codage des propriétés graphiques de cgtinterface/CoGui. More...
 
iSet findConceptType (std::string const &i, bool throwifnotfound) const
 Raccourci pour chercher un type de concept dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération. More...
 
iSet findConceptOrDataType (std::string const &i) const
 Raccourci pour chercher un type de concept ou de données dans le support. More...
 
iSet findRelationType (std::string const &i, bool throwifnotfound) const
 Raccourci pour chercher un type de relation dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération. More...
 
iSet findNestingType (std::string const &i, bool throwifnotfound) const
 Raccourci pour chercher un type d'emboîtement dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération. More...
 
iSet findIndividual (std::string const &i, bool throwifnotfound) const
 Raccourci pour chercher un marqueur individuel dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération. More...
 
iSet findDatatype (std::string const &i, bool throwifnotfound) const
 Raccourci pour chercher un Datatype dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération. More...
 
iSet findConceptTypeById (std::string const &id, bool throwifnotfound) const
 Retourne l'iSet du type de concept dont l'identificateur (ConceptType::identifier()) est passé en paramètre. More...
 
iSet findConceptOrDataTypeById (std::string const &id) const
 Retourne l'iSet du type de concept ou de données dont l'identificateur (ConceptType::identifier()) est passé en paramètre. More...
 
iSet findRelationTypeById (std::string const &id, bool throwifnotfound) const
 Retourne l'iSet du type de relation dont l'identificateur (RelationType::identifier()) est passé en paramètre. More...
 
iSet findNestingTypeById (std::string const &id, bool throwifnotfound) const
 Retourne l'iSet du type d'emboîtement dont l'identificateur (NetingType::identifier()) est passé en paramètre. More...
 
iSet findIndividualById (std::string const &id, bool throwifnotfound) const
 Retourne l'iSet du marqueur individual dont l'identificateur (Individual::identifier()) est passé en paramètre. More...
 
void previouslyReadClear ()
 Efface la mémorisation des intitulés et identifiants déjà lus. More...
 
bool previouslyReadHas (bool id, std::string const &s) const
 Est-ce que que l'identifiant ou l'intitulé a déjà été lu. More...
 
void previouslyReadAdd (bool id, std::string const &s)
 Ajoute un identifiant ou un intitulé à l'ensemble des chaînes déjà lues. More...
 
bool previouslyReadAddVerify (bool id, std::string const &s)
 Ajoute un identifiant ou un intitulé si celui-ci ne figure pas déjà dans l'ensemble des chaînes déjà lues. More...
 
void previouslyReadInit (bool label, bool id, int s)
 Construit les structures de données prévues pour tester si un intitulé ou un identificateur a déjà été lu. More...
 
bool propertyAccept (Property::Type p, iSet sub=ISET_NULL) const
 La propriété doit-elle être acceptée. More...
 
bool propertyAccept (std::string p, iSet sub=ISET_NULL) const
 La propriété doit-elle être acceptée. More...
 
- Protected Member Functions inherited from cogitant::OperationIO
virtual Property::Type stringToPropertyType (std::string const &s, iSet *sub=NULL, std::string *nomprop=NULL) const
 Type de propriété représenté par une chaîne. More...
 
virtual std::string propertyTypeToString (Property::Type p, iSet sub=ISET_NULL) const
 Chaîne de caractères représentant une propriété. More...
 
void throwExceptionIO (std::string const &what, unsigned int code=0, unsigned int line=0)
 Levée d'une exception de type ExceptionIO. More...
 
- Protected Member Functions inherited from cogitant::Operation
void setProgress (unsigned int current, unsigned int max)
 Progression actuelle de l'opération. More...
 
- Protected Member Functions inherited from cogitant::ObservableObject
virtual ObserverSetallocObservers () 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...
 
ObserverSetobservers ()
 Accès à l'ensemble des observateurs. 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...
 

Protected Attributes

IStreamm_stream
 Flux de lecture.
 
bool i_support
 Lecture d'un support autorisée.
 
bool i_objects
 Lecture d'EnvironmentObject autorisée.
 
bool i_inenvironment
 Les objets lus sont-ils stockés dans l'environnement (true) ou dans le résultat de l'opération (false).
 
bool i_convertcgti
 Conversion des propriétés graphiques des fichiers générés par cgtinterface/CoGui.
 
bool i_graphobjectidentifiers
 Conservation des identificateurs des objets lus dans le fichier dans les graphes. More...
 
bool i_autocreatetypes
 Création automatique de types dans le support quand des graphes/règles/contraintes sont lus.
 
bool i_autocreateindividuals
 Création automatique de marqueurs individuels quand des graphes/règles/contraintes sont lus.
 
bool i_ignoreredeclarationindividuals
 Ignore les déclarations de marqueurs individuels existants.
 
iSet i_forcegraph
 Graphe destination des connaissances lues.
 
PropertySet::Filteri_propfilter
 Filtre pour la lecture de propriétés. More...
 
std::string i_baseids
 Base pour les identifiants relatifs. More...
 
std::vector< iSet > * io_resultenvironmentids
 Si les objets lus sont stockés dans l'environnement, contient en sortie les identificateurs des objets lus.
 
Set< EnvironmentObject * > * io_resultobjects
 Si les objets lus sont stockés dans le résultat de l'opération, contient en sortie des pointeurs vers les objets lus.
 
EnvironmentObjectm_object
 Objet (Graph ou Rule) en cours de lecture.
 
MapIdentISet m_formatid
 Correspondances identificateurs du format (CoGXML, BCGCT, etc.) - identificateurs internes à l'objet en cours de lecture. More...
 
std::set< std::string > m_previouslyreadlabels
 Intitulés (labels) déjà lus. More...
 
std::set< std::string > m_previouslyreadids
 Identificateurs déjà lus. More...
 
bool m_supportadd
 Est-ce que le support en cours de lecture est un ajout au support précédent ( true ) ou un nouveau support ( false ). More...
 
- Protected Attributes inherited from cogitant::OperationBase
bool m_stop
 Arrêt de l'exécution de l'opération demandé. More...
 

Additional Inherited Members

- Public Types inherited from cogitant::OperationBase
typedef unsigned int Error
 Résultat de la vérification des arguments d'une opération. More...
 
- Static Public Member Functions inherited from cogitant::OperationIO
static Property::Type stringToPropertyTypeDefault (const std::string &s)
 Type de propriété représenté par une chaîne (nom de stockage) Cette méthode (de classe) permet la correspondance entre types et chaînes pour les propriétés standard. More...
 
static std::string propertyTypeToStringDefault (Property::Type p)
 Chaîne de caractères (nom de stockage) représentant une propriété. More...
 
- Static Public Attributes inherited from cogitant::Operation
static const Error PROJBACKTRACKCHOICE_EMPTYLIST
 Impossible d'enlever un élément à une liste vide. More...
 
static const Error OBJECTTYPE
 Un (identifiant d') objet parmi les paramètres n'est pas du bon type. More...
 
static const Error WRONGEDGES
 Un graphe parmi les paramètres de l'opération possède des arêtes pendantes. More...
 
- Static Public Attributes inherited from cogitant::OperationBase
static const Error CHECKOK
 Pas d'erreur. More...
 
static const Error ARGUMENTS
 Certains paramètres de l'opération n'ont pas été fixés. More...
 
static const Error UNUSED
 Symbole d'erreur inutilisé. More...
 
- Static Protected Attributes inherited from cogitant::OperationIO
static const char * c_standardproperties_label []
 
static const Property::Type c_standardproperties_id []
 

Detailed Description

Opération de lecture d'objets dans un flux.

Cette classe abstraite fournit les méthodes pour la lecture d'un support et d'EnvironmentObject à partir d'un flux. Pour chacun des formats d'entrée, un sous classe concrète doit être créée et implémenter la lecture à ce format.

Constructor & Destructor Documentation

◆ OperationInput() [1/2]

cogitant::OperationInput::OperationInput ( Environment env)

Constructeur.

◆ OperationInput() [2/2]

cogitant::OperationInput::OperationInput ( OperationInput const &  o)

Constructeur par recopie.

◆ ~OperationInput()

cogitant::OperationInput::~OperationInput ( )

Destructeur.

Member Function Documentation

◆ assertLexeme() [1/2]

IStream::LexemeType cogitant::OperationInput::assertLexeme ( IStream::Lexeme s,
IStream::LexemeType  l1,
wchar_t  sc1 = 0,
IStream::LexemeType  l2 = IStream::LEX_UNKNOWN,
wchar_t  sc2 = 0,
IStream::LexemeType  l3 = IStream::LEX_UNKNOWN,
wchar_t  sc3 = 0,
IStream::LexemeType  l4 = IStream::LEX_UNKNOWN,
wchar_t  sc4 = 0,
IStream::LexemeType  l5 = IStream::LEX_UNKNOWN,
wchar_t  sc5 = 0 
)
protected

Lit le lexème suivant qui doit être d'un des types donnés.

Cette opération n'est qu'un raccourci pour IStream::assertLexeme().

◆ assertLexeme() [2/2]

IStream::LexemeType cogitant::OperationInput::assertLexeme ( IStream::Lexeme s,
IStream::LexemeType  ltypes[],
wchar_t  lchars[] 
)
protected

Lit le lexème suivant qui doit être d'un des types donnés.

Cette opération n'est qu'un raccourci pour IStream::assertLexeme().

◆ check()

Error cogitant::OperationInput::check ( )
virtual

Vérification des paramètres.

Retourne Operation::CHECKOK si l'opération peut être exécutée (méthode run()) ou un code d'erreur dans le cas contraire.

Implements cogitant::OperationBase.

◆ convertCgtInterface()

void cogitant::OperationInput::convertCgtInterface ( Graph g)
protected

Conversion du codage des propriétés graphiques de cgtinterface/CoGui.

Cette méthode n'effectue le traitement que dans le cas où i_convertcgti vaut vrai. Elle peut donc être appelée sur tous les graphes lus.

◆ copyConfig()

void cogitant::OperationInput::copyConfig ( OperationInput const &  src)

Copie la configuration de l'opération passée en paramètre dans la configuration de l'opération courante.

◆ createWarning()

virtual ExceptionInput* cogitant::OperationInput::createWarning ( unsigned int  code,
std::string const &  streamname,
unsigned int  line,
std::string const &  msg 
) const
protectedpure virtual

◆ currentLine()

virtual IStream::Line cogitant::OperationInput::currentLine ( ) const
protectedvirtual

Retourne la ligne en cours d'analyse.

Par défaut retourne m_stream->line(), mais la méthode peut être redéfinie dans les sous-classes.

Reimplemented in cogitant::OperationInputXml.

◆ currentStream()

IStream const* cogitant::OperationInput::currentStream ( ) const
virtual

Méthode abstraite retournant le flux en cours de lecture.

Implements cogitant::IStreamReader.

◆ currentStreamName()

virtual std::string cogitant::OperationInput::currentStreamName ( ) const
protectedvirtual

Retourne le nom du flux en cours d'analyse.

Par défaut retourne m_stream->streamName(), mais la méthode peut être redéfinie dans les sous-classes.

Reimplemented in cogitant::OperationInputXml.

◆ findConceptOrDataType()

iSet cogitant::OperationInput::findConceptOrDataType ( std::string const &  i) const
protected

Raccourci pour chercher un type de concept ou de données dans le support.

Parameters
iintitulé du type cherché.
Returns
identifiant du type trouvé ou ISET_NULL si introuvable.

◆ findConceptOrDataTypeById()

iSet cogitant::OperationInput::findConceptOrDataTypeById ( std::string const &  id) const
protected

Retourne l'iSet du type de concept ou de données dont l'identificateur (ConceptType::identifier()) est passé en paramètre.

Parameters
ididentificateur XML (ConceptType::identifier()).
Returns
l'identificateur (interne) du type ou ISET_NULL si aucun type de concept n'a id comme identificateur.

◆ findConceptType()

iSet cogitant::OperationInput::findConceptType ( std::string const &  i,
bool  throwifnotfound 
) const
protected

Raccourci pour chercher un type de concept dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération.

◆ findConceptTypeById()

iSet cogitant::OperationInput::findConceptTypeById ( std::string const &  id,
bool  throwifnotfound 
) const
protected

Retourne l'iSet du type de concept dont l'identificateur (ConceptType::identifier()) est passé en paramètre.

Parameters
ididentificateur XML (ConceptType::identifier()).
throwifnotfoundsi true, lève une exception dans le cas où l' id est introuvable.
Returns
l'identificateur (interne) du type de concept ou ISET_NULL si aucun type de concept n'a id comme identificateur.

◆ findDatatype()

iSet cogitant::OperationInput::findDatatype ( std::string const &  i,
bool  throwifnotfound 
) const
protected

Raccourci pour chercher un Datatype dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération.

◆ findIndividual()

iSet cogitant::OperationInput::findIndividual ( std::string const &  i,
bool  throwifnotfound 
) const
protected

Raccourci pour chercher un marqueur individuel dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération.

◆ findIndividualById()

iSet cogitant::OperationInput::findIndividualById ( std::string const &  id,
bool  throwifnotfound 
) const
protected

Retourne l'iSet du marqueur individual dont l'identificateur (Individual::identifier()) est passé en paramètre.

Parameters
ididentificateur XML (Individual::identifier()).
throwifnotfoundsi true, lève une exception dans le cas où l' id est introuvable.
Returns
l'identificateur (interne) du marqueur ou ISET_NULL si aucun marqueur n'a id comme identificateur.

◆ findNestingType()

iSet cogitant::OperationInput::findNestingType ( std::string const &  i,
bool  throwifnotfound 
) const
protected

Raccourci pour chercher un type d'emboîtement dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération.

◆ findNestingTypeById()

iSet cogitant::OperationInput::findNestingTypeById ( std::string const &  id,
bool  throwifnotfound 
) const
protected

Retourne l'iSet du type d'emboîtement dont l'identificateur (NetingType::identifier()) est passé en paramètre.

Parameters
ididentificateur XML (NestingType::identifier()).
throwifnotfoundsi true, lève une exception dans le cas où l' id est introuvable.
Returns
l'identificateur (interne) du type d'emboîtement ou ISET_NULL si aucun type d'emboîtement n'a id comme identificateur.

◆ findRelationType()

iSet cogitant::OperationInput::findRelationType ( std::string const &  i,
bool  throwifnotfound 
) const
protected

Raccourci pour chercher un type de relation dans le support, et qui le crée éventuellement à l'occasion, selon le réglage de l'opération.

◆ findRelationTypeById()

iSet cogitant::OperationInput::findRelationTypeById ( std::string const &  id,
bool  throwifnotfound 
) const
protected

Retourne l'iSet du type de relation dont l'identificateur (RelationType::identifier()) est passé en paramètre.

Parameters
ididentificateur XML (RelationType::identifier()).
throwifnotfoundsi true, lève une exception dans le cas où l' id est introuvable.
Returns
l'identificateur (interne) du type de relation ou ISET_NULL si aucun type de relation n'a id comme identificateur.

◆ previouslyReadAdd()

void cogitant::OperationInput::previouslyReadAdd ( bool  id,
std::string const &  s 
)
protected

Ajoute un identifiant ou un intitulé à l'ensemble des chaînes déjà lues.

Parameters
idsi true ajout d'un identifiant (dans m_previouslyreadids ), sinon ajout d'un label (dans m_previouslyreadlabels ).
schaîne à ajouter.

◆ previouslyReadAddVerify()

bool cogitant::OperationInput::previouslyReadAddVerify ( bool  id,
std::string const &  s 
)
protected

Ajoute un identifiant ou un intitulé si celui-ci ne figure pas déjà dans l'ensemble des chaînes déjà lues.

Parameters
idsi true ajout d'un identifiant (dans m_previouslyreadids ), sinon ajout d'un label (dans m_previouslyreadlabels ).
schaîne à ajouter.
Returns
true ssi l'ajout a pu être effectué, et false si la chaîne avait été lue précédemment.

◆ previouslyReadClear()

void cogitant::OperationInput::previouslyReadClear ( )
protected

Efface la mémorisation des intitulés et identifiants déjà lus.

◆ previouslyReadHas()

bool cogitant::OperationInput::previouslyReadHas ( bool  id,
std::string const &  s 
) const
protected

Est-ce que que l'identifiant ou l'intitulé a déjà été lu.

Parameters
idsi true recherche d'un identifiant (dans m_previouslyreadids ), sinon recherche d'un label (dans m_previouslyreadlabels ).
schaîne à rechercher.
Returns
true ssi s a déjà été lu.

◆ previouslyReadInit()

void cogitant::OperationInput::previouslyReadInit ( bool  label,
bool  id,
int  s 
)
protected

Construit les structures de données prévues pour tester si un intitulé ou un identificateur a déjà été lu.

Dans le cas de la lecture d'un nouveau support, ces structures de données doivent être vides. Dans le cas d'un ajout à un support existant, ces structures de données doivent contenir les intitulés / identificateurs déjà présents dans le support.

Parameters
labelsi true , construction de la structure sur les intitulés.
idsi true , construction de la structure sur les identificateurs.
s1 : types de concepts ; 2 : types de relations ; 3 : types d'emboîtements ; 4 : marqueurs individuels.

◆ propertyAccept() [1/2]

bool cogitant::OperationInput::propertyAccept ( Property::Type  p,
iSet  sub = ISET_NULL 
) const
inlineprotected

La propriété doit-elle être acceptée.

References cogitant::PropertySet::Filter::accept().

◆ propertyAccept() [2/2]

bool cogitant::OperationInput::propertyAccept ( std::string  p,
iSet  sub = ISET_NULL 
) const
inlineprotected

La propriété doit-elle être acceptée.

References cogitant::PropertySet::Filter::accept(), and cogitant::ISET_NULL.

◆ run()

void cogitant::OperationInput::run ( )
virtual

Lancement de l'opération.

Cette méthode ne retourne rien mais le résultat de l'opération peut être récupéré avec les méthodes getResultxxx() (différentes selon les sous classes de Operation).

Implements cogitant::OperationBase.

◆ setParamAutoCreateIndividuals()

void cogitant::OperationInput::setParamAutoCreateIndividuals ( bool  a)

Accepte des marqueurs individuels inconnus lors du chargement d'un graphe.

Par défaut, le chargement d'un graphe contenant des marqueurs inconnus provoque une erreur. En appelant cette méthode avec true un tel chargement ajoutera au support les marqueurs correspondants. Attention cependant, les marqueurs ajoutés ne sont pas ajoutés à la relation de conformité.

◆ setParamAutoCreateTypes()

void cogitant::OperationInput::setParamAutoCreateTypes ( bool  a)

Accepte des types de concepts, relations, emboîtements inconnus lors du chargement d'un graphe.

Par défaut, le chargement d'un graphe contenant des types inconnus provoque une erreur. En appelant cette méthode avec true un tel chargement ajoutera au support les types correspondants. Attention cependant, les types ajoutés ne sont munis d'aucune caractéristique si ce n'est l'intitulé (pas de signature pour les types de relation, pas de placement dans l'ordre partiel.

◆ setParamBaseIds()

void cogitant::OperationInput::setParamBaseIds ( std::string const &  b)

Fixe la base des identificateurs relatifs.

Lors de la lecture d'un ficher contenant des identificateurs relatifs (typiquement des URIs relatives lors de la lecture RDF/XML ou N3), ces URIs relatives peuvent être transformées en URIs absolues à l'aide de cette base (une simple concaténation est effectuée).

◆ setParamForceDestinationGraph()

void cogitant::OperationInput::setParamForceDestinationGraph ( iSet  dg = ISET_NULL)

Force la lecture des connaissances graphe dans un objet Graph bien précis.

Parameters
dgiSet du graphe destination ou ISET_NULL pour créer un nouveau Graph à chaque graphe lu dans le flux.
Warning
Certaines sous-classes ignorent ce paramètre.

◆ setParamGraphObjectIdentifiers()

void cogitant::OperationInput::setParamGraphObjectIdentifiers ( bool  c)

Choix de la conservation des identificateurs des objets du graphes.

Si cette propriété est définie à vrai, les identificateurs lus dans le format (en CoGXML uniquement, pour l'instant) sont conservés dans les propriétés des GraphObject, et plus particulièrement dans la propriété Property::IDENTIFIER. Par défaut, ce n'est pas le cas, et c'est rarement utile. Les identificateurs ne sont jamais conservés dans le cas de règles (car cela n'aurait aucun sens : plusieurs applications de la règle ajouteraient plusieurs sommets avec le même identificateur, celui des sommets du graphe conclusion de la règle) et dans le cas de graphes individus (pour la même raison).

◆ setParamIgnoreRedeclarationIndividuals()

void cogitant::OperationInput::setParamIgnoreRedeclarationIndividuals ( bool  r)

Accepte (et ignore) la redéclaration de marqueurs individuels.

Par défaut, la déclaration d'un marqueur individuel déjà existant (i.e. pour lequel il existe déjà dans le support un marqueur portant ce nom (Individual::label()) ou pourtant cet identificateur (Individual::identifier()) provoque une exception (ExceptionInput::SUPPORT_DOUBLEINDIVIDUAL). En appelant cette méthode avec true une telle déclaration ignorera silencieusement cette nouvelle déclaration. L'appel à cette méthode est utile principalement pour charger un support qui complète le précédent et dans lequel des individus déjà existants sont déclarés.

Warning
Dans le cas où le flux qui redéclare l'individu fournit une définition qui n'est pas la même que la première, ce sont les informations présentes dans la redéclaration qui sont conservées. Ainsi, si la conformité n'est pas définie de la même façon (type différent) le conformit présente en mémoire est écrasée au profit de celle qui est chargée. Il en est de même pour les autres propriétés. Dans le cas du chargement d'un fichier Cogxml, la recherche d'un individu semblable se fait en premier par l'identificateur (Individual::identifier()), ainsi (même si ce n'est pas conseillé), il est possible de changer l'intitulé (Individual::label()) d'un marqueur en chargeant un fichier Cogxml se référant au même identificateur mais fournissant un intitulé différent.

◆ setParamPropertyFilter()

void cogitant::OperationInput::setParamPropertyFilter ( PropertySet::Filter f)

Fixe le filtre de propriétés.

Seules les propriétés acceptées par le filtre sont mémorisées (lors de la lecture) ou sauvegardées (lors de l'écriture). Si NULL, aucun filtre n'est appliqué.

◆ setParamStream()

virtual void cogitant::OperationInput::setParamStream ( std::istream *  stream,
std::string const &  streamname 
)
virtual

Choix du flux (C++) de lecture et de son nom.

Reimplemented in cogitant::OperationInputXml.

◆ streamName()

std::string cogitant::OperationInput::streamName ( ) const
virtual

Nom du flux.

Cette méthode peut être redéfinie dans les sous-classes et doit retourner le nom du flux lu ou écrit. Habituellement, il s'agit du nom du fichier. Par défaut, elle retourne une chaîne vide.

Reimplemented from cogitant::OperationIO.

◆ throwException()

virtual _NO_RETURN_PRE void cogitant::OperationInput::throwException ( unsigned int  code,
std::string const &  streamname,
unsigned int  line,
std::string const &  msg = "" 
) const
protectedvirtual

Lève une exception du type correspondant à une erreur d'analyse du flux d'entrée.

Il est préférable de redéfinir cette méthode les sous-classes car elle lève une ExceptionInput et il est préférable de lever des types d'exceptions spécifiques à chaque format.

Parameters
codesous-code d'erreur.
streamnamenom du flux contenant l'erreur.
lineligne du flux contenant l'erreur.
msgmessage d'erreur.

Reimplemented in cogitant::OperationRdfsN3Input, cogitant::OperationRdfsXmlInput, cogitant::OperationBCGCTInput, cogitant::OperationCoGXMLInput, and cogitant::OperationCGIFInput.

◆ throwExceptionCurrent()

virtual _NO_RETURN_PRE void cogitant::OperationInput::throwExceptionCurrent ( unsigned int  code,
std::string const &  msg = "" 
) const
protectedvirtual

Lève une exception (par appel à throwException()) sur la ligne courante sur le flux courant.

Parameters
codesous-code d'erreur.
msgmessage d'erreur.

◆ throwWarningCurrent()

void cogitant::OperationInput::throwWarningCurrent ( unsigned int  code,
std::string const &  msg = "" 
)
protected

Lève une exception non fatale.

◆ verifyLexeme() [1/2]

IStream::LexemeType cogitant::OperationInput::verifyLexeme ( IStream::Lexeme const &  l,
IStream::LexemeType  l1,
wchar_t  sc1 = 0,
IStream::LexemeType  l2 = IStream::LEX_UNKNOWN,
wchar_t  sc2 = 0,
IStream::LexemeType  l3 = IStream::LEX_UNKNOWN,
wchar_t  sc3 = 0,
IStream::LexemeType  l4 = IStream::LEX_UNKNOWN,
wchar_t  sc4 = 0,
IStream::LexemeType  l5 = IStream::LEX_UNKNOWN,
wchar_t  sc5 = 0 
)
protected

Vérifie si un lexème est d'un des types donnés.

Cette opération n'est qu'un raccourci pour IStream::verifyLexeme().

◆ verifyLexeme() [2/2]

IStream::LexemeType cogitant::OperationInput::verifyLexeme ( IStream::Lexeme const &  l,
IStream::LexemeType  ltypes[],
wchar_t  lchars[] 
)
protected

Vérifie si un lexème est d'un des types donnés.

Cette opération n'est qu'un raccourci pour IStream::verifyLexeme().

Member Data Documentation

◆ i_baseids

std::string cogitant::OperationInput::i_baseids
protected

Base pour les identifiants relatifs.

Cet attribut est utilisé par les opérations de lecture RDF comme base sur les URIs relatives.

◆ i_graphobjectidentifiers

bool cogitant::OperationInput::i_graphobjectidentifiers
protected

Conservation des identificateurs des objets lus dans le fichier dans les graphes.

Cette propriété n'est jamais conservée dans le cas de règles (car cela n'aurait aucun sens : plusieurs applications de la règle ajouteraient plusieurs sommets avec le même identificateur, celui des sommets du graphe conclusion de la règle) et dans le cas de graphes individus (pour la même raison).

See also
Property::IDENTIFIER.

◆ i_propfilter

PropertySet::Filter* cogitant::OperationInput::i_propfilter
protected

Filtre pour la lecture de propriétés.

Seules les propriétés acceptées par le filtre sont mémorisées. Si NULL, aucun filtre n'est appliqué.

◆ m_formatid

MapIdentISet cogitant::OperationInput::m_formatid
protected

Correspondances identificateurs du format (CoGXML, BCGCT, etc.) - identificateurs internes à l'objet en cours de lecture.

◆ m_previouslyreadids

std::set< std::string > cogitant::OperationInput::m_previouslyreadids
protected

Identificateurs déjà lus.

Il s'agit par exemple des identificateurs (ConceptType::identifier()) des types de concepts déjà chargés alors que l'ensemble des types de concepts est en cours de lecture.

◆ m_previouslyreadlabels

std::set< std::string > cogitant::OperationInput::m_previouslyreadlabels
protected

Intitulés (labels) déjà lus.

Il s'agit par exemple des étiquettes (ConceptType::label()) des types de concepts déjà chargés alors que l'ensemble des types de concepts est en cours de lecture.

◆ m_supportadd

bool cogitant::OperationInput::m_supportadd
protected

Est-ce que le support en cours de lecture est un ajout au support précédent ( true ) ou un nouveau support ( false ).