Axel Hecht Mozilla in Your Language

October 20, 2006

Why RDF?

Filed under: RDF — Axel Hecht @ 11:04 am

As brendan has asked, here goes my reasoning why Firefox should have RDF, independent of what other browsers do. Or at least the part that I didn’t forget.
The main difference is the extensions ecosystem that makes Firefox such a great browser. Extensions come and go, they change, and they interact with the user and the browser. Spot the missing arc? I haven’t seen a whole lot extensions out there making use of each other. But they should. They shouldn’t have to depend on each other, they should just be a tad happier and snappier when the buddy they know about is there.

Why would that be a reason to use RDF? Because the strong point of RDF is the ability to gather assertions from independent sources and to through them together independent of whether they belong together or not. RDF doesn’t require the data to be connected, essentially, which enables you to mumble stuff about stuff that don’t necessarily make sense in that context, but are way cool if you add a few arcs that somebody else knew.

I’m convinced that we will see a new stage of development in our ecosystem if we enable this loose communication. Yes, because despite the fact that we have an RDF implementation, and that we’re using an RDF/XML file to describe extension metadata (install.rdf, which really has more information in it than just install stuff already), we’re not permitting information not targetted at the extension manager itself to survive. For reasons that make a great other post, tentatively titled “a bunch of nonos”. But hey, install.rdf is there, and we should use it. Dictionaries used to fall back to install.js, before we actually hacked dictionary support into extensions. Or say, an there is an extension that does a whole bunch of stuff to make a particular site even better. And if it could install a greasemonkey script, it could even …. . Why would anyone have to check if greasemonkey is installed and if it knows about your script, and whatnot, when just adding an arc to install.rdf would be good enough to enable greasemonkey to just grab those when it’s there? Microsummaries are similar. Anything that is “small helper text file for big cool feature.”

So much for the extensions itself, another good use I see are community building extensions, we all know Matthew is going to jump up and down here. Anything that wants to work on relations of stuff could choose to use an RDF backend.

I personally don’t see any good model for communicating information between microformats parsers and microformats consumers than something that will at least looks and smells like RDF.

That said, I’m not of the opinion that Everything should be done in RDF. I don’t want to solve sparse systems of linear equations by using SPARQL queries on a world-spanning assertions store. Use the right tools and concepts at the right place.

We’re lucky to have a dynamic and agile ecosystem, with players going in and out, and RDF is made to model that. That’s why we want it, and others may not. IMHO.

October 19, 2006

make this semantic

Filed under: RDF — Axel Hecht @ 4:12 pm

Brendan’s recent post caused a few ripples. Not necessarily in the world, but at least in the pond of Out of context, a few statements from my POV.

  • Decisions on RDF in Mozilla are made now.
  • There are folks using RDF. Not necessarily from JS.
  • I’m not creating the RDF implementation for Mozilla 2.
  • Neither is bsmedberg.
  • There is no implementation of an RDF standard in Mozilla. It’s closer to, say -//Netscape Comm. Corp.//DTD HTML//EN than to -//W3C//DTD HTML 4.01//EN.
  • The attack surface of the existing RDF implemention is not in C++, but in it’s design decisions.

What I’m doing? I’m still hoping to see a design discussion that is open to participants with other goals than “kill RDF first”. And to participate in this discussion, I’m working on at least enough code so that one can seriously evaluate that option.

I’ll continue to do snippets posts on particular aspects in the near future, I have drafts in my head talking about attack surface in terms of design decisions, good uses or RDF in Mozilla, pointing at some bad examples of using RDF (/XML), too.

October 17, 2006

sneak preview

Filed under: RDF — Axel Hecht @ 1:42 pm

Letting all the overall agenda aside, how does this sound?

js> ds = new RDFSimpleTripleDataStore();
js> em = new RDF.Vocabulary('urn:x-moz:em#');
js> ds.assert(RDF.resources[document.location], em.title,
               RDF.getLiteral("Some English string", null, "en-US"));
js> c = ''; ds.forEach(function(t) {c += t;}); c
   <about:blank> <urn:x-moz:em#title> "Some English string"@en-US.

Powered by WordPress