Benjamin Goertzel wrote this post on the OpenCog list.

OpenCog, initially at least, will utilize Novamente’s Atom type system.In this system, Node types are used for broad categories like

– concept
– predicate
– executable function
– number
– character
– word

Link types include

– Logical relationships such as
—- inheritance
—- extensional inheritance
—- intensional inheritance
—- membership
– Predicate evaluation
– Function execution

In this sort of framework, a relationship like

“cat isa mammal”

would be represented as a link of the form

ExtensionalInheritanceLink(ConceptNode: cat, conceptNode: mammal)

That is all nice, but since the majority of nodes in an OpenCog
knowledge base, created via learning, won’t be associated with any
English word/concept, viewing these sorts of relationships won’t be of
much human interest in most cases…

Anyway, the hierarchy in which “cat isa mammal isa animal” is not part
of the Atom type hierarchy per se, but it’s a part of the graph of
relationships in the AtomTable…

From Ben’s Novamente presentation here is a diagram of the OpenCog Atom Table.
Click on the image for a full size version.Open Cog Atom Table

Let’s assume that OpenCog uses the XML namespace http://opencog.org/rdf/ to represent OpenCog Atoms as RDF URI’s (Uniform Resource Identifiers). So Ben suggested that the attributes (1) node_type, (2) name_or_indicator_of_namelessness and (3) atom_handle could uniquely identify OpenCog atoms within the OpenCog namespace. Here is a way that I think would work for OpenCog. Note that RDF wants elements of the form <namespace>/<name> so the rightmost item in the http://../../../<name> list is the name. I suggest encoding the three identifying components into the the RDF name part of the URI:

  • OpenCog Person <==> http://opencog.org/rdf/ConceptNode-44777333322_Person
  • OpenCog nameless predicate node 3344777333332 <==> http://opencog.org/rdf/PredicateNode_3344777333332