The Artima Developer Community
Sponsored Link

Ruby Buzz Forum
Data and Reality

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page


Posts: 201
Nickname: cfis
Registered: Mar, 2006

Charlie Savage
Data and Reality Posted: Mar 29, 2006 10:18 AM
Reply to this message Reply

This post originated from an RSS feed registered with Ruby Buzz by .
Original Post: Data and Reality
Feed Title: cfis
Feed URL: http://cfis.savagexi.com/articles.rss
Feed Description: Charlie's Blog
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by
Latest Posts From cfis

Advertisement
Data and Reality

Every artistic endeavor strives to capture some slice of the world around us. You might be trying to create as realistic a portrayal as possible, or maybe you're after a highly abstract portrayal that tries to evoke some emotion.

In the world of software (an artistic endeavor if I've seen one), we create highly-tailored portrayals that are suitable only for the purpose they were constructed.1 Take two or more programs that are in the same problem domain - human resource software, databases, blogging software, etc. None of them will be compatible because they represent a single designer's (or maybe a couple) view of a problem domain. And every one has a different view of the problem to be solved and how to solve it.

Take a simple term - say a street. What it is it? Have you ever been on a street that ends, and then starts up in a few blocks? Is that the same street? How about a street whose name changes - is it still the same street? Does a street include boulevards, highways, freeways? Does a street cross city, county, state boundaries? Do you and I live on the same street, although I live in the United States and you live in Canada?

Most of us just want to bury our heads in the sand when faced with such questions - thinking about them is painful because there is no right answer and you're immediately led to deep philosophical questions about how we perceive the world around us. And most books and papers on the subject are highly technical, and of very little use to people who need to create software by yesterday.

Fortunately, there is a fantastic book on the subject, called Data and Reality, that is deeply grounded in how these issues affect software design. Written by William Kent, it addresses issues that come up every day in design. What is the difference between an identifier and a name? What is a type or category? What is the difference between an attribute and a relationship? For that matter, what's the difference between types, attributes and relationships? What are the strengths and weaknesses of the hierarchical, network and relational models? Don't expect any easy answers - because they aren't any.

Don't let the publication date, 1978, fool you. The questions the book raises are as valid today as then. In fact, I'd bet they'll be just as valid one thousand years from now. Luckily the book was reprinted in 2000, so go pick up your copy now before it goes out of print again.

Let me leave you with one of my favorite passages from the book (page 10, 2000 paperback edition):

We seem to have little difficulty with the concept of "one person" despite changes in appearance, personality, capabilities, and, above all, chemical composition...When we speak of the same person over a period of time, we certainly are not referring to the same ensemble of atoms and molecules. What the is the "same person"? We can only appeal to some vague intuition about the "continuity" of - something - through gradual change. The concept of the "same person" is so familiar and obvious that it is absolutely irritating not to be able to define it. Definitions in terms of "soul" and "spirit" may be the only true and humanistic concepts, but significantly, we don't know how to deal with them in a computer-based information system. It is only when the notion of "person" is pushed to some limit do we realize how imprecise the notion is.

1I can't help but think of software products as Mount Everests on a fitness landscape that are infinitely thin. Veer just slightly off their intended purpose and everything comes crashing down.

Read: Data and Reality

Topic: Casting timestop and time travel Previous Topic   Next Topic Topic: The adventures of scaling, Stage 3

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use