"comics" is hard: domain modeling challenges
DESCRIPTION
TRANSCRIPT
Welcome
“Comics” Is Hard:Domain Modeling ChallengesBen Scofield – Viget Labs
#?forben
#?forben
Modeling
flickr: bunchofpants
Crowdsourcing
#?forben
flickr: ropesandpulleys
flickr: paopix
person rating rater
just because you candoesn’t mean you should
http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
just because you candoesn’t mean you should
http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
just because you candoesn’t mean you should
http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
person rating
person
avg / # ratings
The ChallengeDeciding what to model
Biology
#?forben
Linnean taxonomy
KingdomPhylumClassOrderFamilyGenusSpecies
flickr: pandiyan
AnimaliaChordataMammaliaCarnivoraFelidaePantheratigris
flickr: pandiyan
kingdom phylum class
genus family order
species organism
ProblemThe levels are imaginary
kingdom phylum class
genus family order
species organism
subphylum
superclass subclass
superordersuborder
superfamily
subfamily
subgenus
variety
subspecies
kingdom phylum class
genus family order
species organism
subphylum
superclass subclass
superordersuborder
superfamily
subfamily
subgenus
variety
subspecies
?
taxon taxontaxon species organism
variety
subspecies
Speciesflickr: cpurrin1
Reproductive Isolationflickr: superciliousness
Reproductive Isolationflickr: superciliousness
flickr: jassen
flickr: niznoz
Numerical taxonomy
Cladistics
taxon taxon organismclade
ProblemCladistics is historical and
counter-intuitive
flickr: goellnitz
flickr: goellnitzflickr: pcoin
The ChallengeUnclear, imprecise domain
comics
#?forben
publisher title issue
publisher imprint title
issue
publisher imprint title
issue volume
publisher imprint title
issue volume
trade
publisher imprint title
issue volume
tradevariant
publisher imprint title
issue volume
tradevariant
name
publisher imprint title
issue
nested set?volume
tradevariant
name
?
“Experience CIVIL WAR and its major tie-ins from CIVIL WAR: FRONT LINE and FANTASTIC FOUR in chronological order! ...”
publisher imprint title
issue
nested set?volume
tradevariant
name
storyline ??
publisher
imprint
title
issue
nested set?volume
tradevariant
name
storyline
@#&*!
horror
superhero
Martial Arts
noir
Pirate
science fiction
independent
historical
genres?
publisherimprint
title
issue
nested set?volume
tradevariant
name
storyline
genre@#&*!
The ChallengeComplete insanity
databases unite!
#?forben#?forben
Alternatives
flickr: ikhnaton2
http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
#?forben
Key-Value
Cassandra*
Tokyo CabinetRedis
Project Voldemort
require "rubygems"require "tokyocabinet" include TokyoCabinet bdb = BDB::new # B-Tree database; keys may have multiple valuesbdb.open("casket.bdb", BDB::OWRITER | BDB::OCREAT) # store records in the database, allowing duplicatesbdb.putdup("key1", "value1")bdb.putdup("key1", "value2")bdb.put("key2", "value3")bdb.put("key3", "value4") # retrieve all valuesp bdb.getlist("key1")# => ["value1", "value2"] # range query, find all matching keysp bdb.range("key1", true, "key3", true)# => ["key1", "key2", "key3"]
http://www.igvita.com/2009/02/13/tokyo-cabinet-beyond-key-value-store/
Crowdsourcing x
Biology x
Comics x
#?forben
Document
{ 'name':'Ben Scofield', 'adjective':'awesomesauce'}
{ 'name':'Magic Pony', 'description':'It is a *lie*!'}
HTTP
Crowdsourcing ✓Biology ✓Comics x
{ 'name':'Ben Scofield', 'image’:‘http://whatevs.com/ben.jpg', ‘average_rating’:‘4.667’, ‘number_of_ratings’:’3’}
{ 'kingdom':'Animalia', ‘phylum’:‘Chordata’, ‘subphylum’:‘Vertebrata’, ‘class’:‘Mammalia’, ‘subclass’:‘Eutheria’, ‘order’:‘Carnivora’, ‘family’:‘Felidae’, ‘subfamily’:‘Panthernae’, ‘genus’:‘Pantera’, ‘species’:‘tigris’, ‘name’:‘Wanda’}
#?forben
Graph
Java
AllegroGraphJava / Lisp
http://neotechnology.com/why-neo
http://markorodriguez.com/Lectures_files/risk-symposium2009.pdf
flickr: 9948354@N08
Crowdsourcing x
Biology ✓Comics ✓
Felidae
001
tigris
Panthera
Panthernae
member
speciesof
Wanda
name
3
age
300
weight
genusof
Animalia
...
subfamilyof
genusof
Felidae
001
tigris
Panthera
Panthernae
member
speciesof
Wanda
name
3
age
300
weight
genusof
Animalia
...
subfamilyof
genusof
010
tigris
species
name
type
Picornaviridae
002
human
rhinovirus A
Rhinovirus
member
speciesof
genusof
Picornavirales
familyof
Group IV
orderof
Picornaviridae
002
human rhinovirus A
Rhinovirus
member
speciesof
genusof
Picornavirales
familyof
Group IV
orderof
Felidae
tigris
Panthera
Panthernae
speciesof
genusof
subfamilyof
genusof
001
member
Carnivora
familyof
Mammalia
orderof
class group
DC
001
DC Universe
titleof
imprintof
titleof
Volume 1
volumeof
Green
Lantern nameof
Sci Fi
genreof
genreof
genreof
002
issueof genreof
Superhero
Issue #2precedes
003
coverof
#1
number
#?forbenflickr: joriel
Hybrid Solutions
Configuration ✓Caching ✓
Translations ✓
tagpost
document id
{ 'title':'Post Title' 'content':'Hello!' 'comments':["First!"]}
Thank You
ben scofield - @bscofield - http://www.viget.com/extend - http://www.speakerrate.com/bscofield
http://www.speakerrate.com/talks/1169