Hi, Lately I've been working on another feature request from the Petaverse guys: rewrite the ClassServer so that it would be possible for third-parties to extend the type hierarchy (if anyone would like to try it, the code is available at lp:~gama/opencog/classserver; docs are available inside the opencog/atomspace/README file).
The code, documentation, examples and cmake integration are pretty much ready but there's one task left which is to trim the current 'atom types' hierarchy -- previously defined in the file 'type.script' which I'm pasting at the end of this message. I could take a stab and try to split and redistribute the current hierarchy into the proper modules based on intuition but it's likely that I would screw up and end up breaking things for others. Besides, there are plenty of types that I'm unsure whether they should be tied to the lower level libatomtable or some specific module (for instance, should WORD_NODE be tied to the nlp module? what about SHAPE_NODE? etc. etc.). So I've resorted to asking for everybody's help. :-) Module "owners" could perhaps list the types that they know they'll use exclusively; old-timers might know which types were added for a short-lived experiment or a demo; and those more familiar with the conceptual opencog model probably know which types will be shared by multiple modules/agents/applications. thanks, -- Gustavo --------------------------- 8< ----------------------------- // // Script for automatic Type generation // ATOM NODE <- ATOM LINK <- ATOM CONCEPT_NODE <- NODE WORD_NODE <- NODE NUMBER_NODE <- NODE SHAPE_NODE <- NODE POINT_NODE <- NODE // Basic Links ORDERED_LINK <- LINK UNORDERED_LINK <- LINK // Basic sets SET_LINK <- UNORDERED_LINK SUBSET_LINK <- ORDERED_LINK PART_OF_LINK <- ORDERED_LINK LIST_LINK <- ORDERED_LINK MEMBER_LINK <- ORDERED_LINK // Boolean Set operations and related ideas. AND_LINK <- ORDERED_LINK OR_LINK <- UNORDERED_LINK NOT_LINK <- UNORDERED_LINK FALSE_LINK <- ORDERED_LINK TRUE_LINK <- ORDERED_LINK HYPOTHETICAL_LINK <- ORDERED_LINK SCHOLEM_LINK <- ORDERED_LINK SIMULTANEOUS_AND_LINK <- ORDERED_LINK CONTEXT_LINK <- ORDERED_LINK FORALL_LINK <- ORDERED_LINK EXIST_LINK <- ORDERED_LINK // Inheritence and association links INHERITANCE_LINK <- ORDERED_LINK ROOTED_ORDERED_LINK <- ORDERED_LINK INSTANCE_LINK <- ORDERED_LINK ASSOCIATIVE_LINK <- ORDERED_LINK GENERIC_PROPERTY_LINK <- ORDERED_LINK SYMBOL_LINK <- ORDERED_LINK SIMILARITY_LINK <- UNORDERED_LINK EXT_SIMILARITY_LINK <- SIMILARITY_LINK MIXED_IMPLICATION_LINK <- ORDERED_LINK MIXED_INHERITANCE_LINK <- ORDERED_LINK EXTENSIONAL_IMPLICATION_LINK <- ORDERED_LINK EXTENSIONAL_INHERITANCE_LINK <- ORDERED_LINK EXTENSIONAL_EQUIVALENCE_LINK <- ORDERED_LINK EXTENSIONAL_SIMILARITY_LINK <- ORDERED_LINK // Proceedure, schema and predicate nodes. PROCEDURE_NODE <- NODE GROUNDED_PROCEDURE_NODE <- PROCEDURE_NODE GROUNDED_PREDICATE_NODE <- PREDICATE_NODE,GROUNDED_PROCEDURE_NODE GROUNDED_SCHEMA_NODE <- SCHEMA_NODE,GROUNDED_PROCEDURE_NODE COMPOUND_TERM_NODE <- GROUNDED_PROCEDURE_NODE SCHEMA_NODE <- PROCEDURE_NODE SCHEMA_INSTANCE_NODE <- NODE PREDICATE_NODE <- SCHEMA_NODE PREDICATE_INSTANCE_NODE <- SCHEMA_INSTANCE_NODE SATISFYING_SET_LINK <- ORDERED_LINK APPLICATION_LINK <- ORDERED_LINK SCHEMA_EXECUTION_LINK <- INHERITANCE_LINK SCHEMA_EVALUATION_LINK <- SCHEMA_EXECUTION_LINK EVALUATION_LINK <- ORDERED_LINK EXECUTION_LINK <- ORDERED_LINK EXECUTION_OUTPUT_LINK <- ORDERED_LINK IMPLICATION_LINK <- ORDERED_LINK VARIABLE_NODE <- NODE VARIABLE_SCOPE_LINK <- ORDERED_LINK PREDICTIVE_IMPLICATION <- ORDERED_LINK TAIL_PREDICTIVE_IMPLICATION <- ORDERED_LINK SEQUENTIAL_AND_LINK <- ORDERED_LINK EXTENDED_SIMPLEX_PREDICTOR_NODE <- NODE EVENTUAL_SEQUENTIAL_AND_LINK <- ORDERED_LINK "EventualSequentialAND" EVENTUAL_PREDICTIVE_IMPLICATION_LINK <- ORDERED_LINK "EventualSequentialImplication" // Older parsing and language handling nodes; // Commented out, as these are currently unused, // and are being replaced by newer relex forms. // Some of these may be revived. See below. // // LEXICAL_CATEGORY_NODE <- CONCEPT_NODE // SYN_SET_NODE <- NODE // WORD_NET_CONCEPT_NODE <- NODE PHRASE_NODE <- NODE // COLLOCATION_NODE <- WORD_NODE // // SEMANTIC_SENSE_NODE <- WORD_SENSE_NODE // SYNTACTIC_SENSE_NODE <- WORD_SENSE_NODE // WORD_INSTANCE_NODE <- WORD_NODE // SENTENCE_CONTEXT_NODE <- NODE // SPECIFIC_ENTITY_NODE <- CONCEPT_NODE // // short for "WordReferenceLink" // WR_LINK <- ASSOCIATIVE_LINK "WRLink" // WS_LINK <- ASSOCIATIVE_LINK "WSLink" // WORD_SENSE_CANDIDATE_LINK <- ASSOCIATIVE_LINK // WSC_BASIC_LINK <- WORD_SENSE_CANDIDATE_LINK "WSCBasicLink" // WORD_REFERENT_CANDIDATE_LINK <- ASSOCIATIVE_LINK // WRC_BASIC_LINK <- WORD_REFERENT_CANDIDATE_LINK "WRCBasicLink" // UNORDERED_ASSOCIATIVE_LINK <- UNORDERED_LINK // TENSE_LINK <- ORDERED_LINK // QUANTITY_LINK <- ORDERED_LINK // // DISAMBIGUATION_DECISION_LINK <- ORDERED_LINK // RR_DECISION_LINK <- ORDERED_LINK "RRDecisionLink" // // SYNTACTIC_ARGUMENT_RELATION_NODE <- NODE // SYNTACTIC_ARGUMENT_RELATION_INSTANCE_NODE <- NODE // SYNTACTIC_LINK_CATEGORY_NODE <- NODE // SYNTACTIC_LINK_SUBCATEGORY_NODE <- NODE // TENSE_NODE <- NODE // NOUN_NUMBER_NODE <- NODE // WORD_GENDER_NODE <- NODE // PARSE_NODE <- NODE // // SEQUENCE_LINK <- ORDERED_LINK // SYNTACTIC_LINK <- ORDERED_LINK // SS_LINK <- ORDERED_LINK "SSLink" // SAR_WORD_LINK <- ORDERED_LINK "SARWordLink" // NOUN_NUMBER_LINK <- ORDERED_LINK // WORD_GENDER_LINK <- ORDERED_LINK // SEMANTIC_CONTENT_LINK <- CONTAINS_LINK // PARSE_CANDIDATE_LINK <- ORDERED_LINK // VARIABLE_VALUE_CANDIDATE_LINK <- ORDERED_LINK // VARIABLE_VALUE_DEPENDENCY_LINK <- ORDERED_LINK // QUERY_VARIABLE_LINK <- ORDERED_LINK // EQUIVALENCE_LINK <- UNORDERED_LINK // // HACKY_SYNTACTIC_INFO_NODE <- NODE // NEW_SENSE_LINK <- ORDERED_LINK // NEW_SEMANTIC_LINK <- ORDERED_LINK // FLAG_NODE <- NODE // XXXX ??? Are these used anywhere ??? DISTINGUISHED_NODE <- NODE ENTROPY_LINK <- ORDERED_LINK // FREQUENCY_LINK <- INHERITANCE_LINK // New relex nodes, added by Linas per names used by Ben // These are subject to change or deletion pending review. // Some of the link types may go away. REFERENCE_LINK <- ASSOCIATIVE_LINK DOCUMENT_NODE <- CONCEPT_NODE SENTENCE_NODE <- CONCEPT_NODE PARSE_NODE <- CONCEPT_NODE PARSE_LINK <- ASSOCIATIVE_LINK LINK_GRAMMAR_RELATIONSHIP_NODE <- PREDICATE_NODE DEFINED_LINGUISTIC_CONCEPT_NODE <- CONCEPT_NODE DEFINED_LINGUISTIC_RELATIONSHIP_NODE <- PREDICATE_NODE DEFINED_FRAME_NODE <- CONCEPT_NODE DEFINED_FRAME_ELEMENT_NODE <- PREDICATE_NODE FRAME_ELEMENT_LINK <- ORDERED_LINK // New wordnet-import nodes, added by Linas. // These are subject to change, pending review. // The links should almost certainly be replaced by // a predicate-style construction (where the relation // is explicitly named) WORD_SENSE_NODE <- CONCEPT_NODE WORD_SENSE_LINK <- ASSOCIATIVE_LINK PART_OF_SPEECH_NODE <- CONCEPT_NODE PART_OF_SPEECH_LINK <- ORDERED_LINK LEMMA_NODE <- CONCEPT_NODE LEMMA_LINK <- ORDERED_LINK HOLONYM_LINK <- INHERITANCE_LINK // New word-sense-disambiguation nodes, added by Linas COSENSE_LINK <- UNORDERED_LINK // AGISim related links and nodes AGISIM_SOUND_NODE <- NODE "AGISIMSoundNode" AGISIM_TASTE_NODE <- NODE "AGISIMTasteNode" AGISIM_SMELL_NODE <- NODE "AGISIMSmellNode" AGISIM_SELF_NODE <- NODE "AGISIMSelfNode" AGISIM_PERCEPT_NODE <- NODE "AGISIMPerceptNode" AGISIM_VISUAL_PERCEPT_NODE <- NODE "AGIMSIMVisualPerceptNode" // note AGISIM_PIXEL_PERCEPT_NODE <- NODE "AGISIMPixelPerceptNode" AGISIM_POLYGON_PERCEPT_NODE <- NODE "AGISIMPolygonPerceptNode" AGISIM_OBJECT_PERCEPT_NODE <- NODE "AGISIMObjectPerceptNode" CW_PIXEL_PERCEPT_NODE <- NODE "CWPixelPerceptNode" CW_COLOR_NODE <- NODE "CWColorNode" FW_VARIABLE_NODE <- NODE "FWVariableNode" NM_TEXT_NODE <- NODE NM_ENTITY_NODE <- NODE // PB atoms FEELING_NODE <- GROUNDED_PREDICATE_NODE GOAL_NODE <- GROUNDED_PREDICATE_NODE LEARNED_SCHEMA_GOAL_NODE <- GOAL_NODE SCHEMA_GOAL_IMPLICATION_LINK <- IMPLICATION_LINK // Second-Life specific atoms: SL_NODE <- NODE "SLNode" SL_OBJECT_NODE <- SL_NODE "SLObjectNode" SL_PET_NODE <- SL_OBJECT_NODE "SLPetNode" SL_AVATAR_NODE <- SL_OBJECT_NODE "SLAvatarNode" SL_STRUCTURE_NODE <- SL_OBJECT_NODE "SLStructureNode" SL_ACCESSORY_NODE <- SL_OBJECT_NODE "SLAccessoryNode" SL_HUMANOID_NODE <- SL_OBJECT_NODE "SLHumanoidNode" // Time-related atoms: AT_TIME_LINK <- ORDERED_LINK TIME_NODE <- NODE // Space-related atoms: SPACE_MAP_NODE <- NODE // Attention allocation atoms: HEBBIAN_LINK <- LINK ASYMMETRIC_HEBBIAN_LINK <- ORDERED_LINK,HEBBIAN_LINK SYMMETRIC_HEBBIAN_LINK <- UNORDERED_LINK,HEBBIAN_LINK INVERSE_HEBBIAN_LINK <- ORDERED_LINK,HEBBIAN_LINK NOTYPE _______________________________________________ Mailing list: https://launchpad.net/~opencog-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~opencog-dev More help : https://help.launchpad.net/ListHelp

