![]() | |
#91
| ||||
| ||||
|
|
"paul c" <toledobythe... (AT) oohay (DOT) ac> wrote in message news:YodKn.4587$Z6.2983 (AT) edtnps82 (DOT) .. Mr. Scott wrote: ... It is my understanding that an OID is a system-generated name that is assigned to an object, and that each OID is assigned to only one object. *In the OO world, OIDs are only assigned to instances of reference types. *Maybe that's why D&D erroneously call them pointers. |
|
Suppose that you have a relation that records what you have in the cupboard, |
|
{item, quantity}. What is the difference between the following relations (assuming the closed world assumption of course)? {{item:"can of dog food", qty:3},{item:"can of cat food", qty:0}} {{item:"can of dog food", qty:3}} Both indicate that there are three cans of dog food, but does the second indicate that there is no such thing as a can of cat food, or is it synonymous with the first? |
|
*Under the closed world assumption, the proposition that is the result of substituting the values "can of cat food" and 0 for the variables in the predicate for the second relation is supposed to be false because the tuple doesn't appear in the relation! |
#92
| |||
| |||
|
|
On 25 mei, 23:04, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: "paul c" <toledobythe... (AT) oohay (DOT) ac> wrote in message news:YodKn.4587$Z6.2983 (AT) edtnps82 (DOT) .. Mr. Scott wrote: ... It is my understanding that an OID is a system-generated name that is assigned to an object, and that each OID is assigned to only one object. In the OO world, OIDs are only assigned to instances of reference types. Maybe that's why D&D erroneously call them pointers. A reference type has the property of being a (set of all possible) reference(s), and nothing more than that. A reference (value) has the property of being useful ONLY if a dereferencing operator can be applied to it, in order to get to the referenced content that actually means something. That is the same property that is also a property of pointers. And that is why D&D _CORRECTLY_ call them "pointers". Suppose that you have a relation that records what you have in the cupboard, Relations don't record anything. Relation _variables_ do. Speak precisely or shut up. {item, quantity}. What is the difference between the following relations (assuming the closed world assumption of course)? {{item:"can of dog food", qty:3},{item:"can of cat food", qty:0}} {{item:"can of dog food", qty:3}} Both indicate that there are three cans of dog food, but does the second indicate that there is no such thing as a can of cat food, or is it synonymous with the first? Well, if you do not provide the exact predicate of the relation _VARIABLES_ that you have in mind, then it would be pretty hard to tell for anyone whether propositions derived from them are synonymous or not, no ? Under the closed world assumption, the proposition that is the result of substituting the values "can of cat food" and 0 for the variables in the predicate for the second relation is supposed to be false because the tuple doesn't appear in the relation! You claim that without giving the precise predicate that you have in mind. If the predicate is "The shop sells product <x> and the current quantity available is <y>", then it makes PERFECT SENSE for a tuple {"can of cat food", 0} to appear in that relation _VARIABLE_. |
#93
| |||||||||
| |||||||||
|
|
"paul c" <toledobythe... (AT) oohay (DOT) ac> wrote in message news:YodKn.4587$Z6.2983 (AT) edtnps82 (DOT) .. Mr. Scott wrote: ... It is my understanding that an OID is a system-generated name that is assigned to an object, and that each OID is assigned to only one object. In the OO world, OIDs are only assigned to instances of reference types. Maybe that's why D&D erroneously call them pointers. |
|
QUOTE |
|
Suppose that you have a relation that records what you have in the cupboard, |
|
QUOTE |
|
{item, quantity}. What is the difference between the following relations (assuming the closed world assumption of course)? {{item:"can of dog food", qty:3},{item:"can of cat food", qty:0}} {{item:"can of dog food", qty:3}} Both indicate that there are three cans of dog food, but does the second indicate that there is no such thing as a can of cat food, or is it synonymous with the first? |
|
QUOTE |
|
Under the closed world assumption, the proposition that is the result of substituting the values "can of cat food" and 0 for the variables in the predicate for the second relation is supposed to be false because the tuple doesn't appear in the relation! |
|
QUOTE |
|
QUOTE |
#94
| ||||
| ||||
|
|
"Erwin" <e.sm... (AT) myonline (DOT) be> wrote in message news:4df4d884-e6bb-427e-b97b-96647f171a11 (AT) m33g2000vbi (DOT) googlegroups.com... On 25 mei, 23:04, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: "paul c" <toledobythe... (AT) oohay (DOT) ac> wrote in message news:YodKn.4587$Z6.2983 (AT) edtnps82 (DOT) .. A relation is what has been recorded, so there is nothing wrong with referring to what it records. |
|
Both indicate that there are three cans of dog food, but does the second indicate that there is no such thing as a can of cat food, or is it synonymous with the first? |
|
It doesn't matter what the predicate is because the propositions in question differ in form: |
|
Under the closed world assumption, the proposition that is the result of substituting the values "can of cat food" and 0 for the variables in the predicate for the second relation is supposed to be false because the tuple doesn't appear in the relation! But there is the contradiction. It doesn't appear in the second relation but the absence of it logically implies it: that doesn't make any sense. |
#95
| |||
| |||
|
|
paul c wrote: I know the term OID only from some database literature, in which it is used for such generated values. *In OO programming, a distinction can be made between pointers, which are addresses in memory and which can be meaningfully added to, and references, which are not and on which the only meaningful operation is equality comparison. |
|
References are in between pointers and OIDs. |
#96
| |||
| |||
|
|
On 26 mei, 03:46, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: "Erwin" <e.sm... (AT) myonline (DOT) be> wrote in message news:4df4d884-e6bb-427e-b97b-96647f171a11 (AT) m33g2000vbi (DOT) googlegroups.com... On 25 mei, 23:04, "Mr. Scott" <do_not_re... (AT) noone (DOT) com> wrote: "paul c" <toledobythe... (AT) oohay (DOT) ac> wrote in message news:YodKn.4587$Z6.2983 (AT) edtnps82 (DOT) .. A relation is what has been recorded, so there is nothing wrong with referring to what it records. Interpreting the meaning of a relation can only be done when some predicate is given to do that interpreting. Predicates are tied to relation _variables_, not to relations. TABLE_DEE appearing as the value for relvar THE_SHOP_IS_OPEN means something different than TABLE_DEE appearing as the value for relvar THE_ALARM_IS_SET. Saying that relations have meaning irrespective of some predicate coming from some relvar, is a plain and simple admission of the fact that you simply aren't getting it. |
|
Both indicate that there are three cans of dog food, but does the second indicate that there is no such thing as a can of cat food, or is it synonymous with the first? It depends on the predicate of the relvar that these relations might appear for. |
|
.... My understanding is that you are trying to turn this into a deficiency of the relational model. It is not. It is just a property of the number zero, and it is just the logical meaning of any quantity being zero. |
#97
| ||||
| ||||
|
|
On 24 mei, 16:03, r... (AT) raampje (DOT) lan (Reinier Post) wrote: paul c wrote: I know the term OID only from some database literature, in which it is used for such generated values. *In OO programming, a distinction can be made between pointers, which are addresses in memory and which can be meaningfully added to, and references, which are not and on which the only meaningful operation is equality comparison. References are in between pointers and OIDs. I recognize the importance of the concept of "not using the actual physical memory address as the means of identification of any object". It gets in the way of memory managers that need to relocate stuff. So I recognize the concept that _inside_ an OO programming machine, it is useful to have a kind of mapping table that acts as the sole point of contact for any stuff that needs to access/wants to manipulate actual physical addresses. I also recognize the concept of calling the key in such a table a "reference" and the mapped value in such a table a "pointer". |
|
That said, and assuming that is also what you meant, and noting that there can be several distinct references mapping to the same pointer value, I'd like you to explain to me what exactly the usefulness is of "equality comparison of references", which I interpret to mean "equality of the key value in said mapping table". |
|
And I'd like you to explain to me how the dereferencing operator on such a reference is totally unimportant. |
|
I say the only meaningful operation on reference types is dereferencing. |
#98
| |||
| |||
|
|
Erwin wrote: You are thinking in terms of a possible implementation. It's more general and hence more useful to discuss this from an algebraic point of view instead. You are interpreting in terms of a possible implementation, but I am not. I don't know if any tables are being kept anywhere. I am merely saying that refererences, like OIDs, are a value domain on which equality comparison is meaningful, but numerical interpretation (e.g. greater than, addition and subtraction) is not. Hmmm ... yes, referencing and dereferencing is possible. I meant to say that treating them as numbers or even as ordered is not. |
|
But this certainly isn't true. *It's important that we can tell the difference between aliasing and copying of object values. |
#99
| |||
| |||
|
|
On 27 mei, 01:15, r... (AT) raampje (DOT) lan (Reinier Post) wrote: Erwin wrote: |
|
Databases are collections of assertions of fact, not collections of references to assertions of fact. |
#100
| |||
| |||
|
|
And all the others questions and issues raised in the TTM section that discusses variables of type POINTER_TO_CIRCLE and POINTER_TO_ELLIPSE. (The word 'pointer' in those names really means 'references', not 'pointers' in the C sense). I cannot tell from here whether you've read that, but if you haven't you might be interested, and if you have, you might be interested to look at it again. |
![]() |
| Thread Tools | |
| Display Modes | |
| |