Return-Path: X-Original-To: apmail-streams-dev-archive@minotaur.apache.org Delivered-To: apmail-streams-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A278011015 for ; Mon, 5 May 2014 16:54:45 +0000 (UTC) Received: (qmail 30306 invoked by uid 500); 5 May 2014 16:54:45 -0000 Delivered-To: apmail-streams-dev-archive@streams.apache.org Received: (qmail 30263 invoked by uid 500); 5 May 2014 16:54:44 -0000 Mailing-List: contact dev-help@streams.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@streams.incubator.apache.org Delivered-To: mailing list dev@streams.incubator.apache.org Received: (qmail 30253 invoked by uid 99); 5 May 2014 16:54:42 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 May 2014 16:54:42 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of steve@blackmon.org designates 209.85.128.176 as permitted sender) Received: from [209.85.128.176] (HELO mail-ve0-f176.google.com) (209.85.128.176) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 May 2014 16:54:38 +0000 Received: by mail-ve0-f176.google.com with SMTP id jz11so5396030veb.35 for ; Mon, 05 May 2014 09:54:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type:content-transfer-encoding; bh=26FEHHLki/1vfLVzT2yyXFJFkx/+g3GiGZqfP9AjG0M=; b=fVOH+k+Z3dY+6PyV666IHojUCP1acFaClwt+Ik8TZQ5F/FXNDJGhKgZph9P6xxsSX8 41cxleTpm1Ysgobh+uhT7uPSgKPgSSffPwxMZxqpmiwVqXfX4TichbYsAxItjDzW/uQE FfOqMQ8FGE5qUGofpc6Ar0pd5aKdEcJypni4LsHDJ2jWe4G2AaKli+mqfCob/wtvHl/c KgVglGMGSu+znOjTVcVjGgQGhHun3ifTOphrnSyNvXmLPYf+GdNqZE7REy1zCugosyzI O6BYweFcU0guyNq9mROzuRVLO52N6yacRFMZ31NMUFTNubjFIIa2Mh6PoApNVKgju6oh fHbQ== X-Gm-Message-State: ALoCoQlAshGPFzM5m26sv/PFObNuATIrk5Z6SwqPnwl4gCfjSNaPxXfknVEITysmk94sXpkgaK99 MIME-Version: 1.0 X-Received: by 10.58.75.114 with SMTP id b18mr997873vew.60.1399308854686; Mon, 05 May 2014 09:54:14 -0700 (PDT) Received: by 10.220.169.194 with HTTP; Mon, 5 May 2014 09:54:14 -0700 (PDT) X-Originating-IP: [204.57.79.12] In-Reply-To: References: Date: Mon, 5 May 2014 11:54:14 -0500 Message-ID: Subject: Re: New Generalized Extensions for ActivityStreams Schema From: Steve Blackmon To: dev@streams.incubator.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org I think it's a worthwhile exercise to attempt to standardize well-defined custom attributes across streams implementations. I think gender and authoritative metrics sourced from upstream (total shares, likes as of some point in time) fall into that category. I do think we should keep a barrier between a core activity (defined by published spec) and usage of activity with additional designated fields. I'd like to see a pattern where individual contributed modules can extend the core activity model and use bind-able jackson objects generated from schemas so other contributed modules with an asserted dependency can interact with the extended activity through a more specific typed interface. Since some of the specific concepts referred to in this thread are global in nature i.e. not aligned directly to any specific module, i suggest that we put the associated schema and supporting classes in a streams-pojo-extensions module, which implementers can use if they want to gain access to these fields, and not use if they prefer to work with objects directly from the spec. Steve On Thu, May 1, 2014 at 7:36 PM, Matt Franklin wr= ote: > On Tue, Apr 29, 2014 at 8:17 PM, Bill Christian wrote: > >> Not a fan of a generic 'extensions' collection. I have, though, found >> use in defining entities collection for items referenced in the >> content section. The style mimics the approach from App.net messaging >> schema. From your examples, this would only address hashtags, >> mentions, and urls. The gender of the author should be a custom >> attribute on the actor or object. However, an example might clarify. >> Aren't rebroadcasts consider downstreamDuplicates? >> > > I think rebroadcasts in this case are shares, retweets, etc. > > >> >> On Tue, Apr 29, 2014 at 12:20 PM, Robert Douglas [W2O Digital] >> wrote: >> > I=C2=B9m working on mocking up the new schema at the moment, but =C5= =92extensions=C2=B9 >> > would become a new top-level element in the json structure. Each of th= e >> > proposed extensions would then be a sub-element in that =C5=92extensio= ns=C2=B9 >> > element. >> > >> > On 4/29/14, 11:12 AM, "James M Snell" wrote: >> > >> >>In this proposal, how would these manifest in the json structure? >> >> >> >>On Tue, Apr 29, 2014 at 8:57 AM, Robert Douglas [W2O Digital] >> >> wrote: >> >>> Hi all, >> >>> >> >>> Given that there are certain attributes that are similar across >> >>>multiple social media feeds (ie. A =C5=92like=C2=B9 on Facebook, =C5= =92favorite=C2=B9 on >> >>>twitter, and =C5=92+1=C2=B9 on Google+ are all equivalent) I think it= makes sense >> >>>to break these out into generalized extensions. I=C2=B9d like to prop= ose the >> >>>following extensions: >> >>> >> >>> >> >>> * extensions.hashtags >> >>> * An array that holds an entry for each unique hashtag mention= ed >> >>>in a post >> >>> * extensions.likes.perspectival >> >>> * A boolean field that denotes whether or not this post was >> >>>favorited by another user >> >>> * extensions.likes.count >> >>> * The total number of likes a post received >> >>> * extensions.rebroadcasts.perspectival >> >>> * Whether or not this post was rebroadcasted >> >>> * extensions.rebroadcasts.count >> >>> * The total number of rebroadcasts this post received >> >>> * extensions.rebroadcasts.users >> >>> * An array that holds an entry for each user that rebroadcaste= d >> >>>this post >> >>> * extensions.user_mentions >> >>> * An array that holds an entry for each user that is mentioned= in >> >>>this post >> >>> * extensions.urls >> >>> * An array that holds an entry for each URL that is mentioned = in >> >>>this post. Each entry would have both the raw URL in addition to just >> >>>its domain >> >>> * extensions.gender >> >>> * The gender of the author >> >>> >> >>> What are everyone=C2=B9s thoughts? >> >>> >> >>> Thanks, >> >>> Robert Douglas >> > >>