W3C home > Mailing lists > Public > semantic-web@w3.org > September 2008

Re: Plan3 — A Procedural RDF Programming Language

From: Sean B. Palmer <sean@miscoranda.com>
Date: Wed, 24 Sep 2008 14:07:29 +0100
Message-ID: <b6bb4d890809240607v6d07d89du607d4b19ebf2894e@mail.gmail.com>
To: "Niklas Lindström" <lindstream@gmail.com>
Cc: semantic-web@w3.org
On Wed, Sep 24, 2008 at 1:14 PM, Niklas Lindström wrote:

> Not the least since I recently toyed with the idea of an imperative,
> somewhat functional cross between Python and N3.

Note that ideas of such hybrids go back to at least 2001, when Dennis
Quan worked on N3Script, which later got incorporated into Adenine:


> The gist of it is: an imperative language where all datatypes
> are RDF-based, and the runtime context is a graph

What I like most about this sort of thing is that it considers where
programming languages are going in general. They started out as little
more than mathematical formulæ, but in a kind of Lakoffian sense
they've become embodied as the computer has evolved to interact with
the world more.

So low-level programming languages deal with registers and so on, and
object oriented abstractions provide a kind of ramshackle ontological
system which which to manipulate more human things.

RDF's own ramshackle ontological system may miss the sweetspot between
good design and ample utility, but that hasn't precluded prototype
based systems and duck typing and all the other interesting ideas
popping up amongst mainstream programming languages.

With plan3, I was kinda hoping to be able to bring some of these
innovations into the RDF world to see if I could ease the RDF pain. As
you probably know, Pluvo was a prototype based language; but after
seeing how Perl6 does things, that changed my mind about the direction
of programming languages in general. There are probably some nifty
things to come, and competing under the burden of an RDF tax makes it
doubly untenable.

On the other hand, there's an interesting analogy with natural
language that one can make. When I cobble together a constructed
language, normally I make it isolating and non-inflected, with no
grammatical gender or any of the things that I don't particularly
like. But one day I got entangled in a project which was developing a
language with lots of features that I don't particularly like. Though
I still don't particularly like them, I really enjoyed working on that
language; and I think the same thing is true of the whole plan3
experience—it's an enjoyable idea, even if it's misguided. There's
plenty that can be intellectually salvaged from the rubble.

> I don't know yet if I'd like for it to be a general-purpose language
> or mainly for RDF extraction

Well, I'd certainly recommend concentrating on the general-purpose
aspects of your language. There is obviously a place for specialised
languages, but in general I think that if you're spending so much
effort as to create a whole programming language, then you really
ought to be using it every day to justify the effort cost.

Also, why not aim to invent the future? There are loads of nifty
programming language ideas out there, and getting bogged down in
making an RDF extraction language seems a very niche thing to do in
light of that.

This reminds me of a conversation I had recently with a lisp addict
about perl6. Whenever I said "oh, plus I really like $feature in
perl6", the lisp addict would go "oh yeah, we've had that in lisp for
about a decade now". Every single thing, he had a lisp equivalent to.
At the end, I was thinking well, if only lisp's overall design didn't
suck so much, perhaps perl6 wouldn't be necessary then. It's a craft
to know about programming language features, but weaving them into a
coherent and usable whole is an art.

Sean B. Palmer, http://inamidst.com/sbp/
Received on Wednesday, 24 September 2008 13:08:05 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:09 UTC