The Resource Description Framework (RDF) offers developers a powerful toolkit for making statements and connecting those statements to derive meaning. The World Wide Web Consortium (W3C) has been developing RDF as a key component of its vision for a Semantic Web, but RDF's capabilities fit well in many different computing contexts. RDF offers a different, and in some ways more powerful, framework for data representation than XML or relational databases, while remaining far more generic than object structures.
RDF's foundations are built on a very simple model, but the basic logic can support large-scale information management and processing in a variety of different contexts. The assertions in different RDF files can be combined, providing far more information together than they contain separately. RDF supports flexible and powerful query structures, and developers have created a wide variety of tools for working with RDF.
While RDF is commonly described as an arcane tool for working with an enormous volume of complex information, organized with ontologies and other formal models, it also has tremendous value for smaller, more informal projects. I learned about RDF, specifically RDF/XML, when I started working with Mozilla back in the early days of development for this project. At the time, the Mozilla team was using RDF as a way of defining the XML used to provide the data for dynamic tables of contents (TOC) in the application framework. This included providing the data for the favorites, the sidebar, and so on.
I created a tutorial about developing applications using the Mozilla components as part of a presentation I was giving at an XML-related conference. Unfortunately, every time a new release of Mozilla was issued, my tutorial would break. The primary reason was the RDF/XML supported by the application; it kept changing to keep up with the changes currently underway with the RDF specification itself. At that point I went to the RDF specifications, managed to read my way through the first specification document (the RDF Model and Syntax Specification), and have been following along with the changes related to RDF ever since.
One main reason I was so interested in RDF and the associated RDF/XML is that, ever since I started working with XML in its earliest days, I've longed for a metamodel to define vocabularies in XML that could then be merged with other vocabularies, all of which can be manipulated by the same APIs (Application Programming Interfaces) and tools. I found this with RDF and RDF/XML.
Because my introduction to RDF and RDF/XML had such pragmatic beginnings, my interest in the specification has always focused on how it can be used in business applications today, rather than in some Semantic Web someday. When I approached O'Reilly & Associates about the possibility of writing a book on RDF, I suggested a practical introduction to RDF, and the title and focus of the book was born.
This book attempts to present all the different viewpoints of RDF in such a way that we begin to see a complete picture of RDF from all of its various components. I say "attempt" because I'm finding that just when I think I have my arms around all the different aspects of the RDF specification, someone comes along with a new and interesting twist on a previously familiar concept. However, rather than weaken RDF's overall utility, these new variations actually demonstrate the richness of the specification.
It is only fair to give you a warning ahead of time that I'm a practical person. When faced with a new technology, rather than ooh and aah and think to myself, "New toy!", my first response tends to be, "Well, that's great. But, what can I do with it?" I am, by nature, an engineer, and this book reflects that bias. Much of RDF is associated with some relatively esoteric efforts, including its use within the implementation of the so-called Semantic Web. However, rather than get heavily into the more theoretical aspects of RDF, in this book I focus more on the practical aspects of the RDF specification and the associated technologies.
This isn't to say I won't cover theory?all engineers have to have a good understanding of the concepts underlying any technology they use. However, the theory is presented as a basis for understanding, rather than as the primary focus. In other words, the intent of Practical RDF is on using RDF and the associated RDF/XML in our day-to-day technology efforts in order to meet our needs as programming, data, and markup technologists, in addition to the needs of the businesses we support.
This book provides comprehensive coverage of the current RDF specifications, as well as the use of RDF for Semantic Web activities such as the ontology efforts underway at the W3C. However, the focus of this book is on the use of RDF to manage data that may, or may not, be formatted in XML to manage data, often XML data.