Re: [vwrap] What abstract type systems already exist?

Morgaine <> Mon, 09 May 2011 23:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id EE9C0E0744 for <>; Mon, 9 May 2011 16:08:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.924
X-Spam-Status: No, score=-2.924 tagged_above=-999 required=5 tests=[AWL=0.052, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id DjHw+OZzvUXW for <>; Mon, 9 May 2011 16:07:59 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 7A3B4E072C for <>; Mon, 9 May 2011 16:07:58 -0700 (PDT)
Received: by qyk7 with SMTP id 7so4395701qyk.10 for <>; Mon, 09 May 2011 16:07:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=6DrLHHyKxY5wzzTorEMQTdqApQ1yA6EJcton0VMqPxs=; b=ISrrapvSB6rXUVfpoo088iTLoEZ2CBNgR75O6Apv3E/iihzBPBCJjKxigMdHw6kDtr guJtIUvfONVK7+X1Ir8rV26eTPDEblsJTIIpRaF3BL2U5Ppvub4vy37HOPXGIeYSYU9g bqTWnNgEXZysV5B2pG/ZjAqVSxdiYeOGb5Cl0=
DomainKey-Signature: a=rsa-sha1; c=nofws;; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=Kd4mPczQ8VDMiUKMJVGQTE8OTfkEnQFcmpO+pwfvk/eRHhwhEZIRdnEMNYA9DbYO/Q RhtTyzabY4P9sfRCn0w/DSvLZTo7c/2wdT4kQ6IyjTcK57mLxGX3Gq8BlXFa1y+40mSv eebf+CBRk2kCSDbJ1ptR36Uw6JJaMQgiAFE9Y=
MIME-Version: 1.0
Received: by with SMTP id h14mr5181994qcc.253.1304982477489; Mon, 09 May 2011 16:07:57 -0700 (PDT)
Received: by with HTTP; Mon, 9 May 2011 16:07:57 -0700 (PDT)
In-Reply-To: <>
References: <>
Date: Tue, 10 May 2011 00:07:57 +0100
Message-ID: <>
From: Morgaine <>
Content-Type: multipart/alternative; boundary=001636426b6b02483904a2dfe9d1
Subject: Re: [vwrap] What abstract type systems already exist?
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Virtual World Region Agent Protocol - IETF working group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 09 May 2011 23:08:02 -0000

On Mon, May 9, 2011 at 9:36 PM, Boroondas Gupte

> *What abstract type systems do currently exist *("exist" as in published
> and sufficiently documented. Don't have to be formally standardized, though
> if they are, that's a plus.)* and how do they compare to LLSD?*

Fantastic question!  It could easily form the basis of a worthy MSc thesis
too. :-)

For our purposes, since we have a very practical goal, I'll narrow this
response down to a very short one by eliminating all those that are
programming language-specific (many languages allow you to define your own
ADTs within them), and focus on the most popular language-agnostic ADTs that
have numerous implementations and language bindings.  It's going to be an
impressively short response because I'm just going to link to a useful
Wikipedia article. :P

It needs to be stated that because our interest is in practical
implementations only, in practice your question becomes almost identical to
asking about popular serialization systems.  Behind every serialization
system there is a types system, but the opposite is not necessarily true.

Before I do that though, let me point out the single most widely deployed,
best documented, and most standardized abstract types and serialization
system on the planet, which also happens to be one of the oldest on the
Internet, *ASN.1*  --- (official
standards documents are linked in the article).

How does ASN.1 compare to LLSD?  It's hugely more flexible, much more
efficient, arbitrarily extensible, and unlimited in the precision of its
primitive types.  (The recent newcomers Protocol Buffers and Thrift actually
borrow quite a few tricks from it.)

Beyond that, take a quick look at the Wikipedia article on "Comparison of
data serialization formats", which lists a very useful selection of those
that are "notable": .  As
you'll note, quite a few of them have official standards, some informational
RFCs, and others have high popularity despite only informal documentation.

There is certainly no lack of candidates. :-)



On Mon, May 9, 2011 at 9:36 PM, Boroondas Gupte

>  On 05/08/2011 03:47 AM, Morgaine wrote:
> ADT means Abstract Data Type.
> [...]
> No mystery there, it has been so for decades of common usage in Computing.
> :-)
> On 05/09/2011 03:53 PM, Meadhbh Hamrick wrote:
> hmm... don't think me or mark lentczner coined the term "abstract type
> system." i was used by the OMG and Microsoft long before we used it.
>  On 05/09/2011 03:58 PM, Morgaine wrote:
> Aye, that phrase has been in use for as long as types systems have existed.
> As the concepts of both, ADTs and ATSs have apparently existed longer
> already than I assumed, I guess there must be ATSs other than LLSD. As a
> basis for decisions, it'd be useful to have some overview. So my question
> is:
> *What abstract type systems do currently exist *("exist" as in published
> and sufficiently documented. Don't have to be formally standardized, though
> if they are, that's a plus.)* and how do they compare to LLSD?*
> For each such ATS, it'd be useful to know:
>    - How flexible is it?
>    (Could it be used for VWRAP? For that, its set of types probably must
>    already be designed for general purpose or (like LLSD) with typical virtual
>    world data in mind.)
>    - Is it extensible? How does the extension mechanism work?
>     - Are there serializations defined for it? If so, which ones?
>    - How entangled is the ATS itself with the serializations?
>    - How simple is it? (Both conceptually and for implementors of
>    (de)serializers etc.)
> Once we have collected that, we'd be in a better position whether to use
> LLSD (as-is) or one of the other systems or whether to create our own
> (probably based on LLSD and/or other ones).
> Cheers,
> Boroondas
> _______________________________________________
> vwrap mailing list