This blog post covers some of the technologies available for creating applications for the Semantic Web.
In my recent blog post I covered David Peterson presentation "Semantic Web for Distributed Social Networks" at Web Directions South in Sydney. Peterson, also mentioned a number a useful tools that support the Semantic Web, described below.
Semantic MediaWikiMediaWiki is the backbone of some of the popular web-based wikis, such as Wikipedia. Conventional wikis are collections of texts with no added meaning. Semantic MediaWiki allows users get answers to more complex questions, by supporting the notion of a Semantic Web and tagging content with words that can be processed by software. These semantic extensions discover relationships and extract additional meaning from content. For instance, the user can ask a question such as:
"In what countries is the Spanish language spoken?".
DrupalDrupal is a popular open source CMS, based on PHP, with extensive functionality enabled by a many different modules.
The Semantic Web technologies were introduced to Drupal in version 6. The following are currently supported:
- RDF API
- Open Calais
The tool allows you to import structured data and present it in a way that you want. There is a data file, written in JSON format, storing the data for your application and an HTML file that controls how that data should be displayed.
The website shows some examples of what you can do with Exhibit. The Flags of the World shows you how you can achieve complex functionality, using a few simple files provided to you by Exhibit. The Flags of the World plots a county's flag on the location of the country on the map.
D2RQD2RQ is a language that enables real-time mapping from your relational database to RDF. This way, RDF applications can communicated with non-RDF databases using SPARQL or as Linked Data. It is an efficient method, as you don't have to copy the whole database into RDF.
Two PHP-based tools Peterson mentioned were ARC and Triplify.
ARC:ARC is an RDF system, based on PHP. It enables RDF and SPARQL integration into PHP and MySQL applications.
Some of its features are:
- RDF parsers
- RDF storage
- SPARQL query and update
TriplifyTriplify is a plugin that shows semantic structures in relational databases and translates data into semantic formats -- RDF, JSON or Linked Data .
It allows web apps to be mashed up easily.
linqtoRDFThis tool converts your LINQ queries to SPARQL queries. It's an efficient way for .NET developers to start experimenting with the Semantic Web, without learning any new technologies.
SesameSesame is a Java framework designed to store, query and interact with RDF and RDF Schema. It can either be used as a Java library or a database for applications interacting with RDF.
ElmoElmo is a collection of JavaBeans for the Semantic Web technologies like RDF. Some of the tools available are an RDF crawler, a FOAF smusher and a FOAF validator.
The best part is all these tools are free and give you a head start in experimenting with the Semantic Web.