CHANGES (Examiners' Edition -> Special Edition) =============================================== In the Special Edition, the term "incomparable" is retained throughout the thesis. Title-Page ---------- "Comparative\\Code Understanding\\of Information Models" -> "Comparative\\Code Understanding\\of Information Models (Special Edition)" Acknowledgements ---------------- Delete "(1994--1997)" Delete "(1997--2001)" "Monica Seles, Jelena Doki\'{c}, Iva Majoli, Karina Hab\v{s}udov\'{a} and Daniela Hantuchov\'{a}" -> "Monica Seles, Daniela Hantuchov\'{a}, Jelena Doki\'{c}, Iva Majoli, Karina Hab\v{s}udov\'{a} and Iroda Tulyaganova" Glossary -------- New entry: \item[completeness] A correspondence heuristic (or a decision procedure in general) is \emph{complete} if it always says that two objects correspond when they do (i.e. no false negatives) (Section~\ref{sec:4.1.1}). \item[frame-class model]: "(Appendix A)" -> "(Appendix D)" \item[plausible correspondence]: "can whether" -> "can decide whether" New entry: \item[soundness] A correspondence heuristic (or a decision procedure in general) is \emph{sound} if it never says that two objects correspond when they do not (i.e. no false positives) (Section~\ref{sec:4.1.1}). Section 1.0 ----------- "`indeterminate' as the value of nationality" -> "`indeterminate' as the value of \texttt{nationality}" Section 1.2 ----------- "at least at one" -> "at least one" (delete-bar) Section 1.4.2.0 --------------- End list with "." instead of ";" Section 1.5.3 ------------- "from the code-fragments covered by the corresponding HLCs" -> "between the code-fragments covered by the corresponding HLCs" Section 1.7 ----------- "semantic equivalence/strength cases" -> "semantic-equivalence/strength cases" Section 2.2.3 ------------- "semantic equivalence/strength cases" -> "semantic-equivalence/strength cases" Section 2.5 ----------- Table 2.1: Context Interchange: Section 2.4.3 -> 2.4.4 Section 3.2.1 ------------- Footnote 5: "semantic equivalence/strength cases" -> "semantic-equivalence/strength cases" Section 3.2.2 ------------- "(e.g. both a+b and b+a can be represented as a bag ({a, b})" -> "(e.g. both a+b and b+a can be represented as a bag {a, b})" "([Gra97])" -> "[Gra97]" Section 3.3 ----------- In the CCUS output (p.104), the instance-numbers for entities and for explicit attributes don't agree with their instance-numbers in the rest of the chapter, and must therefore be changed as follows: "entity_type#188" -> "entity_type#189" "entity_type#187" -> "entity_type#188" "explicit_attribute#299" -> "explicit_attribute#293" "explicit_attribute#298" -> "explicit_attribute#292" "explicit_attribute#297" -> "explicit_attribute#291" "explicit_attribute#296" -> "explicit_attribute#290" Add the following lines to the CCUS output: >>> .....Correspondence between integer_literal#97 and integer_literal#98 confirmed. ....Correspondence between comparator#8 and comparator#9 confirmed. ...Correspondence between domain_rule#3 and domain_rule#4 confirmed. <<< "model_frame#4 (test)" -> "model_frame#4" End list at top of p.106 with "." instead of ";" Section 3.4.1 ------------- "every element in the aggregation from the case must match every element in the aggregation from the retrieval prompt" -> "every element in the aggregation from the case must be matched by an element in the aggregation from the retrieval prompt" Section 3.4.2, Footnote 14 -------------------------- "If the CCUS has to match an ordered aggregation to an unordered one" -> "If the CCUS has to compare an ordered aggregation with an unordered one" Section 4.1.1 ------------- "the semantics of EXPRESS does not" -> "the semantics of EXPRESS do not" Section 4.1.2 ------------- End list with "." instead of ";" "it also enables the CCUS to avoid repeating the comparison of a given pair of frames, since it first checks whether they already correspond." -> "it also enables the CCUS to avoid repeating the comparison of a given pair of frames, since it first checks whether they already correspond, or have already been compared but failed to correspond.\footnote{The CCUS frame- comparison algorithm maintains a hash-table for this purpose: each key is a frame from the first model, and its associated value is the set of frames from the second model with which it has been compared but failed to correspond.}" Section 4.2.0 ------------- "Pseudocode algorithms for inferring correspondences are given in Appendix C, Section C.3." Section 4.2.2 ------------- "frame-class thesaurus" -> "frame-class-thesaurus" Section 4.2.5 ------------- On p.140, "literal#1" -> "integer_literal#1", "literal#2" -> "integer_literal#2". "equivalence/\-strength" -> "equivalence/\linebreak strength" (i.e. "/-" -> "/" at end of line) Section 4.3 ----------- "a case is indexed by the top-level frame in its problem part" -> "a case is indexed by the frame-class of the top-level frame in its problem part" "Section E.3" -> "Section E.3.3" Section 5.2.2.1 --------------- Move linebreak after "OPTIONAL {masculine," to after the second "{masculine," "federated schemata" -> "federated database schemata" "c.f." -> "cf." (twice) "dependencies" -> "dependences" Section 5.2.2.4 --------------- "Zaremski and Wing" -> "Moormann Zaremski and Wing" (twice) Section 5.2.3.0 --------------- "$\phi$ is stronger than $\psi$ if $\phi$ is true whenever $\psi$ is true" -> "$\phi$ is stronger than $\psi$ if $\psi$ is true whenever $\phi$ is true" Section 5.3: "Semantic-Equivalence/Strength Cases" ----------- -> "Semantic-Equivalence/Sttrength Cases" N.B. The indentation of the first paragraph is a bug with changebars. "because that constraint already holds on the target schema" -> "because that constraint already holds on the source schema" "A SE/S case" -> "An SE/S case" "." instead of ";" at the end of Case 4. Figure 5.8: "semantic equivalence/strength case" -> "semantic-equivalence/strength case" "no SE/S case matches both frames" -> "no SE/S case is matched by both frames" Insert new paragraph before "The other SE/S cases implemented are..." (p.186): "Pseudocode algorithms for using SE/S cases are given in Appendix C, Section C.4." Figure 5.10: "semantic equivalence/strength case" -> "semantic-equivalence/strength case" "2000:11:22 12:41" -> "2002:05:08 18:50" INSTANCE semantic_strength_slot#2: "influence = semantic_strength_influence(positive);" -> "influence = semantic_strength_influence(negative);" Section 6.3.0 ------------- New paragraph at the end: "Pseudocode algorithms for the HLC CCUS are given in Appendix C, Section C.5." Section 6.3.1 ------------- Footnote 12: "an semantic equivalence/strength case" -> "a semantic-equivalence/strength case" Figure 6.6, "INSTANCE range#2": "extracted_from = {bound#3, bound#4}" -> "extracted_from = {interval#1}" "navigation cases (Section 6.3.1)" -> "navigation cases" (i.e. remove self-reference) "\texttt{together}" -> "\emph{together}" Section 6.3.2 ------------- "previous section" -> "previous subsection" Section 7.2.2 ------------- "compares h1 with r2', and compares r1' with h2" -> "compares h1 with r2', and compares `r1 with h2" Section 7.2.3 ------------- "compares h1 with r2', and compares r1' with h2" -> "compares h1 with r2', and compares `r1 with h2" Section 8.2.0 ------------- "extraction cases (Appendices A)" -> "extraction cases (Appendices A and B)" Section 8.2.1 ------------- "(by the fact that a word is in multiple subsets)" -> "(by the fact that a word is in multiple synsets)" "Zaremski and Wing" -> "Moormann Zaremski and Wing" Section 8.2.2 ------------- "corresponds to (age >= 1) AND (age < 101) correspond" -> "corresponds to (age >= 1) AND (age < 101)" (delete-bar) "As noted in Section 8.2.2" -> "As noted in Section 8.2.1" Section 8.3.1.3 --------------- "frame-comparison);" -> frame-comparison;" (delete-bar) "extraction case for adder" -> "extraction case for \texttt{adder}" Section 8.3.2.0 --------------- "This section" -> "This subsection" Section 8.3.2.1 --------------- "if-statements^7," -> "if-statements,^7" (footnote-reference after comma) Section A.2 ----------- "(Section E.1.8" -> "(Section E.1.8)" "3 <= SELF <= 6" -> "{3 <= SELF <= 6}" Section A.3 ----------- "Sections E.1.9" -> "Section E.1.9" (delete-bar) "sum z" -> "sum $z$" (i.e. a mathematical expression, in italics) "product z" -> "product $z$" Section A.5 ----------- "(Figure A.7" -> "(Figure A.7)" "Inverse attributes were not always present in the EXPRESS language, and some real models (such as the Electronic Design Interchange Format information model \cite{lau}) express this constraint as a domain rule instead (Figure~\ref{fig:A-8}):" -> "Inverse attributes were not always present in the EXPRESS language. Furthermore, some real models (such as the Electronic Design Interchange Format information model \cite{lau}) choose to express this constraint as a domain rule instead. Figure~\ref{fig:A-8} shows how an inverse attribute can be simulated by a domain rule:" Section A.6 ----------- "there_exists (Section E.1.23)" -> "there_exists (Section E.1.24)" "QUERY (x <* s | p(x)" -> "QUERY (x <* s | p(x))" "this set has to be greater than or equal to one" -> "the cardinality of this set has to be greater than or equal to one" Section A.7 ----------- "the first model" -> "the first model in Figure A.10" Section B.0 ----------- "semantic equivalence/strength cases" -> "semantic-equivalence/strength cases" Section B.2 ----------- "semantic equivalence/strength cases" -> "semantic-equivalence/strength cases" Section C.0 ----------- "This appendix presents pseudocode algorithms for the main comparison algorithm of the Comparative Code-Understanding System (CCUS) (Section C.1) and its aggregation-matching policies (Section C.2). Shortage of time meant that the pseudocode algorithms pertaining to inferring correspondences (Chapter 4), assessing semantic equivalence and semantic strength (Chapter 5), and the Higher-Level-Constraint-extracting CCUS (Chapter 6) had to be left out." -> "This appendix presents pseudocode algorithms for: * the main comparison algorithm of the Comparative Code-Understanding System (CCUS) (Section C.1); * its aggregation-matching policies (Section C.2); * inferring correspondences (Section C.3); * assessing semantic equivalence and semantic strength (Section C.4); * the Higher-Level-Constraint-extracting CCUS (HLC CCUS) (Section C.5)." New sentence: "This appendix does not include details of the Code-Understanding System (Appendix B); see Appendix D of [Bro99] for algorithmic details), nor of the underlying frame system (Section 3.2.1)." Section C.1.0 ------------- "(which compares two frames)" -> "(which compares two frames -- Section C.1.1)" "(which compares two slot-fillers)" -> "(which compares two slot-fillers -- Section C.1.2)" New sentence: "The method \texttt{processDifference} (Section C.1.3) provides the hook to assessing semantic equivalence (Section C.4) and to the HLC CCUS (Section C.5)." New paragraph: "The CCUS starts by calling \texttt{matchFrames} on the two top-level \texttt{model\_frame}s." Section C.1.1 ------------- Add intro: "This method compares two frames, on the precondition that they correspond or plausibly correspond. It calls \texttt{matchFillers} (Section C.1.2), \texttt{processDifference} (Section C.1.3), \texttt{recordCorrespondence} (Section C.3.4) and \texttt{retractCorrespondence} (Section C.3.5)." "This method is responsible for inferring abstract correspondences back at the code level when two HLCs are inferred to correspond (Section 6.3.3) -- it records correspondence between their fillers of the \texttt{covers} slot." "If the frames have been matched" -> If the frames have been compared" "are in each other's corresponds_to slots" -> "correspond (see Section 4.1.2)" Remove ";" after if frame1 and frame2 correspond (cf. Section 4.1.2) then return true insert: if frame1 and frame2 have already been compared but failed to correspond then return false "record correspondence between frame1 and frame2 (i.e. add them to each other's corresponds_to slots)" -> "recordCorrespondence(frame1, frame2, mode)" "retract the correspondence between frame1 and frame2 (i.e. remove them from each other's corresponds_to slots)" -> "retractCorrespondence(frame1, frame2)" Remove ";" "}" -> "} // end for" Insert at the end of the algorithm: "if frame1's "covers" slot is filled and frame2's "covers" slot is filled then recordCorrespondence(frame1."covers", frame2."covers", mode) if they have not already been recorded to correspond" Section C.1.2 ------------- New paragraph: "This method compares two slot-fillers, or the underlying values of defined- type-instances, or elements of aggregations (vectors). It calls \texttt{sanctionCorrespondence} (Section C.3.1), \texttt{matchFrames} (Section C.1.1) and \texttt{matchVectors} (Section C.2.1)." "slot filler" -> "slot-filler" "defined-type instances" -> "defined-type-instances" Section C.1.3: "processDifference: Algorithm to process a difference" ------------- New subsection! Section C.2.0 ------------- "matchVectors method" -> "matchVectors method (Section C.2.1)" "matchUnorderedVectors or matchUnorderedVectors" -> "matchUnorderedVectors (Section C.2.2) or matchOrderedVectors (Section C.2.3)" Section C.2.1 ------------- "vector 2" -> "vector2" Add return-type ": boolean" Section C.2.2 ------------- "algorithm" -> "method" New sentence: "It calls \texttt{matchFillers} (Section C.1.2)." "vector 2" -> "vector2" Add return-type ": boolean" "then matched:= true remove element2 from vector2clone" -> "then { matched:= true remove element2 from vector2clone }" "}" -> "} // end for" (twice) Section C.2.3 ------------- "algorithm" -> "method" New sentence: "It calls \texttt{matchFillers} (Section C.1.2)." "vector 2" -> "vector2" Add return-type ": boolean" Section C.3: "Inferring Correspondences" ----------- New section! Section C.4: "Assessing Semantic Equivalence and Semantic Strength" ----------- New section! Section C.5: "Combining Comparison and Extraction" ----------- New section! Section D.1 ----------- Comment for "TYPE simple_type" duplicated for "TYPE indeterminate_type". Replace with: (********************************************************************) (* TYPE indeterminate_type *) (********************************************************************) (* The type of indeterminate aggregation-bounds (`?'). *) (********************************************************************) Section D.3 ----------- "(e.g. age >= 0, (age >= 0) AND (age <= 130)" -> "(e.g. age >= 0, (age >= 0) AND (age <= 130))" Section E.0 ----------- "semantic equivalence/strength cases" -> "semantic-equivalence/strength cases" Section E.3: "Semantic-Equivalence/Strength Cases" ----------- -> "Semantic-Equivalence/Sttrength Cases" N.B. The indentation of the first paragraph is a bug with changebars. Section E.3.10 -------------- "2000:11:22 12:41" -> "2002:05:08 18:50" INSTANCE semantic_strength_slot#2: "influence = semantic_strength_influence(positive);" -> "influence = semantic_strength_influence(negative);" Section E.5 ----------- "textual differences" -> "textual descriptions" "``explicit_attribute#293''" -> "explicit_attribute#293" "comparator#8''" -> "comparator#8" "1999:11:19 15:09" -> "2002:05:11 19:56" "bound of ?limit on ?variable" -> "bound of ?limit on ?variable" Bibliography ------------ [AG96] "http://symphony.clarku.edu/atkinson/papers/icse-96.ps (last modified" -> "http://www.cse.scu.edu/~atkinson/papers/icse-96.pdf (modified" [AP94] "last modified" -> "modified" [Bai95] "last modified" -> "modified" [BF99] "last modified" -> "modified" [BF00] "last modified" -> "modified" [Bro] "last modified 25th September 2001" -> "modified 21st September 2002" [Bro99] "last modified 16th June 1999" -> "modified 15th May 2002" [CC98] "last modified" -> "modified" [CLM95a] "October 1995" -> "17th-20th October 1995" Delete URL (404) [CLM95b] Delete URL (404) [Cog] "(accessed on 23rd May 2001)" -> "(accessed 9th October 2002)" [CTL97] "(13th June 1999)" -> "(modified 13th June 1999) [Ede97] "1997" -> "2(1), Spring 1997" "http://www.db2mag.com/9701edel.htm (last modified 23rd April 1997)" -> "http://www.db2mag.com/db_area/archives/1997/q1/9701edel.shtml (accessed 9th October 2002)" [GB99] "http://inchinn.infj.ulst.ac.uk/htdocs/pgomes.pdf" -> "http://eden.dei.uc.pt/~pgomes/Documents/ijcai99ws.pdf (accessed 9th October 2002)" [Hak98] " (accessed 9th October 2002)" [LTV95] "last modified" -> "modified" [Mil98] "last modified" -> "modified" [Pro] Delete URL. [Rat] "UML Modeling Language, Standard Software Notation: Resource Centre" -> "Unified Modeling Language Resource Center" "http://www.rational.com/uml/index.shtml (modified 18th November 1998)" -> "http://www.rational.com/uml/ (accessed 9th October 2002)" [RG98] "Golgolla" -> "Gogolla" [Spi] "P. Spiby. EXPRESS Information modelling language: ISO WD 10303-11 (edition 2 home page). EuroSTEP. http://www.eurpc2.demon.co.uk/ part11.htm (last modified 10th July 1998)." -> [SS99] "P. Spiby and D. Sanderson. Industrial Automation Systems and Integration -- Product Data Representation and Exchange -- Part 11: Description Methods: The EXPRESS Language Reference Manual, Second Edition (ISO TC184/SC4/WG11-N081), 1999. http://www.nist.gov/ sc4/wg_qc/wg11/n081/n81.pdf (modified 8th October 1999)." [Sun] Delete URL. [VHG] "last modified" -> "modified" [xml97] force capitals on xml {XML}; "December 1997 1997" -> "December 1997" "9th December 1997" -> "8th September 2000" [ZW97] "A.M. Zaremski" -> "A. Moormann Zaremski"