Concept constructor

Concept({
  1. required String id,
  2. required String content,
  3. double activationLevel = 0.5,
  4. DateTime? creationTime,
  5. List<String>? relatedConceptIds,
  6. Map<String, dynamic>? properties,
  7. SemanticVector? embedding,
  8. EmotionalValence emotionalValence = EmotionalValence.neutral,
  9. double emotionalIntensity = 0.0,
  10. PerceptionModality modality = PerceptionModality.abstract,
  11. double familiarity = 0.5,
  12. double contextualRelevance = 0.5,
})

Implementation

Concept({
  required this.id,
  required this.content,
  double activationLevel = 0.5,
  DateTime? creationTime,
  List<String>? relatedConceptIds,
  Map<String, dynamic>? properties,
  SemanticVector? embedding,
  this.emotionalValence = EmotionalValence.neutral,
  this.emotionalIntensity = 0.0,
  this.modality = PerceptionModality.abstract,
  this.familiarity = 0.5,
  this.contextualRelevance = 0.5,
})  : assert(activationLevel >= 0.0 && activationLevel <= 1.0,
          'activationLevel must be in [0, 1]'),
      assert(emotionalIntensity >= 0.0 && emotionalIntensity <= 1.0,
          'emotionalIntensity must be in [0, 1]'),
      assert(familiarity >= 0.0 && familiarity <= 1.0,
          'familiarity must be in [0, 1]'),
      assert(contextualRelevance >= 0.0 && contextualRelevance <= 1.0,
          'contextualRelevance must be in [0, 1]'),
      activationLevel = activationLevel,
      creationTime = creationTime ?? DateTime.now(),
      relatedConceptIds = relatedConceptIds ?? const [],
      properties = properties ?? const {},
      embedding = embedding;