
    #HJjw                     l    d Z ddl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y)	z2
Notation 3 (N3) RDF graph serializer for RDFLib.
    N)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dd
Z fdZd fd	Zd Zd Z xZS )r	   z%Notation 3 (N3) RDF graph serializer.n3storec                     t         t        |   |       | j                  j	                  t
        j                  dt        j                  di       || _	        y )N=z=>)
superr	   __init__keywordsupdater   sameAsSWAP_LOGimpliesparent)selfr   r   	__class__s      g/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/rdflib/plugins/serializers/n3.pyr   zN3Serializer.__init__   s>    lD*51cjj#x/?/?FG    c                 8    t         t        |           i | _        y N)r   r	   reset_storesr   r   s    r   r   zN3Serializer.reset   s    lD')r   c                 D    | j                   st        t        |           y y r   )r   r   r	   endDocumentr   s    r   r!   zN3Serializer.endDocument   s    {{,13 r   c                     t         t        |   |      }| j                  || j                  j                         z  }|S r   )r   r	   indentr   )r   modifierr#   r   s      r   r#   zN3Serializer.indent"   s:    |T1(;;;"dkk((**Fr   c                 B   t         t        |   |       t        |d   t              r|d   D ]  }| j                  |        t        |d   t              r|d   D ]  }| j                  |        t        |d   t              r|d   D ]  }| j                  |        y y )Nr         )r   r	   preprocessTriple
isinstancer   )r   tripletr   s      r   r(   zN3Serializer.preprocessTriple(   s    lD26:fQi'AY%%a( fQi'AY%%a( fQi'AY%%a(  (r   c                     d }| j                   | j                   j                  ||      }|t        t        |   ||      }|S r   )r   	get_pnamer   r	   )r   uri
gen_prefixqnamer   s       r   r-   zN3Serializer.get_pname4   sE    ;;"KK))#z:E=,7ZHEr   c                 ^    t        j                  dt        d       | j                  ||      S )NzHN3Serializer.getQName is deprecated, use N3Serializer.get_pname instead.r'   )
stacklevel)warningswarnDeprecationWarningr-   )r   r.   r/   s      r   getQNamezN3Serializer.getQName<   s*    V	

 ~~c:..r   c                     | j                  |       | j                  |      }t        |      dk(  ry| j                  |      xs t        t
        |   |      S )Nr   F)subjectDonebuildPredicateHashlens_clauser   r	   	statement)r   subject
propertiesr   s      r   r<   zN3Serializer.statementD   sP    !,,W5
z?a}}W%U|T)LW)UUr   c                 V    | j                  ||      st        t        |   |||       y y r   )p_clauser   r	   path)r   nodepositionnewliner   s       r   rA   zN3Serializer.pathK   s)    }}T8,,*47C -r   c                     t        |t              r[| j                  d| j                         z          | j	                  |t
               | j                  |       | j                  d       yy)N
z .TF)r)   r   writer#   r@   r   predicateList)r   r=   s     r   r;   zN3Serializer.s_clauseO   sQ    gu%JJtdkkm+,MM'7+w'JJtr   c                    t        |t              r| j                  |       |t        u r| j	                  d       | j	                  d       | xj
                  dz  c_        t        ||       }|j                  | j                         | xj
                  dz  c_        | j	                  | j                         dz          yy)N {r&   )r   }TF)
r)   r   r8   r   rG   depthr	   	serializestreamr#   )r   rB   rC   
serializers       r   r@   zN3Serializer.p_clauseY   s    dE"T"6!

3JJsOJJ!OJ%d48J  -JJ!OJJJt{{}s*+r   r   )r   )T)F)__name__
__module____qualname____doc__
short_namer   r   r   r!   r#   r(   r-   r6   r<   rA   r;   r@   __classcell__)r   s   @r   r	   r	      sK    /Je 
4
)/VDr   )rT   r3   rdflib.graphr   rdflib.namespacer   r   !rdflib.plugins.serializers.turtler   r   r   __all__r   r	    r   r   <module>r\      s=      + O O
:;W# Wr   