
    PiR                     r    d Z ddlmZ ddlmZmZ ddlmZmZm	Z	 dgZ
 ed          Z G d de	          ZdS )	z2
Notation 3 (N3) RDF graph serializer for RDFLib.
    )Graph)OWL	Namespace)OBJECTSUBJECTTurtleSerializerN3Serializerz#http://www.w3.org/2000/10/swap/log#c                        e Zd ZdZdZddef fdZ fdZ fdZd fd		Z	 fd
Z
d fd	Z fdZd fd	Zd Zd Z xZS )r	   z%Notation 3 (N3) RDF graph serializer.n3Nstorec                     t          t          |                               |           | j                            t
          j        dt          j        di           || _	        d S )N=z=>)
superr	   __init__keywordsupdater   sameAsSWAP_LOGimpliesparent)selfr   r   	__class__s      q/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/rdflib/plugins/serializers/n3.pyr   zN3Serializer.__init__   sP    lD!!**5111cj#x/?FGGG    c                 d    t          t          |                                            i | _        d S N)r   r	   reset_storesr   r   s    r   r   zN3Serializer.reset   s*    lD!!'')))r   c                 h    | j         s)t          t          |                                            d S d S r   )r   r   r	   endDocumentr   s    r   r!   zN3Serializer.endDocument   s9    { 	4,%%1133333	4 	4r   r   c                     t          t          |                               |          }| j        || j                                        z  }|S r   )r   r	   indentr   )r   modifierr#   r   s      r   r#   zN3Serializer.indent    sE    |T**11(;;;"dk((***Fr   c                    t          t          |                               |           t          |d         t                    r |d         D ]}|                     |           t          |d         t                    r |d         D ]}|                     |           t          |d         t                    r |d         D ]}|                     |           d S d S )Nr         )r   r	   preprocessTriple
isinstancer   )r   tripletr   s      r   r(   zN3Serializer.preprocessTriple&   s    lD!!226:::fQi'' 	)AY ) )%%a((((fQi'' 	)AY ) )%%a((((fQi'' 	)AY ) )%%a((((	) 	)) )r   Tc                     d }| j         | j                             ||          }|)t          t          |                               ||          }|S r   )r   getQNamer   r	   )r   uri
gen_prefixqnamer   s       r   r-   zN3Serializer.getQName2   sP    ;"K((j99E=,--66sJGGEr   c                     |                      |           |                     |          }t          |          dk    rdS |                     |          p't	          t
          |                               |          S )Nr   F)subjectDonebuildPredicateHashlens_clauser   r	   	statement)r   subject
propertiesr   s      r   r6   zN3Serializer.statement:   so    !!!,,W55
z??a5}}W%%U|T)B)B)L)LW)U)UUr   Fc                     |                      ||          s,t          t          |                               |||           d S d S r   )p_clauser   r	   path)r   nodepositionnewliner   s       r   r;   zN3Serializer.pathA   sN    }}T8,, 	D,%%**47CCCCC	D 	Dr   c                    t          |t                    rq|                     d|                                 z              |                     |t
                     |                     |           |                     d           dS dS )N
z .TF)r)   r   writer#   r:   r   predicateList)r   r7   s     r   r5   zN3Serializer.s_clauseE   sw    gu%% 	JJtdkkmm+,,,MM'7+++w'''JJt45r   c                    t          |t                    r|                     |           |t          u r|                     d           |                     d           | xj        dz  c_        t          ||           }|                    | j                   | xj        dz  c_        |                     | 	                                dz              dS dS )N {r&   )r   }TF)
r)   r   r2   r   rA   depthr	   	serializestreamr#   )r   r<   r=   
serializers       r   r:   zN3Serializer.p_clauseO   s    dE"" 	T"""6!!

3JJsOOOJJ!OJJ%d4888J  ---JJ!OJJJJt{{}}s*+++45r   r   )r   )T)F)__name__
__module____qualname____doc__
short_namer   r   r   r!   r#   r(   r-   r6   r;   r5   r:   __classcell__)r   s   @r   r	   r	      s;       //J e      
    4 4 4 4 4     
) 
) 
) 
) 
)     V V V V VD D D D D D        r   N)rN   rdflib.graphr   rdflib.namespacer   r   !rdflib.plugins.serializers.turtler   r   r   __all__r   r	    r   r   <module>rV      s           + + + + + + + + O O O O O O O O O O
9:;;O O O O O# O O O O Or   