Semantic technologies are just like any other technologies have good and bad sides. However, I found it rather odd for semantic technologies that its good sides are rarely explicitly expressed, but are often substituted with bloated, pink, unfulfillable dreams.
1) I personally find RDF profitable (vs. in XML) in data integration scenarios. The main benefit comes from the fact the RDF documents are syntax independent. Consider the following integration task:
Merge two (or more) data document: In case of XML, you make a common schema, write XSLT which accomplishes both syntactic and semantic integration. For RDF documents: just concatenate the RDF triples and syntactic integration is already done. For semantic integration, you will still need rules/rule engine or adopted SPARQL queries.
What if business change? In the case of XML, you adopt your XSLT-s and you if needed your common schema (watch out for backward compatibility). In case of RDF, you still just concatenate the triples.
2) How would you handle different versions of persistent business objects? SQL databases are schema dependent. If your business objects change, you need to update the db schema. What do you do with your legacy (but high value) data?
- hire an army of monkeys, to convert from old version to new version
- write a script for conversion (if possible)
- extend your SQL tables with new columns filling them with NULL-s.
- maintain dual versions
But what if a third, fourth, fifth version comes along? How long can you stretch?
RDF databases are schema independent. That means that you can store/query any type of business objects without changing anything (that is cheap!). Though your SPARQL queries probably needs to be updated (depending what solution you choose).
Facilitating CHANGE (e.g., in integration scenarios) can be significantly CHEAPER with RDF than XML/SQL
Downsides of RDF: This is easy and well-published, but here are a few:
- Terrible RDF/XML syntax
- No buy-in from biggest players like SUN/Microsoft
- No comparable alternative to the power of XSLT in the semantic world. SWRL does not even get close.
- Hard, steep learning curve for developers
- Little understood open world assumption model.
- Insufficient educational material, books, articles.
- Used to have shortage of developer tools, but it is getting better now. I still do not know a good library for e.g., Python.
- No native support for sorted sets (arrays), you need to use linked list.
- Semantic web got a bad reputation from the bloated boastful promises. No, it won't solve world hunger.