bool IRI::operator==(const IRI &o) const { if ( IsURN() ) return _urnComponents == o._urnComponents; else if ( _url == nullptr || o._url == nullptr ) return false; return *_url == *o._url; }
bool IRI::operator<(const IRI& o) const { if ( IsURN() ) return _urnComponents < o._urnComponents; return *_url < *o._url; }
bool IRI::operator!=(const IRI& o) const { if ( IsURN() ) return _urnComponents != o._urnComponents; return *_url != *o._url; }