FrontPage SiteMap RecentChanges RecentNearChanges HowTo Blog RSS

2004-07-01

I wrote a simple Oddmuse:Local Names Extension… All it does is read the local name definitions from a wiki page. Nothing as powerful as a LocalNames Server.

Eek! I wish there were some way of noting that this wasn't the same as the Local Names system that we're making over at OneBigSoup..!

Because the system we're making- it's a standard data format for describing name spaces.

You could easily add to the Oddmuse:Local Names Extension, to make it "play nice" with the local names system.

That is, make it automatically generate a page that describes the namespace.

So for example, if you've bound "Alex" to "http://www.emacswiki.org/alex/", then this is the page you automatically generate:

  http://purl.net/net/localnames/
  NamesTable
    Alex http://www.emacswiki.org/alex/

If you had more entries, you'd have:

  http://purl.net/net/localnames/
  NamesTable
    Alex http://www.emacswiki.org/alex/
    Lion http://www.speakeasy.org/~lion/
    CommunityWiki http://www.communitywiki.org/

…and so on and so forth.

That way, all the plug-ins for the format- they'll all work with each other.

Right now, we have a WordPress plug-in, written by MooKitty, and we have an IRC bot that relays LocalNames information.

We also have the LocalNames Server, which can traverse the LocalNamesNetwork for programs that don't want to do parsing and caching themselves. (Doesn't make sense, if you have 50 programs using local names, for them all to keep their own cache.)

If you make that namespace description, you won't necessarily be able to take advantage of the rest of the LocalNamesNetwork. But, at least the network will be able to take advantage of your definitions.

If you have 50 entries in there, and one was "Photographs", linking to your photographs collection, then people could just say:

  Alex:Photographs

…and if they've bound Alex to their namespace description file, then that link will automatically point to the URL associated with "Photographs."

Done.

Based on data from here:

But this is interesting for other tools only for "indirect" stuff, right? Because for the particular Oddmuse itself, it doesn't matter, and other tools are mostly interested in what pages are found on the particular wiki – in other words:

It seems to me that you really want me to add this one:

   http://purl.net/net/localnames/
   NamesListPattern http://http://www.emacswiki.org/cgi-bin/community/$NAME
   NamesList
     → insert output of http://www.emacswiki.org/cgi-bin/test?action=index;raw=1...

BTW, OneBigSoup added to InterMap and NearMap;)

Heh!

One step ahead of 'ya!

You can already do it! It's already in the LocalNamesFormat? spec, and in the implementations. :)

It goes like this:

   http://purl.net/net/localnames/
   NamesListPattern http://www.emacswiki.org/cgi-bin/community/$NAME
   NamesList http://www.emacswiki.org/cgi-bin/test?action=index;raw=1

In fact, we've already made a description file for CommunityWiki: OneBigSoup:CommunityWikiLocalNamesDescription.

It works. Right now. It's been working for like a week or two now. :)

Go to #onebigsoup, and type in ",ln AlexSchroeder", or make an XML-RPC call from Python:

 import xmlrpclib
 server = xmlrpclib.ServerProxy( "http://services.taoriver.net:9090/" )
 print server.lookup( "http://onebigsoup.wiki.taoriver.net/moin.cgi/CommunityWikiLocalNamesDescription?action=raw", ["AlexSchroeder"], 1 )

You could even replace the URL with "http://lion.taoriver.net/localnames.txt", and get the same result. That's because my namespace defaults to CW's namespace. Basicly, "NearLink." I mean, NearLink, specificly, is what inspired this feature. I think it's the coolest feature of the system!

I don't know if you want the "indirect" stuff to be in the same namespace as, say, the wiki pages themselves.

  • One namespace for all pages in the wiki.
  • One namespace for the inirect links.

But you could also mush it all up together:

   http://purl.net/net/localnames/
   NamesListPattern http://www.emacswiki.org/cgi-bin/test/$NAME
   NamesList http://www.emacswiki.org/cgi-bin/test?action=index;raw=1
   NamesTable
      Alex http://www.emacswiki.org/alex/
      Lion http://www.speakeasy.org/~lion/
      CommunityWiki http://www.communitywiki.org/

I guess I'm still confused. I only need this if other people want to add my wiki to their nameserver. Other people will use NamesList?, for this. Since all my names are in one namespace, it would be even better if I just added the LocalNames on my wiki to the output of the index action. Because conceptually, that's how it works. All names are in one namespace. The link itself may be internal or external, but that's up to the wiki engine to decide.

Well-

If you just dd the LocalNames to the output of the index action, they're not going to get the URLs.

Because the URL's aren't on your wiki. They're not wiki pages. They're off-wiki.

You could put them in the namespace, and publish them in a mushed-up local names description file, but I don't think you could just put them in the title index, and have them link right.

Ah, but Oddmuse is a little local name server in itself, because NearLinks work that way: They are listed as part of action=index, and when you visit the page, you will get redirected. Now that I write this, it seems clear to me that this is how LocalNames should work for Oddmuse as well: Listed as part of the index, and when followed, redirect.

It is as if Oddmuse always lists the pages on the wiki + one level of indirection via NearLinks. LocalNames is just the more general solution… :)

Anyway, I later figured out why Oddmuse cannot generate a local names description file automatically: The information required is just not in InterMap and NearMap. From there, you can only get the URL linking to the list of pages of other wikis, not to their namespace URLs. And LocalNames is all also about namespaces linking to other namespaces. We'll just do what Lion suggested on the WikiChannel: Write a manual page, and use raw=1 to view it: LocalNamesDescription [1]


In the long-run, I envision LocalNames tables to be communal resources.

We'll have tables describing pretty much any set of things that people want to individually name by friendly identifiers.

Some things I imagine people with name with LocalNames:

  • people's FOAF files, web pages, whatever
  • blog & wiki entries - bloggers can refer to each others' entries by name
  • e-mail discussion threads - linking to archives
  • function definitions - say the name of the function, and it automatically links to the function definition
  • organizations, material objects, whatever

Pretty much anything people would want to name.

I'm really eager to see this fit into the address bar.

Then I could just type local names into the address bar, and jump straight to the things that I care about.

Mozilla (and firefox) has xml-rpc support, and modifying its interface is very easy (even easier is to make a scriptlet bookmark) so implementing localnames in the address bar should be fairly easy.

Some pointers:

here is a lame test I tried, it's not working (but I'm not sure if it is because of my proxy or somehting else) I'm pretty sure it won't work from the website (for security reason I think), so you could try to save the page and open it locally if you have some time to loose…..

Wow! I had no idea! That sounds like the way!

I want to end up with an easy to use plug-in, to install it.

EditNearLinks: PatrickAnderson

Languages: