The Web 3.0's Pulse : Semantic Web Trends

Currently Hot: Facebook OpenGraph Protocol

Showing posts with label Automatic Semantic Annotation. Show all posts
Showing posts with label Automatic Semantic Annotation. Show all posts

Thursday, July 8, 2010

Facebook Tagging - Semantic Photo Annotation for Free

What is behind the photo tagging feature on Facebook? This seemingly meaningless feature, now allows Facebook to gain digital knowledge of how each person looks, even if the user herself hasn't uploaded a photo of herself yet. But what this feature also means, is that ordinary people around the world, spend their free time to uploading photos, tagging their friends in various positions and occassions. Do you know what this means ? That resources (photos) on Facebook are being annotated manually with high accuracy for free! It seems like we are not far from our digital avatars, after all...

Hidden Semantics in Photos

Many people love the Facebook photo tagging feature : the user basically uploads a photo, tags her friends on the photo and they get pleasant notification that they have been tagged on a certain photo and everyone is happy. But what most people are not aware of, is that by adding tags to photos, they provide Facbook with ground to apply facial recognition algorithms and even more: the hard and manual job of annotating resources with their semantic meaning with at least 95% proven accuracy! Many cannot even recognize it: every time you tag someone on a photo, you basically tell Facebook, the following information:

On the resource [X], the resource [Y] is located on the resource [Z] , 
where [X] is of type Photo, [Y] is of type Person , [Z] is of type Coordinate.
[Y] and [Me] are friends. 
OPTIONAL: [X] is published on the resource [P] , where [P] is a page,
which is in turn relevant to resources [P1,P2...Pn] where [P1] is [SportsTeam].
[Y] likes the resource [P].

Pretty much metadata in a simple tag isn't it ? A semantic software agent (with existent technology) can easily deduce that there is a good chance that you (or the resource [Me]) likes the sports team P1, so why shouldn't it try to suggest you the page P1 ? What if there are other people on the photo that you are not friends with ? Then it is certainly wise to suggest them as your friends since you have been tagged on N photos together, but you are still not friends. This is only a sample of the usage of the semantics embedded within the photos. This system is unique from all aspects. Besides the fact that is free, it is also self -cleaning! What if someone faulty tags to some people? Those people will disagree and remove those tags. Very impressive mechanism, and do not forget it is part of the OpenGraph!

Who still needs to draw photo robots ?

The new exciting new Facebook feature of aiding users while they are trying to tag their friends set off a lot of dust lately. Some users are scared as they now are aware that Facebook recognizes the people in the photo, and will easily gain knowledge on who is on the photo.Imagine how easy is gathering sample set photos for constructing digital profile of each of us:

Give me the photos where [X] is tagged (optional: in the center  of the photo ) :)

Then facial recognition algorithms can be applied and ... ta daam... your face is recognized, along with your real name, surname, who your friends are,  what you like .. interetsting info, don't you think ? Another interesting thing: let's say that you refuse to upload photo of yourself on Facebook. Do you think you can avoid face recognition ? Unfortunately, no, you can't. Your friends will once in a while upload a photo of you and tag you there. So in a good percentage of the photos it will be you and they could draw an image of you even without you uploading a single image of yourself. Oh, and I forgot, a photo where you are tagged is placed as your personal photo by default :) . Creepy feeling  Way to go, Facebook


What do you readers think about Facebook tagging ? Does it really bring extra information to the "Big Face"? Is one's privacy violated in such case ?

Saturday, October 24, 2009

Alchemy from Raw Text to Semantic Annotations

Alchemy API, a free web API that can be used to semantically annotate web resources such as HTML documents or pure raw texts. The  Alchemy API, uses NLP (Natural Language Processing) to extract the meaning of the input text. Alchemy is capable of retrieving entities, keywords, pure text txtraction, text categorization, language identification and probably some other features that I haven't explored yet. The response of the API is ordinary XML ( RDF included here as well ), which of course, is easy to parse and integrate with any platform. Unlike OpenCalais, which offers typical SOAP web service( which is also a tehcnology I personally admire, you can read my post about it), Orchestr8's Alchemy API uses web requests to their server to invoke their NLP technology. The API is well documented, with downloadable examples for a variety of technologies. Since I am ASP.NET developer, I only downloaded the C#.NET SDK examples and it seems really neat and simple to use. It is very probable that other SDK's are as good as the mentioned one. Please note that you would need  an API key before using this service. This Orchestr8's API, in my opinion bears a lot of potential in dramatically decreasing the effort for semantic annotation of world's web content, which is most likely the stepping stone for the real semantic evolution. An interesting thing that I noticed in the Alchemy's response is that actually contains some kind of entity alignment in it. For instance, it is capable of disambiguation of a given term, so  in the RDF response there is an OWL ontology alignment piece( powered by LinkedData I suppose ), that aligns the disambiguated entity with semantic resources from sources like DBPedia, Freebase, CIA Factbook,GeoNames etc. Really cool. That could boost semantic knowledge management in even more advanced semantic applications.
Orchestr8 offers the API in several packages. The basic package is free and allows 30 000 calls per day, which, is enough for small to medium applications. If a good idea for a semantic web application is born, this certainly will not be the limit.