We use the term Uniform for everything that has a URL or URI-like syntax. The following types of uniform are syntactically URLs (Uniform Resource Locators), but have a semantic connotation which has typically nothing to do with resources but rather with human beings.


Uniforms (english)

See also the PSYC specification for Uniforms: http://www.psyc.eu/unl.html

the UNI

the Uniform Network Identification is a permanent uniform of an entity in the PSYC network. Something you can print on your business card or publish in other Internet media. In some cases the entity answering at a UNI will forward or redirect messages to a location addressed by a UNL, in other cases the entity is self-sufficient. UNIs are primarily employed by identities and places.

Example: psyc://psyced.org/~brain

We also consider xmpp:lynX@ve.symlynX.com (a fully uniformed JID or jabber identity) an address fulfilling the conceptual needs of a UNI, while something like irc://psyced.org/~lynX only qualifies on IRC servers that ensure your identity, like psyced.

See IRC URIs for the way we deal with irc: since the existing URL proposal does not handle identification.

In PSYC the UNI is also the program running on your home server which takes care of your personal business, or the business of a chatroom or a service. strangers can always address the UNI to reach you, even if you're connected from a distant UNL or aren't available at all.

In case of doubt you can find out about your own UNI by examining your own profile, using either /surf or /x or whatever your access form offers. To find out the UNI of a room you are in, you can again surf its profile, or use /st (as in status).

the UNL

the Uniform Network Location is the effective IP address where a user agent (a client) or other mobile entity is operating for a user (or other UNI), usually in combination with an allocated port number. UNLs are volatile, as the current IP number of a client changes frequently, and are typically given to trusted friends for peer-to-peer activity. Usually the UNL points to the root entity of the user's client.

Example: psyc://localhost:4711/

NOTE: How locations work and how they are linked to the identity is not covered in this Specification

the UNR

Jabber has introduced an additional kind of address, which is an inbetween thing between UNI and UNL. The Uniform Network Resource is an address which also resides on the home server and in fact looks identical to the UNI, but it carries an extension specifying a particular resource connected to that UNI where your home server is supposed to forward messages to without letting the UNI process them. In XMPP they typically look like xmpp:me@psyc.example.com/ClientName. Since this model has become quite popular, PSYC should support this approach, too, as an alternative to service routing and UNLs. A PSYC UNR would look something like psyc://psyc.example.org/~UserName/*ClientName.

Uniforms (deutsch)


Die uniform network location (UNL) ist die Bezeichnung einer Netzwerkadresse, welche semantisch und syntaktisch mit einer URL identisch ist, deren Bezeichnung aber aus gründen der Menschlichkeit geändert wurde - so klingt "resource" von URL nicht gerade passend für dich und mich. ,)

Beispiel: psyc://localhost:4711.


Die uniform network identification (UNI) stellt eine permanente Adresse dar, unter der man ständig erreichbar ist (während die UNL sich stets ändert; je nachdem, woher man sich verbindet).

Beispiel: psyc://psyced.org/~brain

Beim Senden von Nachrichten schickt man die UNL als _source raus (wenn nicht bereits persistent in der Session zum Homeserver gesetzt), der Empfänger eines Pakets bekommt als _source hingegen die UNI (wird vom Homeserver ersetzt), ausser man hat eine direkte P2P-Verbindung aufgebaut.

Die eigene UNI kann man erfahren in dem man das eigene Profil betrachtet, über die Profilfunktion der jeweiligen Zugangsform, oder über die /surf oder /x Befehle. Um die UNI eines Raumes zu erfragen, kann man ebenfalls das Profil des Raumes betrachten, oder im Raum den /st (wie status) Befehl absetzen.


Last but not least gibt es noch die UNR, die vergleichbar mit der UNI ist, darüber hinaus aber eine Ressourcenbezeichnung angehangen hat, die unverändert an den empfangenden Client mitgeleitet wird. Nötig ist dies aufgrund der Möglichkeit von Jabber, sich mit einem Account mehrfach mit verschiedenen Prioritäten und Bezeichnungen zu verbinden.

<lynX> Moment, das kann PSYC auch. PSYC verwendet bisher lediglich keine Adressierung dafür. Die verschiedenen Locations melden sich als Services bei der UNI an, und können dort bestimmte Methodentypen bestellen, z.B. alles was mit _mail zu tun hat für einen grafischen psycbiff. Ich kann zwar nicht versprechen, dass das zur Zeit funktioniert, aber es ist im Code drin.  ;)

Bleistift: xmpp:psycho@ve.symlynX.com/daheim

Legal characters in resource names

This means user nicknames and place names.

We start out with a very conservative idea of what is permissible in nicknames. You are however welcome to provide display-only variants in _nick_local.

Nicknames is not the place to play the big internationalization game, as everyone in the world doesn't just want to see a nickname, she should also be permitted to type it. Funny encodings and escapings are not fruitful to that purpose and the entire Internet as it stands today is very well accostumed to limiting usernames to a subset of a random historic standard called ASCII (see also stringprep on this topic).

Thus, here is our choice of permissible characters additional to the alphanumeric ones:

_ - 

Several other characters are unwelcome because they either infringe with XMPP or IRC limitations, although XMPP provides a plan for encoding them, while IRC quite often works fine even if the characters are formally forbidden.

+ is impractical not only because it is not permitted in IRC, but also because it is a shortcut for %20 in URIs, thus needs to be escaped when used in formally correct uniforms.

= is formally not permitted in IRC, but it has not produced any problems with any known client implementation so far. Servers need to be modified anyway, should they be used in gateway mode with PSYC. We could allow = but we still don't recommend using it.

Also, for compatibility to IRC, we do not want to permit nicknames with leading digits, as in "50cent."


Talk:Uniform contains some more or less superceded thoughts.

Further Readings

The acronym UNL has been adopted by the United Nations to mean Wikipedia:Universal Networking Language, so don't expect our acronym to become very widespread.

Home Location Register

Mr. Galli would like to point out that it may be interesting to keep an eye on how HLR of GSM operates when it comes to attaching to an identification.