Introduction to Linked Data 
and Web Payments 
Brent Shambaugh 
Code Norman Meetup at Prototek OKC 
October 25th, 2014 
CC BY SA 2.0 (unless mentioned otherwise)
Dedicated to Sean Satterlee 
For pushing the limit...
Overview
Overview (B&W)
Introduction to Linked Data
Different Levels of the Web 
[Web] to address the following (levels of complexity?) 
1. Linked Document Network 
“every hyperlink denotes a document 
location” 
2. Linked Data Network 
“hyperlinks denote entities” 
3. Linked Open Data 
“hyperlinks denote entities … resolving to 
human and machine readable entity description 
documents” 
4. Semantic Linked Open Data 
“all of the above with the addition of human and machine 
readable and comprehensible relation semantics” 
Source: http://kidehen.blogspot.com/2014/03/world-wide- 
web-25-years-later.html 
Kingsley Idehen 
CC BY 3.0 AT 
http://creativecommons.org/ 
licenses/by/3.0/at/deed.en 
By http://creativecommons. 
org/licenses/by/3.0/at/ 
deed.en
RDF Triple Form
Linked Data Example 
*edited post presentation
Linked Data Design Comments 
4 Rules <http://www.w3.org/DesignIssues> : 
1.Use URIs as names for things 
2.Use HTTP URIs so that people 
can look up those names. 
3.When someone looks up a URI, 
provide useful information, using 
the standards (RDF*, SPARQL) 
4.Include links to other URIs. so 
that they can discover more 
things. 
Tim Berners-Lee in 2012 
Cc-by-sa-2.0 by cellanr 
<http://www.flickr.com/photos/ 
rorycellan/8314288381/>
Linked Data Design Comments 
(cont.) 
5 Star Linked (Open) Data <http://www.w3.org/DesignIssues> : 
★ Available on the web (whatever format), but with an 
open licence 
★★ Available as machine-readable structured data 
(e.g. Excel instead of image scan of a table) 
★★★ As (2) plus non-proprietary format (e.g. CSV instead of 
Excel) 
★★★★ All the above, plus: use open standards from W3C (RDF 
and SPARQL) to identify things, so that people can 
point at your stuff 
★★★★★ All the above, plus: link your data to other people’s 
data to provide context
Linked Data Representation 
● RDF triples in formats such as: 
RDF/XML, N3, Turtle, RDFa, N-Triples, JSON-LD 
● JSON-LD is used for Web Payments
JSON vs. JSON-LD 
● JSON has all of the features of JSON, 
“Developers only need to know JSON and two 
keywords (@context and @id) to use the 
basic functionality in JSON-LD.” 
<http://www.w3.org/TR/json-ld/#relationship-to- 
rdf>
JSON-LD Syntax 
● Example 24: 
<http://www.w3.org/TR/json-ld/> 
{ 
"@context": 
{ 
"xsd": "http://www.w3.org/2001/XMLSchema#", 
"name": "http://xmlns.com/foaf/0.1/name", 
"age": 
{ 
"@id": "http://xmlns.com/foaf/0.1/age", 
"@type": "xsd:integer" 
}, 
"homepage": 
{ 
"@id": "http://xmlns.com/foaf/0.1/homepage", 
"@type": "@id" 
} 
}, 
"@id": "http://example.com/people#john", 
"name": "John Smith", 
"age": "41", 
"homepage": 
[ 
"http://personal.example.org/", 
"http://work.example.com/jsmith/" 
] 
}
Web Payments 
(W3C Community Group Material)* 
* Precursor to http://www.w3.org/Payments/IG/
Web Payments Requirements 
● It must be decentralized. 
● It must be an open, patent and royalty-free 
standard. 
● It must be designed to work with Web architecture 
like URLs, HTTP, and other Web standards. 
● It must allow anyone to implement the standard and 
interoperate with others that implement the 
standard. 
<https://hacks.mozilla.org/2013/04/web-payments-with-payswarm-identity-part-1-of-3/>
Web Payments Requirements 
(cont.) 
● It must enable choice among customers, vendors, and payment processors, in 
order to drive healthy market competition. 
● It must be extensible in a decentralized way, allowing application-specific 
extensions to the core protocol without coordination. 
● It must be flexible enough to perform payments as well as support higher order 
economic behaviors like crowdfunding and executing legal contracts. 
● It must be secure, using the latest security best practices to protect the entire 
system from attack. 
● It must be currency agnostic, supporting not only the US Dollar, the Euro, and 
the Japanese Yen, but also supporting virtual currencies like Bitcoin and Ven. 
● It must be easy to develop for and integrate into the Web.
Web Payments Design Principles for 
Identity 
● An identity and credentialing solution for the Web should be 
decentralized. 
● It must support discoverability by using a resolvable address, 
like a URL or email address. 
● It must support, with authorization, arbitrary machine-readable 
information being attached to the identity by 3rd parties. 
● It must be able to provide both public and private data to 
external sites based on who is accessing the resource. 
● The credential information must be protected by a secure 
digital signature and encryption mechanism. 
<https://web-payments.org/specs/source/identity-credentials/>
PaySwarm Purchase 
Inspired by the The Payments, Privacy, Policing Paradox Workshop 
At the United Nations Internet Governance Forum. 
https://web-payments.org/minutes/2014-09-04-igf/ 
*slide added post presentation
Web Payments Demonstrations 
● Web Payments with PaySwarm: Identity (part 1 of 3) 
https://hacks.mozilla.org/2013/04/web-payments-with-payswarm-identity-part-1-of-3/ 
● Web Payments with PaySwarm: Assets and Listings (part 2 of 3) 
https://hacks.mozilla.org/2013/04/payswarm-part-2/ 
● Web Payments with PaySwarm: Purchasing (part 3 of 3) 
https://hacks.mozilla.org/2013/04/web-payments-with-payswarm-purchasing-part-3-of-3/ 
Personal notes from previous attempt: 
http://adistributedeconomy.blogspot.com/2014_02_01_archive.html 
*switched order with next slide post presentation
Web Payments Specifications 
Design 
Web Payments Design Principles 
https://web-payments.org/specs/source/design-principles/ 
Web Payments Use Cases 
https://web-payments.org/specs/source/use-cases/ 
Web Payments Roadmap 
https://web-payments.org/specs/source/roadmap/ 
Reciepts 
Web Commerce 1.0 
https://web-payments.org/specs/source/web-commerce/ 
Products 
Web Commerce 1.0 
https://web-payments.org/specs/source/web-commerce/ 
Web Pricing Indices 1.0 
https://web-payments.org/specs/source/web-price-indexes/ 
Identity 
Identity Credentials 1.0 
https://web-payments.org/specs/source/identity-credentials/ 
Transactions 
Web Payments 1.0 
https://web-payments.org/specs/source/web-payments/ 
Web Commerce API 1.0 
https://web-payments.org/specs/source/web-commerce-api/ 
Payment Intents 1.0 
https://web-payments.org/specs/source/payment-intents/ 
Commerce Vocabulary 
https://web-payments.org/specs/source/vocabs/commerce.html 
PaySwarm Vocabulary 
https://web-payments.org/specs/source/vocabs/payswarm.html 
Credit and Debit Card Vocabulary 
https://web-payments.org/specs/source/vocabs/creditcard.html 
Security 
Signing HTTP Messages 
https://web-payments.org/specs/source/http-signatures/ 
HTTP Signature Nonces 
https://web-payments.org/specs/source/http-signature-nonces/ 
HTTP Signature Trailers 
https://web-payments.org/specs/source/http-signature-trailers/ 
Secure Messaging 1.0 
https://web-payments.org/specs/source/secure-messaging/ 
The Security Vocabulary 
https://web-payments.org/specs/source/vocabs/security.html 
Security Considerations for HTTP Signatures 
https://web-payments.org/specs/source/http-signatures-audit/
Web Payments with PaySwarm: Identity (part 1 of 3) 
● Use Web Keys (now called secure messaging) 
● Following the “Web Keys Demo - payswarm.js” 
<https://www.youtube.com/watch?v=S5WMkpoocSc> 
- 1) Clone repository to local machine: 
https://github.com/digitalbazaar/payswarm.js/ 
or run npm install payswarm 
- 2) Set up an account at dev.payswarm.com (basically a 
developer sandbox for a PaySwarm Authority) 
- 3) Run node register-new-key.js 
●
Web Payments with PaySwarm: Assets and Listings 
(part 2 of 3)
Web Payments with PaySwarm: Purchasing 
(part 3 of 3)

Introduction to Linked Data and Web Payments

  • 1.
    Introduction to LinkedData and Web Payments Brent Shambaugh Code Norman Meetup at Prototek OKC October 25th, 2014 CC BY SA 2.0 (unless mentioned otherwise)
  • 2.
    Dedicated to SeanSatterlee For pushing the limit...
  • 3.
  • 4.
  • 5.
  • 6.
    Different Levels ofthe Web [Web] to address the following (levels of complexity?) 1. Linked Document Network “every hyperlink denotes a document location” 2. Linked Data Network “hyperlinks denote entities” 3. Linked Open Data “hyperlinks denote entities … resolving to human and machine readable entity description documents” 4. Semantic Linked Open Data “all of the above with the addition of human and machine readable and comprehensible relation semantics” Source: http://kidehen.blogspot.com/2014/03/world-wide- web-25-years-later.html Kingsley Idehen CC BY 3.0 AT http://creativecommons.org/ licenses/by/3.0/at/deed.en By http://creativecommons. org/licenses/by/3.0/at/ deed.en
  • 7.
  • 8.
    Linked Data Example *edited post presentation
  • 9.
    Linked Data DesignComments 4 Rules <http://www.w3.org/DesignIssues> : 1.Use URIs as names for things 2.Use HTTP URIs so that people can look up those names. 3.When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL) 4.Include links to other URIs. so that they can discover more things. Tim Berners-Lee in 2012 Cc-by-sa-2.0 by cellanr <http://www.flickr.com/photos/ rorycellan/8314288381/>
  • 10.
    Linked Data DesignComments (cont.) 5 Star Linked (Open) Data <http://www.w3.org/DesignIssues> : ★ Available on the web (whatever format), but with an open licence ★★ Available as machine-readable structured data (e.g. Excel instead of image scan of a table) ★★★ As (2) plus non-proprietary format (e.g. CSV instead of Excel) ★★★★ All the above, plus: use open standards from W3C (RDF and SPARQL) to identify things, so that people can point at your stuff ★★★★★ All the above, plus: link your data to other people’s data to provide context
  • 11.
    Linked Data Representation ● RDF triples in formats such as: RDF/XML, N3, Turtle, RDFa, N-Triples, JSON-LD ● JSON-LD is used for Web Payments
  • 12.
    JSON vs. JSON-LD ● JSON has all of the features of JSON, “Developers only need to know JSON and two keywords (@context and @id) to use the basic functionality in JSON-LD.” <http://www.w3.org/TR/json-ld/#relationship-to- rdf>
  • 13.
    JSON-LD Syntax ●Example 24: <http://www.w3.org/TR/json-ld/> { "@context": { "xsd": "http://www.w3.org/2001/XMLSchema#", "name": "http://xmlns.com/foaf/0.1/name", "age": { "@id": "http://xmlns.com/foaf/0.1/age", "@type": "xsd:integer" }, "homepage": { "@id": "http://xmlns.com/foaf/0.1/homepage", "@type": "@id" } }, "@id": "http://example.com/people#john", "name": "John Smith", "age": "41", "homepage": [ "http://personal.example.org/", "http://work.example.com/jsmith/" ] }
  • 17.
    Web Payments (W3CCommunity Group Material)* * Precursor to http://www.w3.org/Payments/IG/
  • 18.
    Web Payments Requirements ● It must be decentralized. ● It must be an open, patent and royalty-free standard. ● It must be designed to work with Web architecture like URLs, HTTP, and other Web standards. ● It must allow anyone to implement the standard and interoperate with others that implement the standard. <https://hacks.mozilla.org/2013/04/web-payments-with-payswarm-identity-part-1-of-3/>
  • 19.
    Web Payments Requirements (cont.) ● It must enable choice among customers, vendors, and payment processors, in order to drive healthy market competition. ● It must be extensible in a decentralized way, allowing application-specific extensions to the core protocol without coordination. ● It must be flexible enough to perform payments as well as support higher order economic behaviors like crowdfunding and executing legal contracts. ● It must be secure, using the latest security best practices to protect the entire system from attack. ● It must be currency agnostic, supporting not only the US Dollar, the Euro, and the Japanese Yen, but also supporting virtual currencies like Bitcoin and Ven. ● It must be easy to develop for and integrate into the Web.
  • 20.
    Web Payments DesignPrinciples for Identity ● An identity and credentialing solution for the Web should be decentralized. ● It must support discoverability by using a resolvable address, like a URL or email address. ● It must support, with authorization, arbitrary machine-readable information being attached to the identity by 3rd parties. ● It must be able to provide both public and private data to external sites based on who is accessing the resource. ● The credential information must be protected by a secure digital signature and encryption mechanism. <https://web-payments.org/specs/source/identity-credentials/>
  • 21.
    PaySwarm Purchase Inspiredby the The Payments, Privacy, Policing Paradox Workshop At the United Nations Internet Governance Forum. https://web-payments.org/minutes/2014-09-04-igf/ *slide added post presentation
  • 22.
    Web Payments Demonstrations ● Web Payments with PaySwarm: Identity (part 1 of 3) https://hacks.mozilla.org/2013/04/web-payments-with-payswarm-identity-part-1-of-3/ ● Web Payments with PaySwarm: Assets and Listings (part 2 of 3) https://hacks.mozilla.org/2013/04/payswarm-part-2/ ● Web Payments with PaySwarm: Purchasing (part 3 of 3) https://hacks.mozilla.org/2013/04/web-payments-with-payswarm-purchasing-part-3-of-3/ Personal notes from previous attempt: http://adistributedeconomy.blogspot.com/2014_02_01_archive.html *switched order with next slide post presentation
  • 23.
    Web Payments Specifications Design Web Payments Design Principles https://web-payments.org/specs/source/design-principles/ Web Payments Use Cases https://web-payments.org/specs/source/use-cases/ Web Payments Roadmap https://web-payments.org/specs/source/roadmap/ Reciepts Web Commerce 1.0 https://web-payments.org/specs/source/web-commerce/ Products Web Commerce 1.0 https://web-payments.org/specs/source/web-commerce/ Web Pricing Indices 1.0 https://web-payments.org/specs/source/web-price-indexes/ Identity Identity Credentials 1.0 https://web-payments.org/specs/source/identity-credentials/ Transactions Web Payments 1.0 https://web-payments.org/specs/source/web-payments/ Web Commerce API 1.0 https://web-payments.org/specs/source/web-commerce-api/ Payment Intents 1.0 https://web-payments.org/specs/source/payment-intents/ Commerce Vocabulary https://web-payments.org/specs/source/vocabs/commerce.html PaySwarm Vocabulary https://web-payments.org/specs/source/vocabs/payswarm.html Credit and Debit Card Vocabulary https://web-payments.org/specs/source/vocabs/creditcard.html Security Signing HTTP Messages https://web-payments.org/specs/source/http-signatures/ HTTP Signature Nonces https://web-payments.org/specs/source/http-signature-nonces/ HTTP Signature Trailers https://web-payments.org/specs/source/http-signature-trailers/ Secure Messaging 1.0 https://web-payments.org/specs/source/secure-messaging/ The Security Vocabulary https://web-payments.org/specs/source/vocabs/security.html Security Considerations for HTTP Signatures https://web-payments.org/specs/source/http-signatures-audit/
  • 24.
    Web Payments withPaySwarm: Identity (part 1 of 3) ● Use Web Keys (now called secure messaging) ● Following the “Web Keys Demo - payswarm.js” <https://www.youtube.com/watch?v=S5WMkpoocSc> - 1) Clone repository to local machine: https://github.com/digitalbazaar/payswarm.js/ or run npm install payswarm - 2) Set up an account at dev.payswarm.com (basically a developer sandbox for a PaySwarm Authority) - 3) Run node register-new-key.js ●
  • 25.
    Web Payments withPaySwarm: Assets and Listings (part 2 of 3)
  • 26.
    Web Payments withPaySwarm: Purchasing (part 3 of 3)