Archive for August, 2008

W3C Semantic Web: future or another standard?

“The nice thing about standards is that there are so many to choose from.”
Andrew Tannenbaum

preamble

Web 2.0 became a buzz word nowadays and many people has different understanding of it.
It seems we can just use World Wide Web consortium(W3C) [http://www.w3c.org] and find final definition,
but there is no any standard definition. We have many different definitions from different companies or people.

Let’s make short sum-up:
Web2.0 is a architecture of interconnectivity and social interactions on the Web.
With such architecture we can create web-sites where users can produce content of his network using distributed content of other networks or independent developers.

Common mis-association here is that AJAX[http://en.wikipedia.org/wiki/AJAX] is a main feature of Web2.0, it is became so popular because many Web2.0 sites heavily use Ajax. In real we can create Web2.0 web-site with described features of Web2.0 without Ajax.

Web2.0 websites typically use some of the following features:
* CSS: separation of presentation and content
* REST or JSON-based APIs: system inegration and separation
* Rich Internet application techniques: Ajax, Flex, Flash
* Syndication, and aggregation: RSS or Atom feeds
* Weblog-publishing tools, and social networking tools: chat, forum, wiki, ..

Now as you have rough understanding of Web2.0 main question is what is:
Semantic Web (Web3.0)?

Another useful standard

Unlike Web2.0 Semantic Web is a W3C standard[http://www.w3.org/2001/sw/] and so we can find final definition of it.

“The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. It is based on the Resource Description Framework (RDF).”
According to Semantic Web home page

Talking common language:
Semantic Web is a way to store all data in such way to provide easy way for any application to use it.
It provide special formats for storing and querying of data.

“The big picture: imagine having one query language, one client, and one data access protocol which let you arbitrarily slice the data of Flickr, delicious, Google, and your favorite Web 2.0 sites, FOAF files, RSS 1.0 feeds — plus anything that can be mapped into RDF. This is data integration the Web 2.0 and the Semantic Web way.”
Good general description from “Talking Points for Semantic Web vs. Web2.0″ [http://www.w3.org/2006/05/SW_Web2.html]

Nevertheless potential useful points of Semantic Web and even some use-cases [http://www.w3.org/2001/sw/sweo/public/UseCases/]
we still very far from any production use of it.

In real life we can still use XML[http://en.wikipedia.org/wiki/XML], RDBMS [http://en.wikipedia.org/wiki/RDBMS], and SOA [http://en.wikipedia.org/wiki/Service-oriented_architecture] to get similar behavior today.

Own social network for anything

preamble

Nowadays social networks on Internet take a lot of popularity. Your neighbor is probably already has social network about home shopping or nuclear reactors.
It is no wonder that more possibilities appear to create fast and easily your social network like:
Ning [http://www.ning.com/], KickApps[http://www.kickapps.com/], CrowdVine[http://www.crowdvine.com/], GoingOn[http://www.goingon.com/], ONEsite [http://www.onesite.com/], etc..

Our company had a chance to estimate some of them.
As most advanced and popular (> 230.000 networks) platform I can name: Ning.

Ning platform

After rapid registration process you get social full-featured network: instant messaging, blogs, music, video, photos, and so on..

One feature is a possibility is to change a number of parameters from administrator panel. That gives opportunity without any special software development education create and maintain social network.

Another feature is a possibility for software developers to create additional widgets, change behavior of system, and query and modify data thru RESTful API [http://en.wikipedia.org/wiki/Restful]. At this moment for widgets development only php is supported but Ning developers promise support for all popular languages.
Look on this “hello world” application to understand how you can drive it: [http://developer.ning.com/tutorials/Hello_World]

Extensions development for Ning platform looks like development for CMS systems [http://en.wikipedia.org/wiki/Content_management_system] and based on MVC paradigm [http://en.wikipedia.org/wiki/Model-view-controller].

As unusual approach I can note using of Ning content store[http://developer.ning.com/wiki/The_Ning_Content_Store:_A_Primer]. It is non relative database that looks like ORM systems[http://en.wikipedia.org/wiki/Object-relational_mapping]. I think that using of it is a disputable idea but for novice developers it is easy to understand it.

At the end I want to note main advantages and disadvantages of Ning plarform:

Advantages:

1.Simple an rapid creation of social networks;
2.Free basic access to the system(full abilities but you can’t turn off ads);
3.Big possibilities for modernization and relatively simple API for developers;
4.Quite good documentation;

Disadvantages:

1.Closed platform: we can’t deploy it at any place, we can’t look to source code when we have lack of documentation, we can’t redesign it, it prevent from simultaneous work of developers
2.Commercial platform: if you want to use your own domain name, or remove ads from Ning you should pay;
3.Database approach to store and handle data in DB.;

Conclusion:

This system is a wonderful start for new social networks, or old social networks without big amount of specific functionality.

ONE IMPORTANT note:
we faced disgustful relations of Ning to customers:
making some internal procedures they revoke access to source code from all user, and we lost many time waiting for an access when we have responsibilities against our customers to develop project by some fixed date.