Date post: | 19-Mar-2017 |
Category: |
Data & Analytics |
Upload: | ben-gardner |
View: | 1,267 times |
Download: | 4 times |
Semantic Blockchain
A primer on Blockchain, Semantic Web and Ricardian Contracts
Ben Gardner
Semantic Web
blockchain Ricardian Contracts
Overview
• Why is Semantic Blockchain important
• What is the Blockchain
• What are Ricardian Contracts
• What is the Semantic Web
• Ricardian Contracts on the Semantic Blockchain
• Implications
The Semantic Web : A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities by Tim Berners-Lee, James Hendler and Ora Lassila (2001)
The entertainment system was belting out the Beatles' "We Can Work It Out" when the phone rang. When Pete answered, his phone turned the sound down by sending a message to all the other local devices that had a volume control. His sister, Lucy, was on the line from the doctor's office: "Mom needs to see a specialist and then has to have a series of physical therapy sessions. Biweekly or something. I'm going to have my agent set up the appointments." Pete immediately agreed to share the chauffeuring. At the doctor's office, Lucy instructed her Semantic Web agent through her handheld Web browser. The agent promptly retrieved information about Mom's prescribed treatment from the doctor's agent, looked up several lists of providers, and checked for the ones in-plan for Mom's insurance within a 20-mile radius of her home and with a rating of excellent or very good on trusted rating services. It then began trying to find a match between available appointment times (supplied by the agents of individual providers through their Web sites) and Pete's and Lucy's busy schedules. (The emphasized keywords indicate terms whose semantics, or meaning, were defined for the agent through the Semantic Web.)
In a few minutes the agent presented them with a plan. Pete didn't like it—University Hospital was all the way across town from Mom's place, and he'd be driving back in the middle of rush hour. He set his own agent to redo the search with stricter preferences about location and time. Lucy's agent, having complete trust in Pete's agent in the context of the present task, automatically assisted by supplying access certificates and shortcuts to the data it had already sorted through.
Almost instantly the new plan was presented: a much closer clinic and earlier times—but there were two warning notes. First, Pete would have to reschedule a couple of his less important appointments. He checked what they were—not a problem. The other was something about the insurance company's list failing to include this provider under physical therapists: "Service type and insurance plan status securely verified by other means," the agent reassured him. "(Details?)"
Lucy registered her assent at about the same moment Pete was muttering, "Spare me the details," and it was all set. (Of course, Pete couldn't resist the details and later that night had his agent explain how it had found that provider even though it wasn't on the proper list.)
But what about the contract?
• So far only a schedule has been agreed between Lucy, Pete and the treatment provider
• Who is paying? – Identity of actors
• How do they know the service has been delivered?
• What are the terms around treatment provision?
• What if a appointment is cancelled? Payment?
But this isn’t just about monetary contracts it is also about the transactions between IoT
• How does Lucy or Pete know when/if mum was picked up/dropped off?
Introducing the Semantic blockchain
blockchain
Semantic Web
Semantic blockchain
Unambiguous dataConnected
TrustProof of work
Unambiguous dataConnectedTrustProof of work
A primer on blockchain - PWC
Ricardian Contract
“A Ricardian contract places the defining elements of a legal agreement in a format that can be expressed and executed in software. The key is to make the format both machine readable such that they can easily be extracted for computational purposes, and readable as an ordinary prose document such that lawyers and contracting parties may read the essentials of the contract without undue inconvenience.” - Wikipedia
Smart Contract
“A smart contract is a computerized transaction protocol that executes the terms of a contract. The general objectives are to satisfy common contractual conditions (such as payment terms, liens, confidentiality, and even enforcement), minimize exceptions both malicious and accidental, and minimize the need for trusted intermediaries.” - Nick Sazabo
Bitcoin is an implementation of blockchain technology limited to transfer of funds from A to B
Ethereum expands the concept of transactions to arbitrary complex contracts
Weather Insurance
I, Alex Batlin, authorise the transfer from address 'abcdwerr' to address '24dsfrg3434' using smart contract agent address '24dsfrg3434' of '10' unit(s) of GBP pounds held by smart contract address '4854398578934' on the condition that website 'Weather.com' confirms that '0.5' cumulative inches of rain did indeed fall between start date '9:00AM UTC 10th of March, 2015' and finish date '9:00AM UTC 11th of March, 2015' in country 'GB' and postcode 'EC2Y 0RT’.
Readable by humans
Crypto 2.0 Musings - Combining Ricardian and Smart Contracts - Alex Batlin
Weather Insurance
I, Alex Batlin, authorise the transfer from address 'abcdwerr' to address '24dsfrg3434' using smart contract agent address '24dsfrg3434' of '10' unit(s) of GBP pounds held by smart contract address '4854398578934' on the condition that website 'Weather.com' confirms that '0.5' cumulative inches of rain did indeed fall between start date '9:00AM UTC 10th of March, 2015' and finish date '9:00AM UTC 11th of March, 2015' in country 'GB' and postcode 'EC2Y 0RT’.
What needs to be defined so a computer can execute the contract
Linked Data= the internet + http + rdf
Tim Berners-Lee outlined four principles of linked data in his Design Issues: Linked Data note, paraphrased along the following lines:
1. Use URIs to identify things.2. Use HTTP URIs so that these things can be referred to and looked up
("dereferenced") by people and user agents.3. Provide useful information about the thing when its URI is dereferenced, using
standard formats such as RDF/XML.4. Include links to other, related URIs in the exposed data to improve discovery of
other related information on the Web.
The second attempt at the semantic web
http://en.wikipedia.org/wiki/Linked_data
Subject
<John>
Predicate
<Knows>
Object
<Sarah>
RDF Triple
<John>
<L-123456>
<New York>
<Tax>
<Sarah>
hasWorkedOn
hasLocation
hasPractice
knows
Graph
Combining Triples creates a directed, labelled graph
Resource Description Framework (RDF)
Inspired by J Phil Brooks, Eli Lilly
Note – RDF is a data model not a data format
<John>
<L-123456>
<New York>
<Tax>
<Sarah>
hasWorkedOn
hasLocation
hasPractice
Knows
<L-123456>
<California>
<Acme Inc>
<IPO>
hasJurisdiction
hasClient
hasTransactionType
Graphs can be joined together ……
Inspired by J Phil Brooks, Eli Lilly
<John>
<L-123456>
<New York>
<Tax>
<Sarah>
hasWorkedOn
hasLocation
hasPractice
Knows
<L-123456>
<California>
<IPO>
hasJuristdction
hasClient
hasTransactionType
<Acme Inc>
<San Deigo>
<Nexus Corp>
<Energy>
hasLocation
HasSector
hasParent
…... to traverse the knowledge space
Inspired by J Phil Brooks, Eli Lilly
What did those rules mean?
http://biglynx.co.uk/people/matt-briggs http://biglynx.co.uk/people/scott-miller
http://xmlns.com/foaf/0.1/knows
Subject
<Matt Briggs>
Predicate
<Knows>
Object
<Scott Miller>
1. Use URIs to identify things.2. Use HTTP URIs so that these things can be referred to and looked up
("dereferenced") by people and user agents.
Linked Data: Evolving the Web into a Global Data Space- Tom Heath & Christian Bizer
RDF Serialisation
RDF/XML & RDFa – W3C standardised serialisation formatsTurtle, N-Triples, JSON – non-standardised serialisation formats
Turtle – Plain text serialisation, mainly used for reading RDF triples or writing them by hand.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<http://biglynx.co.uk/people/matt-briggs>rdf:type foaf:Person ;foaf:name “Matt Briggs” ;foaf:based_near “Birmingham”;foaf:topic_interest “Wildlife photography” ;foaf:knows “David Attenborough” .
3. Provide useful information about the thing when its URI is dereferenced, using standard formats such as RDF/XML.
RDF Serialisation
RDF/XML & RDFa – W3C standardised serialisation formatsTurtle, N-Triples, JSON – non-standardised serialisation formats
Turtle – Plain text serialisation, mainly used for reading RDF triples or writing them by hand.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<http://biglynx.co.uk/people/matt-briggs>rdf:type foaf:Person ;foaf:name “Matt Briggs” ;foaf:based_near <http://sws.geonames.org/3333125/> ;foaf:based_near <http://dbpedia.org/resource/Birmingham> ;foaf:topic_interest <http://dbpedia.org/resource/Wildlife_photography> ;foaf:knows <http://dbpedia.org/resource/David_Attenborough> .
4. Include links to other, related URIs in the exposed data to improve discovery of other related information on the Web.
Linked Open Data as of September 2011
Weather Insurance
I, Alex Batlin, authorise the transfer from address 'abcdwerr' to address '24dsfrg3434' using smart contract agent address '24dsfrg3434' of '10' unit(s) of GBP pounds held by smart contract address '4854398578934' on the condition that website 'Weather.com' confirms that '0.5' cumulative inches of rain did indeed fall between start date '9:00AM UTC 10th of March, 2015' and finish date '9:00AM UTC 11th of March, 2015' in country 'GB' and postcode 'EC2Y 0RT’.
Linked Data can unambiguously define the things and the relationships between things
Weather Insurance
@prefix rc: <http://batlin.com/ricardian#> . [a rc:RicardianContract; rc:hasTransferAuthorisation [ a rc:TransferAuthorisation; rc:hasAgentAddress "24dsfrg3434"; rc:hasFromAddress "abcdwerr"; rc:hasInstrumentAddress "4854398578934"; rc:hasInstrumentUnits "10"; rc:hasToAddress "24dsfrg3434" ]; rc:hasTransferCondition [ a rc:TransferCondition; rc:hasCountryCode "GB"; rc:hasCumulativeInchesOfRainDetected "0.5"; rc:hasFinishDate "2016-03-11T09:00:00<"; rc:hasOracleUrl <https://www.weather.com>; rc:hasPostCode "EC2Y 0RT"; rc:hasStartDate "2016-03-10T09:00:00<" ]].
RDF representation provides an unambiguously defined contract
3. Provide useful information about the thing when its URI is dereferenced, using standard formats such as RDF/XML.
Weather Insurance
@prefix rc: <http://batlin.com/ricardian#> . [a rc:RicardianContract; rc:hasTransferAuthorisation [ a rc:TransferAuthorisation; rc:hasAgentAddress "24dsfrg3434"; rc:hasFromAddress "abcdwerr"; rc:hasInstrumentAddress "4854398578934"; rc:hasInstrumentUnits "10"; rc:hasToAddress "24dsfrg3434" ]; rc:hasTransferCondition [ a rc:TransferCondition; rc:hasCountryCode <http://www.geonames.org/2635167/united-kingdom.html>; rc:hasCumulativeInchesOfRainDetected "0.5"; rc:hasFinishDate "2016-03-11T09:00:00<"; rc:hasOracleUrl <https://www.weather.com>; rc:hasPostCode <http://www.geonames.org/maps/google_51.52_-0.092.html>; rc:hasStartDate "2016-03-10T09:00:00<" ]].
4. Include links to other, related URIs in the exposed data to improve discovery of other related information on the Web.
Linked Data unambiguously connects the contract to Oracles (Linked Open Data)
Ricardian contracts on the Semantic blockchain
blockchain
Semantic Web
Semantic blockchain
Unambiguous dataConnected
TrustProof of work
Further reading – Hector Ugartehttps://semanticblocks.wordpress.com/
Realising the Semantic Web vision
Block Chain Technologies & The Semantic Web – Matthew English et al
Back to Pete & Lucy
• So far only a schedule has been agreed between Lucy, Pete and the treatment provider
• Who is paying – Identity of actors
• How do they know the service has been delivered?
• What are the terms around treatment provision?
• What if a appointment is cancelled? Payment?
But this isn’t just about monetary contracts it is also about the transactions between IoT
• How does Lucy or Pete know when/if mum was picked up/dropped off?
Could Blockchain fill in the missing layers of the Semantic Web Architecture?
Semantic Web
blockchain