I am currently working on a project, let me explain the global idea :
- We have multimedia content (audio, video and PDF files) that we want to share with the worldwide with a CMS.
- Some of the resources are related (same author, same content, next part…) to others.
- We would like to enable an easy navigation between those contents (e.g. a user interface allowing navigation by author, by related content, etc).
- The Internet users could help to categorise / tag the content.
- It could be interesting to propose related content from the Internet.
- This project is a part of another one, a Knowledge Management System for the organisation which make research and produce those contents. A knowledge base would be created for this project, gathering the knowledge existing in the organisation.
I have no Semantic Web background, but hera are my ideas :
- Create an ontology for structuring / linking the multimedia contents together.
- Mount a SPARQL endpoint.
- Execute SPARQL request from the CMS to display navigation links between content and allow user to add new tags.
- Use this kind of architecture for the application: http://ceur-ws.org/Vol-524/swese2009_2.pdf (part 2.4)
I would like to get some advises, especially on those points:
- Is an ontology and a semantic Web application a good solution for my project ?
- Do you have any suggestions about the architecture ?
- What kind of documentation should I consult right now ?
Please feel free to give your global opinion.
Thank you !
Benoît
Semantic Web technology improves nearly any web application, regardless of domain. Making you content and data more accessible is useful for your organisation and other organisations. Its one of those things that is a win win scenario.
In your case, you want to produce a content management system that incorporates 3 SemWeb use cases:
With regards to publishing linked data, you have a number of options:
For the former, there is a great plugin for TinyMCE that facilitates this:
http://aksw.org/Projects/RDFaCE#h13489-4
This also satisfies your ‘consuming and linking’ use cases (it lets your specify external datasources such as DBPedia and link to things in your RDFa)
As I also understand, Drupal has very good support for RDF:
http://drupal.org/node/222788
Covering most of the use cases above.
You might also want to consider publishing to a SPARQL endpoint offered as a service (SaaS). A good candidate for this is Kasabi (http://kasabi.com) offering a range of data API’s including SPARQL.
To do this you will need to have a means by which you can transform your content model / domain model, into RDF. Most CMS system provide a way to enable the creation of new content types, be it through a GUI or a some other convention (some are really just classes). My advice is to build functionality to enrich this process with a means of mapping properties or fields defined as part of a content type, to terms in common vocabularies e.g if someone creates a new content type called ‘event’ and they specify that an event has a date associated with it, then there should be an extra step to define a term in an ontology the maps to the property in the content type.
This again is something that Drupal with appropriate plugins can do out of the box.