> 2009/12/10 Michael Turner <[log in to unmask]>:
>> Linas wrote:
>> Can you point me to the best place to pick up the thread of that
>> discussion? I'd really like to get the perspective of experienced
>> cognitive modelers on Erlang.
>
> Err ... some background, then--
> -- erlang is occasionally discussed on lambdatheultimate and seems to
> get an almost entirely positive response (the negative being its
> obscurity)
>
> -- I recently skimmed a combined interview of the main erlang & haskell
> dvelopers, where they compared, contrasted, threw barbs at each other
> and also nodded in agreement Google for this, it might help provide
> some warm fuzzies.
You're probably talking about this video: Joe Armstrong (Erlang) and Simon
Peyton Jones (Haskell).
http://www.infoq.com/interviews/armstrong-peyton-jones-erlang-haskell
Here and there, I found myself thinking, "oh, grow up!" However, it was
enlightening to hear both Jones and Armstrong question whether their
languages would survive and thrive (a good question), or simply be highly
influential (no doubt on that score -- both already have been.) Their
calmly registered doubts reflect a relatively mature perspective on what's
likely to be their respective main accomplishments in life. It also tells
me I'm not worried about nothing when I worry I'm writing something nobody
else will ever pick up, sincer Erlang might wither on the vine, or live on
only in niches far from what WG concerns itself with.
The two languages might be roughly equivalent for purposes of building
cognitive grammar testbeds. For all I know, Haskell might be worse as
technology for WG, but better socially: it's distinctly more academic in
style, from its base concepts on up to its leading lights, and, however
much I'd like to see practical WG-based apps, WG seems far more likely to
be perpetuated in academia for the time being.
Well, it doesn't matter so much, right now. What matters is getting
things working at all. As I'm sure you're well aware.
> -- as to opencog, I dont' recall if we talked about it in emails, we
> did via IRC. But let me be very clear: the interest has nothing at
> all to do with cognitive-anything in erlang -- rather, its having to
> do with parallel programming for multi-core cpus, and distributed
> programming across many cpus on the net.
That's part of my interest, too. It's looking far ahead, perhaps -- to
where WG has come to matter so much in some real academic modeling effort
or real-world application that you'd need compute-cloud-like processing
power. Still, it's nice to be able to claim scalability upfront, because
people will be asking anyway. In the meantime, it's also theoretically
important, because there's much in WG that claims legitimacy by way of
neuro-psych results, and the brain is a big bunch of asynchronous
communicating processes, after all.
> (and erlang's
> 'fault-tolerance' -- dealing with machines that go offline, networks
> that flake out, etc). That is far and away the #1 reason to be
> interested in erlang.
I'm not thinking at all about what happens if a big WG net suffers a
"stroke", though it's nice to know that Erlang is good at fault-tolerance.
I am, however, interested in how you might make a WG net "rethink" or slap
its forehead, or simply respond in any way to new information on the fly:
i.e., non-monotonic things interrupting or cancelling what is otherwise a
monotonic inference process. And because of that, I'm intrigued with
Erlang's "software hotswap" aspect.
To be sure, WG language networks will be ultimately represented as data.
However, Erlang is (as Armstrong points out at one point where he gently
goads Peyton-Jones) quite good for turning data into specialized code --
it's almost like Lisp in that respect. And you might want to do something
like that on the fly. (Yes, I know, that bete noir of "self-modifying
code" again, run away, run away! But what is just-in-time compilation,
after all? And look how important it has become.)
OK, this is getting w-a-y too geeky for most people on this list.
> On the cognitive side, opencog is (almost) completely detached from
> the underlying programming language. That's because opencog
> represents all of its data as (hyper-)graphs, and these hypergraphs
> form networks -- are used to represent is-a, has-a, 'semantic'
> relations, or syntactic relations like subj, obj, etc. or first-order
> logical assertions, or set membership, or implications of various
> sorts, deduction rules, etc. All of this is represented independent of
> the programming language -- and you can get to, and manipulate these
> structures, in C++ or scheme, or python, (and maybe erlang, someday,
> or potentially other langauges)
That is, of course, the right way to do it.
It would be interesting to see what opencog has in common with WG. And
where the differences are as well. There's more than one way to skin
these sorts of cats, so perhaps many of the differences are superficial.
I wouldn't be at all averse to using some subset of opencog storage format
conventions to represent WG nets, if there's enough conceptual alignment.
And if you're interested in how WG currently represents conceptual schema,
I can certainly keep you informed, to the best of my (limited) ability.
What remains in any case: the cat's resisting getting skinned.
Regards,
Michael Turner
[log in to unmask]
+81 90 5203 8682
www.tamaryokan.com
"Love does not consist in gazing at each other, but in looking outward
together in the same direction." -- Antoine de Saint-Exupery
|