
    hq                        S r SSKJr   " S S5      r\S:X  Ga/  \" S5        \" 5       r\" S5        \R                  S5      r\" S	\S
    35        \" S\S    35        \" S5        \R                  SS5      r\" S\S    35        \" SSR                  \S   5       35        \" S5        \R                  S5      r\" S\S    35        \" S\S   S 35        \" S5        \R                  S5      r\" S\ 35        \" S\" \R                  5       35        \" S5        \" S 5        \" S!5        \" S"5        \" S#5        \" S$5        g%g%)&zA
Semantic Processor - True understanding beyond pattern matching
    )defaultdictc                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)SemanticProcessor   c                 F    [        S 5      U l        U R                  5         g )Nc                      / / / S.$ )Nrelated
propertiesexamples r       G/home/james-whalen/eden-agi-project/core/semantic/semantic_processor.py<lambda>,SemanticProcessor.__init__.<locals>.<lambda>   s    Rr_a1br   )r   concept_graphload_conceptsselfs    r   __init__SemanticProcessor.__init__   s    ()bcr   c                     U R                  S/ SQ/ SQ/ SQS.5        U R                  SSS// S	Q/ S
QS.5        U R                  S/ SQ/ SQ/ SQS.5        g)z"Initialize basic concept knowledgedog)animalpetmammal)z
has_legs:4can_barkdomesticated)labradorpoodlegerman_shepherdr	   r   organismliving_thing)can_move
needs_foodbreathes)r   catbirdfishlearning)	knowledge	educationimprovement)requires_practicebuilds_skillneeds_feedback)studyingtraining
practicingN)add_conceptr   s    r   r   SemanticProcessor.load_concepts   sg     	2DA!
 	 	"N3@6$
 	 	@Q>&
 	r   c                 @    U R                   U   R                  U5        g)z%Add a concept to the semantic networkN)r   update)r   concept_namedatas      r   r4   SemanticProcessor.add_concept    s    <(//5r   c           
          XR                   ;  a  SSSS.$ U R                   U   nSUUS   US   US   [        US   5      [        US   5      -   S	.$ )
z#Semantic understanding of a conceptFzConcept not in knowledge basezLearn more about this concept)
understoodreason
suggestionTr
   r   r   )r<   conceptrelated_conceptsr   r   semantic_depth)r   len)r   r?   concept_datas      r   understand_concept$SemanticProcessor.understand_concept$   sy    ,,,#9=  ))'2  ,Y 7&|4$Z0!,y"9:SlA[=\\
 	
r   c                     XR                   ;  d  X R                   ;  a  S/ S.$ X R                   U   S   ;   a  SX/S.$ U R                   U   S    H!  nX R                   U   S   ;   d  M  SXU/S.s  $    S/ S.$ )z+Find semantic relationship between conceptsunknown)relationshippathr
   directly_relatedindirectly_relatedno_clear_pathr   )r   concept1concept2r
   s       r   find_relationship#SemanticProcessor.find_relationship8   s    ---ASAS1S$-r:: ))(3I>>$6@TUU ))(3I>G--g6yAA(<xZbFcdd ? !0<<r   c                    UR                  5       R                  5       n/ n/ nU Hx  nXPR                  ;   a  UR                  U5        M%  U R                   Vs/ s H  ofU;   d  XV;   d  M  UPM     nnU(       a  UR	                  U5        Mg  UR                  U5        Mz     UUUU(       a  [        U5      [        U5      -  S.$ SS.$ s  snf )z"Interpret semantic meaning of textr   )textr<   rG   understanding_rate)lowersplitr   appendextendrB   )r   rS   wordsunderstood_conceptsunknown_conceptswordcpartials           r   interpret_meaning#SemanticProcessor.interpret_meaningH   s    

""$ D)))#**40 '+&8&8S&8I1&8S'..w7$++D1  -'KP#&9":SZ"G	
 	
 WX	
 	
 Ts   C*Cc                    U R                  U5      nUS   (       d  SU S3$ UR                  5        S3nUS   (       a  USSR                  US   SS	 5       3-  nUS
   (       a>  US
   SS  Vs/ s H  oDR                  SS5      PM     nnUSSR                  U5       3-  nUS   (       a  USSR                  US   SS	 5       3-  nUS-   $ s  snf )z'Generate natural explanation of conceptr<   z I don't have deep knowledge of 'z' yet.z isr@   z related to z, N   r      _ z and has properties like r   z. Examples include .)rD   
capitalizejoinreplace)r   r?   understandingexplanationppropss         r   explain_concept!SemanticProcessor.explain_concepta   s   //8\*5gYfEE ++-.c2+,\$))MBT4UVXWX4Y*Z)[\\K&2?2Mbq2QR2QQYYsC(2QER6tyy7G6HIIK$0=;TUWVW;X1Y0Z[[KS   Ss   0CrM   N)__name__
__module____qualname____firstlineno__r   r   r4   rD   rP   r_   rn   __static_attributes__r   r   r   r   r      s%    *6
(= 
2!r   r   __main__zSEMANTIC PROCESSOR TESTu   
🧠 Understanding 'dog':r   z   Related: r@   z   Properties: r   u.   
🔗 Relationship between 'dog' and 'animal':r   z	   Type: rH   z	   Path: u    → rI   u0   
📝 Interpreting: 'dogs are learning animals':zdogs are learning animalsz   Understood: r<   z   Understanding: rT   z.0%u   
💬 Explain 'learning':r*   z   u$   
📊 Concepts in semantic network: u   
🧠 Eden can now:z%   - Understand concepts semanticallyz%   - Find relationships between ideasz&   - Interpret meaning beyond patternsz   - Explain concepts naturallyu#   
✅ SEMANTIC PROCESSOR OPERATIONALN)__doc__collectionsr   r   rp   print	processorrD   resultrP   rh   r_   rn   rk   rB   r   r   r   r   <module>r{      s   $n! n!` z	
#$!#I 

'())%0F	L 234
56	OF<01
23 

;<((9F	If^,-
./	Igll6&>23
45 

=>(()DEF	OF<01
23	v&:;C@
AB 

&'++J7K	C}
	1#i6M6M2N1O
PQ	
 !	
12	
12	
23	
+,	
01I r   