![]() | |
#51
| |||
| |||
|
|
David Cressey wrote: "mAsterdam" <mAsterdam (AT) vrijdag (DOT) org> wrote If I change the order of the items in the list, does that make it a new key? I would think so. (See below) In other words, an onion and mushroom pizza is different from a mushroom and onion pizza. Here we go again. Ha ha! I've always maintained that any question about whether a collection is ordered or not (such as a collection of pizza toppings) is a question of domain modelling. The question of whether onion, mushroom = mushroom, onion is exactly the question of whether this particular collection is considered ordered in this particular domain. To answer that, we need a domain expert. Marshall |
one should desperately
#52
| |||
| |||
|
|
Marshall Spight wrote: David Cressey wrote: "mAsterdam" <mAsterdam (AT) vrijdag (DOT) org> wrote If I change the order of the items in the list, does that make it a new key? I would think so. (See below) In other words, an onion and mushroom pizza is different from a mushroom and onion pizza. Here we go again. Ha ha! I've always maintained that any question about whether a collection is ordered or not (such as a collection of pizza toppings) is a question of domain modelling. The question of whether onion, mushroom = mushroom, onion is exactly the question of whether this particular collection is considered ordered in this particular domain. To answer that, we need a domain expert. Marshall Yes! This point is crucial and why (dawn one should desperatelyavoid the conceptual squashing of sets, multisets, orderings, peruvian monkey fish, etc., into a single catchall "list" construct. It isn't just about the pros and cons of passing cognitive load onto the user, its about allowing the system to be capable of maintaining integrity and making formally correct decisions. As far as I can see, the domain expert that Marshall specifies above can and *should be* the system itself, |
|
as defined to it at design time when the domain was specified. |
#53
| |||
| |||
|
|
Marshall Spight wrote: David Cressey wrote: "mAsterdam" <mAsterdam (AT) vrijdag (DOT) org> wrote I've always maintained that any question about whether a collection is ordered or not (such as a collection of pizza toppings) is a question of domain modelling. The question of whether onion, mushroom = mushroom, onion is exactly the question of whether this particular collection is considered ordered in this particular domain. To answer that, we need a domain expert. Yes! This point is crucial and why (dawn one should desperatelyavoid the conceptual squashing of sets, multisets, orderings, peruvian monkey fish, etc., into a single catchall "list" construct. |
|
its about allowing the system to be capable of maintaining integrity and making formally correct decisions. As far as I can see, the domain expert that Marshall specifies above can and *should be* the system itself, as defined to it at design time when the domain was specified. |
#54
| |||
| |||
|
|
as defined to it at design time when the domain was specified. And redesigned in subsequent projects as requirements change. So, yes, I agree with you in theory but I'm hedging related to practice. |
|
--dawn |
#55
| ||||||
| ||||||
|
|
Marshall Spight wrote: I might have said it that way, but the way I would typically say it is that the user knows what it means. From my perspective this is somewhat like the fact that the user knows what any of the data values mean, whether the value is a list or not, although there are times when a developer needs to know this too. There are a few times when working on tools for the environment when I wished the user told the system whether they cared about the ordering or not, but it is not a significant problem. |
|
Lists are just fantastically easy to implement and fantastically easy to use, You rock, Marshall! |
|
and so they get used for things whether it makes sense or not. Programmers, in general, tend to use what works. |
|
Further, it can leak into the semantic level. Is this equation correct? [a, b] != [b, a]. If you are using an ordered collection to represent unordered data, you'll get the wrong answer. Yes, that would be the type of activity where a programmer would need to know the ordering requirements related to this particular list. The programs then document that fact with any such equality tests. |
|
[I've heard that there are practitioners who refer to lists where the ordering is meaningful as "ordered lists" but that it bugs the crap out of those with more ivory tower leanings who insist that all lists are ordered ;-) ] |
|
I love it! May I substitute relation instead? Then it reads "It's not that relations are difficult. It's just that lists are easier than they have any right to be." |
#56
| |||
| |||
|
|
Marshall Spight wrote: If you want a system that supports identity, you don't want to be using set theory. There are plenty to choose from, and they are well-supported and popular! |
#57
| |||
| |||
|
Yes! This point is crucial and why (dawn one should desperatelyavoid the conceptual squashing of sets, multisets, orderings, peruvian monkey fish, etc., into a single catchall "list" construct. |
#58
| |||
| |||
|
|
Marshall Spight wrote: If you want a system that supports identity, you don't want to be using set theory. There are plenty to choose from, and they are well-supported and popular! When I have arbitrary sets of numbers say and I want to use those sets in some form of manipulation I can, of course, quite happily state them mathematically something of the nature: x = {1, 3, 8}, y = {2, 4, 7}, z = {x, y}, etc. This is simple assignment, and gives my sets a label, or identity if you will, so that I may go ahead and use these descriptions in future manipulations without referring to the sets extensionally. |
|
Surely this is identity (an artifice of course, but valuable here nonetheless) and set theory working in perfect harmony at the heart of mathematics? |
|
Now, this methodology clearly violates the information principle-centric view of using attributes only to refer to things. Yet it is exactly the sort of thing I want to do with the data I work with (genetic and other bioinformatics data), in spite of the cognitive dissonance it seems to be causing me (yes,trying to reconcile what currently seem to be equally arguable but opposing standpoints is hurting my head ). |
#59
| |||||
| |||||
|
|
Brian Selzer wrote: You asked for an example, so here goes. Consider the following set of propositions: Jane Harper is married. Jane Smith is single. And a constraint that states that single people cannot become divorced. Your example is quite handwavey. You haven't specified what the attributes are. Is name a single attribute, or are first and last separate? What is the key? What is the constraint exactly? |
|
It is impossible for you to know because that information was not provided. This is a general limitation on all software, that it can only operate on information that it has been provided. |
|
Brian Selzer wrote: "Marshall Spight" <marshall.spight (AT) gmail (DOT) com> wrote in message I'm not sure we're using the terms in the same way, though. Do you speak Java? Integer i = new Integer(1); Integer j = new Integer(1); System.out.println(i==j); // tests for identity System.out.println(i.equals(j)); // tests for equality Is that how you're using the terms? In Java, == on a reference type tests for reference equality, which is to say identity. If there were no reference types, as in Prolog or SQL or whatever, then there is no identity. That's the point: a non-1NF attribute is not scalar, hence the ambiguity. I observe you did not answer my question, but instead introduced new issues. I also observe that your post reversed the attributions between my comments and yours, which I have repaired. |
|
In any event, the above Java code illustrates equality and identity as I use the terms. Did you understand the example code? |
|
Members of a set don't have identity. Yes they do. Is a roll of quarters worth 25 cents? No, and to elucidate upon my previous point, the attributes that would uniquely identify each individual quarter may not be relevant within the universe of discourse, but that doesn't change the fact that there are still 40 quarters. Again, it is a general limitation of software that it can only operate on the information it has. If you want a system that supports identity, you don't want to be using set theory. There are plenty to choose from, and they are well-supported and popular! Yes, I do want to be using set theory. The recognition of identity does not alter the sound theoretical foundation that the Relational Model provides. It strengthens it, or better yet, completes it. We still haven't really established what you mean by "identity", although you've said it's not the same thing as keys. Marshall |
#60
| |||
| |||
|
|
JOG wrote: Yes! This point is crucial and why (dawn one should desperatelyavoid the conceptual squashing of sets, multisets, orderings, peruvian monkey fish, etc., into a single catchall "list" construct. I think that sets and multisets can both be handled well with relations, as can orderings if necessary. But I long for the day when mathematicians will develop a unified model that will handle both lists and peruvian monkey fish. Tasty, tasty peruvian monkey fish. Mmmmmm. Marshall |
![]() |
| Thread Tools | |
| Display Modes | |
| |