Published on WIJI - Website Interaction JSON Interface (http://wiji.jdarx.info)
WIJI - Website Interaction JSON Interface
By wayland
Created 2008-02-26 03:19

This page proposes a new website standard. Basically, a website can define a bunch of ways that you can interact with it. So if you make a request to http://www.example.com/wiji.txt [1], they will get a file that defines a bunch of interaction methods.

Uses for WIJI

The following are the only uses of WIJI that are supposed to be at all standardised at the moment.

Site map submission

WIJI can be use to tell people where to submit their site map. See the Google example below.

Service Links

WIJI can be used to tell people how to submit individual web pages to your site. This could be for bookmarking (ie. del.icio.us), News (ie. Slashdot), or some other reason.

Bot recognition

WIJI can be used to tell people how to recognise your bot. Some sites allow certain bots, and not others. If you want to make it easier for them to recognise your bot, you can put some recognition instructions here. At the moment, only case-sensitive UserAgent recognition is supported.

Examples

An example for Google would be:
 {
        "Name" : "Google",
        "BaseURL" : "http:\/\/www.google.com\/",
        "Locations" : [
                {
                        "TargetType" : "SiteMap",
                        "SiteType" : "SiteMap",
                        "Submission" : {
                                "URL" : "webmasters\/tools\/ping?",
                                "Parameters" : [
                                        {
                                               "Name" : "sitemap",
                                                "Type" : "SiteMapURL"
                                        }
                                ]
                        },
                        "Verification" : {
                                "URL" : ""
                        }
                },
                {
                        "TargetType" : "Page",
                        "SiteType" : "Bookmark",
                        "Submission" : {
                                "URL" : "bookmarks\/mark?",
                                "Parameters" : [
                                        {
                                                "Name" : "op",
                                                "Type" : "Value",
                                                "Value" : "add"
                                        },
                                        {
                                                "Name" : "bkmk",
                                                "Type" : "PageURL"
                                        },
                                        {
                                                "Name" : "title",
                                                "Type" : "PageTitle"
                                        }
                                ]
                        },

                        "Image" : "google.png",
                        "Description" : "Bookmark this page on Google"
                }
        ],
        "Recognisers" : [
                {
                        "UserAgent" : "Google"
                }
        ]
 }

The first section is for sitemap submissions. The verification information is, as far as I can tell at the moment, not available from Google via a URL at the moment; additionally, the URL it's available from is probably behind authentication, so that's something we'd have to worry about at some point.

Another example; this is a specification of the defaults.

 {
        "Name" : "A website",
        "BaseURL" : "http://www.example.com/",
        "Locations" : [
                {
                        "TargetType" : "SiteMap",
                        "SiteType" : "SiteMap",
                        "Submission" : {
                                "URL" : "ping?",
                                "Parameter" : {
                                        "Name" : "sitemap",
                                        "Type" : "SiteMapURL",
                                }
                        },
                },
                {
                        "TargetType" : "Page",
                        "SiteType" : "Bookmark",
                        "Submission" : {
                                "URL" : "bookmarks/mark?",
                                "Parameter" : {
                                        "Name" : "url",
                                        "Type" : "PageURL",
                                },
                                "Parameter" : {
                                        "Name" : "title",
                                        "Type" : "PageTitle",
                                },
                        }
                        "Image" : "favicon.ico",
                        "Description" : "<SiteType> this <TargetType> on <Name>",
                }
        ],
        Recognisers => [
                {
                        "UserAgent" : "Google"
                }
        ]
 }

Definitions

The software will only need to recognise the outline, pick out the bits it wants, and fill in a few parameters.

General locations

Each location has the following attributes:

  • TargetType: Can be "Sitemap" or "Page"
  • SiteType: Unless specified otherwise, it's the same as the TargetType. In the case of "Page", it can be:
    • Bookmark
    • Search
    • News
  • Submission: The URL and its parameters

Submission parameters

The valid parameter types are:

  • SiteMapURL
  • PageURL: the URL of whatever page is being viewed
  • PageTitle
  • Value: pick the value out of the "Value" attribute
  • X-Anything: the word "Anything" can be replaced with anything

If a URL starts with alphabetic characters followed by a colon, it's assumed to be absolute, otherwise it's assumed to be relative to the base URL.

Page Parameters

If the TargetType is Page, then the following extra parameters apply:
  • Image: The image to be displayed when linking to this
  • Description: The link tooltip to display when linking to this link

Where to find WIJI

The places to look for a wiji file are (in order):

  • http://www.example.com/wiji.txt [2]
  • http://wiji.jdarx.info/htmlfiles/WIJI/example.com/wiji.php [3]

That's right, it defaults through to wiji.jdarx.info. This will hopefully only be a temporary step until other companies have implemented this standard. I only intend to implement this for a few of the larger companies.

Sites that this site has wiji files for: http://wiji.jdarx.info/htmlfiles/WIJI/ [4]

Standard improvements

I'd love to have someone like the W3C or the IETF come and take this off my hands.


Source URL: http://wiji.jdarx.info/content/wiji-website-interaction-json-interface

Links:
[1] http://www.example.com/wiji.txt
[2] http://www.example.com/wiji.txt
[3] http://wiji.jdarx.info/htmlfiles/WIJI/example.com/wiji.php
[4] http://wiji.jdarx.info/htmlfiles/WIJI/