Nicola
> On Tuesday, 20 April 2021 at 07:18:54 UTC+10, LP wrote:
>
> >>>
> > For understanding. In my page 3, the Predicates given in text form.
> > For brevity, when two binary Predicates have the same two Variables, rather than stating them separately:
> > __ <Variable_A> <Predicate_1> <Variable_B>
> > __ <Variable_A> <Predicate_2> <Variable_B>
> > they are stated:
> > __ <Variable_A> <Predicate_1> {and|,} <Predicate_2> <Variable_B>
> ><<
> >
> > That may or may not suit your purpose.
>
> That is deliberate, to have one simple predicate per line and facilitate
> comparisons.
Good.
Well, in that case, I have to take the declarations given as Predicates, and in that case the Predicates are plain incorrect; false. In that case, the redundant Predicate is a gross error. Every Predicate is an implementation directive. After the first [correct] Predicate is given [implemented], the second [redundant] Predicate simply cannot be implemented because the first is already implemented. Therefore the second [redundant] Predicate is false; incorrect.
I trust you understand that Predicates are Normalised.
Do not list false Predicates and descriptive text with correct Predicates in a Predicate List.
> > -------------------------------------------------------------------------------
> >> 6. Summary and Comparison with IEEE notation
> > -------------------------------------------------------------------------------
> >
> > a.
> >> IDEF1X <all four classes>
> >> Specialization is an exclusive subtype [of] 1 Generic
> >> Specialization is 1 Generic
> > the second is redundant because the first states it (its existential
> > reality, dependence), and does so more precisely.
>
> Again, that is deliberate, for better comparisons when alternative
> models or notations are proposed. For now I have left them untouched,
> but I may remove them in the future.
Ok, as per the clarification above, now my comments are certain.
The second is redundant; false; incorrect.
> > b.
> >> IDEF1X <all four classes>
> >> Generic is { an exclusive | a non-exclusive } basetype of {Subtypes}
> >> Generic is <Quantity> of {SpecializationList}
> >
> > In my lexicon of Relational Predicates, the second is a declaration of
> > a discrete Fact (the relation) and thus gives the list, the first
> > should be a declaration about the discrete Fact of Generic (its
> > existential reality) alone. (For clarity, refer to my §3.1):
> > - the duplication of the list is an error
> > - the “of” is ambiguous
> > Therefore it should be:
> > __Generic is { an exclusive | a non-exclusive } basetype
> >> Generic is <Quantity> of {SpecializationList}
>
> Ok. Before I change that, I need a clarification.
>
> Let's say a music school employs teachers, and needs to keep track of
> male and female teachers. Also, each teacher is a violinist, a pianist,
> or both. Would you state both the following then:
>
> Teacher is an exclusive basetype
> ...
> Teacher is a non-exclusive basetype
> ...
> ? That sounds contradictory.
(I trust you are not in denial of the fact that there is a Subtype Cluster; a Subtype Set, that that is just your way of pointing something out to me.)
No, it is not contradictory because each declaration applies to a discrete Subtype Set.
Yes, it gets resolved in my Normalised or combined forms with the “and”. Sorry, my Lexicon is not published.
You are right, in the single-Predicate list, {SubtypeList} has to be stated.
Teacher is an exclusive basetype of {SubtypeList}
...
Teacher is a non-exclusive basetype of {SubtypeList}
> > f.1. Two instances of “subtype” under IDEF1X should be “specialisation”.
> Why?
For your purpose, I am assuming that you want to maintain the “generalisation/specialisation hierarchy” terminology, even though I have stated it would be better to maintain the IDEF1X terminology and *add* your proposed classifications. In the Predicate text:
- so first, [subtype] does not belong on the IDEF1X side, the word is [Category]
- second, if you are using the OO/ORM terminology, the word is [Specialisation]
Not:
> Specialisation is an exclusive subtype 1 Generic
> Specialisation is a non-exclusive subtype of 1 Generic
but IDEF1X:
> <Category> is an exclusive category 1 <Generic>
> <Category> is a non-exclusive category of 1 <Generic>
or OO/ORM:
> <Specialisation> is an exclusive specialisation 1 <Generalisation>
> <Specialisation> is a non-exclusive specialisation of 1 <Generalisation>
Throughout your doc, basically, be consistent and use one set of terminology, as applicable. Yes, when you describe IEEE sets, use IEEE terminology. I don’t know what you want to do with IDEF1X original terminology vs your proposal terminology (which seems OO/ORM). I have just tried to assistin obtaining that consistency.
> If anything, it should read "total specialization" then (which is
> the same as "subtype").
I don’t see how that applies.
> > f.2. Four instances of “basetype” under IDEF1X should be “generic”.
>
> Ditto. It is "basetype" in the same sense as it is "basetype" in
> reference to the IEEE symbol.
First, not repeating the above.
Why would you want to mix the terminology ?
Why does IDEF1X terminology not stand on their own ? [It does]
Why does your proposal terminology not stand on its own ? [In progress]
Second, it exposes a deeper issue. If your proposal is dependent on the IEEE definitions, then you need to state that openly, at the beginning. Ditto any dependencies on IDEF1X. That will make your porposal straight-forward and clear.
What you have now [V4] is a strong push for your proposal, minimising both IEEE and IDEF1X dependencies, in fact denying it in some cases. Which leads to the back-and-forth, as evidenced.
>>>>
When I meet a new friend, somewhere in the conversation it becomes obvious that he is an atheist and I am not. Due to their insecurity, he has to make some demeaning declaration about God. So I ask him my single question that destroys the heavily-maintained bubble of atheism:
- Define atheism without using the concept of God
Silence.
Blank stare.
Immediate change of subject.
So the simple undeniable fact of atheism is, it depends on the existence of God. 95% of atheist polemics are eliminated if you understand this.
<<<<
Thus far, you are trying to define a set without making a clear reference to the set that it is dependent upon, and running into problems. Declare the dependency (and thus an acknowledgement) at the outset, and that class of problems will disappear. (My doc §3 may be an example.)
> > g. Last but not least, each of the six sets needs a clear and
> > unambiguous title.
> Noted, yet to be added (some other things need to be resolved first).
Ok.
In Predicate terms, if it is not named, it does not exist. Yet.
> > -----------------------
> >> 0 Definitions
> > -----------------------
> > What you are trying to do is two separate things:
> > - validate IDEF1X Incomplete
> Yes, it's an attempt.
>
> > - introduce Non-Exclusive
>
> Yes.
> > I suggest you make that clear (eg. as per my §5.3 or similar), rather
> > than attempting to do both together without clarity ... which leads to
> > some sort of combined form.
> Not sure what you mean by "combined form". You have understood what I am
> trying to do.
I have understood, at this late stage in the discussion. The combined form is what you have in V4, in which the two goals are not stated but can be inferred. I am saying, state those two goals as separate, *NOT* in the combined form. That will make the doc and your proposals clear to any reader.
> >> “Categorization” is avoided because it may be taken to imply mutual
> >> exclusivity (in IDEF1X, the categories within the same cluster are
> >> mutually exclusive by definition).
> >
> > That is not true. You are explicitly rejecting the IDEF1X definition
> > and classification of Category, which quite definitely is mutually
> > exclusive. (There is no problem with you adding a new classification
> > to allow non-exclusive.)
>
> I stand by my statement above, which is according to the published
> standards.
I agree with your earlier statement above, I can’t but agree with the content of a published standard. I am saying something else:
- that it is not an “implication”, it is explicit
- you can’t get rid of it or ban it (that would be denial of reality)
- that you would be better off acknowledging it [mutual exclusivity in IDEF1X Categorisation], and then proposing the new set [*NOT* mutually exclusive].
Since you rely on IDEF1X[Incomplete] so much, state that too, and then build on it.
You can’t rely on something, and deny it at the same time (refer to my argument re atheism above).
> Anyway, "category" is banned, because we do not agree on
> its meaning.
Answered above.
> >> Specialization: an entity that models a proper subset of the
> >> instances of another entity. For example, Employee is
> >> a specialization of Person, because the set of all employees is
> >> a subset of the set of all individuals (and there are individuals who
> >> are not employees).
> >
> > Whoa. I do understand that you are trying to arrive at a combined
> > form of definition.
> Ah ok, now I understand what you mean above. I beg to disagree: my
> definitions are quite the opposite of "combined"; they are quite
> orthogonal.
(That word is so over-used, so meaningless.)
No.
1. Your definitions are fragments. That only stand in the context of denial of the atoms from which you extracted said fragments.
2. Then you either combine the fragments, and make something new, which lacks integrity,
3. Or make connections between the fragments, where there is no connection between the Atoms to which the said fragments belong.
It is a grand contrivance.
I am saying, do not deny the reality of IDEF1X definitions; do not deny the reality of Atoms. If your definitions depend on anything, declare those things [no definition or redefinition], and the dependency. Then give your definition for the new thing only. The whole of which will then be clear to any reader { strict IEEE | loose IDEF1X | tight IDEF1X }.
> >> Specialization [...]
>
> > But: - this sort of redefinition makes it (both the error of
> > a combined form, and the definition) absurd.
> > - a redefinition of an existing, well-established term has to be
> > rejected outright.
> >
> > The example given is strictly *NOT* a specialisation in the sense that
> > people would understand, therefore you are perverting that sense, in
> > order to generalise it, in order to include Incomplete.
>
> Is there any other term you would accept for that concept? Or is the
> concept itself absurd?
(Which concept ? I will go through the possibilities, in order to avoid a round of back-and-forth. Sorry if it is long.)
1. Here, my comments pertained immediately to Specialisation, and your redefinition of it.
- you can’t, it is already well-established
--- you particularly can’t deny the definition of the atom [ Concept{Generalisation::Specialisation} ] and then use fragments of it [Specialisation alone, minus Generalisation]
--- and then a fragment of [Specialisation alone]
--- and then a novel definition under the head [Specialisation] which is in fact a redefinition
- accept it and move on
- use it as it is defined in the Standard, which is the atom [ Concept{Generalisation::Specialisation} ]
2. The IDEF1X Concept Categorisation{Generic::Category}
That in itself is no problem, it is just new words for Subtype{Basetype::Subtype}, the problem is the new classification {Complete|Incomplete}: as I have detailed, [Incomplete] is totally invalid in a database of any kind, invalid by definition in a Relational database. Again, it is not [Incomplete] as a member that can be eliminated ]and [Complete] retained[ because it is the classification that defined [Incomplete] that is in error, so the classification has to be rejected, neither member can be retained.
As determined; condemned; and published by me in 1993. As determined and rejected by several high-end suppliers that I am familiar with.
Eg. I relied on the pre-existing IEEE, to invalidate the then novel IDEF1X definitions. Logic invalidates it as well.
And to be complete, I give the logical alternative: it is an Optional Attribute, not a Subtype classification of any kind.
So yes, the IDEF1X classification {Complete|Incomplete} under its Concept Categorisation{Generic::Category} is absurd.
3. Your reliance on [Incomplete]
Since [2] is absurd, anything derived from it, anything relying on it, is absurd.
Anyone who persists in [2][3], which means they are denying the logical alternative, which means they are denying logic, is straining at the gnat and swallowing the camel, insisting on the fragments while denying the atom.
4. The null set
At the root of it, I won’t call it metaphysical, but meta-conceptual, you are relying on the concept of the empty set. It is a total absurdity. It does not exist in reality.
My challenge, to provoke you to think about the concept you are proposing: give me an example of the empty set from reality. (By all means, it is a very, very necessary abstraction in theory, but it does not exist in reality, it can be dismissed by practitioners). This is a boundary that you, a schooled academic, needs to cross, and I am trying to get you o do so consciously, without making academics wrong for having a null set. (I do make them wrong for venerating it, or for imposing it on reality where it does not and cannot exist.)
Any reliance on the null set (in fact on null) is an absurdity.
> > The truth is, Employee is a Person because it is Dependent on Person,
> > not because it is a “specialisation” of Person (It is not).
> >
> > By the perverted definition, *ANY* Dependent entity is
> > a specialisation of the parent. Which is hysterical. In Order DM
> > Advanced:
> > __
https://www.softwaregems.com.au/Documents/Documentary%20Examples/Order%20DM%20Advanced.pdf
> > according to your definition, PartyAddress; OrderSale; OrderSaleItem;
> > OrderPurchase; OrderPurchaseItem; PartVendor are each
> > “specialisations” of Party, which is ridiculous and false.
>
> I do not follow you. Perhaps, you have a reversed implication in mind.
> I have written that, *since* Employee is a (perverted) specialization of
> Person, *then* "in particular, employees have the same attributes as
> individuals [...] and typically have additional attributes". The latter
> is a *consequence* of the former. The converse does not hold, of course.
1. No, you said [declared]:
For example, Employee is a specialization of Person, because the set of all employees is a subset of the set of all individuals (and there are individuals who are not employees).
That is a perversion. The actual Predicates declare no such thing. End of story. Perversions are always stated backwards (the hallmark of schizophrenia). This one fails even if stated forwards:
__The set of Employee is a subset of the set of Person, therefore Employee is a specialization of Person.
- you have equated [specialisation] to [subset]
- it is absurd, hysterical
2. Now to deal with the perversion, God help me:
> > By the perverted definition, *ANY* Dependent entity is
> > a specialisation of the parent.
By the perverted definition, any subset is a specialisation of the parent set.
It produces nonsense such as:
__Suburb is a specialisation of Town
__Suburb is a specialisation of Country
__PartyAddress is a specialisation of Party
__OrderSale is a specialisation of Party
Further, the actual Predicates refute the absurd proposition.
> >> proper subset
> > Since when is the empty set a proper subset ??? The freaky fantasy is
> > not even a set, let alone a proper subset.
>
> "Proper" has a very specific technical meaning in mathematics, and set
> theory in particular. It does not mean what you think it means.
I don’t care what it means today or tomorrow in mathematics, as it is being corrupted; changed; modified to suit the pervert’s agenda. I DO care about what it means in mathematics+reality, you know, the fraction of theory that has an implementation intent. I am not arguing against the mathematical definition. I am arguing FOR the mathematical+reality definition.
(Mathematics is not science, it is a formal language, an articulation of Logic. Mathematics cannot do or say or prove anything, it is the person, using mathematics, to say or do whatever. All that can truly be faulted in mathematics is incorrect use of the formalism, or deformation. The subject matter is the thing, the article, that one proposes using mathematics, that may be true or false. Thus it quite possible to write a proposal in perfect mat that a pig can fly, and to write another proposal in perfect math that a pig cannot fly. The former proposal fails the laws of physics, and deems the author an idiot, yet a perfectly defined one.)
Likewise, logic is the form, your proposal is the matter, it fails logic.
- If the set has no members, it is not a set (it is a nothing and non-thing, null), it cannot have a Proper Subset
- If the set has one member, it can have no Proper Subset (there is no possible subset).
> Anyway, the definition could in fact be stricter by saying "a proper
> non-empty set".
No. I have given you several reasons why the definition is wrong, but the overriding issue is, you cannot redefine a term that is defined in the Standard.
> >> Generic entity: an entity that has at least one specialization. In
> >> the example above, Person is a generic entity.
>
> > The definition is fine, but the example is horrendous, supply a valid example.
>
> In what sense do you think that the example is "invalid"?
The example itself means nothing. What you say about the example is wrong. And even the form is wrong. Therefore, you need to say correct things (the definition of whatever you are trying to define), and use a good example to demonstrate that definition.
I have already detailed, in the previous post and then further in this post, why [both] what you say in definition, and in demonstration of that definition in this example, is wrong. The example definitely does not show specialisation: not by the normal meaning; and not by the perverted meaning.
> > This may be a good point at which to declare the differentiation:
> > - Total = at least two specialisations
> That is mentioned. It's also obvious from the definitions (this is also
> mentioned).
(I did not say that you did not say it. I said that this would be a good point to bring all the variants of that together, in one place.)
> > - Partial = zero; one; or more
>
> No. A (perverted) *specialization cluster* ("partial" applies to
> a cluster) has at least one specialization (reread the definition).
(I was not arguing the definition here, just that there should be a collection. Further, I did not directly argue the definitions, I was responding o your doc, point by point.)
>>>>
Ok, fine. Let’s argue the definitions.
1. “specialisation cluster”
This is the root for all your subsequent definitions.
I can accept the definition if the following changes are implemented
- the name is corrected to [Generalisation Cluster]
- n ≥ 2
- add:
____G contains only elements that are common to {S1, ... Sn}
____Each Sn contains only that which is distinct to it [or makes it distinct]
I have already explained why a set of one is invalid, that the alternative is Optional Attribute.
If you do not accept these suggestions, then your definitions are broken, from the root down. Which is why I did not respond to the definitions before.
2. Generic Entity
Redundant (refer [1] ), can be removed.
As is, change [one] to [two].
As is, “Person is a generic entity” is (a) extraneous to the definition, and (b) utterly false, as explained.
3. Total
I do not accept the definition: what you have defined [loosely] is the superset (union of all subtypes), which is not at all the same as the Basetype, or the Generic that you have defined. Further detail in my Subtype doc.
“This is called subtyping” is therefore false.
The definition contradicts [1].
I would love to help you, but I can’t. In previous version I thought you were trying to define IDEF1X[Complete], but that needs no definition, you can just refer to it. Now you are using [Total]. And of course your definitions have dependencies (hopefully a tree, a DAG). SO I don’t really know what you need to do.
4. Partial
I do not accept the definition of partial, because it is a negation, not a definition: supply a definition. Would be good if you refer to Generic and Category.
(Some previous definition included the null set, this one doesn’t. Ok.)
<<<<
> > - Generic = at least one
> > - Specialisation = zero; one; or more
> You are writing fragments here. "Generic" qualifies "entity"; "Total"
> and "partial" qualify a "specialization *cluster*". A "specialization"
> in my perverted definition is an entity (ok, perhaps "specialized
> entity" would be better). Do not take a noun here and an adjective
> there, otherwise we cannot understand each other.
For God’s sake, man. I am not competing with you, I am only providing feedback as requested.
I don’t see how you can construe that section (four lines, suggesting the collection {Total|Partial|Generic|Category/Specialisation} and the numerical differences between) as a definition. Yes, they are fragments of /your/ definitions. No, they are not suggested as definitions.
> I'm fine if you do not like my choice of terms, and I'm happy to change
> them for better ones. But, even if "specialization" is not used with
> a conventional meaning, it's the definition that matters, and within the
> scope of that document the definition is given.
I do not accept that, because it fosters redefinition of established terms, which is absolutely wrong.
Redefinition is deeply dishonest. Further, it is the start of massive destruction of the terms. I do not let it start. Sane people don’t.
> We could change it to
> "spizzalization" throughout, and the document would be understood in the
> same way (this is a dejà-vu).
No, it would be understood by newbies who know nothing about established terms, and it would be rejected by old hands who are aware of the established terms, for reasons stated immediately above.
There is a separate point. You are hung up on “specialisation”. That is the fragment. It is the concept of Generalisation, that has Specialisation as a component. You have it the wrong way around. Refer to:
__
https://people.cs.vt.edu/~kafura/cs2704/generalization.html
There is yet another point, that I have consistently tried to address through all the versions. I don’t think I succeeded: You are dealing with fragments, which means denial of the atoms to which the fragments belong. I think you have the first part, but not the second part, not the error of the whole method., not the gravity of the error.
> >> All occs of “Specialization cluster”
> > Generalisation cluster.
> I may consider this change.
(Link above, again.)
I said that at the time because I thought you made a minor mistake in naming. I now realise, you are quite anchored to it, it is not a mistake in naming.
Ok then, it is a major mistake in conceptualisation. Because you are addressing the fragments, not the atoms. For definitions, you need to go top-down, atoms to fragments. You are going bottom up, straining at the definition of fragments, while ignoring or paying little attention to the definition of atoms that contain the fragments.
I am not suggesting it is a great example, but since we have it on the table, look at my §3.1 as an example of top-down definition. Eg. I do not explain subtyping from the Subtype [Specialisation], UP to SubtypeSet, UP to Basetype, UP to SubtypeCluster. Whereas you do, you start with Specialisation [a divorced and isolated thing], and name the whole subject Specialisation, in defiance of established Standards (you insist on accepting mutual exclusivity in the Standard [Good], but deny Categorisation [Horrible] ), and therefore, no surprise, run into difficulties.
> >> We also say that each employee is a person.
> > No, we do not. That perverts the well-established understanding of
> > the [is a] relation.
> I admit then that my understanding of [is a] is lacking. Can you please
> elaborate on this point? How should the [is a] relation be understood if
> not as above?
1. First, the notion comes from the OO/ORM crowd, quite new, relative to the /RM/ and RDBs. So it must be understood not as a definition of Subtypes (which pre-existed it), but as a perception of Subtypes from that world. Eg. I do not mention it in any of my docs. Eg. it is defined at my doc §3.1#4. In Relational terms, it is simply [is] not [is a]. And we have the essential understanding of Predicates, which OO/ORM does not, to give a full context.
__ Person is an exclusive basetype, one of {PersonMale|PersonFemale}
...
____ Each Person [is] {PersonMale|PersonFemale}
...
____ Pastime [is] {Chess|Cricket|Football}
The converse [one Predicate, read in reverse direction) is always [is] not [is a], and the quantity is 1. That is the Relational side.
__ PersonMale is an exclusive subtype of 1 Person
...
____ Each PersonMale [is] 1 Person
____ Each PersonFemale [is] 1 Person
...
____ Chess is 1 Pastime
2. It is an element from the OO/ORM Generalisation/Specialisation concept, now viewed as a relation. Refer to the Generalisation link above (search for [is-a] and [is a]). All four types.
- Here we have to mention, OO/ORM types are severely myopic (view the entire universe in terms of OO Objects); refuse to accept data science is a distinctlty different science to process science [for the ones who even understand science]; think the Golden Hammer is a principle, instead of understanding it to be a crippling absence of capability; and don’t want to learn any other way, which in every instance provides irrefutable evidence for the /Dunning-Krüger Effect/.
3. Third, we can now get into the OO/ORM perception of Relational elements. While they completely destroy most of it due to the disability mentioned above, the one thing they immediately understand in small part (ie. not the definitions I have given in either my Subtype doc or my response doc) is the subtyping, which they call Generalisation Hierarchy. Note again, it is not the same thing, it is that which they can understand in Subtypes, due to the similarity in Objects in some parts.
So they immediately apply their [is a] relation to it.
On the Relational side, it is only the relation from the Basetype to the Subtype. Applying it to any other relation is dead wrong. End of story.
It is far less than Relational Predicates, but the superficial understanding is acceptable to the OO/ORM perspective, they have one hammer only in their toolkit, and they found a thing that definitely; positively; indubitably, looks like a nail. Smells like a nail. As in:
__ Person [is a] PersonMale
Then we can say
__ XOR Person [is a] PersonFemale
__ Pastime [is a] Chess
The converse [no notion of Predicates, just reading the relation in the reverse direction) works as well, just as badly.
As in
__ PersonMale is a Person
__ Chess is a Pastime
So yet again, it is about the great chasm between a richly defined Relational paradigm, and the pathetically defined OO/ORM world. While a few terms may be similar, on any inspection beyond the cursory, no, the terms have quite different definitions or a definition on the Relational side and a silly description on the OO/ORM side.
4. But wait. There’s more. Due to (a) the looseness and laziness on the OO/ORM side, (b) the abject ignorance of the /RM/in the academic world, and (c) the horrendous lack of definition in the academic world, the academics have picked up this silly and superficial notion of OO/Generalisation equals Subtypes. You are the first to venture out of that morass.
And due to them arguing over every little thing, and resolving nothing (no Four Laws), even that notion has been perverted. Now they apply it all over the place, if only to prove a point. Misuse and abuse. Eg. you, in your definitions. That is why I did not fault you, I faulted the whole academia that schooled you, particularly the pig poop eaters that write the anti-relational “theory” and market it as “Relational”.
So it is best to use Relational terms only. In the alternative, use OO/ORM, if you must, but keep it strictly for the Basetype::Subtype relation.
Which is why:
__ Suburb [is] or [is a] definitely not a Country
__ Employee [is] definitely not a Person
but (using [is] generically, rather than using the specific Predicates):
__ Suburb is 1 Town
__ Suburb is 1 County
__ Suburb is 1 State
__ Suburb is 1 Country
__ Employee is 1 Person
> >> Total, Partial
> > Yes, I see where you are going, I have no argument. But they are not
> > commonly understood or “commonly accepted definitions”. The words in
> > English are way too general, they cannot be used as specific in an
> > application.
> Any better ones?
Well, son, IDEF1X Categorisation{Complete|Incomplete} already exists, and has for forty years, and it is the doc that you are intending to apply amendments to, the source doc, if you will. So I would stick to that, which means you don’t have to supply definitions, you can just refer to the Standard.
Yes, it is broken. So then you have to first define and apply the resolutions.
Then define only your new proposal.
Which AFAICS is the introduction/addition of IEEE[Non-Exclusive]. Since all the rest is incoherent, or dependent on an incoherent IDEF1X definition. Refer to my doc §5.3.
Further, if you understand what I said overall about [0 Definitions], the definitions are contrived to obtain what you want, and your way. I am saying, ditch the whole thing, go with the historic path that many implementors have trodden: accept the Standard; define the resolutions; add to it.
> >> Partial specialization cluster: a specialization cluster that is not total.
> >> Partial [generalisation] cluster: a [generalisation] cluster that is not total.
> > In a section for Definition, I would not state that (what it is not). I would state what it is.
> That was to make the definitions shorter. I may change that.
> >> Exclusive specialization cluster: a specialization cluster such that,
> >> at every time, Si \ Sj is the empty set for all i ≠ j.
> >> Exclusive [generalisation] cluster: a [generalisation] cluster such
> >> that, at every time, Si \ Sj is the empty set for all i ≠ j.
>
> > Great for a theoretician. What about saying “one of”, so that
> > implementors can understand it.
>
> The audience of my document has no problem understand that. It would
> consider "one of" ambiguous.
I don’t see how “one of” is ambiguous. I married one of many possible women, it was final and unambiguous, even the other women agree. Actually, all women who are not corrupted agree. I redeemed a coupon for one free meal, at a restaurant that had ~20 full meals; ~6 half meals; and ~10 non-meals. No discussion or argument. Perhaps I am not “educated” enough.
But I will skip that, it is not as important as other points ...
In my previous post I made another point elsewhere, which I did not repeat about this item. I will now.
1. That is a backwards definition. Why don’t you state it forwards, in terms of what it is. Don’t get me wrong, a set theory based definition is great.
2. Why make a definition relative to the empty set (treasured by academics, does not exist). Yes, I am aware that it is common practice, but it is still crazy. Why say, a dog crossed with a cat produces a result of nothing. Why not say, a species cannot be crossed with any other species.
3. Why not use the word “exclusive”. The IDEF1X definition does.
> >> A basetype is always a generic entity, but a generic entity is not
> >> necessarily a basetype
> >
> > Cliché, cabalist nonsense, not fit for a technical document. It means
> > nothing: a specialisation *IS ALWAYS** -<is>- relative to its parent,
> > and a generic *IS NOT ALWAYS** -<is>- any of its specialisations.
>
> There are too many "is" in this post. I am really confused.
Sorry.
Not worth expanding, because we have addressed it at a higher level in this (not the previous) post.
It remains to say, do not relate basetype to generic or subtype to category unless they are actually related (they are not) ... but if you do, do it properly using a grid, so that both similarities and differences can be understood. Stay away from silly expressions. Especially if your audience finds “one” ambiguous.
> > Where you are trying to differentiate Basetype vs Generic, just state
> > that: Basetype is Total; Generic is {Total|Partial}
>
> It's not only that. According to my definition, that is the only
> difference.
Those two sentences appear to contradict.
Back to the subject, just state the differences, all of them.
> >> Total specialization clusters (i.e., subtyping) always have at least
> >> two specializations (subtypes)
> >
> > [Whereas] a Total [generalisation] cluster (i.e., Subtype cluster)
> > ]always[ has at least two specialisations (subtypes) ... a Partial
> > generalisation cluster allows zero or one specialisation.
>
> At least one.
Yes, I understand that. I am saying, and I have detailed in previous posts, and in my response doc §3.1.1/1, a Subtype Set of 1 is illegal, logically incoherent. Therefore if you allow that, I have no choice but to reject any definition that relies on a incoherent article.
Again, I say, you are trying to validate the incoherent IDEF1X{Incomplete] which is impossible because you cannot validate insanity. With “at least one”, you have realised that. Great. All you have to do is declare the difference re IDEF1X defns: Partial is not Incomplete because Incomplete is incoherent, and the correction is coherent. Crack open the Proseco.
Likewise, here you are trying to validate the set of one, which is not a set. And you are denying the defined alternative. Think about it.
The challenge: define the commonality in the set of one, that can be extracted into the Basetype. And define the remainder that is distinct.
I think that is great. Theoreticians are deeply attached to a text-only set of theories; laws; and definitions. Decades ago, when I sent IDEF1X data models to The Torrid Manifesto, and even Fagin, they were shocked and did not understand it. Semantic, yes, but they had really weird notions of “semantic”.
It is really limiting to stick to text-only in the context of a world has moved into full-blown graphics. Same as sticking to text-only terminals in a world of GUIs.
I don’t accept the new agree notion of Left/Right brain, but I do accept the papers about it from Cognitive science. All humans are visually inclined, in fact it is the single most important and single most biologically supported (think organs; tissue; processing seat; etc) faculty. No surprise, the forces of evil have a huge industry that exploits this fact, precisely because it is so powerful.
So somewhere in the region of 4-10% of brain power, Left Hemisphere, performs serial functions, like a perfect Turing complete computer. The text processor. Ok, fine, don’t teach using anything else.
For the rest of us, eg. Codd; Brown; and others, IN ADDITION, we use the 90-96% brain power, the Right Hemisphere, the visual. It takes all the info in, and produces a single result {Comprehended|NotComprehended} rather instantly. But it can’t provide an explanation: for that you have to switch to the Left Hemisphere, and process Logic; text.
If you understand that, then you will understand that the pictures must be correct, bad pictures or incorrect use of a standard method [eg. Venn] means the picture will not be understood. This is why I have spent so much energy in the early days, improving my diagram styles.
In any case, it is your proposal, your doc. My suggestions are intended as assistance, you can take it or leave it.
> You would not have a NotEmployee or NotSecretaryAndNotConsultant entity
> in your database, would you?
Definitely not. I don’t need to store non-facts. No code either.
I was implying, you would need at least code to support you zero set. But gratefully you have eliminated it.
The issue that I was pointing out, is not in the database, but in the Venn sets. A Legal Venn diagram requires that all sets are shown. I provided those Venn diagrams, so that the sets can be fully understood (with the caveat that Venn diagrams are *not* good for that purpose, but commonly used anyway, and therefore commonly incorrect.
Cheers
Derek