From 6114a2648d1a1101f16a6a40722d5ff20605052a Mon Sep 17 00:00:00 2001 From: Hayodea Hakol Date: Sun, 3 Aug 2025 04:54:27 -0400 Subject: [PATCH] Add MentalExistent hierarchy of classes. These differ from the MentalEntity class hierarchy in that MentalExistents are a narrower subset of MentalEntities. MentalEntities refer to all mental content that needs to be persistently stored to represent cognitive and personna state. MentalExistents are content of the mind that specifically represents existents. I.e: perceptual data, whether structural or implicative. --- smocore/include/artificedMentalExistent.h | 31 ++++++++++++++++ .../include/fantasyArtificedMentalExistent.h | 24 ++++++++++++ smocore/include/mentalEntity.h | 14 +++++++ smocore/include/mentalExistent.h | 37 +++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 smocore/include/artificedMentalExistent.h create mode 100644 smocore/include/fantasyArtificedMentalExistent.h create mode 100644 smocore/include/mentalExistent.h diff --git a/smocore/include/artificedMentalExistent.h b/smocore/include/artificedMentalExistent.h new file mode 100644 index 0000000..d3f980a --- /dev/null +++ b/smocore/include/artificedMentalExistent.h @@ -0,0 +1,31 @@ +#ifndef _ARTIFICED_MENTAL_EXISTENT_H +#define _ARTIFICED_MENTAL_EXISTENT_H + +#include "mentalExistent.h" + +namespace smo { + +class FogArtificedMentalExistent +: public ArtificedMentalExistent +{ +}; + +typedef FogArtificedMentalExistent Fogaxent, FogArtixent; + +class IdyllicArtificedMentalExistent +: public ArtificedMentalExistent +{ +}; + +typedef IdyllicArtificedMentalExistent Idyllixent, IdyllArtixent; + +class FantasyArtificedMentalExistent +: public ArtificedMentalExistent +{ +}; + +typedef FantasyArtificedMentalExistent Fantaxent, FanArtixent; + +} // namespace smo + +#endif diff --git a/smocore/include/fantasyArtificedMentalExistent.h b/smocore/include/fantasyArtificedMentalExistent.h new file mode 100644 index 0000000..4267cc5 --- /dev/null +++ b/smocore/include/fantasyArtificedMentalExistent.h @@ -0,0 +1,24 @@ +#ifndef _FANTASY_ARTIFICED_MENTAL_EXISTENT_H +#define _FANTASY_ARTIFICED_MENTAL_EXISTENT_H + +#include "artificedMentalExistent.h" + +namespace smo { + +class FictionalFantasyArtificedMentalExistent +: public FantasyArtificedMentalExistent +{ +}; + +typedef FictionalFantasyArtificedMentalExistent Fictaxent, FictFantixent; + +class AspirationFantasyArtificedMentalExistent +: public FantasyArtificedMentalExistent +{ +}; + +typedef AspirationFantasyArtificedMentalExistent Aspixent, AsFantixent; + +} // namespace smo + +#endif diff --git a/smocore/include/mentalEntity.h b/smocore/include/mentalEntity.h index 7f0762a..823f5d4 100644 --- a/smocore/include/mentalEntity.h +++ b/smocore/include/mentalEntity.h @@ -3,10 +3,24 @@ namespace smo { +/* + * MentalEntities refer to all mental content that needs to be persistently + * stored to represent cognitive and personna state. This includes such things + * as value judgements, comparators, logical ops, DB links, etc. + * + * Mental Existents are a narrower subset of MentalEntities that represent + * implicit existents and perceptual data, both implexed and artificed. + */ class MentalEntity { public: using Id = uint32_t; + +public: + MentalEntity(const Id id) : id(id) {} + +public: + const Id id; }; } // namespace smo diff --git a/smocore/include/mentalExistent.h b/smocore/include/mentalExistent.h new file mode 100644 index 0000000..af8d5a6 --- /dev/null +++ b/smocore/include/mentalExistent.h @@ -0,0 +1,37 @@ +#ifndef _MENTAL_EXISTENT_H +#define _MENTAL_EXISTENT_H + +#include "mentalEntity.h" + +namespace smo { + +/* + * MentalExistents are content of the mind that specifically represents + * existents. I.e: perceptual data, whether structural or implicative. All + * Mentexents are Mentities, but not all Mentities are Mentexents. + */ + +class MentalExistent +: public MentalEntity +{ +}; + +typedef MentalExistent Mentexent; + +class ImplexedMentalExistent +: public MentalExistent +{ +}; + +typedef ImplexedMentalExistent Implexent; + +class ArtificedMentalExistent +: public MentalExistent +{ +}; + +typedef ArtificedMentalExistent Artifixent, Artixent; + +} // namespace smo + +#endif