Re: [core] Designs to resolve streaming issues in SenML

Michael Koster <michaeljohnkoster@gmail.com> Mon, 18 January 2016 17:30 UTC

Return-Path: <michaeljohnkoster@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 404DE1B3AF4 for <core@ietfa.amsl.com>; Mon, 18 Jan 2016 09:30:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.1
X-Spam-Level:
X-Spam-Status: No, score=0.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, J_CHICKENPOX_41=0.6, J_CHICKENPOX_44=0.6, J_CHICKENPOX_45=0.6, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RD-d70H6dZ5H for <core@ietfa.amsl.com>; Mon, 18 Jan 2016 09:30:50 -0800 (PST)
Received: from mail-pa0-x232.google.com (mail-pa0-x232.google.com [IPv6:2607:f8b0:400e:c03::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C22C91B3AF0 for <core@ietf.org>; Mon, 18 Jan 2016 09:30:50 -0800 (PST)
Received: by mail-pa0-x232.google.com with SMTP id yy13so344260913pab.3 for <core@ietf.org>; Mon, 18 Jan 2016 09:30:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=iCpK/bemi1O0BZPdw/tEwPVoDUaqT2/18gY1maprXv8=; b=m25EnJ7LqzmnEN3GySaFIY1QTyEzdRp7XHftbxaMsn4l5Vv7fUSUVg+HDRAKBkZh5s dOCfNADyvjwK4JnkNUChnWd90intpP3up7c/TWAS58q07Xi4kBJ7cLT6MRBQfHlWgMII 0qg49WV1Ms6R3PIgCIFJbFDaY06c6WPYb9YNkyX+KqYurufO1g3h4h0rTRegrHvXKYwk ABCqktLaXH2nWASQp5gKyWEWzlUV0J2tjdSKqoXeIyPNxfx1FL3mzuzUy7HPVNLrLWIA qvDCdzd4aG8k9pIGbQA2+edTtMpz1fgNyjPwhVKN+2+4dxW66scixBNc1kbHkjIiWISo cXQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=iCpK/bemi1O0BZPdw/tEwPVoDUaqT2/18gY1maprXv8=; b=c5Guy/ezVPZ7jNzET0t0kmIECiqVAC1LinV8900JNN1gWF0d1YLUMCf0E3INEjvHWR H7j9ikIrOlMjRVCj6L7pWpIWacjtUUXduP9Y5r8I3D+p+K6GGDfRNBBQdFQtxdXyyrNx IMZPdSWiI+B1v9Apr0PGhqi/+WQrck+virF9X+pBnGRMTQKisiSmvlncvLQfYE1W78an snO2oWfrpmB3Vg17Z5RKnK0nI9V3czQwgxzyfaWwy1n9g+nfPNtrRhQmeXuVpFG7K60N +ayt4XFJcyjlUiemy9AvhAIIIG6t+NMI/juxfGCiy1VFteiwSKqF3wb8B1V4OuG448u8 Y5xQ==
X-Gm-Message-State: ALoCoQnsJIn0QATjNOnYk1frkEk70rYd7a3f6uwKuNhnjGtGAA+0u44PMtZAqyxPbzOGY7j3NSuXjAs8GkeJky7SMC/jkWqOgw==
X-Received: by 10.66.219.98 with SMTP id pn2mr37740658pac.113.1453138250375; Mon, 18 Jan 2016 09:30:50 -0800 (PST)
Received: from [10.0.0.21] (108-201-184-41.lightspeed.sntcca.sbcglobal.net. [108.201.184.41]) by smtp.gmail.com with ESMTPSA id p66sm35357795pfi.34.2016.01.18.09.30.49 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 18 Jan 2016 09:30:49 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Michael Koster <michaeljohnkoster@gmail.com>
In-Reply-To: <20160118165811.GF7454@hephaistos.amsuess.com>
Date: Mon, 18 Jan 2016 09:30:47 -0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <EDC3E5A7-1577-4E03-8376-8766A1A65064@gmail.com>
References: <20160118110500.GA7789@hephaistos.amsuess.com> <1B2E05E6-1FA3-4AC4-95ED-E6045B6F94E0@gmail.com> <20160118165811.GF7454@hephaistos.amsuess.com>
To: Christian Amsüss <c.amsuess@energyharvesting.at>
X-Mailer: Apple Mail (2.2104)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ie4tyjQVYgq_ATBy08Re2eNykEw>
Cc: "Cullen Jennings (fluffy)" <fluffy@cisco.com>, core <core@ietf.org>
Subject: Re: [core] Designs to resolve streaming issues in SenML
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jan 2016 17:30:52 -0000

> On Jan 18, 2016, at 8:58 AM, Christian Amsüss <c.amsuess@energyharvesting.at> wrote:
> 
> Again a short reply before going through the full mail:
> 
> On Mon, Jan 18, 2016 at 08:23:00AM -0800, Michael Koster wrote:
>> {
>> "bn":"/3300/1/",
>> “i":[ {"n":"5700","v":"31.3"} ],
>> "l":[
>>  {"href":"","rel":"self","rt":"temperature core.s","u":"C"},
>>  {"href":"5700","rt":"currentValue","u":"C"}
>> ]
>> }
>> 
>> Base name, links, and items all are easily mapped to property names
>> using a simple JSON-LD context and can be understood and modeled 
>> by higher level tools as-is. Removing the “i” or “l” tags gives the modeling 
>> tool nothing to use to identify property instances (like base name, links, 
>> and items). This is extensible by adding new property  classes (element 
>> tags).
> 
> I'm curious: Is JSON-LD at all able to derive, from the above (I took
> the liberty to abbreviate and add a second rt), statements like
> 
> <http://.../3300/1/> a core:s, some:temperature ;
>    some:self <http://.../3300/1/>; core:unit "C" ;
> <http://.../3300/1/5700> a some:currentValue ;
>    core:grp <http://.../3300/1>;
>    some:value "31.3"
> 
> ? That would require matching the bn and n for URI concatenation and
> whitespace-splitting the rt attribute.
> 
JSON-LD needs JSON document format to start with, so I first transform 
link-format to link-format+json which makes multi-valued attributes an array. 

The tags are mapped to property names in the JSON-LD context using maps
like in this example context for my W3C WoT schema. 

"capabilities": {"@id": "ts:hasCapability", "@type": "@id"},
"actions": {"@id": "ts:hasAction", "@type": "@id"}
“events": {"@id": "ts:hasEvent", "@type": "@id"}
“properties": {"@id": "ts:hasProperty", "@type": "@id"}

@type:@id maps the key to a URI. for senml I might start with these 
maps in the context (where some is also defined somewhere).

“bn": {"@id": “some:baseURI", "@type": "@id"}
“i": {"@id": “some:collectionItems", "@type": "@id”}
“l": {"@id": “some:collectionLinks", "@type": "@id"}
“n": {"@id": “some:baseURI", "@type": "@id”}
“v": {"@id": “some:numberValue", "@type": "@id"}
“vs": {"@id": “some:stringValue", "@type": "@id"}
“vb": {"@id": “some:booleanValue", "@type": "@id”}

and define xsd types, etc. at the referenced URI in some namespace, 
but there are other ways that the tools could also comprehend.

> If it is possible -- great, and it might serve as a criterion for a
> bufferlessly parsable SenML that it can be transformed using JSON-LD.
> But as far as I remember, it can't do that even for -01, and unless that
> can be fixed, I don't see much of a point in using it as an example.
> 
> Best regards
> Christian
> 
> -- 
> Christian Amsüss                      | Energy Harvesting Solutions GmbH
> founder, system architect             | headquarter:
> mailto:c.amsuess@energyharvesting.at  | Arbeitergasse 15, A-4400 Steyr
> tel:+43-664-97-90-6-39                | http://www.energyharvesting.at/
>                                      | ATU68476614