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

From: Boroondas Gupte <[email-masked]>
Date: Mon, 09 May 2011 22:36:25 +0200

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

---

From: Dzonatas Sol <[email-masked]>
Date: Mon, 09 May 2011 15:57:48 -0700

On 05/09/2011 01:36 PM, Boroondas Gupte wrote:
>
> *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?*

http://www.w3schools.com/dtd/

We know Meadhbh wants DSD and we obviously can avoid DTD in every 
message. I see the main pivot that Meadhbh wants is less symbology, yet 
that still means a solution for others. I'm thinking something like the 
XML2RFC editor has an ideal solution, but I'm scientist, so it's not my 
pen to determine that way.

>       typical virtual world data in mind.)

It's very flexible, however people often don't know how to implement 
optimizations properly. They usually just present the end result, like 
LLSD. Consider something like SVG/XHTML, and there should be no 
complaints of what is possible. We could express this more in terms of 
ontology with WebGL and likewise and maybe the ideal more clique-in.

>     * Is it extensible? How does the extension mechanism work?

If some definition doesn't work, then we could put XSL+DTD into the 
works to transform and extend.

>    *

Serialize XML data?  Easy, just remove the tags. I don't know why people 
consider XML as THE serialized data. XML just helps format the data.

>     * How entangled is the ATS itself with the serializations?

I think people use XML the wrong way and abuse it. When people add 
attributes to XML tags not for flow issues, then that usually is a sign 
of XML abuse.

>     * How simple is it? (Both conceptually and for implementors of

Consider the example:
--------------------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
--------------------------------------------------------

When serialized looks like this:
--------------------------------------------------------

Tove
Jani
Reminder
Don't forget me this weekend

--------------------------------------------------------

The reader only needs to apply the DTD to deserialize back into XML.

There are differences between "strict" DTD and non-strict.  Strict typed 
allow dynamic placement of data such the DTD only has to specify the 
types once. The reader parsers the data and translates them into types. 
That level of transmission and optimization should be negotiable, however.

Why is this WG concerned with reinventing ASCII?  For those that don't 
know we could say that means Abstracted Serialized Codex 
Internationational Interchange, yet we still deal with backword 
compatibility to double nybble types (DNT).

-- 
--- https://twitter.com/Dzonatas_Sol ---
Web Development, Software Engineering, Virtual Reality, Consultant

---

From: Morgaine <[email-masked]>
Date: Tue, 10 May 2011 00:07:57 +0100

On Mon, May 9, 2011 at 9:36 PM, Boroondas Gupte
<[email-masked]>wrote:

> 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*  --- http://en.wikipedia.org/wiki/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":
http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats .  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. :-)

Morgaine.

=======================

On Mon, May 9, 2011 at 9:36 PM, Boroondas Gupte
<[email-masked]>wrote:

> No mystery there, it has been so for decades of common usage in Computing.
> :-)
>
> Aye, that phrase has been in use for as long as types systems have existed.
>
>
> basis for decisions, it'd be useful to have some overview. So my question
> is:
> 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?*
>
>    - 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.)
>
> _______________________________________________
> vwrap mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/vwrap
>
>

---

From: Joshua Bell <[email-masked]>
Date: Mon, 9 May 2011 16:50:44 -0700

> if they are, that's a plus.)* and how do they compare to LLSD?*

This is an excellent question.

For what it's worth, it's possible that at least the first part of this
question has been explored as it relates to virtual worlds by the IEEE P1828
working group http://standards.ieee.org/develop/project/1828.html on virtual
worlds. I'm on the mailing list (as are some other VWRAP list members, I
believe) but confess to not having spent any significant time engaged with
the group.

What I do know is that P1828 members have performed a number of technology
surveys. The working group is not focused on any particular architecture for
virtual worlds (as chartered, VWRAP has a fairly specific approach in mind),
and is instead looking broadly at possible technologies to embrace as "best
practices" for virtual worlds. The P1828 working group's discussion list is
http://listserv.ieee.org/cgi-bin/wa?A0=VWSTANDARDWKGRP - you might find it
worthwhile to peruse archives and/or engage in discussions with that group
regarding this and other issues where consensus on a new or converging
design is not the driving factor (as it tends to be within IETF groups) but
exploring existing technologies for suitability within a problem domain.

NOTE: The IEEE doubtless has different intellectual property rules applying
to discussion on its lists than the IETF, so make sure to read whatever
equivalent of the Note Well exists over yonder.

-- Josh

---

From: Dzonatas Sol <[email-masked]>
Date: Mon, 09 May 2011 17:05:50 -0700

On 05/09/2011 04:07 PM, Morgaine wrote:
> <[email-masked] <mailto:[email-masked]>> wrote:
>
>
> Fantastic question!� It could easily form the basis of a worthy MSc 
> thesis too. :-)
[...]

As much as I would want to agree with you there, I think you overlooked 
that would not be democratical to Science of the Letters, so I cannot.

I hope the chairs take note of this stand.

--

---

From: Morgaine <[email-masked]>
Date: Tue, 10 May 2011 05:15:04 +0100

Joshua, it was interesting to read in the P1828 working group's description
that they are concerned with "interoperability of avatars and objects
between and among virtual world environments".  That could apply just as
well to us.

Do you recall whether the P1828 group has a concept resembling our shared
asset services to achieve that?

Morgaine.

=======================

On Tue, May 10, 2011 at 12:50 AM, Joshua Bell <[email-masked]> wrote:

> On Mon, May 9, 2011 at 1:36 PM, Boroondas Gupte <
> [email-masked]> wrote:
>
> working group http://standards.ieee.org/develop/project/1828.html on
> virtual worlds. I'm on the mailing list (as are some other VWRAP list
> members, I believe) but confess to not having spent any significant time
> engaged with the group.
>

---

From: "Robert G. Jakabosky" <[email-masked]>
Date: Mon, 9 May 2011 21:26:04 -0700

On Monday 09, Joshua Bell wrote:
> > though if they are, that's a plus.)* and how do they compare to LLSD?*
> 
> question has been explored as it relates to virtual worlds by the IEEE
> P1828 working group http://standards.ieee.org/develop/project/1828.html on
> surveys. The working group is not focused on any particular architecture
> for virtual worlds (as chartered, VWRAP has a fairly specific approach in
> mind), and is instead looking broadly at possible technologies to embrace
> as "best practices" for virtual worlds. The P1828 working group's
> discussion list is http://listserv.ieee.org/cgi-bin/wa?A0=VWSTANDARDWKGRP
> - you might find it worthwhile to peruse archives and/or engage in
> discussions with that group regarding this and other issues where
> consensus on a new or converging design is not the driving factor (as it
> tends to be within IETF groups) but exploring existing technologies for
> suitability within a problem domain.

I talked with chairperson of that IEEE working group and he said that the 
archive it only accessible to members of that working group, but there is a 
public wiki with some information from the group:
http://www.metaversestandards.org/index.php?title=Main_Page

-- 
Robert G. Jakabosky

---

From: Morgaine <[email-masked]>
Date: Tue, 10 May 2011 14:54:13 +0100

Thanks for finding the P1828 wiki, Robert.

I looked through it to try to answer my question about whether they talk
about anything like our shared asset services, but the wiki seems to be
mostly full of placeholder terms and external references, which is in line
with what Joshua said about technological surveys.

Notice that even our VWRAP group is part of their scope.  Under *Existing
Working Groups* --> *Groups Developing Standards* --> *VWRAP*, they link the
article that Joshua, David and I wrote for IEEE Internet Computing magazine
in Feb 2010:
http://internetmessagingtechnology.org/pubs/VWRAP-for-Virtual-Worlds-Interoperability-mic2010010073.pdf

It'll be interesting to see what they do in this space once it goes beyond
technology surveys.

Morgaine.

======================

On Tue, May 10, 2011 at 5:26 AM, Robert G. Jakabosky
<[email-masked]>wrote:

> published
> > P1828 working group http://standards.ieee.org/develop/project/1828.htmlon
> > discussion list is
> http://listserv.ieee.org/cgi-bin/wa?A0=VWSTANDARDWKGRP

---

From: "Robert G. Jakabosky" <[email-masked]>
Date: Mon, 9 May 2011 18:59:45 -0700

> suitability within a problem domain.

The archive is to not be publicly accessible, it seems you have to subscribe 
to the list before you can access it.

-- 
Robert G. Jakabosky