|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
Cogitant et ruleClosure()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()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@... |
| Free embeddable forum powered by Nabble | Forum Help |