SlideShare ist ein Scribd-Unternehmen logo
1 von 110
Downloaden Sie, um offline zu lesen
Welcome
“Comics” Is Hard:
Domain Modeling Challenges
Ben Scofield – Viget Labs
#?forben
Modeling



#?forben
flickr: bunchofpants
Crowdsourcing
#?forben
flickr: ropesandpulleys
flickr: paopix
person   rating   rater
just because you can
                                                    doesn’t mean you should



http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
just because you can
                                                    doesn’t mean you should



http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
just because you can
                                                    doesn’t mean you should



http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
person   rating
person
avg / # ratings
The Challenge
Deciding what to model
Biology

#?forben
Linnean taxonomy
Kingdom
   Phylum
   Class
   Order
   Family
   Genus
   Species
flickr: pandiyan
Animalia
   Chordata
   Mammalia
   Carnivora
   Felidae
   Panthera
   tigris
flickr: pandiyan
kingdom   phylum     class




 genus     family    order




species   organism
Problem
The levels are imaginary
subphylum

           kingdom                phylum                   class

                                             superclass            subclass


                     subfamily                suborder
                                                                   superorder
            genus                  family                  order

subgenus                                     superfamily


                     subspecies

           species                organism

                       variety
subphylum

           kingdom                phylum                   class




                                  ?
                                             superclass            subclass


                     subfamily                suborder
                                                                   superorder
            genus                  family                  order

subgenus                                     superfamily


                     subspecies

           species                organism

                       variety
subspecies

taxon taxon taxon   species                organism

                                variety
Species
flickr: cpurrin1
Reproductive Isolation
flickr: superciliousness
Reproductive Isolation
flickr: superciliousness
flickr: jassen
flickr: niznoz
Numerical taxonomy
Cladistics
taxon clade taxon   organism
Problem
Cladistics is historical and
    counter-intuitive
flickr: goellnitz
flickr: goellnitz
       pcoin
The Challenge
Unclear, 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




            variant             trade
name




publisher             imprint            title




                      issue             volume




            variant             trade
name




publisher              imprint               title




                        ?
                        issue
                      nested set?
                                            volume




            variant                 trade
“Experience CIVIL WAR and its major tie-ins
from CIVIL WAR: FRONT LINE and
FANTASTIC FOUR in chronological order! ...”
name




                  ??
publisher              imprint               title




                        issue
storyline                                   volume
                      nested set?




            variant                 trade
imprint




publisher                title              name




storyline
            @#&*!       issue
                      nested set?
                                            volume




            variant                 trade
science fiction
     noir       horror

      genres?
independent
           Martial Arts
 historical
  Pirate      superhero
imprint     publisher




@#&*!
               title      name


 genre


              issue
                          volume
            nested set?




storyline    variant      trade
The Challenge
Complete insanity
Alternatives
                     databases unite!




#?forben
flickr: ikhnaton2
http://thisisindexed.com/2009/02/just-because-you-can-doesnt-mean-you-should/
Key-Value

#?forben
Redis    Tokyo Cabinet
 Project Voldemort
  Cassandra*
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/
Crowdsourcing   x
   Biology      x
   Comics       x
Document

#?forben
{
    '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’
}
Graph

#?forben
AllegroGraph
Java     Java / Lisp
http://neotechnology.com/why-neo
http://markorodriguez.com/Lectures_files/risk-symposium2009.pdf
flickr: 9948354@N08
Crowdsourcing   x
   Biology      ✓
   Comics       ✓
Animalia


             ...


           Felidae
                         subfamilyof


          genusof              Panthernae

                          genusof
          Panthera


          speciesof


            tigris


          member


            001


    age    name       weight



3          Wanda                  300
Animalia


                         ...


                       Felidae
                                     subfamilyof


                      genusof              Panthernae

                                      genusof
                      Panthera



species               speciesof
              type

                        tigris
                         010

              name
 tigris               member


                        001


                age    name       weight



          3            Wanda                  300
Group IV


  orderof


Picornavirales



  familyof


Picornaviridae



  genusof


Rhinovirus


 speciesof

   human
rhinovirus A


  member


    002
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
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
Hybrid Solutions



#?forben
flickr: joriel
Configuration   ✓
  Caching      ✓
Translations   ✓
post
tag
      document id




                    {
                        'title':'Post Title'
                        'content':'Hello!'
                        'comments':[quot;First!quot;]
                    }
http://www.speakerrate.com/talks/1169


                              Thank You
ben scofield - @bscofield - http://www.viget.com/extend - http://www.speakerrate.com/bscofield

Weitere ähnliche Inhalte

Mehr von Ben Scofield

Open Source: A Call to Arms
Open Source: A Call to ArmsOpen Source: A Call to Arms
Open Source: A Call to ArmsBen Scofield
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud CastlesBen Scofield
 
Intentionality: Choice and Mastery
Intentionality: Choice and MasteryIntentionality: Choice and Mastery
Intentionality: Choice and MasteryBen Scofield
 
Mastery or Mediocrity
Mastery or MediocrityMastery or Mediocrity
Mastery or MediocrityBen Scofield
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty HammerBen Scofield
 
Mind Control - DevNation Atlanta
Mind Control - DevNation AtlantaMind Control - DevNation Atlanta
Mind Control - DevNation AtlantaBen Scofield
 
Understanding Mastery
Understanding MasteryUnderstanding Mastery
Understanding MasteryBen Scofield
 
Mind Control: Psychology for the Web
Mind Control: Psychology for the WebMind Control: Psychology for the Web
Mind Control: Psychology for the WebBen Scofield
 
The State of NoSQL
The State of NoSQLThe State of NoSQL
The State of NoSQLBen Scofield
 
NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010Ben Scofield
 
NoSQL: Death to Relational Databases(?)
NoSQL: Death to Relational Databases(?)NoSQL: Death to Relational Databases(?)
NoSQL: Death to Relational Databases(?)Ben Scofield
 
Charlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is HardCharlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is HardBen Scofield
 
The Future of Data
The Future of DataThe Future of Data
The Future of DataBen Scofield
 
WindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is HardWindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is HardBen Scofield
 
"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative DatabasesBen Scofield
 
Mind Control on the Web
Mind Control on the WebMind Control on the Web
Mind Control on the WebBen Scofield
 
How the Geeks Inherited the Earth
How the Geeks Inherited the EarthHow the Geeks Inherited the Earth
How the Geeks Inherited the EarthBen Scofield
 
And the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceAnd the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceBen Scofield
 

Mehr von Ben Scofield (20)

Thinking Small
Thinking SmallThinking Small
Thinking Small
 
Open Source: A Call to Arms
Open Source: A Call to ArmsOpen Source: A Call to Arms
Open Source: A Call to Arms
 
Ship It
Ship ItShip It
Ship It
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud Castles
 
Intentionality: Choice and Mastery
Intentionality: Choice and MasteryIntentionality: Choice and Mastery
Intentionality: Choice and Mastery
 
Mastery or Mediocrity
Mastery or MediocrityMastery or Mediocrity
Mastery or Mediocrity
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty Hammer
 
Mind Control - DevNation Atlanta
Mind Control - DevNation AtlantaMind Control - DevNation Atlanta
Mind Control - DevNation Atlanta
 
Understanding Mastery
Understanding MasteryUnderstanding Mastery
Understanding Mastery
 
Mind Control: Psychology for the Web
Mind Control: Psychology for the WebMind Control: Psychology for the Web
Mind Control: Psychology for the Web
 
The State of NoSQL
The State of NoSQLThe State of NoSQL
The State of NoSQL
 
NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010
 
NoSQL: Death to Relational Databases(?)
NoSQL: Death to Relational Databases(?)NoSQL: Death to Relational Databases(?)
NoSQL: Death to Relational Databases(?)
 
Charlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is HardCharlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is Hard
 
The Future of Data
The Future of DataThe Future of Data
The Future of Data
 
WindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is HardWindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is Hard
 
"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases
 
Mind Control on the Web
Mind Control on the WebMind Control on the Web
Mind Control on the Web
 
How the Geeks Inherited the Earth
How the Geeks Inherited the EarthHow the Geeks Inherited the Earth
How the Geeks Inherited the Earth
 
And the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceAnd the Greatest of These Is ... Space
And the Greatest of These Is ... Space
 

Kürzlich hochgeladen

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Kürzlich hochgeladen (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

"Comics" Is Hard: Domain Modeling Challenges