7 February 2007

What is this GeoURL about?

To the left of this page, in the Varia box, one finds one more little icon or label:

GeoURL


What is this about?

GeoURL is a location service, which locates your website in Meatspace and associates sites near your site to it. Look eg at sites near my blog: http://geourl.org/near?p=http://ableijs.blogspot.com/.

How does it do that? Well just by looking at your metadata.
There are several ways to this. GeoURL uses 2 of them:

1. ICBM (Why ICBM? Old Usenet historical precedent.)
Add the following metatags to the -section of your XHTML-page:

<meta name="DC.title" content="THE NAME OF YOUR SITE" />
<meta name="ICBM" content="XXX.XXXXX, YYY.YYYYY" />

where XXX.XXXXX is the latitude (south is negative), YYY.YYYYY is the longitude (west of Greenwhich, UK is negative).

Also notice the use of Dublin Core to denote the title of the blog. See: Expressing Qualified Dublin Core in HTML/XHTML meta and link elements. This should be preceded by using the profile attribute in the <head>-tag:

<head profile='http://dublincore.org/documents/dcq-html/'>

denoting the use of Dublin Core Metadata, and by the line:

<link href='http://purl.org/dc/elements/1.1/' rel='schema.DC'/>

denoting the meaning of the prefix 'DC'.

2. Using GeoTags.
Add the following metatags to the <head>-section of your XHTML-page:

<meta name="DC.title" content="THE NAME OF YOUR SITE" />
<meta name="geo.position" content="XXX.XXXXX, YYY.YYYYY />
<meta name="geo.placename" content="Place Name, Country-or-State"/>
<meta name="geo.region" content="ISO 3166 Country code or ISO 3166-2 Country Subdivision code"/>

where again XXX.XXXXX is the latitude (south is negative), YYY.YYYYY is the longitude (west of Greenwhich, UK is negative).
The ISO 3166 Country code for the Netherlands = "NL", while the ISO 3166-2 Country Subdivision code for the Utrecht province is NL-UT.
Some other services, notably Syndic8, use geo.country instead:

<meta name="DC.title" content="THE NAME OF YOUR SITE" />
<meta name="geo.position" content="XXX.XXXXX, YYY.YYYYY />
<meta name="geo.placename" content="Place Name, Country-or-State"/>
<meta name="geo.country" content="ISO 3166 Country code"/>

Once again you need to tell what this 'geo.'-thing means.
This should be done by by using the profile attribute in the <head>-tag:

<head profile='http://dublincore.org/documents/dcq-html/'>

denoting the use of Dublin Core Metadata and alike profiles, and by the lines:

<link href='http://purl.org/dc/elements/1.1/' rel='schema.DC'/>
<link href='http://geotags.com/geo/' rel='schema.geo'/>

denoting the meaning of the prefixes 'DC' and 'geo'.

3. Syndic8 uses yet another method, not supported by GeoURL: The Getty Thesaurus of Names (TGN).

<meta name="tgn.id" content="id from the TGN database" />
<meta name="tgn.name" content="Place Name, Country-or-State" />

Also here you should tell what this 'tgn.'-thing means.
This should be done by by using the profile attribute in the <head>-tag:

<head profile='http://dublincore.org/documents/dcq-html/'>

denoting the use of Dublin Core Metadata and alike profiles, and by the lines:

<link href='http://purl.org/dc/elements/1.1/' rel='schema.DC'/>
<link href='http://www.getty.edu/research/conducting_research/vocabularies/tgn/' rel='schema.tgn'/>

4. Making full use of Dublin Core: Expressing Qualified Dublin Core in HTML/XHTML meta and link elements.

Start with the profile attribute of the <head>-element:

<head profile='http://dublincore.org/documents/dcq-html/'>

denoting the use of Dublin Core Metadata and alike profiles, and with the lines:

<link href='http://purl.org/dc/elements/1.1/' rel='schema.DC'/>
<link href='http://purl.org/dc/terms/' rel='schema.DCTERMS'/>

denoting the meaning of the prefixes 'DC' and 'DCTERMS'.

Then add the Dublin Core Metadata:

<meta name="DC.title" lang="en" content="THE NAME OF YOUR SITE" />
<meta name="DC.creator" content="YOUR NAME" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.ISO3166" content="ISO 3166 Country code" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.TGN" content="id from the TGN database" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.Point" content="east=YYY.YYYYY; north=XXX.XXXXX; name=Place Name" />

where again XXX.XXXXX is the latitude (south is negative), YYY.YYYYY is the longitude (west of Greenwhich, UK is negative).
Syndic8 expects you to be more descriptive about the creator, following an obsolete version of the Dublin Core:

<meta name="DC.creator.e-mail" content="YOURNAME@yourdomain.com" />
<meta name="DC.creator.name" content="YOURNAME" />


5. You can put these al together:
Start with the profile attribute of the <head>-element:

<head profile='http://dublincore.org/documents/dcq-html/'>

denoting the use of Dublin Core Metadata and alike profiles, and with the lines:

<link href='http://purl.org/dc/elements/1.1/' rel='schema.DC'/>
<link href='http://purl.org/dc/terms/' rel='schema.DCTERMS'/>
<link href='http://www.getty.edu/research/conducting_research/vocabularies/tgn/' rel='schema.tgn'/>
<link href='http://geotags.com/geo/' rel='schema.geo'/>
<link href='http://dmoz.org/rdf' rel='schema.dmoz'/>

denoting the meaning of the prefixes 'DC', 'DCTERMS', 'dmoz', 'geo' and 'tgn'.

Then add all the Metadata:

<meta name="DC.title" lang="en" content="THE NAME OF YOUR SITE" />
<meta name="DC.creator" content="YOUR NAME" />
<meta name="DC.creator.e-mail" content="YOURNAME@yourdomain.com" />
<meta name="DC.creator.name" content="YOURNAME" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.ISO3166" content="ISO 3166 Country code" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.TGN" content="id from the TGN database" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.Point" content="east=YYY.YYYYY; north=XXX.XXXXX; name=Place Name" />
<meta name="tgn.id" content="id from the TGN database" />
<meta name="tgn.name" content="Place Name, Country-or-State" />
<meta name="geo.position" content="XXX.XXXXX, YYY.YYYYY />
<meta name="geo.placename" content="Place Name, Country-or-State"/>
<meta name="geo.country" content="ISO 3166 Country code"/>
<meta name="geo.region" content="ISO 3166 Country code or ISO 3166-2 Country Subdivision code"/>
<meta name="ICBM" content="XXX.XXXXX, YYY.YYYYY" />
<meta content='Top/OPEN DIRECTORY CATEGORY' name='dmoz.id'/>

Note that I added also the Open Directory category, to keep Syndic8 happy.

In this way almost every location service can understand where you are located in Meatspace.

So how can I use this with Blogger?

  1. Login.
  2. Choose Customise (from the top bar) or choose Layout from your Dashboard.
  3. Choose Edit HTML.
  4. Edit the template as follows:
<head profile='http://dublincore.org/documents/dcq-html/'>
<b:include data='blog' name='all-head-content'/>
<title><data:blog.pageTitle/></title>
<link href='http://purl.org/dc/elements/1.1/' rel='schema.DC'/>
<link href='http://purl.org/dc/terms/' rel='schema.DCTERMS'/>
<link href='http://www.getty.edu/research/conducting_research/vocabularies/tgn/' rel='schema.tgn'/>
<link href='http://geotags.com/geo/' rel='schema.geo'/>
<link href='http://dmoz.org/rdf' rel='schema.dmoz'/>
<meta name="DC.title" lang="en" content="THE NAME OF YOUR SITE" />
<meta name="DC.creator" content="YOUR NAME" />
<meta name="DC.creator.e-mail" content="YOURNAME@yourdomain.com" />
<meta name="DC.creator.name" content="YOURNAME" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.ISO3166" content="ISO 3166 Country code" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.TGN" content="id from the TGN database" />
<meta name="DCTERMS.spatial" scheme="DCTERMS.Point" content="east=YYY.YYYYY; north=XXX.XXXXX; name=Place Name" />
<meta name="tgn.id" content="id from the TGN database" />
<meta name="tgn.name" content="Place Name, Country-or-State" />
<meta name="geo.position" content="XXX.XXXXX, YYY.YYYYY />
<meta name="geo.placename" content="Place Name, Country-or-State"/>
<meta name="geo.country" content="ISO 3166 Country code"/>
<meta name="geo.region" content="ISO 3166 Country code or ISO 3166-2 Country Subdivision code"/>
<meta name="ICBM" content="XXX.XXXXX, YYY.YYYYY" />
<meta content='Top/OPEN DIRECTORY CATEGORY' name='dmoz.id'/>

Note that you have to alter the <head>-tag, have to keep the <b:include>- and <title>-lines, and have to add the <link rel="schema.*">- and <meta>-lines.

I've done this with my template, and added http://ableijs.blogspot.com/ to the GeoURL-database (http://geourl.org/add.html). So now everyone can look up my place in GeoURL (http://geourl.org/near/?p=http://ableijs.blogspot.com/), as well as lookup sites mear me in Meatspace. People also can lookup my town in Multimap or Mapquest.

No comments: