Tagged With   post:tags=tag , post:type=tutorial

What Are Machine Tags?

Have you heard of machine tags? Unless you use Flickr actively, probably not. A machine tag, Flickr’s name for a triple tag, is a tag with meta information i.e. how it’s related to other tags. What difference can that make? A world of a difference.

As was explained in a Flickr group post, a machine tag is a tag consisting of a namespace, predicate and value in the format:


The namespace and predicate are the meta information of a tag and the value is the conventional tag we’re used to. Depending on the nomenclature you’re used to, think of a namespace as a tag’s class or type and the predicate as its property, attribute or facet. Aside from some reasonable character restrictions Flickr sets on namespace and predicate, machine tags are just tags.

So how about an example? Here are some machine tags from a flickr photo

  • astro:name=NGC 4565
  • astro:orientation=11.73
  • astro:RA=189.083922302

For these machine tags, astro is the namespace; name, orientation and RA are the predicates; and you can guess the values (everything after ‘=’). So aside from seeing that the photo has some astronomy-specific metadata associated with it, what’s the big deal?

  1. The metadata is structured. So structured that we can represent the example machine tags in a table:
| namespace | predicate   | value         |
| astro     | name        | NGC 4565      |
| astro     | orientation | 11.73         |
| astro     | RA          | 189.083922302 |

Or in a tree:

  |-- name
  |   `-- NGC 4565
  |-- orientation
  |   `-- 11.73
  `-- RA
      `-- 189.083922302

Another testament to this structure is an astrophotography group that uses the example machine tags to make photos viewable with Google Sky.

  1. The effort required to add structured metadata opens this up to everyone. A user doesn’t have to be a developer who knows about rdf, owl or yet another metadata language. They simply have to know how a colon and equal sign delimit their metadata and they are able to metadata away. Flickr is a great example of this. Browse the 100+ machine tag namespaces that Flickr users have created.
  2. Since machine tag syntax is simple and structured, it’s easy for developers to make powerful queries into your structured metadata. Take for example flickr’s machine tag searches:
    1. Flickr photos with an astro namespace: astro:*=
    2. Flickr photos with an astro namespace and name predicate: astro:name=
    3. Flickr photos with a name predicate: *:name=
    4. Flickr photos with a value bob: *:=bob
  3. For programmers/developers: If you look at the example machine tags as one unit, you basically have an astro object with three attributes. How much easier can it be to have users create data you can use? If a group of machine tags can represent an object, then aren’t the aforementioned machine tag queries approximating SQL-like searches in the form of urls?

So aside from Flickr, who uses machine tags?:

If you know of additional machine tag projects or metadata alternatives that provide the flexibility and structure that machine tags do, feel free to comment them.

Enjoyed this post? Tell others! hacker newsHacker News | twitterTwitter | DeliciousDelicious | redditReddit
blog comments powered by Disqus