"Comics" Is Hard: Domain Modeling Challenges

  • 1,424 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,424
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
16
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Welcome
  • 2. “Comics” Is Hard: Domain Modeling Challenges Ben Scofield – Viget Labs
  • 3. #?forben
  • 4. Modeling #?forben flickr: bunchofpants
  • 5. Crowdsourcing #?forben
  • 6. flickr: ropesandpulleys
  • 7. flickr: paopix
  • 8. person rating rater
  • 9. just because you can doesn’t mean you should http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
  • 10. just because you can doesn’t mean you should http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
  • 11. just because you can doesn’t mean you should http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
  • 12. person rating
  • 13. person avg / # ratings
  • 14. The Challenge Deciding what to model
  • 15. Biology #?forben
  • 16. Linnean taxonomy
  • 17. Kingdom Phylum Class Order Family Genus Species flickr: pandiyan
  • 18. Animalia Chordata Mammalia Carnivora Felidae Panthera tigris flickr: pandiyan
  • 19. kingdom phylum class genus family order species organism
  • 20. Problem The levels are imaginary
  • 21. subphylum kingdom phylum class superclass subclass subfamily suborder superorder genus family order subgenus superfamily subspecies species organism variety
  • 22. subphylum kingdom phylum class ? superclass subclass subfamily suborder superorder genus family order subgenus superfamily subspecies species organism variety
  • 23. subspecies taxon taxon taxon species organism variety
  • 24. Species flickr: cpurrin1
  • 25. Reproductive Isolation flickr: superciliousness
  • 26. Reproductive Isolation flickr: superciliousness
  • 27. flickr: jassen
  • 28. flickr: niznoz
  • 29. Numerical taxonomy
  • 30. Cladistics
  • 31. taxon clade taxon organism
  • 32. Problem Cladistics is historical and counter-intuitive
  • 33. flickr: goellnitz
  • 34. flickr: goellnitz pcoin
  • 35. The Challenge Unclear, imprecise domain
  • 36. comics #?forben
  • 37. publisher title issue
  • 38. publisher imprint title issue
  • 39. publisher imprint title issue volume
  • 40. publisher imprint title issue volume trade
  • 41. publisher imprint title issue volume variant trade
  • 42. name publisher imprint title issue volume variant trade
  • 43. name publisher imprint title ? issue nested set? volume variant trade
  • 44. “Experience CIVIL WAR and its major tie-ins from CIVIL WAR: FRONT LINE and FANTASTIC FOUR in chronological order! ...”
  • 45. name ?? publisher imprint title issue storyline volume nested set? variant trade
  • 46. imprint publisher title name storyline @#&*! issue nested set? volume variant trade
  • 47. science fiction noir horror genres? independent Martial Arts historical Pirate superhero
  • 48. imprint publisher @#&*! title name genre issue volume nested set? storyline variant trade
  • 49. The Challenge Complete insanity
  • 50. Alternatives databases unite! #?forben flickr: ikhnaton2
  • 51. http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
  • 52. Key-Value #?forben
  • 53. Redis Tokyo Cabinet Project Voldemort Cassandra*
  • 54. require quot;rubygemsquot; require quot;tokyocabinetquot; include TokyoCabinet bdb = BDB::new # B-Tree database; keys may have multiple values bdb.open(quot;casket.bdbquot;, BDB::OWRITER | BDB::OCREAT) # store records in the database, allowing duplicates bdb.putdup(quot;key1quot;, quot;value1quot;) bdb.putdup(quot;key1quot;, quot;value2quot;) bdb.put(quot;key2quot;, quot;value3quot;) bdb.put(quot;key3quot;, quot;value4quot;) # retrieve all values p bdb.getlist(quot;key1quot;) # => [quot;value1quot;, quot;value2quot;] # range query, find all matching keys p bdb.range(quot;key1quot;, true, quot;key3quot;, true) # => [quot;key1quot;, quot;key2quot;, quot;key3quot;] http://www.igvita.com/2009/02/13/tokyo-cabinet-beyond-key-value-store/
  • 55. Crowdsourcing x Biology x Comics x
  • 56. Document #?forben
  • 57. { 'name':'Ben Scofield', 'adjective':'awesomesauce' } { 'name':'Magic Pony', 'description':'It is a *lie*!' }
  • 58. HTTP
  • 59. Crowdsourcing ✓ Biology ✓ Comics x
  • 60. { 'name':'Ben Scofield', 'image’:‘http://whatevs.com/ben.jpg', ‘average_rating’:‘4.667’, ‘number_of_ratings’:’3’ }
  • 61. { 'kingdom':'Animalia', ‘phylum’:‘Chordata’, ‘subphylum’:‘Vertebrata’, ‘class’:‘Mammalia’, ‘subclass’:‘Eutheria’, ‘order’:‘Carnivora’, ‘family’:‘Felidae’, ‘subfamily’:‘Panthernae’, ‘genus’:‘Pantera’, ‘species’:‘tigris’, ‘name’:‘Wanda’ }
  • 62. Graph #?forben
  • 63. AllegroGraph Java Java / Lisp
  • 64. http://neotechnology.com/why-neo
  • 65. http://markorodriguez.com/Lectures_files/risk-symposium2009.pdf
  • 66. flickr: 9948354@N08
  • 67. Crowdsourcing x Biology ✓ Comics ✓
  • 68. Animalia ... Felidae subfamilyof genusof Panthernae genusof Panthera speciesof tigris member 001 age name weight 3 Wanda 300
  • 69. Animalia ... Felidae subfamilyof genusof Panthernae genusof Panthera species speciesof type tigris 010 name tigris member 001 age name weight 3 Wanda 300
  • 70. Group IV orderof Picornavirales familyof Picornaviridae genusof Rhinovirus speciesof human rhinovirus A member 002
  • 71. class Mammalia Group IV group orderof orderof Carnivora Picornavirales familyof familyof Felidae Picornaviridae subfamilyof Panthernae genusof genusof genusof Panthera Rhinovirus speciesof speciesof human tigris rhinovirus A member member 001 002
  • 72. DC imprintof titleof DC Universe Green titleof 001 Lantern nameof genreof volumeof genreof Volume 1 Sci Fi Superhero genreof issueof genreof 002 precedes Issue #2 number coverof #1 003
  • 73. Hybrid Solutions #?forben flickr: joriel
  • 74. Configuration ✓ Caching ✓ Translations ✓
  • 75. post tag document id { 'title':'Post Title' 'content':'Hello!' 'comments':[quot;First!quot;] }
  • 76. http://www.speakerrate.com/talks/1169 Thank You ben scofield - @bscofield - http://www.viget.com/extend - http://www.speakerrate.com/bscofield