Cogitant et ruleClosure()

View: New views
2 Messages — Rating Filter:   Alert me  

Cogitant et ruleClosure()

by lynda souadih :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bonjour,

J'ai un petit problème dans l'utilisation de l'opération:
env.ruleClosure() avec l'opération env.disjointSum(). En fait ce que
je veux faire c'est de saturer un graphe donnée en appliquant toutes
les règles applicables de l'environnement env, pour cela j'utilise
env.ruleClosure(graphe1); et le graphe resultant je le join avec un
autre graphe graph2 par env.disjointSum(graphe1,graphe2).

La compilation se passe parfaitement sans erreur, mais lors d'
l'exécution j'obtiens un message (segmentation fault) lors de
l'exécution de disjointSum().

D'après ma compréhension le graphe résultant de:
env.ruleClosure(graphe1) correspond à graphe graphe1 lui même non?
Sinon, je pense qu'il faudrait utiliser la méthode getResult() mais je
sais pas comment l'utiliser afin d'accéder au graphe résultant. J'ai
essayé de faire ça: env.ruleClosure(graphe)->getResult(); Mais
j'obtiens l'erreur suivante: base operand of -> is not a pointer.

Y a t il quelqu'un d'entre vous qui peux me donner une indication pour
résoudre ce problème.

Voici une portion de mon code:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Environment env;
env.readSupport(support.cogxml);
env.readGraphs(R1.cogxml);
env.readGraphs(R2.cogxml);
env.readGraphs(R3.cogxml);

iSet g1_id=env.readGraphs(fact1.cogxml);
graph *graphe1=env.graphs(g1_id);

iSet g2_id=env.readGraphs(fact2.cogxml);
graph *graphe2=env.graphs(g2_id);

env.rulesClosure(graphe1);

env.disjointSum(graphe1,graphe2)
+++++++++++++++++++++++++++++++++++++++++++++++

Mes meilleures salutations

---------------------------------------------------------------------
To unsubscribe, e-mail: cg-unsubscribe@...
For additional commands, e-mail: cg-help@...


Re: Cogitant et ruleClosure()

by David Genest :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Please note that the CG list is an english spoken list. Please note that the
CG list is not a Cogitant-list (nor a C++ programming list). You can contact
me directly for Cogitant related questions.

> La compilation se passe parfaitement sans erreur, mais lors d'
> l'exécution j'obtiens un message (segmentation fault) lors de
> l'exécution de disjointSum().

Your code seems correct (even if there are some errors : quotes are missing
for filenames, the CG class is called Graph and not graph, but i suppose they
are copy/paste errors). But without any further information (what are your
support/graph/rules), i cannot say why there is an error.

> D'après ma compréhension le graphe résultant de:
> env.ruleClosure(graphe1) correspond à graphe graphe1 lui même non?
> Sinon, je pense qu'il faudrait utiliser la méthode getResult() mais je
> sais pas comment l'utiliser afin d'accéder au graphe résultant. J'ai
> essayé de faire ça: env.ruleClosure(graphe)->getResult(); Mais
> j'obtiens l'erreur suivante: base operand of -> is not a pointer.

Your are right: rulesClosure() modifies the graph. But please, read the online
doc or header files! rulesClosure() returns an "unsigned long" (number of
applications of rules). In C++, primitive types, such as unsigned long, do
not have methods. I suppose you talk about the getResult() method of
OpeRulesClosure, but you don't have to call it.

David Genest.

---------------------------------------------------------------------
To unsubscribe, e-mail: cg-unsubscribe@...
For additional commands, e-mail: cg-help@...