My Crowdsourced Search Idea: ThereThenTag

Mapping Web Addresses to Location, Time, and Tags
August 2016, Draft 1
Copyright 2003–2016 by Daniel Smith. All Rights Reserved, @javajoint


[I am resurrecting an idea from 2003. It’s a structure for crowdsourced search. There is even a business model to it — bonus!]

Imagine searching by time, location, and tags, where the results have been crowd-sourced. Imagine that creating and viewing searches was easy, via the web, mobile, or in 3D/VR.

A ThereThenTag address provides a simple search link that can be passed around, and the results are curated and structured.

This document suggests a way to add new dimensions to web searching. It is relatively straightforward to map tags, time and space (from the physical world), to everyday web addresses (URLs). The benefit is to be able to get search results based on tags, time, and/or a location, and on a per-domain basis. As two quick examples, it should be possible to do a search which expresses “all of the submitted links from within 500 feet of 51st and Lexington, NYC, within the last 5 days”, or “San Francisco bridge photos”.

A ThereThenTag address expresses Location, Time, and/or Tags, and does not change existing web documents.

The heart of the idea is this: For one or more documents, create an additional URL which specifies a location in longitude/latitude/altitude, a time, and a set of tags. The URL is an alias of sorts, that can be resolved back to an one or more original web resources. There may be many such servers (as there are for Wikis, for example)

The idea is to make these very simple to use, pass around, and create/update (web. mobile, 3D, VR)


As an additional way of getting to:

The scheme provides a building block which can be exploited by a wide range of tools (current search engines, mapping sites, find pages that are specific to a time in the past OR future). In order to stay true to its goals, it sticks to a strict representation of location, time, and tags, in a specific order.

All ThereThenTag addresses follow a consistent form. An easy mnemonic to remember this is “DOLTT”, which stands for DOmain, Location, Time, and Tags:


A shorthand I use to refer to ThereThenTag addresses is “TTT”.

All TTT addresses contain Location and Time components. There are defaults for these components, if the location and/or time information is not available or applicable. The defaults are explained further on in this document.

The location component (i.e. “37.75,-122.45,50.4”) consists of:

latitude — decimal number, such as 37.0 or -30.83887
longitude — same as latitude, a decimal such as -122.1
altitude — decimal number of meters, such as 50.587

All numbers for latitude, longitude, and altitude can use an arbitrary amount of precision. The ‘,’ character is used to separate the fields, and no whitespace is allowed.

The time component (i.e. “1994–11–05T13:15:30Z”) conforms to ISO 8601, as described in

The tag component consists of one or more comma separated words. Valid characters are [0–9a-zA-Z_:]

For any component, there needs to be a way of describing “none”, or “any”:
* ‘^’ means “none”
* ‘*’ means “any”

“None” means “nothing was ever specified, such as a time, location, or tag”

“Any” means “we dont care if something was specified, or what it may be if it was”

“None” is more restrictive.


*,-122.49333,30/*/bridge means to use the given Location, for any time, with the tag of “bridge”
*^/2015-11-05/bridge means to ignore location, use a specific date, with the tag of “bridge”

A ThereThenTag address resolves to a search results page. That page might have:

  • the results, along with maps, time/calendar, tag clouds — presented in a minimal interface where the user could drill down
  • very targeted advertising is possible (after all, this could be for a very specific time, location, and set of tags)

Note that many possible TTT servers are a part of this. It is not meant to be centralized, although the servers may certainly refer to each other.


ThereThenTag addresses are a universally consistent way of referencing a web resource, by domain, space, time, and tags.

Standardization is very important. Tools to exploit the idea cannot succeed if there are incompatible variations. The key thing is to put space, time, and tag information into a URL, and keep it simple. — It should be an open standard, so that anyone can build tools to exploit it.

As far as I can tell, nobody has done this in a way that balances some structure, crowdsourcing, having it distributed, and having an open standard.

I do have in mind a consistent means of providing extensions. “people” is an obvious one, such as /people=@john,@paul,@george,@ringo

Presentation of search results can take a variety of forms, such as:

  • sorted by proximity to the user, sorting by time
  • adding Place Names (such as Berkeley, CA) to a search result.
  • overlaying results on a map, as clickable dots/icons.. the map may have a “time filter” control, so that a user could step through a week/month/year of data, and not have to see everything at once.

Thanks for reading this through, and let me know of any feedback.

Show your support

Clapping shows how much you appreciated Daniel Smith’s story.