Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Selling Ebooks with RDF

Avatar for gcarothers gcarothers
November 09, 2011

Selling Ebooks with RDF

This is the story of how O'Reilly Media began using RDF, SPARQL, and Pyramid to sell $4 million in Ebooks. Learn from our missteps, disasters, and Really Bad Ideas(TM).

Avatar for gcarothers

gcarothers

November 09, 2011
Tweet

Other Decks in Technology

Transcript

  1. ... wanted to: • Sell Chapters! • Digitize Backlist! •

    Make custom books! • Make textbooks! • Do Stuff!™
  2. <tag> Soup • Tightly coupled to database • verbose •

    imprecise product model • slow • expensive to change
  3. ONIX • Industry Standard! • Based on EDI • Ebooks

    added as after thought • Highly dependent on &Entities; • Unqueryable
  4. ONIX • Industry Standard! • Based on EDI • Ebooks

    added as after thought • Highly dependent on &Entities; • Unqueryable <b203> ... title text?!
  5. Design our own! • Already knew Relax NG • hundreds

    of hours of work • had just seen process for metadata in DocBook 5 • We ran away quickly
  6. RDF

  7. subject, predicate, object . @base <http://ora.com/products/> . @prefix dc: <http://purl.org/dc/terms/>

    . @prefix authors: <http://ora.com/authors/> <0636920020547> dc:title “Learning SPARQL”@en; dc:creator authors:bob . @base <http://ora.com/authors/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . <bob> foaf:name “Bob DuCharme” .
  8. Resource Description Framework is: • Dublin Core (and other vocabularies)

    • Document (Graph) Oriented • NOT <xml/> • JOINs are in the white space
  9. Resource Description Framework is: • Dublin Core (and other vocabularies)

    • Document (Graph) Oriented • NOT <xml/> • JOINs are in the white space • Simple enough to explain to designers • Fits with Python generators and dicts
  10. Resource Description Framework is: • Dublin Core (and other vocabularies)

    • Document (Graph) Oriented • NOT <xml/> • JOINs are in the white space • Simple enough to explain to designers • Fits with Python generators and dicts
  11. • ... doesn’t assume you have an ORM • Or

    even a database at all! • ... never dictates URL structure • ... templating decoupled from framework Pyramid...