Archives

April 2004 (7)
March 2004 (12)
February 2004 (12)
January 2004 (22)
December 2003 (19)
November 2003 (16)
October 2003 (26)
September 2003 (18)
August 2003 (38)
July 2003 (80)
June 2003 (13)
May 2003 (24)
April 2003 (76)
March 2003 (75)
February 2003 (51)
January 2003 (73)

Category

Family (5)
FYI (18)
Games (2)
Geek (88)
Geographic (3)
Hacks (13)
Home (15)
Humor (54)
Ideas (20)
Ideaspace (15)
Local (15)
Metadata (10)
Microsoft (2)
MovableType (5)
Nitwits (66)
PKI (2)
Politics (22)
Quotes (3)
RDF (15)
RSS (4)
Security (3)
Semantic Web (13)
Site Info (13)
Social Networks (1)
Spam (9)
Sysadmin (1)
Tips (2)
Tivo (2)
TMFTOTHD (1)
To Do (1)
Unlisted (1)
Web (3)
Windows (1)

Local

« MetroBlogs »
DC metroblogs
beltway bloggers

Links


Assorted bits

Blogroll Me!
GeoURL
Listed on BlogShares




August 13, 2003

What're you near?

I've been mulling over what would be a good way to indicate useful positioning data. There are any number of ways we all think about a location for something. Most of the time we don't use just one style of identifier.

To cut to the chase, using latitude/longtitude cooridinates is not what most people consider as a useful way to describe a location. I'd tell someone I'm going downtown, not a coordinate pair.

Even if I happen to know the coordinate pair, other folks won't and would look at me like I was a nut if I tried to make them. (not that they don't give me that look anyway...)

What I'm after here is a way for people to indicate, in their Foaf documents, that they're near something. This way, when sifting through a LOT of data I can simple as for the near elements. Once I've got those it's a simple matter to detect what location URI are being used and what positioner is being used.

As in:

<foaf:Person rdf:nodeID="wkearney99">
	<foaf:name>Bill Kearney</foaf:name>
	<foaf:based_near rdf:nodeID="nn" rdf:type="http://ideaspace.net/postal/us#20817"/>
	<foaf:based_near rdf:nodeID="aa" rdf:type="http://www.daml.org/2001/10/html/airport-ont/iata#DCA"/>
	<foaf:based_near rdf:nodeID="rr" rdf:type="http://www.daml.org/2001/10/html/airport-ont/icao#KDCA"/>
	<foaf:based_near rdf:nodeID="bb" rdf:type=
	"http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing?latitude=38.99882&longitude=-77.12685"/>
</foaf:Person>

This would allow anyone knowing how to do 'based_near' searches on the Airport vocabulary to find me. Likewise if they knew how to do searches based on my made up postal vocabulary they could use that. The advantage here is in order to find me they need only search for the 'near' element and then know what vocabularies are useful. It gets more involved when things requiring parameters come into play but not so much as to be impossible to handle.

What's a cool possiblity here is doing lookups on the foaf:based_near element and then doing string matching on the leading prefixes you know about. If all you know about are postal codes then you're just going to look for foaf:based_near elements starting with "http://ideaspace.net/postal/us#" as a way to refine your results. Likewise for handling airports or GPS coordinates.

Where this start to get very interesting comes from using RDF to better describe the nature of the nearness. Later in the document I could use an rdf:Description to say 'how near' I am to one of them.

<rdf:Description rdf:nodeID="aa">
	<oc:distance>10</oc:distance>
</rdf:Description>

<rdf:Description rdf:about="http://www.daml.org/2001/10/html/airport-ont/icao#KDCA">
	<dc:title>Ronald Reagan National Airport</dc:title>
</rdf:Description>

Here I'm saying, using the OpenCyc vocabulary for distance, that I'm 10 miles from it. I'm not entirely up to speed on the complete accuracy of making the statement in this manner, but you get the idea. Note the title is describing the airport itself. I can't use that to describe the "#aa" fragment as that's my nearness relationship, not the airport itself.

If I wanted to be clever I suppose I could put something like a dc:description on the distance relationship to say something like how horrible a drive it is during rush hour. That exercise left to the readers...

So if something went querying for me, then sub-queried for what I'm based near, and then went querying for any extra descriptions about the results found, they'd be able to know I'm 10 miles from it. If they asked further they'd find the title for it is 'Ronald Reagan National Airport'.

This is that layering effect that's so hard to describe to people. You could turn around and apply that same sort of markup onto anything else you wanted.

Yes, this form of markup will require what some would consider extra processing to handle. But by making use of simple statments like this it's highly likely that the processing time would end up being much more predictable as the amount of data grows. Instead of having to pick apart a rats nest of compound XML fragments it'll become possible to use a lot of little statements added up in layers.

Update: thanks go out to Morten (twice now) for pointing up my mistakes in the orignal example and helping to refine it. The full document now validates, here's it's graph.

Comments

I think you'd probably want to try validating the main example.

Also, it seems a better way of explaining what you mean to express is to use NTriples or so, separating the statements from the (in this case invalid) RDF/XML syntax
.

Posted by: Morten Frederiksen on August 13, 2003 06:31 PM
Post a comment






* if you do not leave a valid e-mail or URL your comment may be deleted *







Navigation

Recent Entries

America and Europe: Vive la différence?
Server changes afoot
Diet behavior mod
Googling for sensitive info
Outlook 2003 and IMAP, a marriage made in Hell
Bike to Work Day, May 7th
Speakeasy rocks
Zippo USB?
When geographic data is nowhere 'near' correct
Local campaign contributions

User comments
Trackbacks

Contact

send me an e-mail E-mail
chat with me using MS messenger MSN Messenger
chat with me via AIM America Online
chat with me on ICQ ICQ
chat with me on Yahoo! Yahoo
Add my vCard to your electronic addressbook vCard
Friend of a Friend FoaF

Syndication

XML  RDF  CDF

Comments

XFML

Extra Stuff

foaf
vCard
pgp info
Linked In
Powered by
Movable Type 2.64