Skip navigation

Sign up | Lost password? | Help

Semantic Web at Opera

Thanks for the parting gift...

, ,

It is with regret that I say good luck to Kjetil in his new job, and that I am grateful for the work he has done at Opera over the last couple of years. May our paths cross again.

As a sort of delayed good-bye present, the SIOC submission that he worked on, along with people from other companies and organisations, has been published by W3C, along with some interesting comments on SIOC by Ivan Herman.

People would be aware that we already have some of this infrastructure in place. Unfortunately with Kjetil moving on, I suspect our progress will slow down for a while. He is a hard man to replace. But any comments or feedback on what we have done right, and where we should be looking to go now, is welcome and will be taken into account as we carry on...

SKOS support with links and list of tagged resources

, , ,

Two new RDF exports are part of the release we just did. We now support SKOS, which is a knowledge organisation system, used in many places to represent things like terms that are broader or narrower than another term. We just use it to dump all the tags and give them a URI. For an example, see this group's tags.

The other thing is that I've created an export that gives you the RDF linking your SKOS tags to the resource (i.e. you images, albums or blog posts) they were used for. Take for example the tag Riga in my own blog. If you look through the source, you will see it describes two blog posts, a whole bunch of images and an album, and if you then look at the source of my tags, in the Riga section you'll find a line like

<tm:means rdf:resource="http://www.w3.org/2006/03/wn/wn20/instances/wordsense-riga-noun-1"/>


This links the Riga tag to the definition in Wordnet, which clearly states, yes, this is about the Latvian capital.

There has been a lot of discussion about how to do this on various Semantic Web mailing lists, initiated by the usage I envisioned for us, I had preferred if SKOS itself had support for this, but it isn't quite there yet. So, I ended up writing a very small vocabulary just for this, so the tm:means is my invention, but is likely to change as the discussion proceeds.

Now, the way you get that tag mapping is by using the tag mapper feature of your tags page. As previously discussed, this interface was somewhat complicated, so I have simplified it a bit, and in the future, we need to deal with the different possible predicates in a smarter way.

As I also mentioned in my previous post, we now can fully support POWDER through tags. So, if someone has a "nude" tag, there will be an option in the tags suggestions to map it to a POWDER label.

Complexities of tag to vocabulary mapping

, , , ...

"Things should be as simple as possible, but not simpler" -- Albert Einstein



I'm happy that quite a few people have mapped their tags, more than I expected! :up: Now, many things are somewhat complex by their very nature, sometimes you have deal with complexities to make things that are useful. And even more often, the question is who or what should deal with the complexities. When I created the tag mapper, I realised that there would be conflicting goals, and now I'd like to discuss them with you:

For some terms, you will see that there is a dropdown under "Relation" that contains both "topic" and "depicts". The "depicts" is there when the term is a noun, and the idea is that when a tag is used for a picture, then you can say that the picture depicts a dog, for example. So, it is a way to very directly express that meaning.

Doing it this way would also create really simple SPARQL queries, to get all pictures that depicts a dog would amount to (ignoring the namespaces):
    SELECT ?pics WHERE { ?pics foaf:depicts <http://www.w3.org/2006/03/wn/wn20/instances/wordsense-dog-noun-1> . }

That's about as simple as these queries get.

Also, as I mentioned, the plan is to use tags for content labels, and since I'm Opera's representative on W3C's POWDER working group one of my main concerns is how people can easily tag their content with content labels on sites like Opera Community. Again, the easiest would be if a content label could be directly associated with a picture. For example, we have to live with a certain amount of nudity in the pictures our users upload since we don't want to exercise censorship, we just don't want to push it on random visitors, and we want to facilitate parental control, and that's one of the things content labels will be used for: A standard way to say that a picture contains nudity.


This is made possible by a slightly more complex user interface. Arguably, it would be easier to just map your tags, not also having to decide if it depicts something, or if it points to a content label. If we didn't do this, it would be harder to formulate the SPARQL queries, but more importantly, this would only be the beginning, since you're clearly using the same tag not just for pictures, but also for blog posts, and you wouldn't say that a blog post depicts something. So, for this to really work, we would need different relation types depending on the type of resource, whether it was a picture or a blog.

That's where it gets nasty.

So, I'm wondering if the course I've started out on is unworkable. Perhaps the relationship from a tag to a term like the Wordnet terms should be unchangeable? That would make the user interface simpler, but the queries and other uses would be harder. So, it isn't just a question what's the simplest, rather, it is a question of who should deal with the complexities.

Now, it is important that as many as possible to participate in tag mapping. Not everyone needs to write applications or queries that uses these data, so those wishing to do so are probably better suited to deal with the complexities than all those seeing the tag setup page. On the other hand, it is quite important to make the POWDER specification quite simple too, and this use could add complexity to the specification.

So, your opinions will matter here, please bring them forward!

Then, you might ask, dear guinea pigs :psmurf: , why I made a complex user interface to begin with, and then ask if I should make it simpler? Well, clearly, I couldn't start discussing this with you if I didn't show you a complex user interface that worked, it would be much harder to explain what I had in mind. So, I figured I might as well do a little research on you. The experiences gain from this is something that will be used to make the right decisions when designing important standards that will be with us from many years to come, and I feel it is important to get this experience now, before those standards are set.

Marrying folksonomies and taxonomies

, , , ...

With the new release, there is a new feature that you can find on your account page:

I'm allowing you to map your tags to a controlled vocabulary. For the time being, it is Wordnet, but I can include a number of such things. The main reasons I used it is that it is allready quite widespread, is organised in subclasses and superclasses (e.g. it knows that a dog is an animal, and that the W3C is standardising a Semantic Web representation of it.

Up to recently, people have classified their stuff into a set of rigidly defined categories, so-called taxonomies. The advantage of having such a rigid set, are that the meaning of each category is clearly defined, you avoid problems such as one person using "dog" while another uses "dogs", and you can organise your categories into hierarchies such as Wordnet, which makes it very usable for a number of applications.

The downside is that it is also very difficult to know the whole vocabulary well enough so that you can classify things in the right way. Thus, it has remained the domain of professional librarians mainly.

Enter "folksonomies", or "tags". Tags have become enormously popular, as it is easy to use. You just name a tag for yourself and use it. You can the find your pictures easily, if people are using the same tag for the same thing, you can also find it to find similar things. But, and a big but, people often use the same tag for a lot of different things. You can perhaps find some related items, but it is often not very reliable, and since everyone would need to maintain their own tag hierarchy, you can't figure out from a picture tagged "dog" that it also depicts an animal.

Now, you can say explicitly what you mean by mapping your tag to any of the suggested Wordnet meanings. If you do, we get the advantages of both these approaches.

For the time being, we don't do a lot with it, and it is only mapped to Wordnet, but in the future, we hope to enable exactly the kind of searches above, "give me all pictures of animals" will include pictures tagged "dog", "cat" etc.

There will also be many more vocabularies. For example, we intend to use tags to allow you to set any Content Label available. We can also let you map tag with a person, when, for example your picture depicts a person.

With this, we intend to make tags the simple way to annotate things on the Semantic Web. Try it out! On the top of your page, you'll see a "My Account", and it is a "Tags" page underneath.

Semantic Web programmers to come together

, , ,

The Semantic Web Education and Outreach Interest Group has published a small questionnaire with the intent of gather programmers around a few practical ideas, to create some applications that will make a real difference in people's lives.

The Semantic Web community has quite a few good programmers, and many have produced some cool demos of the technology. Also, many have been working on really big and advanced projects for years, and it is just starting to bear fruit. There has, however, been few times where we have gotten together with the goal of producing something useable quickly.

I wrote this questionnaire as a beginning to correcting the situation, as I believe it is important for the acceptance of the Semantic Web. My own, little pet proposal is also to use FOAF networks to ensure that emails from your friends will reach you even with aggressive spam filtering on. So make sure you continue to build those friend networks here on the Opera Community, it may help you in fighting spam soon!

The SPARQL Engine is back up

, ,

There has been many urgent matters that we have attended to upgrading the Opera Community, and therefore, the SPARQL engine fell into neglect for a while, but that was only temporary! It is now back up, with 15 million triples. Be warned however, that not all data may be there, even though it has grown substantially. Also, it is now too big to build the way it has been built in the past, so it needs to be rewritten, which will take some time to do. Thus, it remains an experimental service for now.

A new semweb widget...

, , , ...

People ask from time to time what you can do with widgets. Although you can make a "Hello world" widget (the instructions fit on a business card) it seems that this is a little simplistic for most people. Instead they make a clock widget.

Beautiful as some of these are (mine, for example :wink: ) they are not in themselves the thing the world needed most. But every so often something comes along that has real value. I think the first semweb widget was Jibberjim's Widgnaut, a widget version of foafnaut that crawled My.Opera's FOAF data. (Since we added the possibility to link your My.Opera FOAF to external files, it isn't a walled garden, just a starting point. Kjetil++! :smile: ).

Today we released a new widget - the tabulator widget version of Tim Berners-Lee's tabulator, which is a generic RDF browser. This means that now available for your delectation, an RDF browser running in Opera. I'm waiting to see how it works when widgets are released on mobile browsers, but please, get Opera 9 (or 9.01) if you haven't already, download the widget, and give it a try.

Many thanks to David Håsäther who did the widgetising and debugging to make it work cross-platform, Tim and all the folks who have worked on the tabulator project, JibberJim for building the RDF parser in the first place (way back when) and Gorm for making that work in Opera too.

DOAP support for widgets

, , ,

Opera 9.0 has just been released, and with that, widgets.opera.com. Widgets are small chrome-less programs for a specific task. Each widget now comes with DOAP-support. DOAP is an RDF schema for describing software projects. It is most useful for larger free software projects, where you have public version control systems and mailing lists, but I have entered some useful data on the widgets too.

For example, the circular Tetris widget Torus has a link element to the DOAP for the widget. While it isn't visible on the page, it should be detectable for applications looking for RDF.

Perl and RDF talk at the Nordic Perl Workshop

, ,

I gave a lightning talk about Perl (the programming language that underlies most of Opera Community) and RDF on the Nordic Perl Workshop. That's a very short talk, just to give participants a short overview. My slides are available.

Sorry, I broke some URIs

, ,

Since the launch of the Opera Community in September 2005, all members of the community has had an URI identifying them. Having URIs for everything is important, and even though you can't be retrieved over the network the URI is useful to identify you as a person.

Furthermore, we know that Cool URIs don't change, but I'm afraid I just changed them... :no: You see, the final, little part of the URI I gave you was very badly designed. It had a lot of unnecessary complexity, and with complexity comes bugs, and in fact, it turned out that some of them weren't even valid, since I hadn't taken into account that some usernames begin with a number.

It wasn't with a very light heart that I changed the URIs, but as I discussed this with other members of the FOAF community, it was clear that it was better to do it now, and deal with any problems that may occur with a process known as smushing, than dealing with the complexity that I had, especially as more people start using the URIs for real applications.

For most users, this change will not mean anything. The usual FOAF tools continue to work, it is only if someone has been indexing the URIs it will have any impact. I don't know if anyone has been doing that, but I would be interested in hearing about it! :sherlock:

UPDATE: I was a bit uneasy about this, so I found a way to at least attempt to unbreak most of the URIs, by using the sameAs property from OWL on those valid fragment identifiers from the previous version. That should give us the best of both worlds! :cool:
November 2009
S M T W T F S
October 2009December 2009
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30