On Monday, 30 December 2019 20:42:53 UTC+11, Nicola wrote:Yes, that is the best doc.
On 2019-12-29, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
Fig 3.3 is missing.
All figures are missing, apparently. Maybe, this is a better document:
https://www.fiafnet.org/images/tinyUpload/E-Resources/Commission-And-PIP-Resources/CDC-resources/20160920%20Fiaf%20Manual-WEB.pdf
It's inspired by FRBR, but it is specific for movies. It has some
diagrams.
On Thursday, 9 January 2020 10:38:15 UTC+11, Derek Ignatius Asirvadem wrote:First submission. Obviously I have done far more work than this, this is just what I am willing to show the "senior user", in order to foster discussion.
On Tuesday, 7 January 2020 04:24:02 UTC+11, Nicola wrote:
On 2020-01-06, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
First and foremost, the question is always the same: how do you identify
a movie (i.e., q2)?
Labelling, naming, a thing is very very very important. The name carries meaning. From the progress thus far, /Work/ is an idiotic label. I am tending towards /Concept/.Did I say /very/ ?
Each different language is a different Realisation, /shot/ means physicalisation in a particular medium. May be a Variant.//different language versions shot at the same time, released
simultaneously//
3. Different Languages is not a Work, because a human can conceive of something in just one language (those who conceive of things in
multiple languages can be safely assigned to an asylum). The Language would be the Language of the Country or of the Creator. Nevertheless,
I am willing to accept that multiple languages is an INTENT of the
Work.
Realisation4. Shooting is a Manifestation (realisation), not a Work.
Realisation, possibly worked back from an Item.5. Release is a Manifestation (realisation), or even an Item, not a Work.
So no devil's advocate arguments. Only real world arguments. And per the detail above, any un-resoved or contradictory article (eg. Anna Christie) will be resolved, and THAT it is unresolved in the magical mystical mysterious world of idiots will NOT be a basis for barracking for them. If you do, by that very act, you place yourself in the same category, and I cannot help you.I do not wish to limit what you say. But at least for part of evaluating this submission, please play the role of a real world archivist/librarian/cataloguer.
On Thursday, 9 January 2020 23:17:06 UTC+11, Nicola wrote:I will wait for the rest before responding.
On 2020-01-09, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
[...]
I have more comments on that, but I have run out of time.
On Thursday, 9 January 2020 23:17:06 UTC+11, Nicola wrote:
On 2020-01-09, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
I know, I am following your paper. Add one table Workflow subordinate to EstateItem, and you have it.---------------------------------------
User Progression (Early Workflow)
---------------------------------------
Register Collection
Register Items, which are Undetermined
Physical properties ... leading to logical properties
As and when the Realisation is determined ("abstraction" is identified), register Realisation
As and when the Concept is determined ("abstraction" is identified), register Concept
That's fine: archivists usually start from the physical media, sometimes without even knowing what it contains. So, working "bottom up"
definitely makes sense.
The distinction between determined andFirst, there seems to be a bit of confusion, part of which I caused, so let me correct that.
undetermined items is also sensible, from such perspective. The bottom
part of you diagram looks good to me so far.
Variant is a many-many association: that's ok. It's interesting that you
are taking the stance that it is an association between Realisations
My Item is the same as theirs, so I have named it the same.Did I say /very/ ?Labelling, naming, a thing is very very very important. The name carries meaning. From the progress thus far, /Work/ is an idiotic label. I am tending towards /Concept/.
Obviously, if I use their terms, then I must mean what they mean. Eg. Item. Where the facts I have determined are different to their confused mess, I can't use their terms. Logical & meaningful names used.
rather than Concepts, so moving it down at the concrete level rather(I would not use the word "contrary" or "contradictory". I have no problem at all appearing to "contradict" insanity, but that is not the point: insanity IS self-contradictory, and contradicts reality, so anything that is closely related to reality will, by definition, "contradict" insanity.)
than keeping it at the intellectual level, contrary to what FIAF, FRBR,
etc. do.
This is debatable:Yes. The debate is welcomed (that is the back-and-forth, that predicate the iterations in the modelling exercise). But as per the Four Laws, we must have resolution of each point, not non-resolution.
probably, yes, you first recognize Variants(At this stage E-R, we are evaluating the tables and relations, with the Identifying relations only, the Keys [although not specified] being the main consideration. They signify ownership, belonging, Matter. The whole signifies the Form under which the Matter exists. Which is why I need to consider all the ables and relations before we decide the Key for Realisation.)
between Realisations,
but later you may want to promote them as(I don't have a table for that.)
different (abstract) Expressions of the same Concept.
Note that FRBRAnd FIAF uses Variant.
uses the term Expression rather than Variant (as you say, naming is very important).
On Friday, 10 January 2020 19:38:29 UTC+11, Nicola wrote:Edition.
You must distinguish between a particular edition of a movie (e.g., the
Final cut's version of Blade Runner distributed by, say, Warner Bros in
2007 on DVD featuring also extra material such as interviews with the
actor and backstage footage), and the single items of that edition (my
copy of the DVD and your copy of the DVD). The former is a Manifestation
in FIAF's terminology and the latter is an Item. Such distinction is important.
Each Realisation may have many editions through time and on different
media. And, in general, the single physical items of a particular
edition (my copy of the DVD and your copy of the DVD) may have different characteristics for some reason, which I may want to record (e.g., the
state of conservation of the physical disc, the fact that my copy has
a torn cover while your copy is still intact in its envelope, etc.).
We would be comparable to FRBR/FIAF/IFSA only loosely, in that we have given it due consideration. I would not say that we "retain its meaning" on any issue. We have tight definitions (unambiguous; no circular references; implementatio-ready; etc), they do not.Item is no longer the FRBR/FIAF Item. For a better name for Item,
would you prefer Product, or Article ?
With the distinction above, Item would retain its meaning. So, perhaps: Edition and Item.
Concept -> Realisation -> Edition -> ItemNice
| |
Variant
On Saturday, 11 January 2020 03:26:35 UTC+11, Nicola wrote:Sorry. My mistake. (My head was already in V0_3)
If /Independent/ has the RM/IDEF1X meaning, no. Only Concept
& Realisation are Independent.
I mean independent in the IDEF1X sense. In your model (Movie Title Progression V0_2) Item is independent, (Item Determined is not).
All this reasoning makes sense to me. I wait for your answer re the Product/Edition thing.Edition is perfect.
If we converge on that, I think we can finally"Finally" is not a problem. Three iterations at this level (concepts; entities; relations) before Keys is nothing. We are defining the logical structure of the database, yes ? Concepts (first) are Identified by Keys (second), the sequence cannot be reversed, yes ?
start talking about the keys.
On Saturday, 11 January 2020 03:37:11 UTC+11, Nicola wrote:
On Sunday, 12 January 2020 17:21:53 UTC+11, Derek Ignatius Asirvadem wrote:As I was progressing the model, it became plain to me that I have raised many new issues in the previous post, and they cannot be reasonably contemplated without a data model. I understand that academics suppress graphic models and insist on text (DDL), but that is not reasonable at this "conceptual" stage, or the next "logical" stage ... and from the progress in this thread thus far, it appears you accept a graphic model.
Now for the next iteration, I will include keys, one step more than E-R. Since you know that ERD is totally inadequate for that level, what do you use; what do you teach ? If you donrCOt have one, I will provide IDEF1X/Table-Key level.
The purpose of V0.3 was to introduce these concepts, without giving the relations, so that we can have this discussion.
On Tuesday, 14 January 2020 21:51:51 UTC+11, Nicola wrote:Understood.
On 2020-01-12, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
On Friday, 10 January 2020 19:38:29 UTC+11, Nicola wrote:
Thus when you
counter with rCLFIAF does thisrCY, I would ask that instead you consider what the real world requirement is.
Sure. When I say "FIAF does this" or "the standard says that", I am not
using an "appeal to authority" argument: I am just pointing out how
people with deep knowledge of the domain have addressed some issues,
perhaps unsatisfactorily (for various reasons). I believe in the
authority of the argument, not vice versa.
Ok. After reflecting on how Titles and Stories should be related and comparing your v0.3 and v0.4 models, I think that you should reintroduceNo. In V0.4, the Predicates touching Story are as follows. (The model itself does not give Keys but I have given five of them at the top right):
an independent Title entity in v0.4. These are the essential facts to be modelled, IMO:
1. A Title identifies (is the "main"/"reduced" title of) of 0-N Stories.
2. A Story has one identifying/main/reduced title.
3. A Title may be an Alternate Title;
4. A Story has zero or more Alternate Titles.
AFACS, in v0.4 you are modelling only 4 (Story Title).
0. reintroduce an independent Title entityThe predicate for that is false. A Title does not exist independently. It exists only because a Story [with that Title] exists.
1. A Title identifies (is the "main"/"reduced" title of) of 0-N Stories.A ( Language, TitleReduced, Creator, Year ) identifies 1 Story
2. A Story has one identifying/main/reduced title.Each Story is primarily identified by ( Language, TitleReduced, Creator, Year ) Each Story is known as 1-to-n StoryTitles
3. A Title may be an Alternate Title;The /rest/ in StoryTitle are Alternate Titles
4. A Story has zero or more Alternate Titles.Yes. The 1 in the /1-to-n/ is the main Title un-reduced.
Yes, sorry.Discussion
-------------
Realisation.PK[ Language, Creator, Year, Title, Differentiator ]
Concept[ English, GB, 1897, Bram Stoker ]
Realisation[ English, US, 1931, Tod Browning, English cast ]
Realisation[ Spanish, US, 1931, Tod Browning, Spanish cast ]
...
Realisation[ English, US, 1958, Jimmy Sangster, "" ] = Christopher Lee
I think you forgot to mention the title there, otherwise it seems ok.
On Wednesday, 15 January 2020 20:59:15 UTC+11, Derek Ignatius Asirvadem wrote:Before responding, I would ask that you obtain familiarity with SQL language and CharacterSet implementation, both server-side (storage) and client-side (representation). The concept of Locales.
[...]
Language again. Title is dependent on Language. So wherever Title is stored, the Atom must be [ Language, Title ]. Which is why I had Language not Country in the PK. Response please.
On Sunday, 19 January 2020 03:14:49 UTC+11, Nicola wrote:\
On Saturday, 18 January 2020 21:54:21 UTC+11, Nicola wrote:
2. A Story has one identifying/main/reduced title.
Each Story is primarily identified by ( Language, TitleReduced, Creator, Year )
Each Story is known as 1-to-n StoryTitles
One StoryTitle is the TitleReduced in long form
By TitleReduced, do you mean with less attributes (e.g., without
the specification of the title's language?).
By TitleReduced
Also, the language of
a Story and the language of a title are distinct, so perhaps we could
call the latter TitleLanguage for clarity.
On Friday, 24 January 2020 15:08:19 UTC+11, Derek Ignatius Asirvadem wrote:
So wherever Title is stored, the Atom must be [ Language, Title ], preferable to [ CharSet, Title ].
[ I said somewhere, that the un-reduced version of Concept.TitleReduced will be in ConceptTitles. ]That is an error. According to 3NF/FD, it will be an attribute in Concept.Title.
On Saturday, 25 January 2020 21:00:03 UTC+11, Nicola wrote:
On 2020-01-24, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
On Sunday, 19 January 2020 03:14:49 UTC+11, Nicola wrote:
On 2020-01-15, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
------------------------------------------------
This post is one such [b], introducing V0.5
------------------------------------------------
A remark: my intended definition of "Concept" in this context is
strictly as "Moving Image Concept", i.e., it would exclude other forms
of intellectual creations. So, if a movie is derived from a novel, that
should be expressed as an association between a (Moving Image) Concept
instance and an instance of another entity, not existing in the current
model.
I don't understand. How can one associate [or reference] a thing with another thing that does not exist ?
You won't reference it, of course. In the example above, you would stop
at Concept [ English, Tod Browning, 1931, Dracula ], without ever
recording the fact that it is derived from Bram Stoker's Dracula. If
you'd want to record such additional fact, you would extend your model.
But I see what you mean, and I agree: there's no need to multiply
entities without necessity. Both pieces of information are Concepts and
both must be recorded as such. Correctly managing the Concepts
hierarchy, as you explain below, is not difficult.
Ok. At the E-R level I believe that you have nailed things down. I think
that at this point we might start moving to a key-based model, where it
will be clearer whether further normalisation is needed.
So wherever Title is stored, the Atom must be [ Language, Title ], preferable to [ CharSet, Title ].
Then, you can probably assume UTF-8 or UTF-16 and dispose of CharSet. In either case, now that I better understand your model, I accept that.
I don't know if you would agree. My perspective (real world, about 40 years):
- what we have been doing in Logical level modelling
--- you probably call it "conceptual level"
I am with Codd when he says that the distinction between "conceptual
level" and "logical level" is fuzzy. Nowadays, I take the two terms as synonyms.
On Saturday, 25 January 2020 22:15:33 UTC+11, Nicola wrote:(I like where you are going with this ...)
On 2020-01-25, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
===================
This post introduces V0.6
===================
http://www.softwaregems.com.au/Documents/Article/Database/Movie%20Title/Movie%20Title%20Progression%20V0_6.pdf
A few thoughts:
- Does Concept need to be identified by Country? Couldn't that just beOk.
[TitleReduced, Creator, Year]? Each Realisation of a Concept, but not
the Concept itself, is "produced by" a (principal) country. The
Concept itself is a creation of its Creator at some point in time.
How about:
Concept [TitleReduced, Creator, Year] -> Title
Realisation [TitleReduced, Creator, Year, Differentiator] -> Country
?
- Besides, I would remove Title from Concept, because that informationDisagree. This is correct:
belongs to ConceptTitle. A ConceptTitle can additionally provide all
the required information about each title.
- Most of the non-identifying relations you have marked with L do notYes, for some. No, not for others. Therefore it must be explicit (a model should never be ambiguous).
need to be explicitly modelled, because, I think, they are implied by
the various referential integrity constraints.
What does "SG" stand for in "SG Relational Notation"?Software Gems/Derek Asirvadem
That logic still holds, but /in that instance/ it has been trumped by declaring a Dub as an Edition, not a Realisation.In the same way that Edition is a manifestation of 1 RealisationTitle
(not Realisation), and therefore a single Language, in this model,
Ok.
I expect to clarify whether Realisation is rendition of 1 ConceptTitle
(not Concept), and therefore a single Language.
I'd lean towards answering affirmatively, if we regard a movie dubbed in
a different language as a different Realisation.
On Saturday, 25 January 2020 22:56:05 UTC+11, Derek Ignatius Asirvadem wrote:
I am with Codd when he says that the distinction between "conceptual
level" and "logical level" is fuzzy. Nowadays, I take the two terms as synonyms.
There cannot be a conceptual that is not Logical (ok, there can be, but it will not be the knid that you and I care about). Therefore the only Conceptual that I accept is /within/ the domain of Logical. And FOPC in the first order of that Logical.
Therefore Conceptual is the left side of
If the domain of Logical were perceived as a spectrum:
- Conceptual would be the left side,
- Physical would be the right side
- with a number of specific stages in-between
But even that does not describe it properly. First, I am totally with Codd. Not just hanging on his every word (not saying you are), but:
- what he actually meant when he said something, and
- how that fits into the grand scheme of creating something (true). http://www.softwaregems.com.au/Documents/Article/Database/Movie%20Title/Creative%20Act.png
On Sunday, 26 January 2020 05:42:42 UTC+11, Nicola wrote:No.
On 2020-01-25, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
Just as
Table[ Key ] raA Attribute
If 3NF/"Full" FD is understood AND a Relational Key is used:
Table[ Key ] raA Parent.Attribute
Sure, FDs are not necessarily intra-relational.
Done.- Besides, I would remove Title from Concept, because that information
belongs to ConceptTitle. A ConceptTitle can additionally provide all
the required information about each title.
Disagree. This is correct:
Concept [TitleReduced, Creator, Year] raA 1 Title (local attribute)
And
Concept [TitleReduced, Creator, Year] raA 0-to-n ConceptTitles (subordinate table)
Not 1-to-n as I have explained elsewhere.
Well, let it be then.
Yes. In my courses, having previously taught the /Principle/ thatOk, so we have:
Concept[ TitleReduced, Creator, Year ] raA 1 Title (local attribute)
Concept[ TitleReduced, Creator, Year ] raA 0-to-n ConceptTitles (subordinate table)
ConceptTitle[ TitleReduced, Creator, Year, Language_CT, TitleReduced_CT ] raA Language_CT[ Title ]
Where [TitleReduced_CT, Language_CT, Creator, Year] is also a key. Nice!
Yes and no. It is Codd's directive, in his /RM/. IDEF1X is simply implementing the directive. Therefore I would not change that.Time for another one of those progression-of-Codd inventions that is fully-integrated-with-science-and-logic. That PK is getting silly,
because both TitleReduced and TitleReduced_CT have a Language. Title
is duplicated, only one is required. Resolving all that, this becomes
the Primary Key:
Realisation[ Language_CT, TitleReduced_CT, Creator, Year [, Differentiator ] ]
Fine, by migrating an AK (this is one aspect where the IDEF1X standard
should relax its rules, IMO).
That's nice, because each Realisation is naturally identified by its own title, even if they realise the same Concept.All truth is integrated.
On Monday, 27 January 2020 13:41:00 UTC+11, Derek Ignatius Asirvadem wrote:
On Monday, 27 January 2020 20:03:16 UTC+11, Nicola wrote:
On 2020-01-27, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
This post introduces V0.7
That looks good to me.Sorry about the delay. Fires. Floods. Sickness.
On Saturday, 15 February 2020 15:38:57 UTC+11, Derek Ignatius Asirvadem wrote:Not sure if it is possible, but I will ask anyway. I don't have a capable person to check my work right now, and I won't until 06 Mar. There is only so much that self-checking exposes. Could you please;
===================
This post introduces V0.8
===================
Having agreed that V0.7 Table-Relational level is good, there is no /substantial/ difference between V0.7 and V0.8. As you may appreciate, in erecting the Table-Attribute level, minor errors or omissions in the Table-Relation level were exposed, and so there is a new version.
On Saturday, 15 February 2020 15:47:34 UTC+11, Derek Ignatius Asirvadem wrote:
Not sure if it is possible, but I will ask anyway. I don't have a capable person to check my work right now, and I won't until 06 Mar. There is only so much that self-checking exposes. Could you please;
1. check this at the clerical, not modelling, level. Ie. typos; missed migrations; etc. If any errors I will fix them up.
2. IFF [1] is correct, proceed with ordinary discussion, which is modelling. No point in [2] if there are silly errors.
On Thursday, 20 February 2020 07:20:34 UTC+11, Nicola wrote:By all means. We need full throttle on both sides for this one. (When I am sick, usually I can still concentrate, at least for short durations. But not that last time, which I felt quite bad about, I couldn't even implement an FK without screwing up.)
On 2020-02-17, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
I need a few days before coming back to this at full throttle. Life
sometimes gets in the way.
I think I have caught all of [1]. You can proceed directly into argumentation of the logical.1. check this at the clerical, not modelling, level. Ie. typos; missed migrations; etc. If any errors I will fix them up.
2. IFF [1] is correct, proceed with ordinary discussion, which is modelling. No point in [2] if there are silly errors.
At a quick glance: Agent is an interesting case, because apparently it *requires* the use of a surrogate (AgentNo)...Yes, of course.
I render all Hierarchies visually, verticallyI have an even more superior method, but I can't show that in a public forum, sorry.
On Thursday, 20 February 2020 21:51:59 UTC+11, Derek Ignatius Asirvadem wrote:That fact, that it is a Relational Breach, is further confirmed because one cannot use FOPC, the first order in the Logical realm, and therefore cannot use the second order, the /Relational Model/.
There are only two scientifically valid reasons for a surrogate ...
In both cases, because it is a surrogate, it still constitutes a Relational Breach, specifically
a. a breach of the Independent Access Path Rule. It cuts of access from the tables below the breach, to their genuine ancestors (above the breach).
b. and of course the Relational Key Normal Form.
The surrogate breaks the natural Hierarchy, and creates a new Hierarch (in my IDEF1X models, I show this visually, because I render all Hierarchies visually, vertically). Please feel free to discuss in detail.
On Tuesday, 25 February 2020 16:03:10 UTC+11, Derek Ignatius Asirvadem wrote:For clarity, teaching purpose, etc. Transactions are best understood from the user perspective (action; function), rather than the database perspective, and then add the understanding of the database requirement. When I (a) discuss or (b) name Transactions, I purposely:
On Tuesday, 25 February 2020 02:44:32 UTC+11, Nicola wrote:
- Others:
- KeywordPermitted is 1:1-N with both ConceptKeyword and
ProjectKeyword: I think that should be 1:0:N (a simple reason is
that a Concept may have no associated Projects).
Yes and no. I realise that academics; "academics"; and certainly all the "theoreticians" (there are no theoreticians serving this space) contemplate each FK (indeed every element in the data model) as a single element, isolated from its context, divorced from all other elements. But that is wrong:
- the database is an integrated unit (no element is isolated; every element exists in a context)
- the FK relates to the parent, and to the child
- where there are two FKs, there are two parents with a common child
- so the two relations, and their cardinality, must be viewed as involving three parties (not two times two parties)
The cardinality declared in V0.10 states, a Keyword will not be added unless it has a child in { ConceptKeyword | ProjectKeyword }. Ie. we do not walk up to the database and add Keywords first, then add Titles. No, the user function is, we add Titles, and as a result, if the words do not exist in Keyword, we add the Keyword as part of the Transaction. (Keyword first, in the Transaction sequence.)
The academics; "academics"; and certainly all the "theoreticians", are totally ignorant of ACID Transactions, which is a huge problem. We had ACID Transactions in every *DBMS long before the /RM/, and SQL, the data sublanguage defined in the /RM/ has ACID Transactions. So while it could be said that the /RM/ does not define Transactions, that is irrelevant, because it does not have to define anything other than the /Relational Model/ (eg. it does not define Basetype-Subtypes either, which we also had before). The relevant point is, all DBMS platforms, Relational or otherwise, have ACID Transactions, as a necessary demand for any implementation, and we had better teach it.
(Non-platforms do not have Transactions and various other implementation requirements, let's not discuss them. They just simply should not be used for any academic or teaching purpose.)
Ie. phonetic. The Japanese pronunciation of "pe|pe+pa-" sounds like "Gojira". The English word is Godzilla, because it is an amalgam of sea monster (they have deities but no unifying God) plus gorilla.For
instance, should an Australian cataloguer insert the title of a new
Concept "Godzilla" as
(a) "Gojira" (in Japanese, I assume),
Hepburn actually, Japanese language in the Roman (be proud!) alphabet.
The East Asians are all primitive as F. No alphabet. No CONCEPT of words that are made up of root words plus prefixes and suffixes to denote tense; particles; etc. Just words as concepts, meaning dependent on context (the string of concepts) and words each have a symbol. Therefore they do not have any literature or poetry (the concept is absent). "Simplified" Chinese:(b) "pe|pe+pa-"
(which *should* be the Japanese script for Godzilla, at least according
to Google Translate)
It is. Japanese in the Japanese charset (technically East Asians do not have an alphabet, they have only symbols for words).
On Tuesday, 25 February 2020 20:20:36 UTC+11, Nicola wrote:Sorry. Expanded as TitleReduced_Concept, etc in the next iteration.
On 2020-02-25, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
Second, when the **full** PK
Concept[ Creator, Year, TitleReduced ]
is **not** used to Identify the child
ConceptTitle[ Creator, Year, LanguageCode, TitleReduced ]
the relation is Non-Identifying. Of course, the FK is migrated as normal:
/Concept[ Creator, Year, TitleReduced ] is known as ConceptTitle[ Creator, Year, TitleReduced_C ]/
That naming of the attributes has got me confused. Now, I've got it.
Ditto for Project/ProjectTitle.
Discussion. I am trying to get you to appreciate higher meanings in cardinality when the DM is taken as a whole, not each relation in isolation. What you are saying is perfectly reasonable in the latter perspective, but not in the former.- Others:
- KeywordPermitted is 1:1-N with both ConceptKeyword and
ProjectKeyword: I think that should be 1:0:N (a simple reason is
that a Concept may have no associated Projects).
The cardinality declared in V0.10 states, a Keyword will not be added unless it has a child in { ConceptKeyword | ProjectKeyword }.>
...unless it has a child in ConceptKeyword **&** ProjectKeyword }. To
express "one or the other or both (but at least one)", you should make
the associations 0rCoN and add a footnote to explain that at least one association must hold for each keyword. The way I understand your model
is that you cannot add a Keyword unless it is used as both
a ConceptKeyword and as a ProjectKeyword.
ToSeparate point. Generic answer. No. The correct way is to add a pair of Non-Exclusive Subtypes for KeywordPermitted { Concept | Project }.
express "one or the other or both (but at least one)", you should make
the associations 0rCoN and add a footnote to explain that at least one association must hold for each keyword.
Done.One issue with the term "Project" is that a full database model would
likely include "cataloguing projects", so the term is at risk of being
overloaded. But for this thread I believe it's fine.
(I would much rather model a real world database than a purely
academic one for this thread. The former has a veracity that the
latter does not have, and the former covers the latter plus more, not less.)
How about just... Movie (or Moving Image)?
1. From our previous discussions, LanguageCode has to go with a Title where the Title may not be in the cataloguer's language.Second, according to IMDb, the movie "Gojira ni-sen mireniamu" is
translated into English as "Godzilla 2000" and also as "Godzilla 2000:
Millennium". In my understanding, those would be two titles with the
same LanguageCode. So, shouldn't the key of ConceptTitle include
TitleReduced_C rather than LanguageCode?
That is a discussion point, that leads to a decision, as opposed to
a mistake. The current intention is, we have just one ConceptTitle
(and ProjectTitle) in any one Language. So if we need multiple titles
per Language ... I would say, the determinant is ...
TitleType, and move that into the PK, rather than TitleReduced_C (the title itself).
ConceptTitle[ ?, ?, en, Original, Godzilla 2000 ]
ConceptTitle[ ?, ?, en, Alternate, Godzilla 2000: Millennium ]
Do you need LanguageCode in the key, though? I'd say that both
LanguageCode and TitleType are determined by the title.
I'd say that ...
LanguageCode ... are determined by the title.
I'd say that ...Please explain. Context is of course, our previous discussion: that there are more than one ConceptTitles in a particular Language for a given Concept:
TitleType are determined by the title.
I am addressing that problem, but nominating TitleType as the determinant, which is also the determinant of the TitleReduced in the PK.So, shouldn't the key of ConceptTitle include
TitleReduced_C rather than LanguageCode?
On Tuesday, 25 February 2020 02:44:32 UTC+11, Nicola wrote:I was expecting more discussion.
I am coming back to discussing the model.
On Thursday, 27 February 2020 17:59:55 UTC+11, Derek Ignatius Asirvadem wrote:The larger goal is, a fully defined Relational database, based on FOPC and the /RM/, which is therefore stable and fully integrated [all senses], plus a full set of Open Architecture Transactions (which is the Database API), and serves all needs, instead of:
5. Constraint
-----------------
[...]
Second, there are of course more Constraints to be declared for each table. I have started declaring them. Feel free to declare whatever you see fit.
[...]
When the Constraints are actually complete, we could say we have achieved Fully Constrained Normal Form, "DKNF" + C + C ...
Also, when you check the data model, could you please confirm that you are checking the Predicates (all expressed in the data model in symbols, not in text form).
An earlier post ...
[mess, improvable] ...
[contradictory data] ...
[recorded & lost] ...
["linked data models"] ...
"ontology", which will put every piece of data within a well defined
hierarchy.
and a "description logics"
On Thursday, 27 February 2020 19:31:35 UTC+11, Nicola wrote:You are correct, the V0.10 DM is incorrect.
On 2020-02-25, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
The relevant predicates corresponding to your model (v.10) are:
1. Each KeywordPermitted recalls one or more ConceptKeywords;
2. Each KeywordPermitted recalls one or more ProjectKeywords.
At the end of a transaction inserting (in order) into:
- Concept
- ConceptTitle
- Keyword
- KeywordPermitted
- ConceptKeyword
would result in predicate (2) to be violated. Such a transaction should
be considered correct, though. Hence, the constraint imposed by the
model is too strict.
That is easily fixed as you suggest below.There is nothing, absolutely nothing, that cannot be defined in FOPC. The tendency of OO/ORM types is to put everything in the middle tier, and nothing in the RFS. Switching to putting everything in the database does require conscious effort.
To
express "one or the other or both (but at least one)", you should make
the associations 0rCoN and add a footnote to explain that at least one
association must hold for each keyword.
Separate point. Generic answer. No. The correct way is to add
a pair of Non-Exclusive Subtypes for KeywordPermitted { Concept
| Project }.
Right. I stand corrected.
Ok. At this stage it is not a Discriminator, it is a Classifier. As a Reference table, the referencing row can only reference a single row in the referenced table, so sure, it has a "discriminating" effect, same as a classifying effect. But we can't use the term Discriminator because it means a specific thing: the determinant for an Exclusive Subtype cluster.I'd say that ...
TitleType are determined by the title.
Please explain. Context is of course, our previous discussion: that
there are more than one ConceptTitles in a particular Language for
a given Concept:
The title type is a discriminator for titles (a title is "original" xor "alternate" xor "preferred" ...).
On Thursday, 27 February 2020 23:10:38 UTC+11, Nicola wrote:... continued.
On 2020-02-27, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
Whoa. In another post, you stated:Second, there are of course more Constraints to be declared for each
table. I have started declaring them. Feel free to declare whatever
you see fit.
Could you clarify with an example why TitleType must be in the key of ConceptTitle and ProjectTitle?
On Thursday, 27 February 2020 19:31:35 UTC+11, Nicola wrote:----
On 2020-02-25, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
I'd say that ...
LanguageCode ... are determined by the title.
1. From our previous discussions, LanguageCode has to go with a Title
where the Title may not be in the cataloguer's language.
2. How can LanguageCode be determined by theTitle ?
For uneventful presentation (any GUI, any platform ... Localisation),
I thought it is the reverse.
Upon reflection, yes, I am wrong. To properly track titles in multiple languages, LanguageCode must be part of the key.
I believe that my question "How to identify a movie?" is now answered.Great.
One thing I'd still change in the model, though: I'd turn theAs detailed in the earlier post, I can see the validity in a Concept or Movie being derived from more than one Concept or Movie, and therefore it is not a lineage. But I cannot see how a Variant has more than one parent, and how it is not a [single-parent] lineage.
associations "Is Varied As" and "Is Derived As" into (associative)
entities. The reason is that one would want to add more information
related to such associations (e.g., data about sources that justify
a particular relationship between movies).
Thank you. Ok.The additional symbols I have used are Extensions to IDEF1X, I do not
think they need explanation. However, it does make the DM a bit busy.
I do have an Extension that eliminates that issue, which you may be interested in, after we settle down with this one.
When the Constraints are actually complete, we could say we have
achieved Fully Constrained Normal Form, "DKNF" + C + C ...
Forget about DKNF and call it FCNF then!
In your own time. I can see that Piedmont and Tirol are exploding. The weaponised Chinese virus sure is effective.I was expecting more discussion.
I hope I am catching up. During the next days I'll review your
constraints and validate the model against the examples from the FIAF
manual.
67 Tables after 12 iterations. That is starting from scratch (determining entities), probably 8 iterations in the usual situation. Good work.For me, delivering databases that are fully self-defining per FOPC and /RM/, the number of additional Constraints (beyond "DKNF" or beyond those implicit in the CREATE TABLE commands taken together), ie. CHECK commands, is:
More constraints for you to shake a stick at.
On Tuesday, 3 March 2020 00:48:12 UTC+11, Derek Ignatius Asirvadem wrote:
67 Tables after 12 iterations.
On Tuesday, 3 March 2020 00:48:12 UTC+11, Derek Ignatius Asirvadem wrote:Two
=====================
This post introduces V0.13
=====================
1. Just caught one mistake.
Although the columns in ConceptTitle were correct, the relation /Language expresses ConceptTitle/ was missing. That probably caused your confusion about the table. Even when pointed out, and examined again, I corrected the shortened column names, but I missed the missing relation. Sorry.- /ConceptTitle manifest as 0-n Movie/ -- is Identifying
On Wednesday, 4 March 2020 16:40:39 UTC+11, Derek Ignatius Asirvadem wrote:
- /ConceptTitle manifest as 0-n Movie/ -- is Identifying
- /MovieTitle is merchandised as 0-n Editions/ -- is Identifying
(Oops, I just spotted an error. Movie is Independent, but shown as Dependent. Calls for another iteration. I will wait until some of these questions get resolved.)With a view to getting the DM complete enough to be useful for this exercise (not "production ready"), I would like to resolve all un-resolved items. I have identified several such items in previous posts, these await your discussion. Here is another.
On Wednesday, 18 March 2020 02:54:48 UTC+11, Derek Ignatius Asirvadem wrote:Further to that post. Changes and clarifications.
Of course that should be:On Tuesday, 17 March 2020 05:24:07 UTC+11, Nicola wrote:
On 2020-03-15, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
I am considering some (perhaps too naive) changes.
The biggest difference is
that I am putting Movie (now Moving Image) under Concept rather than ConceptTitle.
[...]
- Then the Musical and Movie (more famous)
ConceptVariant[ Lerner & Loewe, 1956, en, Original, My Fair Lady ]
-- because you have only movies, books; plays; musicals; etc, which are necessary only for the addition of a Movie, have to be stored as a ConceptVariant
Movie[ Lerner & Loewe, 1964, en, My Fair Lady, ] -- no Differentiator
TitleType[ Original ], CountryCode_Produced[ us ], LanguageCode_Produced[ de ]
A couple of minor items re IDEF1X requirements. If we used a modelling tool, it would do all this for us.Relation ConceptTitle..MovieTitle
Three items.
Upon implementing it, actually, no. It is already carefully thought out. There are two aspects, I will take them in turn.(1) Formerly called TitleReduced.
Definitely better. Keeping with my Naming Convention: Title_Concept. The underscore means something, a qualifier. See other uses.
(3) Acyclic.Movie_VariantLineageIsValid_ck
Yes. Enforced. By the Constraint.
PDFsI don't know if this point was a consideration for you, I will cover it just in case. Each country has a slightly different understanding of copyright (East Asia has no understanding at all). Americans have the most stringent, but it is not correct. If a document is published in the public domain, it is public, available to all, and therefore can be copied. If it has a Copyright notification, it means it can be copied, but only with the Copyright notice intact.
Please feel free to annotate my PDFs with notes and comments such as this. That may be quicker than creating a new diagram. My PDFs are not protected, Preview (and any Adobe viewer) has an AddNote facility. Toolbox.
The removal of NULL by adding a table for the optional column (the Fact that the row is a Variant, and thus that the parent row is or is not), was discussed in the previous thread. That eliminates the need for treating the head of an hierarchy asa "special case" (code or allow zero or "deferred constraint checking").Another reason the DM is not complete is, I have not removed the
Nulls. Which absolutely have to be removed before I let a DM be considered complete. It is one of those second-to-last steps.
Have your marked optional attributes in some way? I have assumed that
all attributes are mandatory.
Well data modelling is a progressive exercise. At the beginning we don't worry about things like that, somewhere in the middle, we start to worry, and long before the end we get them all perfect. So no, thus far (up to V0.13) I have not worried. Now we are entering the territory where I want the DM to be really useful, so yes, I will make that clear.
(In another thread we discussed hierarchies in a different sense: what has to be done at the physical level; why "deferred constraint checking" is hilariously absurd; etc. Eg. if handled improperly [or when the DM is not yet complete] the head of every hierarchy is a NULL. When handled properly that column is an optional table, and the NULL is eliminated. Again, INSERT/UPDATE/DELETE is true, and "deferred constraint checking" is not required.)
ConceptVariant and MovieVariant will be such tables, new in the next iteration.
The problem is of course that my situation is abnormal. Normally I use a modelling tool, ERwin, and then erect OmniGraffle diagrams only when pretty ones are required. But I have a new Mac, and Windows & Erwin are not installed yet. So it is OG from start to finish. Pretty, but the risk of typos.As I am walking through the DM, I am still finding little errors.
I was hoping that your walk-through, and reading off the Predicates as you go, would have caught some of those.
On Tuesday, 17 March 2020 05:24:07 UTC+11, Nicola wrote:In my previous two posts, I addressed what I thought you were trying to do, and thus my comments were within that scope. On further study of your DM, it appears that you are trying to do much more, trying to communicate much more, than I first thought. But that means I have to take the definitions as given, that there are no mistakes. (The AK notation issue is too small to consider as a mistake that warrants a discussion here.)
On 2020-03-15, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
That said, what are you proposing? That (Concept|Movie)Titles should incorporate CountryCode? I would go a different route (see below).
I am considering some (perhaps too naive) changes. Please take a look at this:
https://send.firefox.com/download/b2c409b72171dddf/#x_7fCElwXgWmgV2-MVWETg
On Wednesday, 18 March 2020 23:30:08 UTC+11, Derek Ignatius Asirvadem wrote:
=======================
This post introduces V0.14
=======================
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 65 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 62:44:51 |
| Calls: | 862 |
| Files: | 1,311 |
| D/L today: |
10 files (20,373K bytes) |
| Messages: | 264,046 |