![The Internet The Internet](http://a.fsdn.com/sd/topics/internet_64.png)
![Books Books](http://a.fsdn.com/sd/topics/books_64.png)
![Media Media](http://a.fsdn.com/sd/topics/media_64.png)
![Book Reviews Book Reviews](http://a.fsdn.com/sd/topics/bookreview_64.png)
Practical RDF 120
Practical RDF: Solving Problems with the Resource Description Framework | |
author | Shelley Powers |
pages | 331 |
publisher | O'Reilly & Associates |
rating | 9/10 |
reviewer | Brian Donovan |
ISBN | 0596002637 |
summary | Great introduction to RDF, an assortment of tools and utilities for working with RDF, and some real-world applications. |
RDF first hit my radar screen a couple of years ago while I was working on a barebones tool to manage my personal website. I was writing the code to generate RSS feeds ("What is RSS?") for my site and had to choose whether to support RSS 0.9x (non-RDF) or RSS 1.0 (RDF-based) or both. Long story short: I went with RSS 1.0 and was able to implement the feeds, but never got any further into RDF afterwards. I couldn't make headway through the RDF-related working drafts rapidly enough to justify the time that I was spending, there weren't any worthwhile-looking books available at the time, and the few online tutorials that I found were sorely lacking -- possibly because the specs themselves were still evolving as the RDF Core Working Group hashed out some remaining issues.
Fast forward a few years: the dust in RDF-land seems to be settling a bit (although new working drafts of all of the current RDF specs were released on September 5th, most of the changes from previous versions appear to be relatively minor) and, with the publication of Shelley Powers' Practical RDF: Solving Problems with the Resource Description Framework, there's finally a good book available on the subject.
Overview
After an introductory chapter that touches on the history of RDF and some applications of RDF/XML (the preferred, W3C-blessed serialization of RDF), the book is divided into three broad sections. In the first, the reader is guided through the raft of documentation produced by the RDF Core WG, including : Resource Description Framework (RDF): Concepts and Abstract Data Model, RDF/XML Syntax Specification, RDF Model Theory (formerly Semantics), and RDF Vocabulary Description Language 1.0: RDF Schema. Before moving on to Part II, where she surveys programming language support and tools available for working with RDF (with code snippets where appropriate), Powers spends a chapter developing an RDF vocabulary, "PostCon," that's used throughout the remainder of the book for demo purposes.Chapter 7, the first in the tools-focused portion of Practical RDF is dedicated to (mostly Java-based) editors, parsers, validators, browsers, etc. for desktop use. Next, she dives into Jena, the Java RDF toolkit that began life as the labor of love of HP Labs researcher Brian McBride before being elevated to the status of a formal HP Labs project under their Semantic Web Research umbrella. Another HP Labs Semantic Web project, Damian Steer's BrownSauce, a slick little Java-based RDF browser, was introduced back in Chapter7. Means for manipulating RDF/XML in Perl (RDF::Core, part of Ginger Alliance's PerlRDF project), PHP (RAP, the RDF API for PHP), and Python (RDFLib) are addressed in Chapter 9. RDF query engines/languages are taken up next -- rdfDB QL, the query language of R.V. Guha's rdfDB (written in C); SquishQL, implemented in the Java-based Inkling query engine (built atop PostgreSQL); RDQL, used within Jena; and Sesame, a JSP/Servlet querying engine that supports both RDQL and its own query language, RQL, and can be deployed atop MySQL or PostgreSQL. Powers rounds out this part of her book with a chapter that deals briefly with the leftovers. Drive, an RDF API for C#, is briefly discussed along with RDF APIs for less fashionable programming languages : Nokia's Wilbur for CLOS, XOTcl for Tcl, and RubyRDF for Ruby. Redland, an RDF toolkit written in C with Java, Perl, PHP, Python, Ruby, and Tcl wrappers, is covered at some length (about half a dozen pages) and a couple more are given over to Redfoot, a Python RDF framework consisting of RDFLib (mentioned earlier in the Perl/PHP/Python chapter), a small-footprint HTTP server (according to the changelog at redfoot.net, they're using Medusa), and a native scripting language called Hypercode that lives within CDATA blocks in RDF/XML (example).
The last third of Practical RDF is devoted to uses of RDF and begins with a chapter on the OWL Web Ontology Language, an extension to RDF that's designed to supply more constraints for RDF vocabularies than can be provided by RDF Schema alone. This chapter would have been better situated after Chapter 5, which addresses RDF Schema, and feels a bit out of place here. RSS 1.0, the RDF-based syndication format, gets a chapter all of its own, beginning with a short synopsis of the evolution of RSS and the rift between the RSS 0.9x/2.0 and RSS 1.0 camps, progressing through descriptions of the RSS elements, some discussion of the use of modules, RSS autodiscovery, and aggregators (Amphetadesk, Meerkat, and NetNewsWire are mentioned), and finishing with an example RSS file (a syndicated list of book recommendations), producing RSS 1.0 using the Informa RSS Library (a set of Java classes), and merging two RSS 1.0 files using the XML::RSS Perl module. Two "Applications Based on RDF" (commercial and noncommercial) chapters top off the book. Noncommercial applications of RDF are visited first : Mozilla, where history and bookmarks, among other classes of information, are stored in RDF; the Creative Commons licensing scheme, whose proponents encourage content creators to embed RDF snippets into their documents and applications to provide information about the work itself and the restrictions placed on its reuse under the particular CC license that they've chosen; a Java and PostgreSQL based digital library system jointly developed by MIT and HP that uses RDF; and FOAF (Friend-of-a-Friend), an RDF vocabulary designed to express personal information and interpersonal relationships. Among the list of commercial applications utilizing RDF that comprises the final chapter in the book is Chandler, the same as yet very-alpha personal information manager that's managed to garner multiple mentions on this site.
The Verdict
The real meat of Practical RDF, for me, was in Chapters 1 through 6 (plus the OWL chapter, Chapter 12). This is not to say that the material in the last 2/3 of the book isn't useful or interesting. The section on RDF software tools is a great annotated survey of what's out there right now ... and I would imagine that installing and testdriving each of the software applications featured in those chapters must have been an extremely time-consuming process. The chapters describing real-world applications of RDF could be useful to someone trying to convince a manager that RDF is a viable, widely-used technology. Given a choice, though, I would rather have seen those pages spent on additional coverage of RDF, RDFS, and OWL with more example RDF vocabularies developed (like PostCon, which the author formulated, then refined through RDFS and OWL). The displaced material could have been made available online at the author's site for the book. A lot of that information will become less accurate over time as the software evolves and people come up with more applications for RDF anyway.
All nitpicking aside, though, if you're looking for a book on RDF, then you can't go wrong with Shelley Powers' Practical RDF.
You can purchase Practical RDF from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Amazon costs $8 MORE than bn (Score:1, Informative)
Free shipping doesn't make up the difference...
There are some cheap used copies, however...
You know what's going to be said... (Score:1, Funny)
Sign me up!
Re:You know what's going to be said... (Score:1)
You could try pot.
Re:You know what's going to be said... (Score:1)
Oh its for the web (Score:1, Funny)
RDF is quite pratical (Score:5, Informative)
Re:RDF is quite pratical (Score:1)
Show me the websites.....
Smart use of the web... (Score:2)
Re:Smart use of the web... (Score:1)
Then in the screenshot you'll notice his email ends with assbarn.com
Uhh TMI...
Was this a joke (Score:1)
Was this meant to be a joke, since RDF also stands for Radio Direction Finding [directionfinder.com]?
HH
Inside RDF is a smaller language... (Score:3, Interesting)
RDF is a great idea. But it needs to loose the java and the XML. People who are attracted to those have no use for RDF--they want messages they can read without documentation. I know XML is more than that, but in the corporate world its attraction is "configuration files I can read after the author was outsourced".
There are two XML movements--one creating a kludgy layer of application bureaucracy and the other visionary. RDF presently combines the worst of both. Neither "side" really wants it. AI is happy with ontologies and the corporate world is happy with messages 100 times larger than the underlying network protocol. (Could be worse: ASN.1 anyone?)
*BUT* the underlying idea to RDF (ontologies for your metadata). RDF schema is really more important than RDF syntax. The idea is a simple model for describing metamodels. This fits in the same space as UML metamodels, and the Common Warehouse metamodels, only it is much more light weight and you can implement it with existing tools (you do have to use XML--eeeewww).
XML serves one good perpose--it makes s-expressions socially respectable in corporate world and for that I am greatful. They almost got Scheme in too (DSSSL), but the angle-bracket police got them. Too bad.
RDF can sneak in metaprogramming if you let it.
=googol=
Re:Inside RDF is a smaller language... (Score:2)
Re:Inside RDF is a smaller language... (Score:2)
DSSSL got replaced by XSL/XSLT, which does have angle brackets. DSSSL works with SGML, and can be made to work on XML.
=googol=
Re:Inside RDF is a smaller language... (Score:2)
Ahem. Could you please elaborate more on this? If I am not mistaken RDF is good for creating links to physical resources with a certain kind of criteria that can be shared between different kind of applications.
Like, for example, someone telling you about a new WiFI exploit on an IRC security channel, and making the program to fi
Re:Inside RDF is a smaller language... (Score:2, Informative)
What you are describing is the most common and original application of RDF--streaming content. RDF itself is also an XML-compatible syntax and a schema (box and arrow diagram) for that syntax. The intended interpretation of the syntax is the description of "models". That is, the RDF is a metamodel
Re:Inside RDF is a smaller language... (Score:2)
Following your example we begin having something concrete... like a pic, let's say a nice artistic nude of a fiery redhead.
Then the metadata is telling me that what I am displaying is a 16.000.000 colours jpg.
Now, following your example is confusing, because you say that RDF is the structure of the structure of my message
Re:Inside RDF is a smaller language... (Score:1)
Personally, I would agree that RDF/XML is a losing mapping of RDF... too complicated to read and just seems like a poor fit for XML. It seems to me that RDF is definitely more graph-like, but you are trying t
Frame Languages then, not RDF (Score:1)
The real secret of RDF is that RDF Schema is one *example* of how frame languages, onotologies, and knowledge bases (logic programming) might be used in environments wh
Re:Inside RDF is a smaller language... (Score:1)
Java? Since when did Java have anything to do with RDF, any more than Java has anything to do with XML?
(and 'lose' is spelled 'lose', not 'loose'.)
OWL is not for what the reviewer thinks (Score:1, Informative)
Re:OWL is not for what the reviewer thinks (Score:2, Informative)
Re:What kinds of advanced searches? (Score:3, Insightful)
Scary page (Score:1)
Perhaps it's just me, but the graphics on the homepage of The Friend of a Friend (FOAF) project [foaf-project.org](linked to from the review), actually makes me wonder if these so called friends have other reasons for describing us and our webpages. ;)
Re:Scary page (Score:2, Interesting)
http://www.foaf-project.org/images/foa
(foafcorp: http://rdfweb.org/foafcorp/intro.html -- reworking of theyrule.net data in rdf and svg)
Re:Scary page (Score:1)
That made them a lot nicer. ;)
BTW, why aren't the faces smileys instead of just eyes?
Dave Winer... (Score:5, Funny)
$50 says Dave Winer is pissed off that he didn't get mentioned in this write-up...
Double that if I do a gleeful dance when it turns out that he is. Weeee!
Spoilers. (Score:3, Funny)
It Needs More Vocabulary Descriptions (Score:4, Interesting)
I just finished skimming the whole book and reading about half. My biggest complaint is there isn't much guidance as to where you should go and define your own vocabulary and where you should use an existing one. The only vocabulary discussed besides the RDF core is Dublin Core. To make things worse, most of the examples shows using a custom vocabulary that unnecessarily defines 'Author' and 'Title' instead of using Dublin Core's 'creator' and 'title'.
I like RDF alot, its really a great tool, but without some serious guidance and discipline when defining vocabularies its going to descend into babble and become pretty useless.
Does anyone know of a good resource for finding emerging standards for RDF vocabularies so we don't all go out and reinvent the wheel?
RDF will take off when they use it for porn (Score:1, Insightful)
I'm sure RDF has plenty to offer to the world of online porn. Porn afficianados will more efficiently scour their favorite sites to find the material pertaining to their specific fetishes. Porn merchants will more easily attract the customers who seek them by exactly specifying what they have to offer instead of spamming the search engines with likely keywords.
I can't wait!
Re:RDF will take off when they use it for porn (Score:2)
I think that sites like Autopr0n could start this :)... the only problem is that they would need to have.
What about other kind of sites like fa
Re:RDF will take off when they use it for porn (Score:1)
http://rdfweb.org/2002/svgsemantics/pics
good for finding it, good for filtering it...
also re rdf/foaf addons for slash, there are some rough notes in the FOAF wiki, see http://rdfweb.org/topic/SlashFoaf
Re:RDF will take off when they use it for porn (Score:2)
also re rdf/foaf addons for slash, there are some rough notes in the FOAF wiki, see http://rdfweb.org/topic/SlashFoaf
Hey! It's not fair! You are from the rdf team at http://rdfweb.org!!!
Anyway, those applications are interesting indeed. Do you know of some software like Haystack (but already USABLE) on Windows or is it still a "work in progress" technology?
Serious flaws in the current semantic web model (Score:4, Insightful)
Re:Serious flaws in the current semantic web model (Score:1)
Re:Serious flaws in the current semantic web model (Score:1)
I think one issue might be that anybody can make a statement about any URI and have it merged into a model... how do you know what is authoritative?
I'm curious to know what is broken with OWL that makes it unsuitable for commerical use? My understanding is that it isn't final yet, so that might be an issue. Is there something fundamentally wrong with it?
a practical WHAT? (Score:1)
(see what a mac-addled brain turns Slashdot stories into on first glance?)
Shello Powers (Score:2)
RDF Tools (Score:3, Informative)
One tool not mentioned: the semantic web library for Swi-Prolog [swi-prolog.org] that provides a high level toolkit for dealing with RDF, Owl, etc. Since the hoped-for use of RDF is applications that make logical inferences, Prolog seems like a good language to use :-)
The Jena and Sesame packages are written in Java and also are very good tools.
The big problem is getting people to use RDF - this technology can only be useful if enough people use it (think FAX machines).
I believe that the earliest large scale adoption of Semantic Web technologies will really be on company LANs and be used for organizing company/.organizational information.
Think of shifting from information technology to knowledge management technology.
-Mark
Dang...wrong RDF! (Score:1)
Highly recommended (Score:2)
Intranets (Score:1)
Am I the only one... (Score:1)
Robotech Defence Force (Score:1)
Where're the Semantics? (Score:3, Insightful)
It seems like a lot of progress has been made since then, but personally I still don't see the point. If you buy into XML as the "lingua franca" of semantic data interchange, then great. I do too. But what exactly is RDF useful for? If we can agree on an XML schema for our data, we can exchange it directly without the need for yet another layer of abstraction on top of it.
The really hard part is agreeing on the schemas, and this has nothing to do with RDF. Having worked in one XML vocabulary standardization effort (Universal Business Language), I can only stress that the technical and political challenges of getting any group of individuals and companies to agree on any common data format are enormous. For example, it would be great if Amazon and B&N used the same schema for their book descriptions, but imagine trying to make this happen (particularly as they are likely to feel that the specificities of their formats represent some kind of competitive advantage).
So until proven wrong I continue to believe that RDF is nothing but smoke and mirrors. The easy stuff is done by XML right out of the box, and the hard stuff has nothing whatsoever to do with data structures and wire serialization formats.
Re:Where're the Semantics? (Score:2, Insightful)
Re:Where're the Semantics? (Score:3, Insightful)
Why couldn't I just make an FOAF schema that pulls in the element types from the appropriate "component" schemas, qualifying the types with the correct namespaces?
It still strikes me that RDF is simply an alternative to XSD, and it's not clear to me why it
Re:Where're the Semantics? (Score:2)
Re:Where're the Semantics? (Score:1)
/ Because providers always tell the truth... / (Score:4, Interesting)
On our staggeringly democratic web, anyone can be a publisher, and as Meta tags have shown - not everyone has the truth in mind.
I find it odd to note that it is never discussed how RDF will be kept from rapidly degenerating into Meta-tag style abuse.
Will there be an authority that will verify content descriptors, or at least handle complaints of abuse?
I would honestly like someone to prove me wrong, to show me where the technology prevents, handles and/or reduces abuse. Because I'm genuinely excited about what is possible with a trustworthy intelligent network. However, I'm just not seeing it here.
Even normally trustworthy hosts tend to have some disingenuous information in their RSS feeds when they think it will benefit their business.
(Eg. altering post dates or posting phantom or questionable updates to get more hits from feed subscribers, broadly labelling their content to avoid being properly categorized to expand their exposure, etc)
So is it accounted for?
mod parent up (Score:1)
RDF models trust (Score:2)
I confess that I am still dipping my toes into RDF, but I think I know the answer to your specific objection : reification
Think about it : how does one deal with truths, half truths and lies in the real world? One internally assimilates various sources and ascribes trust levels to them. If Joe is known to be a liar, then most statements coming from him are suspect. RDF doesnt make that inference, but it does allow you to record the fact that the source of a particular statement is Joe, and not Mary, who y
Re:/ Because providers always tell the truth... / (Score:2)
On our staggeringly democratic web, anyone can be a publisher, and as Meta tags have shown - not everyone has the truth in mind.
So what? You give people the ability to say things and some will tell the truth and some will lie. But you do not say a system is a failure because some people use it to lie. People lie on Slashdot. So what? People lie with title elements. People like with XML elements? So what? You are an information consumer. You must choose your information providers carefully. How does RDF
Re:/ Because providers always tell the truth... / (Score:2)
You could use a web-of-trust style system though, or reification, to try to build a reputation system that would resist the type of gaming you describe. This is not an inherent feature of the semantic web, but it would be easier to do than with the current web.
Re:/ Because providers always tell the truth... / (Score:2)
This is one of the questions I had in mind during Tim Berners-Lee's lecture at the Royal Society [royalsoc.ac.uk] earlier this week (There's a streaming media of the lecture itself - and this question was raised - I think it was the first one in the Q&A session). The answer lies in much the same solution used by the web and its visitors today.
What happens when you visit a website that contains
Judging by the heading... (Score:1)
Has anybody read this related book? (Score:2)
Thanks!
- PB
But will Ownership get in the way? (Score:2)
Since the Internet came online we have seen a tremendous, mostly obstructionist reaction from the relatively small community that claims ownership
Realworld example (Score:1)
Practical RDF is an oxymoron. (Score:2)
The syntax is horribly complex for what it does, which is basically assert relationships between pairs (think isa(tweety,bird), where 'isa' is the relationship). Also note that asserting relationships between pairs is NOT at all sufficient to model real world data (think update anomalies); which is why we have much better models, such as the relational model, and the prolog and LISP datastructures. (In fact, prolog comes with an assert statement)
With RDFS you can define
C# RDF Parser (Score:1)
Damn! (Score:2)
"Use it for fun, or profit! Amaze your friends! Make women succumb to your power!"
Throw in some sea monkeys and a pair of x-ray specs, and you'd have my credit card number.
Re:Stop the XML madness (Score:1)
increased requirement reduces power (Score:2)
It's like celebrating upgrading your bandwidth when all you did was maintain your spare capacity once you've downloaded the thousands of fake Microsoft Security Bulletins.
Do more with less not less with more.
Re:increased requirement reduces power (Score:2)
Re:increased requirement reduces power (Score:2)
No XML or Java required.
Just wait until DNS requests are XML or HTTP requests or, shudder, someone has the bright idea to dump TCP/IP and replace it with XML/IP.
RDF is not RDF/XML Was: Stop the XML madness (Score:2, Informative)
> java + XML = demand for 4+ghz CPUs
Let's make one thing clear: RDF is not an instantiation of the XML syntax. You can use XML to transfer RDF statements, but for reasoning other, internal, representations are to be preferred.
As I'm working on a Prolog project that needs RDF I use the SWI-Prolog RDF library, which, according to
this recent paper [psy.uva.nl]
Re:Stop the XML madness (Score:5, Insightful)
Err.. OK.
1. Java runs perfectly adequately for me on my 400 MHz machine. Typical application startup times are ~1 second which is generally acceptable, and once the application is running there's not normally a noticeable difference between it and a 'native' application (whatever that might mean for you...). (Note the distinction between noticeable and measurable, also please bear in mind that I'm not talking about AWT/Swing apps here, those really are slow, but that's the library not the language that's responsible, IMHO).
2. XML might be a little slower to process than other similarly expressive data formats (eg s-expressions, ASN.1 and similar). Maybe by a factor of 10, even. However, the data formats I am comparing it to were considered acceptable for use on 4 MHz processors, and even then the I/O time was a lot more significant than processor time for such operations. Processor speed growth has substantially outpaced IO speed growth over that period.
AFAICT the only people "demanding 4 GHz CPUS" are the "I've got a better PC than you" crowd, serious gamers, and people who are doing really demanging applications, like video editing or scientific applications (or who want to do a lot of work on ).
Re:Stop the XML madness (Score:2)
Err, that was meant to read "or who want to do a lot of work on <your-favourite-distributed-computing-project-her
Note to self: use Preview.
Hold the front page : MS-DOS faster than XP (Score:1)
Well done, you won't mind if I don't eat my words.
Re:Hold the front page : MS-DOS faster than XP (Score:2)
Re:Stop the XML madness (Score:1)
most everyday programs have finished by then, let alone just started.
Re:Stop the XML madness (Score:2)
Only incredibly small & simple shell type utilities have typical lifespans of the order of seconds or less. And I'll agree that Java is not a suitable technology for those. Unless you use an ahead-of-time compiler, of which there are plenty available now, at which point startup times will be on a similar order to those you'd expect from C code (ie mil
oh, you're a luser (Score:2)
Re:oh, you're a luser (Score:2)
You obviously don't know me, so please refrain from making comments like that.
It seems from your posts that you're an anti-xml and anti-java zealot. I can't tell much more than that, but you only seem to consider the negative problems that these technologies have and not the positive (hint - no technology is perfect for every application: XML is designed for open interchange of complex structured data in a human readable format, Java is designed for rapid development of long-lived applic
Re:oh, you're a luser (Score:1)
Java : Write once, lose everywhere.
Well done, you know some stuff.
lusers use applications, that's the difference.
Re:oh, you're a luser (Score:2)
lusers use applications, that's the difference.
And I suppose you never use an application?
Re:Beautiful (Score:4, Funny)
True, but would you want to see 'XML the Movie' ?