Web Payments Community Group Telecon

Minutes for 2012-03-20

  1. PaySwarm Reference Implementation
  2. Vocabulary Review - Commerce
  3. Commerce Vocabulary Classes
  4. Commerce Vocabulary Constants
  5. Commerce Vocabulary Properties
Manu Sporny
Dave Longley
Dave Longley, Manu Sporny, David I. Lehn, David Nicol, Jeff Sayre
Audio Log
Dave Longley is scribing.
Manu Sporny: The above link is for the day's agenda.
Manu Sporny: We'll be going over some vocabularies related to payswarm.

Topic: PaySwarm Reference Implementation

Manu Sporny: Skipping this because there aren't any people that haven't seen it on the call.
Manu Sporny: We're going to first discuss the commerce vocabulary.

Topic: Vocabulary Review - Commerce

Manu Sporny: The main thing to try and understand with this vocabulary is to see what we might be able to get rid of (cut down) or things we might want to consolidate into the vocab.
David I. Lehn: that's the latest one. we should look at that
Manu Sporny: so we'll go from the top-level classes down into the constants and properties.

Topic: Commerce Vocabulary Classes

Manu Sporny: Deposit, Account, Payee, all straightforward and needed.
Dave Longley: PayeeRule is necessary, we use it - tells us what people allow to be tacked on to the prices they list... [scribe assist by Manu Sporny]
Manu Sporny: Wo we're keeping all of the classes in the commerce vocab.
Manu Sporny: Are there any classes we need to be adding to the vocab?
Manu Sporny: Last week we discussed the security vocab and it needed some work, but commerce seems fairly solid.
Manu Sporny: Would credit card, banking account go in here?
Manu Sporny: One specifically for each.
Dave Longley: We might also wrap all of the payment methods into a Payment vocab.
Dave Longley: We were also talking about a 'pay' vocabulary and wrapping those things up into a single vocabulary - credit cards, banking information, etc. [scribe assist by Manu Sporny]
Manu Sporny: So we can talk about the pay vocab and the credit card vocab at the same time later.

Topic: Commerce Vocabulary Constants

Manu Sporny: On to the constants listed in the vocab...
David I. Lehn: Our code has Exclusive/Inclusive w/o the "Percentage" extension
Dave Longley: We use all of the constants in the vocabulary now... so we don't need to get rid of any of them. We have made some changes - we don't have exclusivePercentage and inclusivePercentage anymore... I think we just have percentage [scribe assist by Manu Sporny]
Dave Longley: We have 'rate' and 'rateContext' now... 'rateContext' specifies how you understand the rate [scribe assist by Manu Sporny]
Dave Longley: Exclusive percentage is something like a sales tax... [scribe assist by Manu Sporny]
Dave Longley: Inclusive percentage is a way of calculating the total w/o modifying the total... so if you want the article to be $0.05 - payee rule w/ inclusive percentage of 2% would mean the article will always be $0.05... [scribe assist by Manu Sporny]
Manu Sporny: Exclusive percentage, add on to the total, inclusive percentage doesn't modify the total, it breaks up the percentages within the total for different destinations.
Dave Longley: 'rate' can only be percentage or flat amount [scribe assist by Manu Sporny]
Dave Longley: 'rateContext 'determines how 'rate' is used to calculate the final amount. [scribe assist by Manu Sporny]
Manu Sporny: We don't have how to resolve payees in the specs anywhere, right now, right? [scribe assist by Manu Sporny]
Dave Longley: Yeah, we need to add that to the specs. [scribe assist by Manu Sporny]
Dave Longley: Commerce spec should be changed to remove ExclusivePercentage and InclusivePercentage. [scribe assist by Manu Sporny]
David I. Lehn: Which is more up to date the implementation or the spec w/respect to Exclusive/Inclusive Percentage?
Dave Longley: Commerce spec should be modified to add constants for Percentage, Exclusive, and Inclusive. [scribe assist by Manu Sporny]
Manu Sporny: We'll want to take a look and see if there's any way we can simplify this.
David I. Lehn: dln, tilgovi: We're chatting over voip now, you are welcome to join
Manu Sporny: We need to remove ExclusivePercentage, InclusivePercentage and add Percentage, Exclusive, and Inclusive.

Topic: Commerce Vocabulary Properties

Manu Sporny: Looking at 'account', 'source' and 'destination' - we need all three? [scribe assist by Manu Sporny]
David I. Lehn: If you look at the account, it specifies the account for a person, it isn't a source or a destination.
Manu Sporny: We can use it to list all of the public accounts on an identity page.
Manu Sporny: We marked up the previous demo in RDFa using that.
Dave Longley: I don't remember if we had to have 'account'... 'account' was bleeding into cases where we need to use 'source' or 'destination' [scribe assist by Manu Sporny]
Dave Longley: We need to be more clear in spec language on when you use 'com:account' vs. 'com:destination' [scribe assist by Manu Sporny]
David Nicol: What about 'vendor' and 'customer' [scribe assist by Manu Sporny]
David Nicol: There are/we want more layers, many layers of little definitions
Manu Sporny: that link gives an example that describes a person that has an account
David Nicol: Has the Payswarm vocab named the layers?
Manu Sporny: We achieve layers by saying there are "identities" with "accounts" (two layers) ...
Manu Sporny: We have identity as one layer and account as another.
Manu Sporny: There is a distinction between account, source, and destination, we need all three
Manu Sporny: 'amount' is next... refers to a number of bitcoins, dollars, etc.
Manu Sporny: 'amount' only specifies the value, not the unit of measurement.
Manu Sporny: Unit of measure is com:currency which is next
David I. Lehn: Possible problem with inconsistency between string and IRI for the value of a currency
Manu Sporny: We could come up with a string for each alternative currency
Manu Sporny: If we can specify currency mints we get problems
Dave Longley: Why don't we just normalize and always use IRIs
David I. Lehn: There isn't an official IRI for USD, etc.
David Nicol: That's one less thing for ICANN to do, if this working group takes ownership of the comprehensive list of short currency codes
Manu Sporny: We could do something like this - "com:currency": "iso4217:USD" or this "com:currency": "cur:USD"?
David Nicol: iso4217 will drift, that's one issue. Requiring upgrading when it happens.
Manu Sporny: Do we need com:date? [scribe assist by Manu Sporny]
Dave Longley: We were definitely using dc:created for signature creation... [scribe assist by Manu Sporny]
Dave Longley: Transactions may not be created at the same time they're authorized... so "com:date" is not the same thing as "dc:created". [scribe assist by Manu Sporny]
Dave Longley: Any time we authorize or finalize a transaction, we use "com:date" [scribe assist by Manu Sporny]
David I. Lehn: I have marked some places where we need to go back and look at it
Dave Longley: Source or destination seems to be more specific - you can't misunderstand that in the same way as to/from (which can be about identities, or it can be about accounts) [scribe assist by Manu Sporny]
Jeff Sayre: +1
David Nicol: to/from is at identity layer and source/destination is at account layer?
Manu Sporny: David Nicol, effectively, yes. We should keep source and destination because they are more specific to accounts...
Manu Sporny: and they enable more layers of differentiation between identity, financial account, etc.
Manu Sporny: next up is 'destinationOwnerType'
David Nicol: and not lose to/from as they pertain to something subtly differnt
Dave Longley: Yeah, this is important for making the differentiation in PayeeRules, so we need it. [scribe assist by Manu Sporny]
Manu Sporny: it is used in a payee rule, to specify that the only particular owners of destination accounts can take a cut of a sale, etc.
Manu Sporny: We need to move gatewayApprovalCode and gatewayError in the Payment vocabulary... not in the Commerce vocabulary. [scribe assist by Manu Sporny]
Dave Longley: Yeah, this is one of those things that bled into this vocab, we need to move it out. [scribe assist by Manu Sporny]
Manu Sporny: we're moving all of the gateway related properties to the payment vocabulary.
Manu Sporny: any concerns about doing that change?
David I. Lehn: That's fine, i haven't noticed gateway error before
Dave Longley: The example for gatewayError is bad, but we may need to return this in exceptions. [scribe assist by Manu Sporny]
David I. Lehn: It seems like it would be part of a response in some generic exception system
Manu Sporny: 'maximumRate' is used
Dave Longley: I think we need to add minimumRate to the spec. [scribe assist by Manu Sporny]
Manu Sporny: forTransaction is for reverse linking transfers to the transaction they are a part of
David Nicol: ...something about Ted Waitt (ed: founder of Gateway Computers)
David I. Lehn: we don't have minimumRate anywhere in our code. maybe that wasn't needed?
David I. Lehn: I'm not sure ... will have to go back and look.
Dave Longley: We may not need "com:forTransaction"... [scribe assist by Manu Sporny]
Dave Longley: I don't know if we minted any URLs for transfers. [scribe assist by Manu Sporny]
Dave Longley: If we did give them URLs, then we would want reverse links... but if they're just embedded inside transactions, maybe we don't need it. [scribe assist by Manu Sporny]
Dave Longley: If we have a transfer as a starting point in the database, then we may need forTransaction. [scribe assist by Manu Sporny]
Manu Sporny: We can't think of a good reason for forTransaction but we should double check before removing it.
Manu Sporny: We could go through the payswarm reference demo now and answer some questions about it?
Jeff Sayre: I think the time would be best spent going through the vocab.
David Nicol: Agreed that time would be best spent talking about the vocab.
Dave Longley: Maybe next time we can start out with the demo quickly.
Manu Sporny: 'limitation' is next, it allows people who sign listings to specify that they don't want anyone else taking a cut of a sale.
Manu Sporny: Can be used to prevent affiliate type sales
David Nicol: We don't want to bring issues from business layer down here
David Nicol: rules about "no multi-level" -- no reselling?
Dave Longley: I think we need com:limitation - need a way to specify that someone shouldn't get paid. [scribe assist by Manu Sporny]
David Nicol: Just don't want to put anything complex here
Dave Longley: We need a vocabulary that specifies rules for who gets paid... we need to give some basic set of rules somewhere. [scribe assist by Manu Sporny]
Manu Sporny: Well, the question is what vocabulary the terms should go in. [scribe assist by Manu Sporny]
Dave Longley: I'm for breaking it out into a separate vocabulary - but it's something that we absolutely need. [scribe assist by Manu Sporny]
Manu Sporny: Anything associated with business rules, payee limitations, etc. should be shifted to another vocab maybe.
David I. Lehn: Soon we will have a vocabulary explosion problem if we keep splitting vocabularies
David Nicol: layers are good
Manu Sporny: It's good to understand where the layers are
Manu Sporny: Commerce should maybe have two layers low-level accounts, and high-level 'what makes the money dance around' ... rules about how the money can move between accounts, in exchange for assets, etc.
Dave Longley: Yes, we need to find a good balance here, so we don't have a vocab explosion but we don't want to mix layers and get things muddled.
Manu Sporny: We could split the vocab documents into 2, 'high' and 'low' levels.
Manu Sporny: moving on
Manu Sporny: 'minimumAmount' is already here, what about 'minimumRate'? [scribe assist by Manu Sporny]
Dave Longley: The reason we have 'minimumAmount' is to specify a floor to the amount that one would collect... [scribe assist by Manu Sporny]
Manu Sporny: minimumAmount specifies a floor
Dave Longley: Once payee amounts are resolved, they can't be below that floor.
Manu Sporny: 'payeePosition' is next and is important because it can be used in the payee algorithm
Manu Sporny: We need to spec out payeePosition a bit more if we keep it
Manu Sporny: We might just use @list in JSON-LD now to avoid having to specify the order by property
David I. Lehn: We need to be clear about what the order is and how its used
Manu Sporny: So we need to decide if we can get rid of it... if so, we should probably drop it.
Dave Longley: Having the position helps people know to be specific
David Nicol: 'payeePosition' is a complicated business rule that only comes into effect when there is a short payment
Manu Sporny: The algorithm and everything is complicated enough we're going to need visual depiction, etc.
David I. Lehn: If order is external instead of inside the object you could reuse them.
Dave Longley: We don't always give them @ids right now, but if they have @ids they could be reused
Dave Longley: If the payees have @ids, then we may want to reuse them in different places, which is an argument against having payeePosition. [scribe assist by Manu Sporny]
Manu Sporny: Which is an argument against payeePosition
Manu Sporny: Top of the hour, we need to wrap up the call.
David I. Lehn: <currency currencyScheme="http://www.fpml.org/ext/iso4217">DEM</currency>
David I. Lehn: fpml has some scheme thing. they require registration to look at the spec though. just found an example on their site.

Created by the Web Payments Community Group. Shared with love under a CC-BY license.