Re: [mmox] More LLIDL questions
"Hurliman, John" <john.hurliman@intel.com> Fri, 20 February 2009 06:50 UTC
Return-Path: <john.hurliman@intel.com>
X-Original-To: mmox@core3.amsl.com
Delivered-To: mmox@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2E6DC3A672F for <mmox@core3.amsl.com>; Thu, 19 Feb 2009 22:50:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.004
X-Spam-Level:
X-Spam-Status: No, score=-6.004 tagged_above=-999 required=5 tests=[AWL=-0.005, BAYES_00=-2.599, J_CHICKENPOX_35=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TVE18s39NIM1 for <mmox@core3.amsl.com>; Thu, 19 Feb 2009 22:50:23 -0800 (PST)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by core3.amsl.com (Postfix) with ESMTP id 07B853A68F7 for <mmox@ietf.org>; Thu, 19 Feb 2009 22:50:22 -0800 (PST)
Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 19 Feb 2009 22:44:15 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.38,239,1233561600"; d="scan'208";a="667101219"
Received: from rrsmsx602.amr.corp.intel.com ([10.31.0.33]) by fmsmga001.fm.intel.com with ESMTP; 19 Feb 2009 22:54:30 -0800
Received: from rrsmsx002.amr.corp.intel.com (10.31.0.34) by rrsmsx602.amr.corp.intel.com (10.31.0.33) with Microsoft SMTP Server (TLS) id 8.1.311.2; Thu, 19 Feb 2009 23:50:37 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx002.amr.corp.intel.com ([10.31.0.34]) with mapi; Thu, 19 Feb 2009 23:50:36 -0700
From: "Hurliman, John" <john.hurliman@intel.com>
To: "Meadhbh Hamrick (Infinity)" <infinity@lindenlab.com>
Date: Thu, 19 Feb 2009 23:50:31 -0700
Thread-Topic: [mmox] More LLIDL questions
Thread-Index: AcmTEuolzM7t7FGNS7WNht4/Z/BtuwAFIDiQ
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D50262E1E@rrsmsx506.amr.corp.intel.com>
References: <62BFE5680C037E4DA0B0A08946C0933D501FE18E@rrsmsx506.amr.corp.intel.com> <80E946E9-5C62-4E00-BE8C-A15513898F99@lindenlab.com> <62BFE5680C037E4DA0B0A08946C0933D50262DA8@rrsmsx506.amr.corp.intel.com> <50FD3E60-C7D4-4ACC-94BF-E05565A36D14@lindenlab.com>
In-Reply-To: <50FD3E60-C7D4-4ACC-94BF-E05565A36D14@lindenlab.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "mmox@ietf.org" <mmox@ietf.org>
Subject: Re: [mmox] More LLIDL questions
X-BeenThere: mmox@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Massively Multi-participant Online Games and Applications <mmox.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmox>
List-Post: <mailto:mmox@ietf.org>
List-Help: <mailto:mmox-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 Feb 2009 06:50:24 -0000
Ah, that would work too. In fact, my reading of the draft says that [ string, string ... ] Would accomplish exactly that. >-----Original Message----- >From: Meadhbh Hamrick (Infinity) [mailto:infinity@lindenlab.com] >Sent: Thursday, February 19, 2009 8:23 PM >To: Hurliman, John >Cc: mmox@ietf.org >Subject: Re: [mmox] More LLIDL questions > >good eye john. > >yes, the purpose of the list is to provide an array of first_name, >last_name pairs. however... yes... it is an improperly formed array. >it was supposed to be > >[ string ... ] > >with the understanding that the array SHOULD contain an even number of >entries, odd entries representing an avatar's first_name, even entries >representing an avatars last_name. > >-cheers >-meadhbh > >On Feb 19, 2009, at 5:56 PM, Hurliman, John wrote: > >> Great, thank you for the quick responses on all of these questions. >> Keeping the implementation private is a good way to test the >> accuracy of the draft and determine if it explains the concepts well >> enough. For the most part it seems reasonable, but there are parts >> that I've scratched my head at. Generating strongly typed classes in >> C# from LLIDL leaves a lot of unnamed ("anonymous", in C#-speak) >> variables. >> >> Last question. I found this snippet of LLIDL from the agent login >> draft proposal on the Second Life wiki: >> >> agents: [ first_name: string, last_name: string ... ] >> >> Is that valid LLIDL, or should it be: >> >> agents: [ { first_name: string, last_name: string } ... ] >> >> Allowing key:value pairs in arrays seems to defeat the purpose of >> the map type. >> >> John >> >>> -----Original Message----- >>> From: mmox-bounces@ietf.org [mailto:mmox-bounces@ietf.org] On >>> Behalf Of >>> Mark Lentczner >>> Sent: Thursday, February 19, 2009 5:16 PM >>> To: mmox@ietf.org >>> Subject: Re: [mmox] More LLIDL questions >>> >>> On Feb 18, 2009, at 12:39 PM, Hurliman, John wrote: >>>> ; An LLSD value containing { member1 : true, member2 : true } comes >>>> in. Is member3 a string or an int? >>>> &a = { member1 : true, member2 : false, member3 : string } >>>> &a = { member1 : false, member2 : true, member3 : int } >>> >>> In our LLIDL implementation, if you matched that LLSD against the >>> LLIDL value "&a", with those variants in scope, the answer would come >>> back INCOMPATIBLE. This is because no variant matched the value. In >>> the case of the selectors in LLIDL, they all need to match. >>> >>> Had the variants been: >>> &a = { member1: true, member3: string } >>> &a = { member2: true, member3: int } >>> >>> The answer would be MIXED. This is because the actual value matched >>> each variant with the same result: In each case, the the data had >>> parts that were ADDITIONAL (member2 or member1), and parts that were >>> DEFAULTED (member3). The state of having both DEFAULTED parts and >>> ADDITIONAL parts is MIXED. Matching variants returns the best match, >>> but in this case they were both MIXED, so the result is MIXED. >>> >>> Hope that was clear. >>> >>> Please note: The notion of returning a confidence level from a LLIDL >>> to actual LLSD match is a function of our library, not part of the >>> specification. This was intentional: LLSD is defined in such a way >>> that given *any* LLSD, and code that expects any particular structure >>> - the code can safely extract values, receiving defaults if things >>> don't match as expected. Hence, LLIDL isn't a way of expressing a >>> hard >>> "go/no-go" conformance, it is a way of expressing what is expected. >>> >>>> ; How is a parser supposed to handle this? >>>> &b = { $ : &b } >>>> ; Or this? >>>> &c = { $ : &d } >>>> &d = { $ : &c } >>> >>> We could declare recursive LLIDL is illegal. It isn't too hard to >>> detect. On the other hand, since LLSD data values can't be recursive, >>> even if you have a recursive LLIDL description, any actual match >>> operation is bounded. Our implementation handles recursive LLIDL and >>> it took no extra work to do so. >>> >>>> ; The first variant has the type uri. The second variant has the >>>> type string? >>>> &e = uri >>>> &e = "http://www.google.com/" >>> >>> The second doesn't have the type string, it is a selector of a >>> specific string. Here's how our LLIDL would match these LLSDs: >>> string "http://www.google.com/" --> MATCHED (matches the selector >>> exactly) >>> string "http://www.example.com/" --> CONVERTED (convertable to a >>> uri) >>> uri "http://www.google.com/" --> MATCHED (matches the type uri) >>> uri "http://www.example.com/" --> MATCHED (matches the type uri) >>> string "" --> INCOMPATIBLE (neither matches the specific selector >>> string, nor is a reasonable conversion to uri) >>> >>> The notion of "reasonable conversion" is going to be implementation >>> specific, since LLSD defines a result no matter what is converted to >>> what. In our case, we took the notion that if the transmitted value >>> only converts to the desired value via a defaulting, well, then, that >>> doesn't really increase the confidence in the match. (There is some >>> subtlety in our choices here... I can go into it more if you like.) >>> >>>> ; Forward-slash seems like an odd addition to 0-9+A-Z. Why this >>>> character? >>>> &f/ = "hello slash" >>> >>> As a trailer, sure, but we like using slash as a name space delimiter >>> in our protocols for resource names, member names, fixed selector >>> strings, and, as you indicate, selector names: >>> >>> %% thing/operation_x >>> -> { id: uuid } >>> <- { name: string, system_a/count: int, system_b/count: int, >>> system_c: >>> &system_c/info } >>> >>> &system_c/info = { name: string, count: int } >>> &system_c/info = { name: string, count: real, extended: true } >>> >>> - Mark >>> >>> >>> Mark Lentczner >>> Sr. Systems Architect >>> Technology Integration >>> Linden Lab >>> >>> markl@lindenlab.com >>> >>> Zero Linden >>> zero.linden@secondlife.com >>> >>> >>> >>> >>> >>> _______________________________________________ >>> mmox mailing list >>> mmox@ietf.org >>> https://www.ietf.org/mailman/listinfo/mmox >>> >> _______________________________________________ >> mmox mailing list >> mmox@ietf.org >> https://www.ietf.org/mailman/listinfo/mmox >
- [mmox] More LLIDL questions Hurliman, John
- Re: [mmox] More LLIDL questions Mark Lentczner
- Re: [mmox] More LLIDL questions Hurliman, John
- [mmox] LLSD Charles Krinke
- Re: [mmox] LLSD Meadhbh Hamrick (Infinity)
- Re: [mmox] More LLIDL questions Meadhbh Hamrick (Infinity)
- Re: [mmox] LLSD Charles Krinke
- Re: [mmox] LLSD Meadhbh Hamrick (Infinity)
- Re: [mmox] More LLIDL questions Hurliman, John
- Re: [mmox] LLSD Charles Krinke
- Re: [mmox] LLSD Jesrad
- Re: [mmox] LLSD Charles Krinke
- Re: [mmox] More LLIDL questions Mark Lentczner
- Re: [mmox] LLSD Meadhbh Hamrick (Infinity)
- [mmox] LLSD and content schema Jon Watte
- Re: [mmox] LLSD and content schema Morgaine
- Re: [mmox] LLSD and content schema Meadhbh Hamrick (Infinity)
- Re: [mmox] LLSD and content schema Jon Watte
- Re: [mmox] LLSD and content schema Lisa Dusseault
- Re: [mmox] LLSD and content schema Jon Watte