A primer on Blockchain, Semantic Web and Ricardian Contracts.
Semantic Blockchain is a proposal where the Semantic Web meets the Blockchain. Combining these two technologies could provide the Semantic web with a transparent proof of work and trust mechanism while conversely disambiguating data stored on the blockchain, solving one of the key challenges with Riccardian/Smart contracts. This presentation will explore how these two technologies might be combine using the example of a smart contract. However the potential application is much bigger and could provide a key back bone underlying the Internet of Things.
Student profile product demonstration on grades, ability, well-being and mind...
Semantic blockchain
1. Semantic Blockchain
A primer on Blockchain, Semantic Web and Ricardian Contracts
Ben Gardner
Semantic
Web
blockchain Ricardian Contracts
2. 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
3. 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.)
4. 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?
5. Introducing the Semantic blockchain
blockchain
Semantic
Web
Semantic
blockchain
Unambiguous data
Connected
Trust
Proof of work
Unambiguous data
Connected
Trust
Proof of work
7. 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
8. 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
9. 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
10. 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
11. 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
15. 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
16. RDF Serialisation
RDF/XML & RDFa – W3C standardised serialisation formats
Turtle, 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.
17. RDF Serialisation
RDF/XML & RDFa – W3C standardised serialisation formats
Turtle, 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.
19. 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
20. 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.
21. 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)
22. Ricardian contracts on the Semantic blockchain
blockchain
Semantic
Web
Semantic
blockchain
Unambiguous data
Connected
Trust
Proof of work
Further reading – Hector Ugarte
https://semanticblocks.wordpress.com/
23. Realising the Semantic Web vision
Block Chain Technologies & The Semantic Web – Matthew English et al
24. 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?
25. Could Blockchain fill in the missing layers of the
Semantic Web Architecture?
Semantic
Web
blockchain
Editor's Notes
This is a design pattern
Hypertext transfer protocol
Resource Description Framework
The Linked Open Data resource continues to grow with more and more diverse information being made available. As the number of resources has grown we are seeing the emergence of key nodes in the network i.e. DBpedia, Geo Names, etc. These nodes are important as they allow disambiguation of concepts, ensuring that we are comparing apples with apples when joining information from diverse sources.
Disambiguation example:
The word stock can refer to a large number of different things (concepts), for example stock could refer to livestock or shares in a company. In there are over 40 different pages listed on the Stock disambiguation page Wikipedia (http://en.wikipedia.org/wiki/Stock_(disambiguation)) . If data is published independently there must be ways to differentiated between data about livestock and that about share certificates. Here is where these disambiguation hubs come in, in this case a publisher of data can link to the relevant page in DBpedia effectively saying in this case this use of stock refers to livestock. By this process the computer knows that this data can be connected with other data about livestock and not with other interpretations of the concept stock.