<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE TIP SYSTEM "http://tcl.activestate.com/cgi-bin/tct/tip/tipxml.dtd">
<!-- Converted at Thu Feb 09 11:28:48 GMT 2012 -->
<!-- TIP AutoGenerator - written by Donal K. Fellows -->

<TIP number='54'>
<header><title>Using PURLs to Unite the Tcl Webspace</title><author address="mailto:andreas_kupries@users.sourceforge.net">Andreas Kupries</author><author address="mailto:hobbs@users.sourceforge.net">Jeff Hobbs</author><status type='process' state='withdrawn' vote='prior'>$Revision: 1.8 $</status><history></history><created day='16' month='aug' year='2001' /></header>
<abstract>This TIP proposes the use of PURLs to unify the scattered landscape of Tcl URLs into a coherent set of information about the language, the community, extensions, etc.</abstract>
<body><section title="Background &amp; Rationale">
<para>One of the recurring themes in the community in general (and <url ref="news:comp.lang.tcl"/> in particular) is the lack of central website people can turn to for an introduction to the language, the community, search for extensions and packages, et cetera.</para>
<para>Most of the solutions proposed so far have the distinctive disadvantage of not being able to use the existing sites and bind them into a whole. This is further aggravated by the fact that the &apos;natural&apos; domain names, like for example <url ref="http://www.tcl.com/"/> and <url ref="http://www.tcl.org"/> are already taken by other entities, commercial and not, and thus not available anymore. We do have control of the <url ref="http://www.tcl-tk.net/"/> domain, provided by David Welton.</para>
<para>Instead of giving up at this point I propose to use PURLs a.k.a. <emph style="italic">Persistent URLs</emph> to construct a virtual website (the <emph style="italic">Tcl space</emph>) out of all the existing independent efforts. See <url ref="http://www.purl.org/"/> for more explanations of PURLs.</para>
<para>Note that PURLs not only can refer to single URLs but to entire sites. The latter is done through a technique called &apos;partial redirection&apos;. This ... is emphasized here because partially redirected PURL have to be used with a trailing slash whereas PURLs referring to single URL must not have a trailing slash.</para>
<para>In the lists below partially redirected PURLs are indicated by a trailing slash.</para>
<para>A restriction we face is that PURLs are case insensitive. This means that the names we will have to come up with have to be unique even with case removed.</para>
<para>One of the most important features is the persistency. In real life however organizations, people, websites, etc. can disappear. According to <url ref="http://www.purl.org/OCLC/PURL/FAQ#toc3.14"/> the PURL stays in existence but can be redirected to a page detailing the history of the purl. This would include the decommission. We could also do our own scheme and redirect the purl to a page explaining the history in a more Tcl-specific manner (like: Company went out of business, was acquired, etc.).</para>
</section>
<section title="Specification">
<para>This TIP is driven by several conflicting needs:</para>
<itemize><item.i><para>The names will be persistent, so give them some thought before creating them; they cannot be undone. This also implies that we to set up a simple and minimal structure first so as not to block future enhancements and flexibility.</para></item.i><item.i><para>Define the structure now before the URN space gets as scattered as the URL space is. Note that this process has already begun. The PURL resolver at <url ref="http://www.purl.org/"/> currently has registered 24 Tcl-related PURLs which are not bound together in the framework proposed here. Action is necessary to prevent further confusion.</para></item.i></itemize>
<para>Of the existing PURLs the PURL domain <emph style="italic">/tcl</emph> created by Don Libes is the most promising one for the unification of the Tcl space. Six of the 24 aforementioned PURLs are defined below this domain too, providing a (good) framework on which to build.</para>
<para>The existing PURLs and sub-domains in the <emph style="italic">/tcl</emph> domain are:</para>
<itemize><item.i><para><emph style="italic">expect</emph> - reference to the homepage of the expect extension</para></item.i><item.i><para><emph style="italic">faq</emph> - reference to the main FAQ</para></item.i><item.i><para><emph style="italic">faqs</emph> - introduction to the available FAQ documents.</para></item.i><item.i><para><emph style="italic">home/</emph> - refers to the Tcl Developers Xchange</para></item.i><item.i><para><emph style="italic">tip/</emph> - refers to the TIP archives</para></item.i><item.i><para><emph style="italic">wiki</emph> - refers to the entry page of the Tcl&apos;ers WIKI</para></item.i></itemize>
<para>With the exception of <emph style="italic">expect</emph> all of these are general classes and/or refer to important sites. They are used as is, except for <emph style="italic">expect</emph> which has to be redirected into the proposed sub-domain <emph style="italic">package</emph>.</para>
<para>The following new sub-domains covering the most important general classes of information and/or websites are proposed here. Please note that the examples used in the list below are using purely informal everyday names to refer to entities in the proposed domain. These examples should not be seen as suggestions for the concrete naming scheme used by the domain.</para>
<itemize><item.i><para><emph style="italic">announce</emph> - Direct reference to a page explaining how to announce packages, applications and other tcl-related news and linking to the relevant newsgroups, mail archives and submission addresses. This includes, but is not restricted to:</para><itemize><item.i><para>A link to the newsgroup <emph style="italic">comp.lang.tcl.announce</emph>.</para></item.i><item.i><para>A link to the eGroups/Yahoo archive of the c.l.t.a newsgroup.</para></item.i><item.i><para>The submission address of c.l.t.a. to directly submit via email announcements.</para></item.i></itemize></item.i><item.i><para><emph style="italic">newsletter</emph> - Direct reference to an archive of <emph style="italic">Tcl-URL!</emph>.</para></item.i><item.i><para><emph style="italic">package/</emph> - Sub-domain to contain references to the homepages of the known packages. This TIP makes no distinction between C-level extensions and script libraries. From the point of view of the core these are all packages to be required.</para><para>Examples of packages are <emph style="italic">Expect</emph>, <emph style="italic">tcllib</emph>, etc.</para></item.i><item.i><para><emph style="italic">application/</emph> - Sub-domain to contain references to the homepages of applications related to Tcl, written in Tcl or using it internally.</para><para>Examples of applications are <emph style="italic">frink</emph>, <emph style="italic">tclHttpd</emph>, <emph style="italic">AOLServer</emph>, etc.</para></item.i><item.i><para><emph style="italic">person/</emph> - Sub-domain to contain references to the homepages of people active in the community, as far as they are interested in such a reference. References in this domain shall be personal and not organization-related. The latter will go into their own domain.</para><para>Examples of people are <emph style="italic">Larry Virden</emph>, <emph style="italic">Cameron Laird</emph>, etc.</para></item.i><item.i><para><emph style="italic">org/</emph> - Sub-domain to contain references to organizations important to the Tcl community.</para><para>Examples are the Tcl Core Team, the Tcl Core Maintainers, Tcl-based based companies (PhaseIt, ActiveState), companies and organizations using Tcl (NIST, CAS), etc.</para></item.i></itemize>
</section>
<section title="Management">
<para>The <emph style="italic">/tcl</emph> domain was created by Don Libes which made him automatically the maintainer of the domain [<url ref="http://www.purl.org/maint/search_user.pl.cgi?userid="/>^LIBES$]. He has already extended the maintainership to the entity TCLGROUP [<url ref="http://www.purl.org/maint/search_group.pl.cgi?groupid="/>^TCLGROUP$], currently consisting of</para>
<itemize><item.i><para>Gordon Johnstone &lt;<url ref="mailto:gordonjohnstone@earthling.net"/>&gt;</para></item.i><item.i><para>Jeffrey Hobbs &lt;<url ref="mailto:jeff@hobbs.org"/>&gt;</para></item.i><item.i><para>Don Libes &lt;<url ref="mailto:libes@nist.gov"/>&gt;</para></item.i><item.i><para>Andreas Kupries &lt;<url ref="mailto:andreas_kupries@users.sourceforge.net"/>&gt;</para></item.i><item.i><para>Larry Virden &lt;<url ref="mailto:lvirden@yahoo.com"/>&gt;</para></item.i><item.i><para>Don G. Porter &lt;<url ref="mailto:dgp@nist.giv"/>&gt;</para></item.i><item.i><para>Jean-Claude Wippler &lt;<url ref="mailto:jcw@equi4.com"/>&gt;</para></item.i></itemize>
<para>For the future I propose that</para>
<itemize><item.i><para>High-level changes to the Tcl space, like new sub-domains, have to go through the TCT and the TIP process for approval. This is also in line with <tipref type="text" tip="0"/> declaring the responsibility of the TCT for the Tcl webspace.</para></item.i><item.i><para>The day-to-day routine of adding new packages, persons, organizations, etc. is delegated to a new group, the <emph style="italic">Tcl Namespace Maintainers</emph>.</para><para>Initially this group would consist of the people mentioned above, with membership open to volunteers from the community.</para></item.i></itemize>
</section>
<section title="Discussion">
<itemize><item.i><para>All of the newly proposed sub-domains will be simple listings mapping from the names of the entities contained in them to the proper locations. Further categorization of the entities by topic, gender or other attributes is out of the scope of this TIP. This type of categorization rather is in the domain of general and specialized catalogs which can be set up later and then bound into the unified webspace proposed here.</para><para>Note that such catalogs can and should make use of the proposed domains to reduce the effort necessary by them to stay current with respect to the location of the referenced entities (people, packages, etc).</para></item.i><item.i><para>The first pre-draft of this TIP contained definitions for the names to use in the various domains. These definitions have been removed on the grounds that their format and other issues like resolution of naming conflicts, order of precedence, etc. are best handled in one or more separate documents. The role of this TIP is to lay down a framework within which the community can operate and not to fill in every conceivable detail.</para><para>These details can be discussed and decided upon by the group of maintainers proposed in the last section.</para></item.i><item.i><para>This proposal makes the Tcl community dependent on an external entity, namely the maintainers of <url ref="http://www.purl.org/."/> This is considered acceptable.</para></item.i></itemize>
</section>
<section title="Example">
<para>The following examples show how to use PURLs, using some of the already existing ones:</para>
<itemize><item.i><para><url ref="http://www.purl.org/tcl/tip/"/> refers to the TIP archive.</para></item.i><item.i><para><url ref="http://www.purl.org/tcl/wiki/"/> refers to the Tcl&apos;ers Wiki.</para></item.i></itemize>
</section>
<section title="Copyright">
<para>This document is in the public domain.</para>
</section>
</body></TIP>

