[Data-modeling] from software releases to operating systems...

brendan brendan at metaweb.com
Wed May 7 00:44:27 UTC 2008


Hi,

I'd like to broach the discussion of operating systems and their  
releases/versions. To recap my proposal for software and its versions/ 
releases (from last week):

"Software" has "Software Releases" which are unique and identifiable  
by a version label and a release date and one or more Operating  
Systems (more on this last part, later).

e.g. the software "Mozilla Firefox" has

"Firefox 2.0.0.14 for Mac OS X"  * 2.0.0.14 * April 16, 2008 * Mac OS X

"Software" also has "Software Release Series" which are more flexible  
in use. This is any series of software releases that are deemed to be  
related in some significant way.

e.g. the software "Mozilla Firefox" has

"Firefox 2"

which would, like software, have a list of all the software versions/ 
releases; the versions associated with the series.  Yes, it falls a  
little short on the normalization front but I think it's quite a bit  
more practical than trying to do some kind of hierarchical thing here.

So, on to operating systems and their version/releases. How it's  
modeled now:

type: /computers/operating_system

property: parent_os                      expected_type: operating_system
property: includes_os_versions expected_type: operating_system
property: version_number           expected_type: Text

I'm not fond of this schema.  I'd like to deprecate it and model  
operating systems similar to the way I modeled software.

"Operating System" (e.g. "Mac OS X")
"Operating System Release/Version" (e.g. "Mac OS 10.5.2")
"Operating System Release Series" (e.g. "Mac OS X Leopard")

The main difference is os release versions don't have a supported OS/ 
Platform like software but, rather, a supported "Computer  
Architecture" which refers to, well, I'm not sure. Should it be a list  
of CPU series supported? I don't think that's such a good idea.  I'm  
afraid we may need another type here: "Computing Architecture"  e.g.  
x86, x86-64, PowerPC, XScale, StrongARM.  I think this would cover  
most use cases.

Now back to Software Releases.  I said they are characterized by a  
version, a release date and an operating system.  That last property  
is a little fuzzy.  I mean, some software releases are compatible with  
an operating system but only a minimum version of an operating  
system.  Worse, some software releases are only compatible with a  
particular operating system for a particular computing architecture  
(e.g. stuff that only worked on powerpc macs running OS X)

Before I dive into this last problem I'd like to get some feedback on  
the general direction I'm heading....

thanks,

Brendan












More information about the Data-modeling mailing list