Re: [apps-discuss] IRC URIs to denote users

Sean Leonard <dev+ietf@seantek.com> Wed, 24 September 2014 04:07 UTC

Return-Path: <dev+ietf@seantek.com>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7DE2A1A8A66 for <apps-discuss@ietfa.amsl.com>; Tue, 23 Sep 2014 21:07:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_44=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WArC38qd-OTI for <apps-discuss@ietfa.amsl.com>; Tue, 23 Sep 2014 21:06:57 -0700 (PDT)
Received: from mxout-08.mxes.net (mxout-08.mxes.net [216.86.168.183]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9F6561A1B15 for <apps-discuss@ietf.org>; Tue, 23 Sep 2014 21:06:57 -0700 (PDT)
Received: from [192.168.123.7] (unknown [23.240.242.6]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id C59F7509B5; Wed, 24 Sep 2014 00:06:55 -0400 (EDT)
Message-ID: <54224355.2070300@seantek.com>
Date: Tue, 23 Sep 2014 21:06:45 -0700
From: Sean Leonard <dev+ietf@seantek.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1
MIME-Version: 1.0
To: apps-discuss@ietf.org
References: <CAKaEYhL9PisQkN3rutxUOQyD7BFcL4W+eV_wXmj6MFePwTYbPg@mail.gmail.com>
In-Reply-To: <CAKaEYhL9PisQkN3rutxUOQyD7BFcL4W+eV_wXmj6MFePwTYbPg@mail.gmail.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Archived-At: http://mailarchive.ietf.org/arch/msg/apps-discuss/MSoxKAoCuJTW53GhR7znY0whsNo
Cc: Benjamin Young <byoung@bigbluehat.com>
Subject: Re: [apps-discuss] IRC URIs to denote users
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss/>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Sep 2014 04:07:02 -0000

On 9/22/2014 1:50 PM, Melvin Carvalho wrote:
> I was wondering if IRC URIs are standardized at all?
>
> The latest I found was :
>
> http://tools.ietf.org/html/draft-butcher-irc-url-04
>
> I have a use case of marking reputation from one system (web chat 
> room) to an IRC chat room, but I require an identifier for the user.
>
> The suggestions so far have been:
>
> irc://user@host
> irc://user@host/ -- trailing slash
> irc:user@host -- similar to xmpp
> irc://host/#user -- fragment could be problematic as per RFC 9386
>
> I've gone with the second option for the moment
>
> Any pointers would be most welcome.

Based on the options presented, I think the third one, irc:user@host, 
best captures the spirit of the URI syntax.

RFC 3986 Section 3 and 4.3 define absolute URIs as scheme : hier-part; 
hier-part can be one of:
"//" authority path-abempty
path-absolute
path-rootless
path-empty

The first one is usually used for identifying resources accessible via 
some Internet-related protocol where the authority is a host:port (plus 
optional userinfo to log in to the host:port), followed by some 
server-specific path to the resource (usually hierarchical). The second 
one is for some server-specific path (usually hierarchical), where the 
server's host:port are "obvious". For example, 
<ldap:///o=University%20of%20Michigan,c=US> means "an LDAP URL referring 
to the University of Michigan entry, available from an LDAP server of 
the client's choosing" (RFC 4516 Section 4). <file:///> URIs (URLs) 
refer to the local file system.

The fourth one, path-empty, isn't used much...but the gist (I suppose) 
is if you want to skip right to the ? query or # fragment parts. magnet: 
(provisional) URIs use this.

Thus, we arrive at path-rootless, which is basically "Everything Else". 
In this case, you are trying basically to identify an IRC object (a 
user), and tag it in such a way that it's not an e-mail address. 
<user@example.com> looks like an e-mail address. <irc:user@example.com> 
looks the best to me; it's obviously not an e-mail address. Similarly, 
it's obviously not an address to an IRC channel. If you say 
irc://host/user, you're sharing the channel namespace with the user 
namespace...not a great idea. If you say irc://host/#user, you are 
saying that the path is "/", which (in the context of users/nicknames) 
doesn't make a whole lot of sense since users/nicknames are specific to 
servers/hosts, not to sub-parts of servers/hosts.

The telnet: URL/URI is the most analogous to irc URIs--and telnet URLs 
go way back to Tim Berners-Lee's [original paper]. In the original, it's 
telnet://userinfo@host:port -- with no trailing slash (i.e., authority 
path-abempty). In RFC 1738 sec. 3.8, it's telnet://userinfo@host:port/ 
-- with trailing slash (i.e., authority path-abempty).

The ssh URI proposal (draft-ietf-secsh-scp-sftp-ssh-uri-04) has no 
trailing slash...but it also says that the path part is irrelevant. In 
any event, the overall gist is that "//" at the beginning is sufficient 
to distinguish "network paths" from "other things".

Sean

[original paper]: 
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.1836 
"Universal Document Identifiers on the Network"