nicolas pastorino - rest + recommendation, consume the right content, anywhere - ipc11
DESCRIPTION
This talk was given at IPC, Mainz, Oct. 10th. 2011. Please rate at : http://joind.in/3852TRANSCRIPT
![Page 1: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/1.jpg)
REST + Recommendation: consume the right content, anywhere
![Page 2: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/2.jpg)
REST + Recommendation: consume the right content, anywhere
Nicolas Pastorino - [email protected] Community - eZ Systems@jeanvoye - http://share.ez.no
![Page 3: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/3.jpg)
REST + Recommendation: consume the right content, anywhere
Nicolas Pastorino - [email protected] Community - eZ Systems@jeanvoye - http://share.ez.no
International PHP Conference 2011 - Mainz - October 10th
#ipc11
![Page 4: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/4.jpg)
Our agenda :
![Page 5: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/5.jpg)
Multichannel emotionOur agenda :
![Page 6: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/6.jpg)
Multichannel emotionREST
Our agenda :
![Page 7: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/7.jpg)
Multichannel emotionREST
Extensible REST API
Our agenda :
![Page 8: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/8.jpg)
Multichannel emotionREST
Extensible REST API
Our agenda :
Content recommendation
![Page 9: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/9.jpg)
Multichannel : emotion
3
![Page 10: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/10.jpg)
![Page 11: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/11.jpg)
Online content touches you,
![Page 12: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/12.jpg)
Online content touches you, it spurs emotions anywhere, on any device
![Page 13: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/13.jpg)
Online content touches you, it spurs emotions anywhere, on any device
![Page 14: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/14.jpg)
Online content touches you, it spurs emotions anywhere, on any device
![Page 15: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/15.jpg)
Online content touches you, it spurs emotions anywhere, on any device
![Page 16: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/16.jpg)
![Page 17: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/17.jpg)
You are consuming content, all the time
![Page 18: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/18.jpg)
You are consuming content, all the time
![Page 19: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/19.jpg)
You are consuming content, all the time
![Page 20: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/20.jpg)
You are consuming content, all the time
![Page 21: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/21.jpg)
![Page 22: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/22.jpg)
Multichannel content distribution is “emotions anywhere”
![Page 23: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/23.jpg)
![Page 24: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/24.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
![Page 25: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/25.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
Separation of layout and content at the content source level
1
![Page 26: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/26.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
Separation of layout and content at the content source level
1
![Page 27: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/27.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
Separation of layout and content at the content source level
1
Do not compromise on user experience 2
![Page 28: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/28.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
“The Superman Effect” Aral Balkan, DPC11
Separation of layout and content at the content source level
1
Do not compromise on user experience 2
![Page 29: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/29.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
“The Superman Effect” Aral Balkan, DPC11
“There is a lot of effort going into improving customer experience. It is key to get consistency across different channels so their experience does not vary” Jim Daviesni
Separation of layout and content at the content source level
1
Do not compromise on user experience 2
![Page 30: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/30.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
“The Superman Effect” Aral Balkan, DPC11
“There is a lot of effort going into improving customer experience. It is key to get consistency across different channels so their experience does not vary” Jim Daviesni
Separation of layout and content at the content source level
1
Do not compromise on user experience 2
Have a single source of content 3
![Page 31: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/31.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Pre-requisites to multichannel distribution
8
“The Superman Effect” Aral Balkan, DPC11
“There is a lot of effort going into improving customer experience. It is key to get consistency across different channels so their experience does not vary” Jim Daviesni
Separation of layout and content at the content source level
1
Do not compromise on user experience 2
Have a single source of content 3
“Publishers usually can't afford a dedicated editorial team per channel”
![Page 32: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/32.jpg)
![Page 33: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/33.jpg)
Are 3 rules of thumb
enough ?
![Page 34: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/34.jpg)
Are 3 rules of thumb
enough ? We’re
hardly off the ground.
Let’s dig further...
![Page 35: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/35.jpg)
CMSSingle Content Source /
![Page 36: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/36.jpg)
CMSSingle Content Source /
![Page 37: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/37.jpg)
CMSSingle Content Source /
Monetized Content Streams
![Page 38: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/38.jpg)
CMSSingle Content Source /
Monetized Content Streams
Mobile ApplicationsSmartphones, Tablets
![Page 39: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/39.jpg)
CMSSingle Content Source /
Monetized Content Streams
Mobile ApplicationsSmartphones, Tablets
Push ContentNewsletters
3rd partyCRM, ERP
![Page 40: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/40.jpg)
CMSSingle Content Source /
Monetized Content Streams
Mobile ApplicationsSmartphones, Tablets
Push ContentNewsletters
PrintLegacy publication chains
3rd partyCRM, ERP
![Page 41: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/41.jpg)
CMSSingle Content Source /
Monetized Content Streams
Mobile ApplicationsSmartphones, Tablets
Push ContentNewsletters
PrintLegacy publication chains
Social Media
3rd partyCRM, ERP
![Page 42: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/42.jpg)
![Page 43: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/43.jpg)
"Multichannel media consumers have higher levels of engagement than those present in only one channel.
The more one watches TV, listens to the radio, spends time online, etc., the more advertising they consume.
This shows that multichannel content distribution will also have an important impact on the publishers revenue structure. It will evolve to become a competitive, critical, enabling technology for marketing communications."
![Page 44: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/44.jpg)
![Page 45: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/45.jpg)
Having a REST ?
:)
![Page 46: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/46.jpg)
Having a REST ?
:)
We are not there yet, let’s
dig further
![Page 47: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/47.jpg)
![Page 48: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/48.jpg)
“Media companies as well as consumer brands must recognize that adding mobile to the multichannel mix does not mean creating a mini-channel. Those building mobile strategies should recognize that:
• Mobile is not just about shrinking the desktop experience,
• The user environment is an element of the (mobile) experience,
• Mobile users are not simply a subset of online users – some are new.”
![Page 49: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/49.jpg)
![Page 50: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/50.jpg)
Least Common
Denominator :
![Page 51: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/51.jpg)
Least Common
Denominator :
a REST API
![Page 52: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/52.jpg)
![Page 53: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/53.jpg)
Those were the
functional basics to increase
your REACHthrough multiple
channels
![Page 54: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/54.jpg)
Those were the
functional basics to increase
your REACHthrough multiple
channels
Now come the technical bits
![Page 55: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/55.jpg)
REST
16
![Page 56: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/56.jpg)
REpresentational State Transfer
![Page 57: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/57.jpg)
REpresentational State Transfer
REST is a set of principles that define how Web standards, such as HTTP and URIs, are supposed to be used.
• Give every “thing” an ID• Link things together (“HATEOAS”) (cf David Zuelke’s keynote)• Use standard methods• Resources with multiple representations• Communicate statelessly
![Page 58: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/58.jpg)
REpresentational State Transfer
REST is a set of principles that define how Web standards, such as HTTP and URIs, are supposed to be used.
• Give every “thing” an ID• Link things together (“HATEOAS”) (cf David Zuelke’s keynote)• Use standard methods• Resources with multiple representations• Communicate statelessly
h"p://en.wikipedia.org/wiki/Representa4onal_State_Transferh"p://www.infoq.com/ar4cles/rest-‐introduc4on
![Page 59: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/59.jpg)
REpresentational State Transfer
h"p://en.wikipedia.org/wiki/Representa4onal_State_Transferh"p://www.infoq.com/ar4cles/rest-‐introduc4on
![Page 60: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/60.jpg)
REpresentational State Transfer
Key goals of REST include:
• Scalability of component interactions• Generality of interfaces• Independent deployment of components• Intermediary components to reduce latency, enforce security and encapsulate legacy systems
h"p://en.wikipedia.org/wiki/Representa4onal_State_Transferh"p://www.infoq.com/ar4cles/rest-‐introduc4on
![Page 61: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/61.jpg)
Extensible REST API
19
at the core of the eZ Publish CMS
![Page 62: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/62.jpg)
30/05/2011Nicolas Pastorino - IPCse11
At the core of the eZ Publish CMS
REST as a core feature
20
Extensible REST API
![Page 63: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/63.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Dedicated front-controller
21
At the core of the eZ Publish CMS Extensible REST API
![Page 64: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/64.jpg)
30/05/2011Nicolas Pastorino - IPCse11 22
REST setup
REST
FC
eZPREST request
eZ Publishweb-‐request
At the core of the eZ Publish CMS Extensible REST API
![Page 65: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/65.jpg)
30/05/2011Nicolas Pastorino - IPCse11 22
REST setup
REST
FC
eZPREST request
eZ Publishweb-‐request
At the core of the eZ Publish CMS Extensible REST API
![Page 66: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/66.jpg)
30/05/2011Nicolas Pastorino - IPCse11 23
Mapping content into resources
At the core of the eZ Publish CMS Extensible REST API
![Page 67: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/67.jpg)
30/05/2011Nicolas Pastorino - IPCse11 24
Makes data availableMakes data available
At the core of the eZ Publish CMS Extensible REST API
![Page 68: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/68.jpg)
30/05/2011Nicolas Pastorino - IPCse11 24
Makes data reusableMakes data reusable
At the core of the eZ Publish CMS Extensible REST API
![Page 69: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/69.jpg)
30/05/2011Nicolas Pastorino - IPCse11 25
Content is essentially liberated
At the core of the eZ Publish CMS Extensible REST API
![Page 70: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/70.jpg)
30/05/2011Nicolas Pastorino - IPCse11
URI pattern
26
At the core of the eZ Publish CMS Extensible REST API
![Page 71: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/71.jpg)
30/05/2011Nicolas Pastorino - IPCse11 27
Prefix Provider VersionGET Host / / / / Call + params
Just a token to trigger your rewrite rule
ezpRestPrefixFilterInterface
At the core of the eZ Publish CMS Extensible REST API
![Page 72: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/72.jpg)
30/05/2011Nicolas Pastorino - IPCse11 27
Prefix
Provider
Version
Just a token to trigger your rewrite rule
ezpRestPrefixFilterInterface
At the core of the eZ Publish CMS Extensible REST API
![Page 73: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/73.jpg)
30/05/2011Nicolas Pastorino - IPCse11 27
Prefix
Provider
Version
Just a token to trigger your rewrite rule
ezpRestPrefixFilterInterface
At the core of the eZ Publish CMS Extensible REST API
![Page 74: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/74.jpg)
30/05/2011Nicolas Pastorino - IPCse11 27
Prefix
Provider
Version
Just a token to trigger your rewrite rule
ezpRestPrefixFilterInterface
At the core of the eZ Publish CMS Extensible REST API
![Page 75: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/75.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Prefix filter
28
Current provider
Current parsed version value
ezpRestPrefixFilterInterface
![Page 76: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/76.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Versioned API
29
class ezpRestRouter extends ezcMvcRouter{ public function createRoutes() { // ezpRestApiProvider $routes = array( new ezcMvcRailsRoute( '/content/node/:nodeId/listAtom', 'ezpRestAtomController', 'collection' ), new ezcMvcRailsRoute( '/content/node/:nodeId/list', 'ezpRestContentController', 'list' ), new ezcMvcRailsRoute( '/content/node/:nodeId', 'ezpRestContentController', 'viewContent' ), new ezcMvcRailsRoute( '/content/node/:nodeId/fields', 'ezpRestContentController', 'viewFields' ), new ezcMvcRailsRoute( '/content/node/:nodeId/field/:fieldIdentifier', 'ezpRestContentController', 'viewField' ), new ezcMvcRailsRoute( '/content/object/:objectId', 'ezpRestContentController', 'viewContent' ), new ezcMvcRailsRoute( '/content/object/:objectId/fields', 'ezpRestContentController', 'viewFields' ), new ezcMvcRailsRoute( '/content/object/:objectId/field/:fieldIdentifier', 'ezpRestContentController', 'viewField' ),
new ezpRestVersionedRoute( new ezcMvcRailsRoute( '/foo', 'myController', 'myActionOne' ), 1 ), new ezpRestVersionedRoute( new ezcMvcRailsRoute( 'e/foo', 'myController2 or myControlerWhichExtendsmyController', 'myBetterAndScalingAction' ), 2 ), ); return ezcMvcRouter::prefix( '/api', $routes ); }}
![Page 77: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/77.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Versioned API
makes the notion version a part of the routing decision
30
Version
ezpRestVersionedRoute
![Page 78: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/78.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Build your own flavor,extend the interface(s)
31
At the core of the eZ Publish CMS Extensible REST API
![Page 79: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/79.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Extending the interface
32
REST providers
![Page 80: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/80.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Extending the interface
ezpRestProviderInterface
33
![Page 81: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/81.jpg)
Overview of hooksthe places where you can go wild.
![Page 82: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/82.jpg)
30/05/2011Nicolas Pastorino - IPCse11 35
![Page 83: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/83.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Route setup - Example
36
class ezpRestRouter extends ezcMvcRouter{ public function createRoutes() { $providerRoutes = ezpRestProvider::getProvider( ezpRestPrefixFilterInterface::getApiProviderName() )->getRoutes();
$routes = array( new ezpMvcRailsRoute( '/fatal', 'ezpRestErrorController', 'show' ), new ezpMvcRailsRoute( '/http-basic-auth', 'ezpRestAuthController', 'basicAuth' ), new ezpMvcRailsRoute( '/login/oauth', 'ezpRestAuthController', 'oauthRequired' ), new ezpMvcRailsRoute( '/oauth/token', 'ezpRestOauthTokenController', 'handleRequest'),
// ezpRestVersionedRoute( $route, $version ) // $version == 1 should be the same as if the only the $route had been present new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/foo', 'myController', 'myActionOne' ), 1 ), new ezpRestVersionedRoute( new ezpMvcRailsRoute( '/foo', 'myController', 'myActionOneBetter' ), 2 ),
);
return ezcMvcRouter::prefix( '/api', array_merge( $providerRoutes, $routes ) ); }}
![Page 84: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/84.jpg)
Extensible REST API
37
Key features
![Page 85: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/85.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content resources
38
Key featuresExtensible REST API
![Page 86: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/86.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Key features
GET /[api]/v1/content/object/<objectId>/fields HTTP/1.1
39
![Page 87: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/87.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Key features
fields/<fieldname>
type (datatype string)
identifier (attribute identifier)
value (string representation of data)
id (object attribute numerical ID)
classattribute_id (class attribute numerical ID)
40
![Page 88: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/88.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Key features
GET /[api]/v1/content/object/<objectId>/field/
<FieldIdentifier> HTTP/1.1
41
![Page 89: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/89.jpg)
Content Recommendation
42
YooChoose, eZ Recommender Engine
![Page 90: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/90.jpg)
![Page 91: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/91.jpg)
A tough selection needs to be made amongst the infinite amount of content published
![Page 92: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/92.jpg)
A tough selection needs to be made amongst the infinite amount of content published
Which one is my slope ?
![Page 93: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/93.jpg)
A tough selection needs to be made amongst the infinite amount of content published
![Page 94: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/94.jpg)
A tough selection needs to be made amongst the infinite amount of content published
I only have 30 minutes a day, which posts should i read ?
![Page 95: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/95.jpg)
A tough selection needs to be made amongst the infinite amount of content published
Doesn’t it feel like this sometimes :
![Page 96: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/96.jpg)
![Page 97: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/97.jpg)
One sometimes needs a helping hand to choose the right slope to ride, the right
content to consume
![Page 98: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/98.jpg)
One sometimes needs a helping hand to choose the right slope to ride, the right
content to consume
![Page 99: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/99.jpg)
One sometimes needs a helping hand to choose the right slope to ride, the right
content to consume
![Page 100: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/100.jpg)
One sometimes needs a helping hand to choose the right slope to ride, the right
content to consume
Content recommendation
![Page 101: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/101.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
47
![Page 102: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/102.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
47
![Page 103: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/103.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
47
Track content consumption
![Page 104: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/104.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
47
Track content consumption
+
Learn content metadata
![Page 105: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/105.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
47
Track content consumption
+
Learn content metadata
=
Content Recommendation
![Page 106: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/106.jpg)
![Page 107: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/107.jpg)
Cloud-based learning of behaviors using • Events “Viewing, Purchasing, Rating, Sharing”
• Models Users who viewed A also viewed B
• Stereotypes Affinity calculated against larger sets of content
![Page 108: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/108.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
49
![Page 109: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/109.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
49
Hybrid filteringIncreasing recommendation quality by combining
methods for qualifying behaviors
![Page 110: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/110.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
49
Content-based filtering
~
“Content like this”
Hybrid filteringIncreasing recommendation quality by combining
methods for qualifying behaviors
![Page 111: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/111.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
49
Content-based filtering
~
“Content like this”
Collaborative filtering
“Customers who were interested in this product also bought …”
Hybrid filteringIncreasing recommendation quality by combining
methods for qualifying behaviors
![Page 112: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/112.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
49
Content-based filtering
~
“Content like this”
Collaborative filtering
“Customers who were interested in this product also bought …”
Community-based filtering
~
“Customers like you also bought …”
Stereotype-based filtering
Recommendation combines content cluster with affinity vectors
Rock
Pop
R&B
Context-based filtering
Recommendation depends on location, time, mood, environment …
Hybrid filteringIncreasing recommendation quality by combining
methods for qualifying behaviors
![Page 113: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/113.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
49
Content-based filtering
~
“Content like this”
Collaborative filtering
“Customers who were interested in this product also bought …”
Community-based filtering
~
“Customers like you also bought …”
Stereotype-based filtering
Recommendation combines content cluster with affinity vectors
Rock
Pop
R&B
Context-based filtering
Recommendation depends on location, time, mood, environment …
Hybrid filteringIncreasing recommendation quality by combining
methods for qualifying behaviors
+ A/B testing + near cold-start recommendations
![Page 114: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/114.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
50
![Page 115: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/115.jpg)
30/05/2011Nicolas Pastorino - IPCse11
Content recommendation
50
I/O through REST
Native connection with any HTTP-enabled client ( simple with PHP, native extension for eZ Publish CMS )
Cloud-based : scales
Different methods for event tracking : JS, built-in the CMS,
![Page 116: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/116.jpg)
Famous Last Slides
51
![Page 117: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/117.jpg)
RECAP
![Page 118: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/118.jpg)
RECAP
Multichannel emotion
![Page 119: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/119.jpg)
RECAP
Multichannel emotionREST
![Page 120: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/120.jpg)
RECAP
Multichannel emotionREST
Extensible REST API
![Page 121: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/121.jpg)
RECAP
Multichannel emotionREST
Extensible REST APIContent recommendation
![Page 122: Nicolas Pastorino - REST + recommendation, consume the right content, anywhere - IPC11](https://reader035.vdocument.in/reader035/viewer/2022070301/54575a5caf795994188b5083/html5/thumbnails/122.jpg)
eZ Communityhttp://share.ez.no
eZ Publish Community Projecthttps://github.com/ezsystems/ezpublishhttp://share.ez.no/download http://share.ez.no/get-involved
YooChoose, recommendation enginehttp://www.yoochoose.com
eZ Systems & eZ Publish Enterprise Editionhttp://ez.no
Find me on Twitter : @jeanvoye
Rate this talk : http://joind.in/3852 Slides available soon at http://slideshare.net/jeanvoye
Thank you !