The Thinglink data model

This post describes the data model on thinglink.org: the kinds of information that the site knows about, their fields, and the relationships between them.

Let’s start with a diagram:

You could also read A URL design for thinglink.org, published previously on this blog, to get an idea of how this data model translates onto the website.

Each of the boxes in that diagram is represented in the thinglink database with a number of fields and relationships:

thinglink

The thinglink is the core of the data model. As can be seen from the diagram, all other data on thinglink.org references a thinglink. A thinglink has the following fields:

       

  • code (e.g. 123ABC)
  •    

  • title
  •    

  • description
  •    

  • createDate
  •    

  • viewCount (incremented every time someone views the thinglink’s webpage)
  •    

  • photo (ID, url, thumbnail URL and title)
  •    

  • linker (the user who created this thinglink)
  •    

  • maker (one or more people who made the thing that this thinglink represents)

user

In order to comment or to create or edit a thinglink, users must be logged into the site. User records have the following fields:

       

  • name
  •    

  • password
  •    

  • email
  •    

  • bio
  •    

  • homepage
  •    

  • flickr ID and username

tag

Thinglink tags are the same concept as flickr tags: a folksonomy made up of text strings attached to thinglinks.

Unlike flickr, tags may only be added, edited or deleted from a thinglink by the user who created the thinglink. Tags are presented on thinglink pages, and in a list on the thinglink.org homepage showing the most popular tags.

label

The labeling area of thinglink.org is currently under development and no label data is stored in the database.

flickr picture

A picture from the user’s flickr account can be associated with a thinglink. The data about this association is stored in the thinglink table as described above. The flickr picture is displayed with the thinglink in thumbnail or fullsize form wherever appropriate.

country

A thinglink may have the country of its origin listed. Countries are chosen from a controlled list in a dropdown on thinglink.org when the thinglink is created or edited. A list of popular countries is displayed on the thinglink.org homepage.

year

A thinglink may have the year of its making stated when the thinglink is created or edited. A list of popular years is displayed on the thinglink.org homepage.

Read More

Stefan Groschupf joins Thinglink

On June 3rd I got an email from Stefan Groschupf saying he could write some code to index thinglinks with Nutch – similar to the way the creative commons license indexing is working. ‘Sounds great’, I said. One email left to antoher, new questions came up, I introduced Stefan to Joni and Matt, and sooner than I realized, Stefan had become a key person in our developer team. Thanks to Stefan, thinglink will be soon available from sourceforge.net under GNU GPL. Here is a good intro about Stefan from CommerceNet Events:

Stefan designed and built his first search engine for a university library in Germany at the age of 19. By 21, he founded Media Style, Inc., a computer engineering company specializing in text-mining, search and e-commerce applications. Over the past 10 years he has consulted on Internet and database projects for BMW, Intel, Siemens and Hoffmann La Roche. He is an active member of the Open Source community working on distributed file-sharing and map-reduce implementation projects. He has also contributed the plugin architecture and metadata support to Nutch, the leading open source search engine.

Stefan is also the founder and lead architect for weta, an open source grid computing project. Currently Stefan works as Chief Architect for sproose.com and also consults for other Silicon Valley startups in the vertical search engine arena.

Read More

Thinglink developers dinner on Thursday

On Thursday Matt will give an Aula Talk about “open databases as the next wave of open source” at Helsinki Institute for Information Technology. After that there is a plan to meet at Via restaurant in the Helsinki centre. If you’re interested in thinglinks and happen to be in town, you’re more than welcome to join us. Just let me know in advance so I can book a big table!

Read More

Thinglinks as barcodes

Here are two examples of showing thinglinks as barcodes.

1) On pages like Barcode Mill you can use Code 128 to turn thinglinks into traditional barcodes.

2) On Semacode you can turn thinglinks urls into two-dimensional barcodes that any phone with a camera and J2ME can read.

Thinglinks can also be converted into short codes, althought there is not yet an application that can read them.

I’m looking forward to try thinglinks as semacodes in exhibitions. If you know people who would be interested in a thinglink/semacode experiment, please feel free to spread the word!

Semacode

Read More

Introducing thingtagging

If something’s worth thinglinking, it’s worth taking pictures of. Lots of pictures. On thinglink.org, there’s only space for one picture of any one thing, but that’s far from the end of the story.

We’ve come up with a way to keep track of pictures of thinglinked objects on flickr. We looked at how people are using tags to geotag the location of photos, and in much the same way, we’re recommending thingtagging.

Here’s how it works:

  1. Thinglink your unique and interesting object on thinglink.org. Now you’ve got a thinglink code – something like thing:265CII (maybe it already had a code labeled on it somewhere, in which case you’d use that one).
  2. Take pictures of it out in the world.
  3. On each picture, add the tag thingtagged and the thinglink code tag, e.g. thing:265CII. For example, here’s a picture that Ulla-maaria thingtagged a few days ago.

Now you can track pictures of it on Flickr. But even better than that, you can go visit the lovely thingtagging website. Updated hourly, it brings together information from both Thinglink and Flickr to show the latest pictures of thingtagged stuff in the world.

Read More

Thank you Mediamatic Amsterdam!

Among friends of Thinglink, Mediamatic Amsterdam deserves a special mention. They invited me to speak at their workshop when Thinglink was only a conceptual level idea. During the past few months, they’ve introduced me to a great number of interesting people and organizations, given important feedback and ideas for developing the database, and organized positive publicity in the local media such as Bright 08. During the first Thinglink workshop last week, we got to use their meeting room and wifi in the center of Amsterdam. Special thanks for all this goes to no other person than Willem Welhoven, the Director of Mediamatic Interactive Publishing. If there were more willems around, the world would surely be a better place.

Photo: Matt

Read More

Design patterns for building with web APIs

To help us design the future Thinglink developer API, I’ve been documenting patterns that I see in web apps that share and modify data over HTTP. The following is an extract from a draft of the Thinglink technical white-paper.

Syndication

One of the simplest cases is when the writer of a blog would like a subset of the latest Thinglink information on their blog. They can take the URL of the feed for the information they want – perhaps http://thinglink.org/feed/tag/hat – and transform the XML from that feed into HTML in a sidebar. This can be done by polling in a batch process on a regular schedule.

This doesn’t require write access to thinglink data, nor does it need any special developer relationship between the two sites. If thinglink.org becomes unavailable, the information may start to become stale, but the blogger’s site continues to work.

Thin client

A mobile application could be developed to help people discover and record information about things in their environment. Running on a phone or a PDA, it would not have a database of its own and would directly access the Thinglink API in order to lookup a thinglink code, create a new thinglink or make a comment.

This kind of application is much more dependent on network connectivity and the availability of thinglink.org. Because all the information in the application is transmitted over the internet, it cannot do anything for the user if the API becomes unavailable.

The principles in this pattern would also apply if a website used AJAX to directly talk to the Thinglink API.

Website using data enriched with thinglink information

We intend that over time people will start using thinglink codes in their own data. The more this happens, the more the network effect will help enrich every participant’s information.

If a museum tagged a collection with thinglinks and put the information on their own website, they would be combining a mixture of information from their own database and information from thinglink.org.

Because thinglink codes are issued at thinglink.org, they would use the API directly  during their archiving process to allocate codes and record information about their pieces. It is practical to do so if the number of items they are cataloguing is a few hundred or thousand a year.

However, when users requested pages from their site they would use cached thinglink information from their database. This would improve performance, reduce load on thinglink.org and avoid relying on the availability of the API for every request. They would periodicially expire this cache and refresh the information directly from the Thinglink API.

Decoupled, replicated thinglink data

A busy ecommerce site that lists many new items per day cannot rely on a direct coupling to the Thinglink API to generate new thinglink codes because of the risk to their business if problems occur.

In this situation, Thinglink would define a scheme for the ecommerce site to allocate its own thinglink codes and define the minimum information that should be stored about each item. Their website and database is then fully independent of thinglink.org for its daily operation. They would agree to deliver regular updates of XML data to Thinglink, perhaps once a day, which would be incorporated into thinglink.org in a batch.

Read More

Imagining a Firefox extension

Today we’re thinking about ways to make it easier to create new thinglinks. If you had a lot of new things that you wanted to talk about on thinglink.org, you might start by taking photos of each one and uploading them to a photo service like flickr or 23. If you did that right now, you’d have quite a job ahead of you to cut and paste all those titles and photos into the form on thinglink.org.

We imagined a Firefox extension that could make this job easier. The process would go something like this:

  • the user takes a photo of a thing and uploads it in the usual way
  • on the photo page, an extra button appears saying ‘make a thinglink’
  • when clicked, this button takes the user to the thinglink.org form for registering a new thinglink
  • the form has been pre-populated with the photo and its title from the photo page
  • the user fills in the rest of the information
  • after submitting, the extension automatically goes back to
    the photo page and adds the tag ‘thingtagged’ and a tag like ‘thing:265CII’ for the
    newly-allocated thinglink code

What do you think? How hard is it to make an extension like that?

Read More

Featured maker: Ville Lahtinen

Ville Lahtinen is a nineteen-year old snowboarder-entrepreneur, who makes snowboarding accessories such as beanies. Ville established his own beanie business in the age of sixteen, and since that he has crocheted more than fifteen hundred head wears. In addition, Ville gives crocheting lessons to school kids and adults.

On April 11th, Ville received an email from Sofia Laine, a EU-meeting coordinator from Helsinki. Sofia asked if Ville could make 260 unique beanies for the upcoming Young Active Citizenship EU-meeting that she was organizing. Ville was in the middle of his matriculation exams, but decided to take the challenge and replied “yes”. Between April and the end of June, he crocheted about four beanies per day.

Every beanie has got a unique thinglink, which is printed on a fabric label and attached to the hat by sewing. On July 3rd, Ville got to hand out his creations to the conference participants, including the Finnish Minister of Culture, Tanja Saarela.

Villejapipot

Read More

A URL design for thinglink.org

This week, Ulla-Maaria and I are having our first face-to-face Thinglink meetings in Amsterdam. We’re discussing a lot of areas that are important to the project: concepts, website, community, technology, standards and many more.

The first technical issue we’ve tackled is the URL structure of the website. Although every thinglink has a reliable URL such as http://thinglink.org/thing:265CII, most of the rest of the site has URLs that are not reliable. They change over time, which makes them impossible to bookmark, to blog about, or to email to a friend.

We want to fix this as soon as possible by tweaking the code behind the scenes, but first we had to decide what the ideal URLs should be. The new URLs, as soon as we’ve implemented them, will look like this:

  • http://thinglink.org/tag/beanie – things tagged ‘beanie’
  • http://thinglink.org/tag/beanie+finland – things tagged both ‘beanie’ and ‘finland’
  • http://thinglink.org/user/ullamaaria – ulla maaria’s profile and list of thinglinks
  • http://thinglink.org/search?q=search+terms – a search for ‘search terms’
  • http://thinglink.org/country/finland – things made in finland
  • http://thinglink.org/year/1989 – things made in 1989

We think this is a good clean structure that we can build on in the
future when we add more features to help people share their
information. For each kind of webpage that these URLs represent, we want to add RSS feeds, and a way for developers to read and write the information using an API.

If you’ve got any thoughts on what kind of feed or API would work best for you, please let us know.

Read More
1 40 41 42 43 44 45