Upon further study, I have become quite confused on atomspace's type system. Let me explain:
I was on my quest to understand which links are executable, and which are evaluatable. So I came across various resources: the scheme command cog-get-subtypes, the "type hierarchy definition file" <https://github.com/opencog/atomspace/blob/master/opencog/atoms/atom_types/atom_types.script> and the "folder where (all) atom types are implemented" <https://github.com/opencog/atomspace/tree/master/opencog/atoms>. I see that the type hierarchy is completely separate from the actual definitions (C++ implementations) of the types, so I assume that it is the user's job to be faithful to the hierachy---if I define a type to be a subtype of EvaluatableLink, then it should be evaluatable, and I (as a programmer) am responsible for implementing this feature. Now, the problem is, a lot of the types do not meet these standards... concretely, there are many subtypes of EvaluatableLink which are not evaluatable (in the cog-evaluate! sense): - SatisfyingSetLink, MemberLink, SetLink - some CrispOutputLinks: - ExistsLink, ForAllLink, PresentLink. - And also AbsentLink, which is a subtype of PresentLink (why?). I need to understand why there exists such a disparity. (And also what guarantees the type system provides.) Is it merely because these features were "not in demand"? Or am I missing something bigger/different here? (For many of the links---such as ExistsLink, ForAllLink, PresentLink, AbsentLink---the implementation seems obvious from an outside perspective/at first glance. Though what could possibly "evaluating a SetLink" mean? ...) -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/opencog. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/a0727a42-33c4-44e0-a7dc-1d3315104fe2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
