CBRThe academic advising archiveCite this work ↗

Correction log for the proofread edition

Version 2 · 30 October 2026. Source references use physical PDF page numbers. All 201 supplied pages received individual source comparison. Original source issues remain distinct from transcription corrections.

PF1-001 · PDF page 18 · FOOTNOTE_BOUNDARY

Original source page 18

Before

* From http://smi-web.stanford.edu/projects/history.html#DENDRAL DENDRAL began as an effort to explore the mechanisation of scientific reasoning and the formalisation of scientific knowledge by working within a specific domain of science, organic chemistry. Another concern was to use AI methodology to better understand some fundamental questions in the philosophy of science, including the process by which explanatory hypotheses are discovered or judged adequate. After more than a decade of collaboration among chemists, geneticists, and computer scientists, DENDRAL had become not only a successful demonstration of the power of rule-based expert systems, but also a significant tool for molecular structure analysis in both academic and industrial research labs. Using a plan-generate-test search paradigm and data from mass spectrometry and other sources, DENDRAL proposes plausible candidate structures for new or unknown chemical compounds. Its performance rivals that of human experts for certain classes of organic compounds, resulting in a number of published papers in the chemical literature. Although no longer a topic of academic research, the most recent version of the interactive structure generator, GENOA, has been licensed by Stanford University for commercial use.

After

* From http://smi-web.stanford.edu/projects/history.html#DENDRAL

DENDRAL began as an effort to explore the mechanisation of scientific reasoning and the formalisation of scientific knowledge by working within a specific domain of science, organic chemistry. Another concern was to use AI methodology to better understand some fundamental questions in the philosophy of science, including the process by which explanatory hypotheses are discovered or judged adequate. After more than a decade of collaboration among chemists, geneticists, and computer scientists, DENDRAL had become not only a successful demonstration of the power of rule-based expert systems, but also a significant tool for molecular structure analysis in both academic and industrial research labs. Using a plan-generate-test search paradigm and data from mass spectrometry and other sources, DENDRAL proposes plausible candidate structures for new or unknown chemical compounds. Its performance rivals that of human experts for certain classes of organic compounds, resulting in a number of published papers in the chemical literature. Although no longer a topic of academic research, the most recent version of the interactive structure generator, GENOA, has been licensed by Stanford University for commercial use.
PF1-002 · PDF page 19 · FOOTNOTE_BOUNDARY

Original source page 19

Before

† From http://smi-web.stanford.edu/projects/history.html#MYCIN MYCIN is an interactive program that diagnoses certain infectious diseases, prescribes antimicrobial therapy, and can explain its reasoning in detail. In a controlled test, its performance equalled that of specialists. In addition, the MYCIN program incorporated several important AI developments. MYCIN extended the notion that the knowledge base should be separate from the inference engine, and its rule-based inference engine was built on a backward-chaining, or goal-directed, control strategy. Since it was designed as a consultant for physicians, MYCIN was given the ability to explain both its line of reasoning and its knowledge. Because of the rapid pace of developments in medicine, the knowledge base was designed for easy augmentation. Furthermore, because medical diagnosis often involves a degree of uncertainty, MYCIN's rules incorporated certainty factors to indicate the importance (i.e., likelihood and risk) of a conclusion. Although MYCIN was never used routinely by physicians, it has substantially influenced other AI research. At the HPP, MYCIN led to work in TEIRESIAS, EMYCIN, PUFF, CENTAUR, VM, GUIDON, and SACON (described below), and to ONCOCIN and ROGET. The book, Rule-Based Expert System: The MYCIN Experiment at the Stanford Heuristic Programming Project, describes the decade of research on MYCIN and its descendants.

After

† From http://smi-web.stanford.edu/projects/history.html#MYCIN

MYCIN is an interactive program that diagnoses certain infectious diseases, prescribes antimicrobial therapy, and can explain its reasoning in detail. In a controlled test, its performance equalled that of specialists. In addition, the MYCIN program incorporated several important AI developments. MYCIN extended the notion that the knowledge base should be separate from the inference engine, and its rule-based inference engine was built on a backward-chaining, or goal-directed, control strategy. Since it was designed as a consultant for physicians, MYCIN was given the ability to explain both its line of reasoning and its knowledge. Because of the rapid pace of developments in medicine, the knowledge base was designed for easy augmentation. Furthermore, because medical diagnosis often involves a degree of uncertainty, MYCIN's rules incorporated certainty factors to indicate the importance (i.e., likelihood and risk) of a conclusion. Although MYCIN was never used routinely by physicians, it has substantially influenced other AI research. At the HPP, MYCIN led to work in TEIRESIAS, EMYCIN, PUFF, CENTAUR, VM, GUIDON, and SACON (described below), and to ONCOCIN and ROGET. The book, Rule-Based Expert System: The MYCIN Experiment at the Stanford Heuristic Programming Project, describes the decade of research on MYCIN and its descendants.
PF1-003 · PDF page 24 · DISPLAY_BOUNDARY

Original source page 24

Before

The inference of fuzzy implications generalizes two kinds of logic inference using the implications in classical logic: modus ponens and modus tollens. The logic inferences can e briefly illustrated here, using the following implication: IF a person’s IQ is high THEN the person is smart.

After

The inference of fuzzy implications generalizes two kinds of logic inference using the implications in classical logic: modus ponens and modus tollens. The logic inferences can e briefly illustrated here, using the following implication:

IF a person’s IQ is high THEN the person is smart.
PF1-004 · PDF page 24 · DISPLAY_BOUNDARY

Original source page 24

Before

Given: Jack’s IQ is High → Jack is Smart. Jack’s IQ is somewhat High.

After

Given: Jack’s IQ is High → Jack is Smart.

Jack’s IQ is somewhat High.
PF1-005 · PDF page 26 · DISPLAY_BOUNDARY

Original source page 26

Before

IF The motor is hot THEN Shut the motor down

After

IF The motor is hot

THEN Shut the motor down
PF1-006 · PDF page 26 · BULLET_PARAGRAPH_BOUNDARY

Original source page 26

Before

• The motor’s temperature is hot We would not have an exact match and the rule would not fire. As humans, we can easily interpret these two statements as meaning the same thing as the antecedent of the example, but the computer is unforgiving of difference in the statement’s syntax.

After

• The motor’s temperature is hot

We would not have an exact match and the rule would not fire. As humans, we can easily interpret these two statements as meaning the same thing as the antecedent of the example, but the computer is unforgiving of difference in the statement’s syntax.
PF1-007 · PDF page 28 · OCR_TEXT_OR_PUNCTUATION

Original source page 28

Before

Scripts were proposed as a structure for conceptual memory, describing information about stereotypical events such as going to a restaurant or visiting a doctor. However, experiments on scripts demonstrated they were not a complete theory of memory representation - people often confuse events that have similar scripts. For example, a person might mix up room scenes from a visit to a doctor’s office with a visit to a dentist’s office.

After

Scripts were proposed as a structure for conceptual memory, describing information about stereotypical events such as going to a restaurant or visiting a doctor. However, experiments on scripts demonstrated they were not a complete theory of memory representation – people often confuse events that have similar scripts. For example, a person might mix up room scenes from a visit to a doctor’s office with a visit to a dentist’s office.
PF1-008 · PDF page 30 · OCR_TEXT_OR_PUNCTUATION

Original source page 30

Before

Goker and Roth-Berghofer [15] adapted this methodology to improve their old model for their existing help desk support system HOMER, which was originally developed by Goker, Roth- Berghofer, Bergmann, Pantleon, Traphoner, Wess, and Wilke [15]. The original CBR process model involved four main tasks: retrieve, reuse, revise, and retain. The improved model was broken down into two cycles, namely the application cycle and the maintenance cycle, with two newly added tasks: recycle and refine. The two process cycles allow the two cycles to work more autonomously and independently of each other. The flexibility for this help desk system to be used in a dynamic, corporate environment by a large group of users was the outcome.

After

Goker and Roth-Berghofer [15] adapted this methodology to improve their old model for their existing help desk support system HOMER, which was originally developed by Goker, Roth-Berghofer, Bergmann, Pantleon, Traphoner, Wess, and Wilke [15]. The original CBR process model involved four main tasks: retrieve, reuse, revise, and retain. The improved model was broken down into two cycles, namely the application cycle and the maintenance cycle, with two newly added tasks: recycle and refine. The two process cycles allow the two cycles to work more autonomously and independently of each other. The flexibility for this help desk system to be used in a dynamic, corporate environment by a large group of users was the outcome.
PF1-009 · PDF page 31 · OCR_TEXT_OR_PUNCTUATION

Original source page 31

Before

Similar to information retrieval, CBR relies heavily on algorithms to retrieve cases efficiently. A category of these algorithms is Nearest Neighbour, which is also well known and intensively studied for the solution of classification and pattern recognition problems. Short and Fukunaga [35] introduced the Value Difference Metric and the Euclidean-Hamming metrics, which were accepted and used in the field of information theory until recently. Blanzieri and Ricci [5] extended SF2 from the Short, and Fukunaga metric, with its definition to input spaces with nominal features, and introduced a different estimate for the density probability used in this metric. They also modified SF2 metric to be the Minimum Risk Metric (MRM) by optimising the risk of misclassification instead. The MRM proved was less restrictive than SF2, and thus seemed particularly suitable for CBR applications when a relevant classification of the cases is available. Further work was required to address in depth the relation between MRM and the base mathematical theory, as well as to explore the performances of the metrics in higher dimensions and their sensitivity to noisy data.

After

Similar to information retrieval, CBR relies heavily on algorithms to retrieve cases efficiently. A category of these algorithms is Nearest Neighbour, which is also well known and intensively studied for the solution of classification and pattern recognition problems. Short and Fukunaga [35] introduced the Value Difference Metric and the Euclidean-Hamming metrics, which were accepted and used in the field of information theory until recently. Blanzieri and Ricci [5] extended SF2 from the Short. and Fukunaga metric, with its definition to input spaces with nominal features, and introduced a different estimate for the density probability used in this metric. They also modified SF2 metric to be the Minimum Risk Metric (MRM) by optimising the risk of misclassification instead. The MRM proved was less restrictive than SF2, and thus seemed particularly suitable for CBR applications when a relevant classification of the cases is available. Further work was required to address in depth the relation between MRM and the base mathematical theory, as well as to explore the performances of the metrics in higher dimensions and their sensitivity to noisy data.
PF1-010 · PDF page 36 · FOOTNOTE_BULLET_BOUNDARY

Original source page 36

Before

• Documents originally intended for the print medium can easily be re-adapted for other media, such as the computer display screen. The language that this Web browser uses, Hypertext Mark-up Language (HTML), is an example of an SGML-based language. There is a document type definition for HTML (and reading the HTML specification is effectively reading an expanded version of the document type definition). SGML is based somewhat on earlier generalised mark-up languages developed at IBM, including General Mark-up Language (GML) and ISIL.

After

• Documents originally intended for the print medium can easily be re-adapted for other media, such as the computer display screen.

The language that this Web browser uses, Hypertext Mark-up Language (HTML), is an example of an SGML-based language. There is a document type definition for HTML (and reading the HTML specification is effectively reading an expanded version of the document type definition). SGML is based somewhat on earlier generalised mark-up languages developed at IBM, including General Mark-up Language (GML) and ISIL.
PF1-011 · PDF page 42 · BULLET_PARAGRAPH_BOUNDARY

Original source page 42

Before

• suggesting which factors the users should focus on when comparing and contrasting new situations and their solutions to old ones in order to determine if an old outcome can apply to a new situation. The outcomes of the old situations can be projected on the new ones, allowing the outcome of the new solutions to be predicted. When different old cases can be used to predict different outcomes, the factors suggested by case-based advisory systems can also help the users to do argumentation (i.e., to determine which of the old cases are similar enough to the new one for the projection to make sense). This process has the potential to help the users in several ways. First,

After

• suggesting which factors the users should focus on when comparing and contrasting new situations and their solutions to old ones in order to determine if an old outcome can apply to a new situation.

The outcomes of the old situations can be projected on the new ones, allowing the outcome of the new solutions to be predicted. When different old cases can be used to predict different outcomes, the factors suggested by case-based advisory systems can also help the users to do argumentation (i.e., to determine which of the old cases are similar enough to the new one for the projection to make sense). This process has the potential to help the users in several ways. First,
PF1-012 · PDF page 43 · WRAPPED_HEADING

Original source page 43

Before

2.6 Goal-based Scenario’s (GBS) Top-down Approach

After

2.6 Goal-based Scenario’s (GBS) Top-down Approach to Design
PF1-013 · PDF page 47 · BULLET_PARAGRAPH_BOUNDARY

Original source page 47

Before

• Choose to follow up a question to go to another case screen If he/she chooses to view the full case, a story in the form of a short video is presented. When the user finishes viewing or reading the first case, they are brought back to the case screen. He/she could then follow the links to another case screen and repeat the cycle.

After

• Choose to follow up a question to go to another case screen

If he/she chooses to view the full case, a story in the form of a short video is presented. When the user finishes viewing or reading the first case, they are brought back to the case screen. He/she could then follow the links to another case screen and repeat the cycle.
PF1-014 · PDF page 50 · OCR_TEXT_OR_PUNCTUATION

Original source page 50

Before

The four components - retrieve, reuse, revise, and retain - are described in detail below. Each component is listed alongside the key issues involved in its implementation, as well as the unique knowledge necessary for that component’s successful use.

After

The four components - retrieve, reuse, revise, and retain – are described in detail below. Each component is listed alongside the key issues involved in its implementation, as well as the unique knowledge necessary for that component’s successful use.
PF1-015 · PDF page 51 · CAPTION_PARAGRAPH_BOUNDARY

Original source page 51

Before

Figure 2-1: Aamodt & Plaza's CBR cycle [1] Ian Watson proposed an improved version that contains an additional two activities:

After

Figure 2-1: Aamodt & Plaza's CBR cycle [1]

Ian Watson proposed an improved version that contains an additional two activities:
PF1-016 · PDF page 35 · FOOTNOTE_CLASSIFICATION

Original source page 35

Before

‡ SGML is a standard for specifying a document mark-up language or tag set. Such a specification is a document type definition (DTD). SGML is not a document language, but a description of how to specify one. It is metadata. SGML is based on the idea that documents have structural and other semantic elements that can be described without reference to how such elements should be displayed. The actual display of such a document may vary depending on the output medium and style preferences. Some advantages of documents based on SGML are:

After

‡ SGML is a standard for specifying a document mark-up language or tag set. Such a specification is a document type definition (DTD). SGML is not a document language, but a description of how to specify one. It is metadata. SGML is based on the idea that documents have structural and other semantic elements that can be described without reference to how such elements should be displayed. The actual display of such a document may vary depending on the output medium and style preferences. Some advantages of documents based on SGML are:
PF1-017 · PDF page 35 · FOOTNOTE_CLASSIFICATION

Original source page 35

Before

• They can be created by thinking in terms of document structure rather than appearance characteristics (which may change over time).

After

• They can be created by thinking in terms of document structure rather than appearance characteristics (which may change over time).
PF1-018 · PDF page 36 · FOOTNOTE_CLASSIFICATION

Original source page 36

Before

• They will be more portable because an SGML compiler can interpret any document by reference to its document type definition (DTD).

After

• They will be more portable because an SGML compiler can interpret any document by reference to its document type definition (DTD).
PF1-019 · PDF page 56 · NATIVE_MATH_SOURCE_FIDELITY

Original source page 56

Before

d_{ij}=(\mathbf{c}_j-\mathbf{x}_i)'S^{-1}(\mathbf{c}_j-\mathbf{x}_i)

After

d_{ij}=(c_j-x_i)'S^{-1}(c_j-x_i)
PF1-020 · PDF page 59 · NATIVE_MATH_SOURCE_FIDELITY

Original source page 59

Before

2^{D_1}\times 2^{D_2}\times\cdots\times 2^{D_k}

After

2_1^D\,x\,2_2^D\,x\,\ldots\,x\,2_k^D
PF1-021 · PDF page 59 · OCR_TEXT_OR_PUNCTUATION

Original source page 59

Before

In a similarity-based fuzzy relation, the impreciseness of attribute values is primarily in their meaning. For example, the values of the attribute EXPERTISE in the relation shown in PROFILE Relation often partially overlap. The overlapping degree of these areas of expertise is specified by a similarity matrix such as the one shown in table 2-3. In addition to imprecision due to semantics, a similarity-based fuzzy relation could also describe imprecision due to incomplete information. For example, we may wish to describe that the age of a suspect is 19 or 20. To do this, an attribute in a tuple is allowed to have a set of values, which describe all possible values for the attribute in the tuple. A similarity-based fuzzy relation involving domains D₁, D₂, ..., Dₖ is thus a subset of the Cartesian product 2^(D₁) × 2^(D₂) × ... × 2^(Dₖ). Furthermore, as we discussed earlier, the values in domains D₁, D₂, ..., Dₖ are related by a similarity relations S₁, S₂, ..., Sₖ that map each pair of values in a domain to the interval [0,1]. A similarity measure of 1 means that the pair is identical, whereas a similarity measure of 0 means the pair is entirely different.

After

In a similarity-based fuzzy relation, the impreciseness of attribute values is primarily in their meaning. For example, the values of the attribute EXPERTISE in the relation shown in PROFILE Relation often partially overlap. The overlapping degree of these areas of expertise is specified by a similarity matrix such as the one shown in table 2-3. In addition to imprecision due to semantics, a similarity-based fuzzy relation could also describe imprecision due to incomplete information. For example, we may wish to describe that the age of a suspect is 19 or 20. To do this, an attribute in a tuple is allowed to have a set of values, which describe all possible values for the attribute in the tuple. A similarity-based fuzzy relation involving domains D₁, D₂, ..., Dₖ is thus a subset of the Cartesian product 2_1^D x 2_2^D x ... x 2_k^D. Furthermore, as we discussed earlier, the values in domains D₁, D₂, ..., Dₖ are related by a similarity relations S₁, S₂, ..., Sₖ that map each pair of values in a domain to the interval [0,1]. A similarity measure of 1 means that the pair is identical, whereas a similarity measure of 0 means the pair is entirely different.
PF1-022 · PDF page 63 · LIST_INTRODUCTION_BOUNDARY

Original source page 63

Before

Two techniques that may be applicable: 1. Parametric Search is common and often combined with keyword or stepwise (hierarchical) searches to improve functionality. In this approach, the user enters one or more values for attributes of the product. The attributes of the parameters can generally be numeric or symbolic. A parametric search acts like a filter and is, in effect, the same as a database query - it meets all of the search criteria exactly or it fails. Some parametric search systems provide ranges and sets of values to overcome the limitations of the database approach, but “No match found!” is still a common occurrence. Some implementations of this approach use the product code and manufacturer’s code as the parameters, meaning that the user must know the product he/she wants before starting the search.

After

Two techniques that may be applicable:

1. Parametric Search is common and often combined with keyword or stepwise (hierarchical) searches to improve functionality. In this approach, the user enters one or more values for attributes of the product. The attributes of the parameters can generally be numeric or symbolic. A parametric search acts like a filter and is, in effect, the same as a database query - it meets all of the search criteria exactly or it fails. Some parametric search systems provide ranges and sets of values to overcome the limitations of the database approach, but “No match found!” is still a common occurrence. Some implementations of this approach use the product code and manufacturer’s code as the parameters, meaning that the user must know the product he/she wants before starting the search.
PF1-023 · PDF page 63 · NESTED_LIST_RECONSTRUCTION

Original source page 63

Before

2. Another approach is the Nearest Neighbour method of searching, also called an Intelligent Parametric Search. This approach is a key output from CBR research and is the basis for the INRECA Catalogue Search applications (INRECA, 99). The characteristics of the problem domain that make “nearest neighbour” so effective are as follows: o Student needs to search the knowledge base (a.k.a. product space) in its entirety o Cases in the knowledge base will be similar in terms of their characteristics and their structure o Student generally does not need an exact match as each student’s profile is quite individually unique - the optimum match will suffice o Student needs the ability to negotiate with the search system o No match found is an unacceptable outcome from a search

After

2. Another approach is the Nearest Neighbour method of searching, also called an Intelligent Parametric Search. This approach is a key output from CBR research and is the basis for the INRECA Catalogue Search applications (INRECA, 99). The characteristics of the problem domain that make “nearest neighbour” so effective are as follows:

○ Student needs to search the knowledge base (a.k.a. product space) in its entirety

○ Cases in the knowledge base will be similar in terms of their characteristics and their structure

○ Student generally does not need an exact match as each student’s profile is quite individually unique - the optimum match will suffice

○ Student needs the ability to negotiate with the search system

○ No match found is an unacceptable outcome from a search
PF1-024 · PDF page 67 · TITLE_URL_PARAGRAPH_BOUNDARY

Original source page 67

Before

North Dakota State University (http://www.ndsu.nodak.edu/instruct/mcclean/ag_www/advise.htm#useful) This is typical of the most common approach. North Dakota simply posts all requirements and relevant information on the Web. Students still have to make their own decision on what courses to take each semester. All general education and major requirements are defined clearly and concisely on the Web.

After

North Dakota State University

(http://www.ndsu.nodak.edu/instruct/mcclean/ag_www/advise.htm#useful)

This is typical of the most common approach. North Dakota simply posts all requirements and relevant information on the Web. Students still have to make their own decision on what courses to take each semester. All general education and major requirements are defined clearly and concisely on the Web.
PF1-025 · PDF page 67 · TITLE_URL_PARAGRAPH_BOUNDARY

Original source page 67

Before

INSITE (Indiana Student Information Transaction Environment), Indiana University http://insite.indiana.edu/ INSITE is a Web-based service for Indiana University students, faculty, and staff. It provides secure access to student information. For students, access to information is protected by a Student ID number (SIDN) and PIN. The following information is available through INSITE:

After

INSITE (Indiana Student Information Transaction Environment), Indiana University

http://insite.indiana.edu/

INSITE is a Web-based service for Indiana University students, faculty, and staff. It provides secure access to student information. For students, access to information is protected by a Student ID number (SIDN) and PIN. The following information is available through INSITE:
P068-STRUCT-001 · PDF page 68 · complete-page structural correction

Original source page 68

Structural or native-object change

{
  "paragraph_index": 7,
  "split_before": [
    "http://ar.byu.edu/dept_academ_advise/sect3.htm",
    "Academic Advisement at BYU"
  ]
}
P068-STRUCT-002 · PDF page 68 · complete-page structural correction

Original source page 68

Structural or native-object change

{
  "paragraph_index": 8,
  "split_before": [
    "http://csumb.edu/student/services/registration/",
    "Planner Web for student advising"
  ]
}
P068-STRUCT-003 · PDF page 68 · complete-page structural correction

Original source page 68

Structural or native-object change

{
  "paragraph_index": 9,
  "split_before": [
    "http://pmac.aas.duke.edu/",
    "The website doubles"
  ]
}
P069-STRUCT-001 · PDF page 69 · complete-page structural correction

Original source page 69

Structural or native-object change

{
  "paragraph_index": 0,
  "split_before": [
    "http://www.acadweb.wwu.edu/advising/gur_humanities.html",
    "At West Washington University"
  ]
}
P069-STRUCT-002 · PDF page 69 · complete-page structural correction

Original source page 69

Structural or native-object change

{
  "paragraph_index": 1,
  "split_before": [
    "http://www.ncsu.edu/advising_central/advisers/preprof.html",
    "Advising Central at NC State"
  ]
}
P079-STRUCT-001 · PDF page 79 · complete-page structural correction

Original source page 79

Structural or native-object change

{
  "paragraph_index": 2,
  "delete_count": 2,
  "replacement": [
    [
      "heading",
      "3.7 Internet-based expert system for selecting an academic major"
    ]
  ]
}
P080-STRUCT-001 · PDF page 80 · complete-page structural correction

Original source page 80

Structural or native-object change

{
  "paragraph_index": 0,
  "delete_count": 3,
  "replacement": [
    [
      "heading",
      "Chapter 4 Applying CBR to automate Academic Advisement"
    ]
  ]
}
P085-STRUCT-001 · PDF page 85 · complete-page structural correction

Original source page 85

Structural or native-object change

{
  "paragraph_index": 0,
  "replacement": [
    [
      "heading",
      "4.2.1.1 1st year"
    ],
    [
      "text",
      "Every student shares a common 1st year structure and every course is compulsory:"
    ]
  ]
}
P085-STRUCT-002 · PDF page 85 · complete-page structural correction

Original source page 85

Structural or native-object change

{
  "paragraph_index": 5,
  "replacement": [
    [
      "heading",
      "4.2.1.2 2nd year"
    ],
    [
      "text",
      "Students begin to narrow towards a specialisation by selecting compulsory electives from two streams:"
    ]
  ]
}
P085-STRUCT-003 · PDF page 85 · complete-page structural correction

Original source page 85

Structural or native-object change

{
  "paragraph_index": 11,
  "replacement": [
    [
      "heading",
      "4.2.1.3 3rd year"
    ],
    [
      "text",
      "Students decide on which of the two streams will be their major for the degree outcome. From this year onwards, specialisation within majors becomes possible:"
    ]
  ]
}
P086-STRUCT-001 · PDF page 86 · complete-page structural correction

Original source page 86

Structural or native-object change

{
  "paragraph_index": 0,
  "replacement": [
    [
      "heading",
      "4.2.1.4 4th year"
    ],
    [
      "text",
      "Most courses in this year will be electives from within their major, and students can choose to specialise in one area or to spread their electives across other relevant fields to gain broader knowledge, rather than depth:"
    ]
  ]
}
P086-STRUCT-002 · PDF page 86 · complete-page structural correction

Original source page 86

Structural or native-object change

{
  "paragraph_index": 8,
  "split_before": [
    "Students should finish",
    "Normal load per year",
    "Students must fulfil",
    "Failed compulsory courses"
  ]
}
P087-STRUCT-001 · PDF page 87 · complete-page structural correction

Original source page 87

Structural or native-object change

{
  "paragraph_index": 1,
  "split_before": [
    "“Electives can be used"
  ]
}
P087-STRUCT-002 · PDF page 87 · complete-page structural correction

Original source page 87

Structural or native-object change

{
  "paragraph_index": 2,
  "split_before": [
    "“Some students may wish"
  ]
}
P093-STRUCT-001 · PDF page 93 · complete-page structural correction

Original source page 93

Structural or native-object change

{
  "paragraph_index": 1,
  "split_before": [
    "Equal."
  ]
}
P093-STRUCT-002 · PDF page 93 · complete-page structural correction

Original source page 93

Structural or native-object change

{
  "paragraph_index": 2,
  "split_before": [
    "A: {",
    "B: {",
    "C: {"
  ]
}
P098-STRUCT-001 · PDF page 98 · complete-page structural correction

Original source page 98

Structural or native-object change

{
  "paragraph_index": 8,
  "split_before": [
    "i. Value -2"
  ]
}
P099-STRUCT-001 · PDF page 99 · complete-page structural correction

Original source page 99

Structural or native-object change

{
  "paragraph_index": 0,
  "split_before": [
    "1. Local similarity functions",
    "2. Attribute weights",
    "3. An amalgamation function"
  ]
}
P099-STRUCT-002 · PDF page 99 · complete-page structural correction

Original source page 99

Structural or native-object change

{
  "paragraph_index": 4,
  "split_before": [
    "1. Core courses"
  ]
}
P100-STRUCT-001 · PDF page 100 · complete-page structural correction

Original source page 100

Structural or native-object change

{
  "paragraph_index": 5,
  "replacement": [
    [
      "heading",
      "4.5.2 3-pass process of Stream Elective decision"
    ]
  ]
}
P104-STRUCT-001 · PDF page 104 · complete-page structural correction

Original source page 104

Structural or native-object change

{
  "paragraph_index": 11,
  "split_before": [
    "Core courses:"
  ]
}
P105-STRUCT-001 · PDF page 105 · complete-page structural correction

Original source page 105

Structural or native-object change

{
  "paragraph_index": 1,
  "split_before": [
    "Core courses:",
    "Pick 1 stream elective",
    "Pick 1 free elective"
  ]
}
P105-STRUCT-002 · PDF page 105 · complete-page structural correction

Original source page 105

Structural or native-object change

{
  "paragraph_index": 2,
  "split_before": [
    "Core courses:",
    "Pick 1 stream elective",
    "Pick 2 free electives"
  ]
}
P106-STRUCT-001 · PDF page 106 · complete-page structural correction

Original source page 106

Structural or native-object change

{
  "paragraph_index": 0,
  "split_before": [
    "○ Results",
    "○ Availability",
    "○ Stream Preference",
    "○ Previous Academic Year"
  ]
}
P106-STRUCT-002 · PDF page 106 · complete-page structural correction

Original source page 106

Structural or native-object change

{
  "paragraph_index": 1,
  "split_before": [
    "○ Strong recommendation"
  ]
}
P107-STRUCT-001 · PDF page 107 · complete-page structural correction

Original source page 107

Structural or native-object change

{
  "paragraph_index": 0,
  "split_before": [
    "○ Microcontroller",
    "○ Internetworking",
    "○ Software"
  ]
}
P107-STRUCT-002 · PDF page 107 · complete-page structural correction

Original source page 107

Structural or native-object change

{
  "paragraph_index": 6,
  "split_before": [
    "○ YRSCRR",
    "○ YRSCRS"
  ]
}
P107-STRUCT-003 · PDF page 107 · complete-page structural correction

Original source page 107

Structural or native-object change

{
  "paragraph_index": 7,
  "split_before": [
    "○ EXPT",
    "○ PRST",
    "○ TOUGH"
  ]
}
P107-STRUCT-004 · PDF page 107 · complete-page structural correction

Original source page 107

Structural or native-object change

{
  "paragraph_index": 8,
  "split_before": [
    "○ EXAM",
    "○ ASGN"
  ]
}
P108-STRUCT-001 · PDF page 108 · complete-page structural correction

Original source page 108

Structural or native-object change

{
  "paragraph_index": 1,
  "replacement": [
    [
      "heading",
      "4.5.5.3 Conversational CBR"
    ],
    [
      "text",
      "CCBR needs to find out the following:"
    ]
  ]
}
P111-STRUCT-001 · PDF page 111 · complete-page structural correction

Original source page 111

Structural or native-object change

{
  "paragraph_index": 2,
  "split_before": [
    "HDs →",
    "DI/HD →",
    "CR/DI →",
    "PA/CR →",
    "PAs →"
  ]
}
P111-STRUCT-002 · PDF page 111 · complete-page structural correction

Original source page 111

Structural or native-object change

{
  "paragraph_index": 5,
  "replacement": [
    [
      "heading",
      "4.5.5.4 Proof of Concept - Test Cases"
    ],
    [
      "text",
      "Legends of Test Cases using MS Excel"
    ]
  ]
}
P112-STRUCT-001 · PDF page 112 · complete-page structural correction

Original source page 112

Structural or native-object change

{
  "paragraph_index": 6,
  "replacement": [
    [
      "text",
      "Sequence of Prerequisites"
    ],
    [
      "text",
      "D1 → D2 → D3"
    ],
    [
      "text",
      "O1 → O2 → O3"
    ],
    [
      "text",
      "O1,M1 → OM2 → OM3"
    ],
    [
      "text",
      "M1 → M2"
    ],
    [
      "text",
      "M1,N2 → MN3"
    ],
    [
      "text",
      "N1,N2,S2 → NS3 (note: N1 is NOT a prerequisite for N2)"
    ],
    [
      "text",
      "S1 → S2 → S3"
    ]
  ]
}
P113-STRUCT-001 · PDF page 113 · complete-page structural correction

Original source page 113

Structural or native-object change

{
  "paragraph_index": 4,
  "split_before": [
    "For INT,"
  ]
}
P118-STRUCT-001 · PDF page 118 · complete-page structural correction

Original source page 118

Structural or native-object change

{
  "paragraph_index": 3,
  "delete_count": 2,
  "replacement": []
}
P119-STRUCT-001 · PDF page 119 · complete-page structural correction

Original source page 119

Structural or native-object change

{
  "paragraph_index": 0,
  "delete_count": 3,
  "replacement": [
    [
      "heading",
      "4.5.9.2 Object Model"
    ],
    [
      "text",
      "Figure 4-2 below shows the aggregation between knowledge base and smaller objects that make up one case."
    ]
  ]
}
P120-STRUCT-001 · PDF page 120 · complete-page structural correction

Original source page 120

Structural or native-object change

{
  "paragraph_index": 0,
  "delete_count": 4,
  "replacement": [
    [
      "heading",
      "4.5.9.3 Entity-Relationship Diagram"
    ],
    [
      "text",
      "Figure 4-3 below shows the Entity-Relationship (ER) diagram of the database, as the knowledge or case base is stored in MySQL database software."
    ]
  ]
}
P121-STRUCT-001 · PDF page 121 · complete-page structural correction

Original source page 121

Structural or native-object change

{
  "paragraph_index": 0,
  "delete_count": 9,
  "replacement": [
    [
      "heading",
      "4.5.9.4 System Operation"
    ],
    [
      "text",
      "Figure 4-4 below gives the system flow of control in the form of a UML Activity Diagram. This is the high level flow and shows the sequence of major operations and the two main loops in the prototype system."
    ]
  ]
}
P123-STRUCT-001 · PDF page 123 · complete-page structural correction

Original source page 123

Structural or native-object change

{
  "paragraph_index": 4,
  "split_before": [
    "(Q2)"
  ]
}
P123-STRUCT-002 · PDF page 123 · complete-page structural correction

Original source page 123

Structural or native-object change

{
  "paragraph_index": 5,
  "split_before": [
    "Jack’s GPA is between"
  ]
}
P123-STRUCT-003 · PDF page 123 · complete-page structural correction

Original source page 123

Structural or native-object change

{
  "paragraph_index": 6,
  "split_before": [
    "Whether a student’s GPA"
  ]
}
P124-STRUCT-001 · PDF page 124 · complete-page structural correction

Original source page 124

Structural or native-object change

{
  "paragraph_index": 5,
  "split_before": [
    "Necessity is the counterpart"
  ]
}
P124-STRUCT-002 · PDF page 124 · complete-page structural correction

Original source page 124

Structural or native-object change

{
  "paragraph_index": 6,
  "split_before": [
    "Nec(A intersection B)",
    "Pos(A union B)"
  ]
}
P124-STRUCT-003 · PDF page 124 · complete-page structural correction

Original source page 124

Structural or native-object change

{
  "paragraph_index": 7,
  "split_before": [
    "Necessity for A is",
    "Possibility for A is"
  ]
}
P126-STRUCT-001 · PDF page 126 · complete-page structural correction

Original source page 126

Structural or native-object change

{
  "paragraph_index": 1,
  "split_before": [
    "1. The combination",
    "2. Distance of two vectors",
    "3. Trivial Information Retrieval"
  ]
}
P127-STRUCT-001 · PDF page 127 · complete-page structural correction

Original source page 127

Structural or native-object change

{
  "paragraph_index": 8,
  "replacement": [
    [
      "text",
      "That is,"
    ],
    [
      "text",
      "2[(X+Y)+(X+2Y)+(X+3Y)+(X+4Y)+(X+5Y)]=[(X+6Y)+(X+7Y)+(X+8Y)+(X+9Y)+(X+10Y)]."
    ],
    [
      "text",
      "This equates to X=2Y."
    ]
  ]
}
P068-001 · PDF page 68 · punctuation

Original source page 68

Before

Student Planning System - Brigham Young University

After

Student Planning System – Brigham Young University
P072-001 · PDF page 72 · punctuation

Original source page 72

Before

policies and regulations - such as

After

policies and regulations – such as
P072-002 · PDF page 72 · punctuation

Original source page 72

Before

and pass-fail - in an automated fashion

After

and pass-fail – in an automated fashion
P075-001 · PDF page 75 · hyphenation

Original source page 75

Before

real­ time data

After

real-time data
P075-002 · PDF page 75 · punctuation

Original source page 75

Before

exceptions -global and individual - exist.

After

exceptions – global and individual – exist.
P077-001 · PDF page 77 · heading punctuation

Original source page 77

Before

Basic Services - Text Information

After

Basic Services – Text Information
P077-002 · PDF page 77 · punctuation

Original source page 77

Before

Online forms - applications and requests for information

After

Online forms – applications and requests for information
P081-001 · PDF page 81 · punctuation

Original source page 81

Before

ways of doing business - the current

After

ways of doing business – the current
P081-002 · PDF page 81 · punctuation

Original source page 81

Before

structure and practices -and identify

After

structure and practices – and identify
P086-001 · PDF page 86 · hyphenation

Original source page 86

Before

over­ enrolling

After

over-enrolling
P088-001 · PDF page 88 · hyphenation

Original source page 88

Before

pre-re­ enrolment survey

After

pre-re-enrolment survey
P089-001 · PDF page 89 · proper-name OCR

Original source page 89

Before

Marcus Jurgens

After

Marcus Jürgens
P089-002 · PDF page 89 · range punctuation

Original source page 89

Before

A= 0 - 4

After

A= 0 – 4
P091-001 · PDF page 91 · quotation punctuation

Original source page 91

Before

appropriate times - problem of assigning labels

After

appropriate times – problem of assigning labels
P096-001 · PDF page 96 · hyphenation

Original source page 96

Before

For non­ selected field

After

For non-selected field
P097-001 · PDF page 97 · grade-mapping punctuation

Original source page 97

Before

1 for PA, 2 - CR, 3 - DI and 4 - HD

After

1 for PA, 2 – CR, 3 – DI and 4 – HD
P097-002 · PDF page 97 · grade-mapping punctuation

Original source page 97

Before

-1 for NN, 0 - PA, 1 - CR, 2 - DI and 3 - HD

After

-1 for NN, 0 – PA, 1 – CR, 2 – DI and 3 – HD
P098-001 · PDF page 98 · numeric-label spacing

Original source page 98

Before

Value-2 assigns

After

Value -2 assigns
P098-002 · PDF page 98 · numeric-list spacing

Original source page 98

Before

10,8,6 and 4

After

10, 8, 6 and 4
P098-003 · PDF page 98 · numeric-list spacing

Original source page 98

Before

10,4,2 and 1

After

10, 4, 2 and 1
P098-004 · PDF page 98 · omitted algorithm step number

Original source page 98

Before

Display the ranked course list

After

5. Display the ranked course list
P102-001 · PDF page 102 · hyphenation

Original source page 102

Before

non­ technical electives

After

non-technical electives
P102-002 · PDF page 102 · hyphenation

Original source page 102

Before

non­ stream electives

After

non-stream electives
P103-001 · PDF page 103 · punctuation and spacing

Original source page 103

Before

prerequisite course -assuming

After

prerequisite course – assuming
P106-001 · PDF page 106 · nested list-marker OCR

Original source page 106

Before

o Results of

After

○ Results of
P106-002 · PDF page 106 · nested list-marker OCR

Original source page 106

Before

o Availability of

After

○ Availability of
P106-003 · PDF page 106 · nested list-marker OCR

Original source page 106

Before

o Stream Preference

After

○ Stream Preference
P106-004 · PDF page 106 · nested list-marker OCR

Original source page 106

Before

o Previous Academic Year

After

○ Previous Academic Year
P106-005 · PDF page 106 · nested list-marker OCR

Original source page 106

Before

o Strong recommendation list

After

○ Strong recommendation list
P107-001 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o Mobile Communication

After

○ Mobile Communication
P107-002 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o Microcontroller

After

○ Microcontroller
P107-003 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o Internetworking Protocols

After

○ Internetworking Protocols
P107-004 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o Software Engineering

After

○ Software Engineering
P107-005 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o YRSCRR

After

○ YRSCRR
P107-006 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o YRSCRS

After

○ YRSCRS
P107-007 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o EXPT

After

○ EXPT
P107-008 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o PRST

After

○ PRST
P107-009 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o TOUGH

After

○ TOUGH
P107-010 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o EXAM

After

○ EXAM
P107-011 · PDF page 107 · nested list-marker OCR

Original source page 107

Before

o ASGN

After

○ ASGN
P111-001 · PDF page 111 · line-wrap spacing

Original source page 111

Before

(6- 10)

After

(6-10)
P111-002 · PDF page 111 · arrow symbol transcription

Original source page 111

Before

HDs -> 86-100%

After

HDs → 86-100%
P111-003 · PDF page 111 · arrow symbol transcription

Original source page 111

Before

DI/HD ->77-85%

After

DI/HD → 77-85%
P111-004 · PDF page 111 · arrow symbol transcription

Original source page 111

Before

CR/DI ->67-76%

After

CR/DI → 67-76%
P111-005 · PDF page 111 · arrow symbol transcription

Original source page 111

Before

PA/CR -> 58-66%

After

PA/CR → 58-66%
P111-006 · PDF page 111 · arrow symbol transcription

Original source page 111

Before

PAs -> 50-57%

After

PAs → 50-57%
P112-001 · PDF page 112 · label spacing

Original source page 112

Before

level): 1 -weak

After

level): 1-weak
P114-001 · PDF page 114 · hyphenation

Original source page 114

Before

three sub­ systems

After

three sub-systems
P126-001 · PDF page 126 · source capitalization

Original source page 126

Before

distance of non-interest attributes

After

distance of non-Interest attributes
ROOT-P129-C001 · PDF page 129 · Restore printed left and right permutation subscripts

Original source page 129

Before

(5P3)

After

(₅P₃)
ROOT-P131-C002 · PDF page 131 · Vector spacing

Original source page 131

Before

(1,2, 1, 3, 2,3, 1, 2)

After

(1, 2, 1, 3, 2, 3, 1, 2)
ROOT-P131-C003 · PDF page 131 · Vector spacing

Original source page 131

Before

(0,2, 0, 3,1, 2,3)

After

(0, 2, 0, 3, 1, 2, 3)
ROOT-P131-C004 · PDF page 131 · Course identifier OCR zero versus letter O

Original source page 131

Before

NS7, NM5, 02.

After

NS7, NM5, O2.
ROOT-P131-C005 · PDF page 131 · Vector spacing

Original source page 131

Before

(0,3, 0,1, 2,1,1)

After

(0, 3, 0, 1, 2, 1, 1)
ROOT-P132-C006 · PDF page 132 · Vector spacing

Original source page 132

Before

(3, 2, 0, 0,1, 2,2)

After

(3, 2, 0, 0, 1, 2, 2)
ROOT-P132-C007 · PDF page 132 · Vector spacing

Original source page 132

Before

(0, 3,1, 2, 0,1, 3)

After

(0, 3, 1, 2, 0, 1, 3)
ROOT-P132-C008 · PDF page 132 · Vector spacing

Original source page 132

Before

(0,1, 0,3, 2,1,3)

After

(0, 1, 0, 3, 2, 1, 3)
ROOT-P133-C009 · PDF page 133 · Course identifier OCR zero versus letter O

Original source page 133

Before

NS7, S8, and 02.

After

NS7, S8, and O2.
ROOT-P133-C010 · PDF page 133 · Vector spacing

Original source page 133

Before

(0,1,3, 0, 2, 2,3)

After

(0, 1, 3, 0, 2, 2, 3)
ROOT-P133-C011 · PDF page 133 · Vector spacing

Original source page 133

Before

(0, 0 ,1 ,2 ,3 ,2 ,1 )

After

(0, 0, 1, 2, 3, 2, 1)
ROOT-P134-C012 · PDF page 134 · Vector spacing

Original source page 134

Before

(1, 2, 0, 0, 3,1, 2)

After

(1, 2, 0, 0, 3, 1, 2)
ROOT-P134-C013 · PDF page 134 · Course identifier OCR lowercase l versus digit 1

Original source page 134

Before

OM3, and D l.

After

OM3, and D1.
ROOT-P134-C014 · PDF page 134 · Vector spacing

Original source page 134

Before

(1, 1,0, 1,0, 1,0, 1)

After

(1, 1, 0, 1, 0, 1, 0, 1)
ROOT-P134-C015 · PDF page 134 · Vector spacing

Original source page 134

Before

(0, 2, 0 ,3 ,1 ,3 ,3 )

After

(0, 2, 0, 3, 1, 3, 3)
ROOT-P132-S001 · PDF page 132 · Separate source heading from following regular paragraph

Original source page 132

Before

4.7.2.3 Test case (3, 2, 0, 0,1, 2,2) Translation of the attributes vector:

After

[
  [
    "heading",
    "4.7.2.3 Test case (3, 2, 0, 0, 1, 2, 2)"
  ],
  [
    "text",
    "Translation of the attributes vector:"
  ]
]
ROOT-P134-S001 · PDF page 134 · Separate source heading from following regular paragraph

Original source page 134

Before

4.7.2.8 Test case (1, 2, 0, 0, 3,1, 2) Translation of the attributes vector:

After

[
  [
    "heading",
    "4.7.2.8 Test case (1, 2, 0, 0, 3, 1, 2)"
  ],
  [
    "text",
    "Translation of the attributes vector:"
  ]
]
P093-M01 · PDF page 93 · formula sentence punctuation

Original source page 93

Before

\sqrt{\frac{0.75}{2^i}}

After

\sqrt{\frac{0.75}{2^i}}.
P093-M02 · PDF page 93 · formula sentence punctuation

Original source page 93

Before

1-\frac{1+i}{1+n}

After

1-\frac{1+i}{1+n}.
P113-M01 · PDF page 113 · source formula connective

Original source page 113

Before

{}_5P_3=\frac{5!}{(5-3)!}=60

After

{}_5P_3\ \text{or}\ \frac{5!}{(5-3)!}=60
chapter-4-title-case · PDF page 80 · source heading capitalization

Original source page 80

Before

Chapter 4 Applying CBR to Automate Academic Advisement

After

Chapter 4 Applying CBR to automate Academic Advisement
P118-F01 · PDF page 118 · structural correction

Original source page 118

Structural or native-object change

{
  "id": "P118-F01",
  "pdf_page": 118,
  "selector": {
    "kind": "figure",
    "id": "figure-4-1"
  },
  "action": "retain_source_image_and_verified_labels; do not emit linearized OCR as thesis prose",
  "verified_labels": [
    "Problem",
    "Server",
    "Data Retriever",
    "Similarity Calculator",
    "Recommender Agent",
    "Case base",
    "Student"
  ],
  "note": "The existing prose-like OCR omitted Problem and split Case base. These are diagram labels, not a source paragraph; the image preserves the layout and connections."
}
P119-F01 · PDF page 119 · structural correction

Original source page 119

Structural or native-object change

{
  "id": "P119-F01",
  "pdf_page": 119,
  "selector": {
    "kind": "figure",
    "id": "figure-4-2"
  },
  "action": "retain_source_image; remove garbled OCR from running prose",
  "verified_labels": [
    "Knowledge Base",
    "Case",
    "PastPerformance",
    "Specialization",
    "Interests",
    "DSP",
    "Optics",
    "Microwave",
    "Networking",
    "Satellite",
    "Courses",
    "Course",
    "CourseName",
    "Pre-requisite"
  ],
  "readable_method_stems": [
    "GetCase",
    "SetCase",
    "RetrieveCase",
    "GetInterest",
    "SetInterest",
    "MatchInterest",
    "GetCourses",
    "SetCourses",
    "CheckPrereq"
  ],
  "uncertain_details": [
    "Exact operation-parenthesis glyphs are degraded or intersect box borders.",
    "Multiplicity near Knowledge Base begins with0 but following notation is not reliably readable.",
    "Several attribute/operation visibility icons and box-edge symbols are degraded; do not infer plus/minus/cardinality values."
  ],
  "note": "Method stems are readable, but must not be promoted to exact executable signatures. Preserve original figure as the controlling image."
}
P120-F01 · PDF page 120 · structural correction

Original source page 120

Structural or native-object change

{
  "id": "P120-F01",
  "pdf_page": 120,
  "selector": {
    "kind": "figure",
    "id": "figure-4-3"
  },
  "action": "retain_source_image_and_verified_labels; remove linearized OCR from running prose",
  "verified_labels": [
    "Knowledge",
    "Case",
    "Interests",
    "PRFM",
    "CHRT",
    "DSP",
    "OPTIC",
    "MWAVE",
    "NTWRK",
    "SATEL",
    "Course",
    "PK",
    "Name",
    "Prequisite",
    "PK,FK1",
    "Name",
    "contains",
    "consists of",
    "consists of",
    "requires"
  ],
  "note": "Original crow's-foot geometry remains in image. PK,FK1 uses a comma, not the OCR's dot. Preserve the source's Prequisite spelling."
}
P121-F01 · PDF page 121 · structural correction

Original source page 121

Structural or native-object change

{
  "id": "P121-F01",
  "pdf_page": 121,
  "selector": {
    "kind": "figure",
    "id": "figure-4-4"
  },
  "action": "retain_source_image; remove garbled OCR from running prose; do not infer clipped letters",
  "verified_labels": [
    "Get Student's profile",
    "Calculate Similarity",
    "Retrieve similar cases",
    "Rank retrieved cases",
    "Obtain one case from the result set",
    "Retrieve recommended courses",
    "Obtain one course from the result set",
    "Move to the next course",
    "Fulfil pre-requisite ?",
    "Add case weight to course weight",
    "Anymore courses left in the result set ?",
    "Anymore similar cases in the result set ?",
    "Rank courses based on accumulated weights",
    "yes",
    "no"
  ],
  "unresolved_labels": [
    {
      "region": "Left return-loop box",
      "visible_text": "[clipped initial glyph]ove to the next case",
      "note": "Likely Move, but the initial glyph is clipped in the supplied source; do not silently complete it."
    },
    {
      "region": "Lower-right final advice box",
      "visible_text": "Recommen[clipped] courses",
      "note": "Final glyph(s) are cut off by the original graphic's edge; do not infer exact spelling from semantics."
    }
  ],
  "note": "All visible branch words and paths inspected. Source spelling Anymore and space before question marks are retained; initial/final UML symbols are not redesigned."
}
P124-FN01 · PDF page 124 · structural correction

Original source page 124

Structural or native-object change

{
  "id": "P124-FN01",
  "pdf_page": 124,
  "selector": {
    "kind": "footnote",
    "pdf_page": 124,
    "marker": "§"
  },
  "anchor_text": "necessity degree§",
  "baseline_paragraph_indices": [
    5,
    6,
    7,
    8
  ],
  "start_text": "§ From http://www.dbai.tuwien.ac.at/marchives/fuzzy-mail/1233.html",
  "end_text": "New Jersey, Prentice Hall, 1995",
  "action": "Preserve this complete source footnote as footnote material, not unlabelled main-body prose; retain all source wording and separate formula/definition lines."
}
P137-S001 · PDF page 137 · structural correction

Original source page 137

Before

[
  "heading",
  "4.7.3.8 Test case (1, 2, 0, 0,3,3,2) Translation of the attributes vector:"
]

After

[
  [
    "heading",
    "4.7.3.8 Test case (1, 2, 0, 0, 3, 3, 2)"
  ],
  [
    "text",
    "Translation of the attributes vector:"
  ]
]
P158-S002 · PDF page 158 · structural correction

Original source page 158

Before

[
  "text",
  "5.2.7.2 Attribute Selection How does ID3 decide which attribute is the best? A statistical property, called information gain, is used. Gain measures how well a given attribute separates training examples into targeted classes. The one with the highest information (information being the most useful for classification) is selected. In order to define gain, we first borrow an idea from information theory called entropy. Entropy measures the amount of information in an attribute."
]

After

[
  [
    "heading",
    "5.2.7.2 Attribute Selection"
  ],
  [
    "text",
    "How does ID3 decide which attribute is the best? A statistical property, called information gain, is used. Gain measures how well a given attribute separates training examples into targeted classes. The one with the highest information (information being the most useful for classification) is selected. In order to define gain, we first borrow an idea from information theory called entropy. Entropy measures the amount of information in an attribute."
  ]
]
P166-S003 · PDF page 166 · structural correction

Original source page 166

Before

[
  "text",
  "A.1 Organisational Processes during System Development"
]

After

[
  [
    "heading",
    "A.1 Organisational Processes during System Development"
  ]
]
P166-S004 · PDF page 166 · structural correction

Original source page 166

Before

[
  "text",
  "Project Team and Initial Domain Selection The creation of a project team to serve as the “knowledge engineers”, and the selection of a group to serve as the initial test users of the system, are the first organisational steps that must be taken."
]

After

[
  [
    "heading",
    "Project Team and Initial Domain Selection"
  ],
  [
    "text",
    "The creation of a project team to serve as the “knowledge engineers”, and the selection of a group to serve as the initial test users of the system, are the first organisational steps that must be taken."
  ]
]
P167-S005 · PDF page 167 · structural correction

Original source page 167

Before

[
  "text",
  "Training the Project Team Training the project team is an organisational process that has a major impact on the success of the help desk project. At the beginning of the project, the project team is usually inexperienced with respect to CBR and knowledge acquisition. Since the project group will be responsible for system maintenance and continuous case acquisition after the development has finished, it is very important that they are trained in CBR as well as in knowledge acquisition and modelling during the initial knowledge acquisition."
]

After

[
  [
    "heading",
    "Training the Project Team"
  ],
  [
    "text",
    "Training the project team is an organisational process that has a major impact on the success of the help desk project. At the beginning of the project, the project team is usually inexperienced with respect to CBR and knowledge acquisition. Since the project group will be responsible for system maintenance and continuous case acquisition after the development has finished, it is very important that they are trained in CBR as well as in knowledge acquisition and modelling during the initial knowledge acquisition."
  ]
]
P167-S006 · PDF page 167 · structural correction

Original source page 167

Before

[
  "text",
  "Development of the Knowledge Acquisition and Utilisation Processes The introduction and use of a case-based academic advisement recommender system usually causes a re-evaluation and modification of the existing knowledge and information management processes in an academic advising environment. When the system is used, it must be integrated into the operating environment of the academic advisors and become part of the standard business process. Existing processes must be altered to facilitate the flow of information to and"
]

After

[
  [
    "heading",
    "Development of the Knowledge Acquisition and Utilisation Processes"
  ],
  [
    "text",
    "The introduction and use of a case-based academic advisement recommender system usually causes a re-evaluation and modification of the existing knowledge and information management processes in an academic advising environment. When the system is used, it must be integrated into the operating environment of the academic advisors and become part of the standard business process. Existing processes must be altered to facilitate the flow of information to and"
  ]
]
P169-S007 · PDF page 169 · structural correction

Original source page 169

Before

[
  "text",
  "A.2 Technical Processes during System Development"
]

After

[
  [
    "heading",
    "A.2 Technical Processes during System Development"
  ]
]
P169-S008 · PDF page 169 · structural correction

Original source page 169

Before

[
  "text",
  "General IT-System Development Related Processes The development of a case-based academic advisement recommender system is similar to any other IT project in most aspects. As usual, the system has to be specified, implemented, integrated, and verified. The definition of the requirements, implementation, and the testing and revision of the prototype and the actual case-based academic advisement recommender system are steps that have to be performed in accordance with standard software engineering techniques. However, the user interfaces and the connection to supporting programs (integration) are two features that require additional attention."
]

After

[
  [
    "heading",
    "General IT-System Development Related Processes"
  ],
  [
    "text",
    "The development of a case-based academic advisement recommender system is similar to any other IT project in most aspects. As usual, the system has to be specified, implemented, integrated, and verified. The definition of the requirements, implementation, and the testing and revision of the prototype and the actual case-based academic advisement recommender system are steps that have to be performed in accordance with standard software engineering techniques. However, the user interfaces and the connection to supporting programs (integration) are two features that require additional attention."
  ]
]
P170-S009 · PDF page 170 · structural correction

Original source page 170

Before

[
  "text",
  "Initial Knowledge Acquisition for the Case-Based Academic Advisement Recommender System A CBR system is useless without cases. When the case-based academic advisement recommender system is handed over to the academic advisors, it has to contain enough cases to cover at least part of the relevant present student cases. Otherwise, the system will be considered useless and the project will fail. Initial knowledge acquisition serves three major goals:"
]

After

[
  [
    "heading",
    "Initial Knowledge Acquisition for the Case-Based Academic Advisement Recommender System"
  ],
  [
    "text",
    "A CBR system is useless without cases. When the case-based academic advisement recommender system is handed over to the academic advisors, it has to contain enough cases to cover at least part of the relevant present student cases. Otherwise, the system will be considered useless and the project will fail. Initial knowledge acquisition serves three major goals:"
  ]
]
P173-S010 · PDF page 173 · structural correction

Original source page 173

Before

[
  "text",
  "DSP:OPTIC:MWAVE:NTWRK:SATEL:PRFM:CHRT:D1:O2:OM3:M4:NM5:N6:NS7:S8 0 0 0 1 2 3 1 3 0 0 0 0 0 1 1 1 0 0 0 1 2 3 2 2 0 0 0 0 1 0 1 1 0 0 0 2 1 3 1 1 0 0 0 0 1 0 1 1 0 0 0 3 1 2 2 1 0 0 1 0 1 0 1 0 0 0 0 3 1 2 2 3 0 0 1 1 1 0 0 0 0 0 0 3 1 2 3 2 0 0 0 1 1 0 1 0 0 0 1 0 2 3 1 3 0 0 0 0 0 1 1 1 0 0 1 0 3 2 2 1 0 0 1 0 1 0 1 0 0 0 1 2 0 3 3 2 0 0 1 0 0 0 1 1 0 0 1 2 3 0 1 2 0 0 1 0 1 1 0 0 0 0 1 3 2 0 2 1 0 0 1 0 1 0 1 0 0 0 2 0 1 3 3 3 0 1 0 0 0 0 1 1 0 0 2 0 3 1 1 3 0 1 0 0 0 1 1 0 0 0 2 0 3 1 22 0 0 1 0 0 1 1 0 0 0 2 1 0 3 3 1 0 0 1 0 1 0 1 0 0 0 2 1 3 0 3 1 0 0 1 0 1 0 1 0 0 0 2 3 1 0 2 3 0 1 1 1 0 0 0 0 0 0 3 0 2 1 1 2 0 1 1 0 0 0 1 0 0 0 3 2 0 1 3 3 0 1 1 1 0 0 0 0 0 0 3 2 1 0 2 3 0 1 1 1 0 0 0 0 0 1 0 0 3 23 1 1 0 0 0 1 0 1 0 0 1 0 2 0 3 1 3 0 0 0 1 0 0 1 1 0 1 0 2 3 0 2 2 0 0 1 0 1 1 0 0 0 1 0 3 0 2 3 1 1 0 0 0 1 0 1 0 0 1 2 0 0 3 23 0 1 0 0 0 0 1 1 0 1 2 0 3 0 1 3 0 0 0 0 1 1 1 0 0 1 3 0 0 2 2 2 0 1 1 0 0 0 1 0"
]

After

[
  [
    "text",
    "DSP:OPTIC:MWAVE:NTWRK:SATEL:PRFM:CHRT:D1:O2:OM3:M4:NM5:N6:NS7:S8"
  ],
  [
    "code",
    "0 0 0 1 2 3 1 3 0 0 0 0 0 1 1 1\n0 0 0 1 2 3 2 2 0 0 0 0 1 0 1 1\n0 0 0 2 1 3 1 1 0 0 0 0 1 0 1 1\n0 0 0 3 1 2 2 1 0 0 1 0 1 0 1 0\n0 0 0 3 1 2 2 3 0 0 1 1 1 0 0 0\n0 0 0 3 1 2 3 2 0 0 0 1 1 0 1 0\n0 0 1 0 2 3 1 3 0 0 0 0 0 1 1 1\n0 0 1 0 3 2 2 1 0 0 1 0 1 0 1 0\n0 0 1 2 0 3 3 2 0 0 1 0 0 0 1 1\n0 0 1 2 3 0 1 2 0 0 1 0 1 1 0 0\n0 0 1 3 2 0 2 1 0 0 1 0 1 0 1 0\n0 0 2 0 1 3 3 3 0 1 0 0 0 0 1 1\n0 0 2 0 3 1 1 3 0 1 0 0 0 1 1 0\n0 0 2 0 3 1 2 2 0 0 1 0 0 1 1 0\n0 0 2 1 0 3 3 1 0 0 1 0 1 0 1 0\n0 0 2 1 3 0 3 1 0 0 1 0 1 0 1 0\n0 0 2 3 1 0 2 3 0 1 1 1 0 0 0 0\n0 0 3 0 2 1 1 2 0 1 1 0 0 0 1 0\n0 0 3 2 0 1 3 3 0 1 1 1 0 0 0 0\n0 0 3 2 1 0 2 3 0 1 1 1 0 0 0 0\n0 1 0 0 3 2 3 1 1 0 0 0 1 0 1 0\n0 1 0 2 0 3 1 3 0 0 0 1 0 0 1 1\n0 1 0 2 3 0 2 2 0 0 1 0 1 1 0 0\n0 1 0 3 0 2 3 1 1 0 0 0 1 0 1 0\n0 1 2 0 0 3 2 3 0 1 0 0 0 0 1 1\n0 1 2 0 3 0 1 3 0 0 0 0 1 1 1 0\n0 1 3 0 0 2 2 2 0 1 1 0 0 0 1 0"
  ]
]
P174-S011 · PDF page 174 · structural correction

Original source page 174

Before

[
  "text",
  "0 1 3 0 2 0 1 1 1 0 1 0 0 0 1 0 0 1 3 0 2 0 3 1 1 0 1 0 0 0 1 0 0 1 3 2 0 0 3 2 0 1 1 0 1 0 0 0 0 2 0 1 0 3 2 1 1 0 1 0 0 0 1 0 0 2 0 1 3 0 3 3 0 0 0 0 1 1 1 0 0 2 0 3 0 1 1 2 1 0 0 1 1 0 0 0 0 2 0 3 0 1 2 3 0 0 1 1 1 0 0 0 0 2 0 3 1 0 1 1 1 0 1 0 0 0 1 0 02 1 0 3 0 3 2 1 0 0 0 1 1 0 0 0 2 1 3 0 0 1 3 0 0 1 1 1 0 0 0 0 2 3 0 0 1 2 1 1 0 1 0 0 0 1 0 0 2 3 0 1 0 3 3 1 1 1 0 0 0 0 0 0 2 3 1 0 0 1 2 1 1 1 0 0 0 0 0 0 3 0 0 2 1 2 1 1 0 0 0 1 0 1 0 0 3 0 1 0 2 1 2 1 0 0 0 0 0 1 1 0 3 0 1 0 2 3 1 1 0 1 0 0 0 1 0 03 0 1 2 0 2 3 1 0 0 0 1 1 0 0 0 3 0 2 1 0 3 2 1 0 0 1 1 0 0 0 0 3 1 0 0 2 3 2 1 0 0 0 0 0 1 1 03 1 0 2 0 1 1 1 0 1 0 0 0 1 0 0 3 1 2 0 0 2 1 1 0 1 0 1 0 0 0 0 3 2 0 0 1 1 2 1 1 1 0 0 0 0 0 03 2 0 0 1 23 1 1 1 0 0 0 0 0"
]

After

[
  [
    "code",
    "0 1 3 0 2 0 1 1 1 0 1 0 0 0 1 0\n0 1 3 0 2 0 3 1 1 0 1 0 0 0 1 0\n0 1 3 2 0 0 3 2 0 1 1 0 1 0 0 0\n0 2 0 1 0 3 2 1 1 0 1 0 0 0 1 0\n0 2 0 1 3 0 3 3 0 0 0 0 1 1 1 0\n0 2 0 3 0 1 1 2 1 0 0 1 1 0 0 0\n0 2 0 3 0 1 2 3 0 0 1 1 1 0 0 0\n0 2 0 3 1 0 1 1 1 0 1 0 0 0 1 0\n0 2 1 0 3 0 3 2 1 0 0 0 1 1 0 0\n0 2 1 3 0 0 1 3 0 0 1 1 1 0 0 0\n0 2 3 0 0 1 2 1 1 0 1 0 0 0 1 0\n0 2 3 0 1 0 3 3 1 1 1 0 0 0 0 0\n0 2 3 1 0 0 1 2 1 1 1 0 0 0 0 0\n0 3 0 0 2 1 2 1 1 0 0 0 1 0 1 0\n0 3 0 1 0 2 1 2 1 0 0 0 0 0 1 1\n0 3 0 1 0 2 3 1 1 0 1 0 0 0 1 0\n0 3 0 1 2 0 2 3 1 0 0 0 1 1 0 0\n0 3 0 2 1 0 3 2 1 0 0 1 1 0 0 0\n0 3 1 0 0 2 3 2 1 0 0 0 0 0 1 1\n0 3 1 0 2 0 1 1 1 0 1 0 0 0 1 0\n0 3 1 2 0 0 2 1 1 0 1 0 1 0 0 0\n0 3 2 0 0 1 1 2 1 1 1 0 0 0 0 0\n0 3 2 0 0 1 2 3 1 1 1 0 0 0 0 0"
  ]
]
P175-S012 · PDF page 175 · structural correction

Original source page 175

Before

[
  "code",
  "Appendix C: PHP scripts"
]

After

[
  [
    "heading",
    "Appendix C: PHP scripts"
  ]
]
P175-S013 · PDF page 175 · structural correction

Original source page 175

Before

[
  "code",
  "Functions.inc"
]

After

[
  [
    "heading",
    "Functions.inc"
  ]
]
P177-S014 · PDF page 177 · structural correction

Original source page 177

Before

[
  "code",
  "print \"<td>\" . $i['CHRT'] . \"</td>\";"
]

After

[
  [
    "code",
    "print \"<td>\" . $i['CHRT'] . \"</td>\";"
  ],
  [
    "code",
    "}"
  ]
]
P180-S015 · PDF page 180 · structural correction

Original source page 180

Before

[
  "code",
  "}"
]

After

[
  [
    "code",
    "}"
  ],
  [
    "code",
    "}"
  ],
  [
    "code",
    "}"
  ],
  [
    "code",
    "}"
  ]
]
P182-S016 · PDF page 182 · structural correction

Original source page 182

Before

[
  "code",
  "Index.php"
]

After

[
  [
    "heading",
    "Index.php"
  ]
]
P185-S017 · PDF page 185 · structural correction

Original source page 185

Before

[
  "code",
  "Knowledge.php"
]

After

[
  [
    "heading",
    "Knowledge.php"
  ]
]
P186-S018 · PDF page 186 · structural correction

Original source page 186

Before

[
  "code",
  "Match.php"
]

After

[
  [
    "heading",
    "Match.php"
  ]
]
P197-S019 · PDF page 197 · structural correction

Original source page 197

Before

[
  "text",
  "RED denotes courses that are blocked due to its unfulfilled pre-requisites denotes courses that are not recommended due to its perceived difficulty being greater than the student's demonstrated academic performance GREEN denotes the recommended course with a ranked order BLUE denotes other possible courses student may consider taking"
]

After

[
  [
    "text",
    "RED denotes courses that are blocked due to its unfulfilled pre-requisites"
  ],
  [
    "text",
    "denotes courses that are not recommended due to its perceived difficulty being greater than the student's demonstrated academic performance"
  ],
  [
    "text",
    "GREEN denotes the recommended course with a ranked order"
  ],
  [
    "text",
    "BLUE denotes other possible courses student may consider taking"
  ]
]
P197-S020 · PDF page 197 · structural correction

Original source page 197

Before

[
  "text",
  "Correlation of Interests (INT) and Difference of Means"
]

After

[
  [
    "heading",
    "Correlation of Interests (INT) and Difference of Means"
  ]
]
P197-S021 · PDF page 197 · structural correction

Original source page 197

Before

[
  "text",
  "Distance of 2 vectors"
]

After

[
  [
    "heading",
    "Distance of 2 vectors"
  ]
]
P198-S022 · PDF page 198 · structural correction

Original source page 198

Before

[
  "text",
  "Trivial IR algorithm"
]

After

[
  [
    "heading",
    "Trivial IR algorithm"
  ]
]
P135-C001 · PDF page 135 · vector_spacing

Original source page 135

Before

4.7.3.2 Test case (0, 3, 0,1, 2,3,1)

After

4.7.3.2 Test case (0, 3, 0, 1, 2, 3, 1)
P135-C002 · PDF page 135 · vector_spacing

Original source page 135

Before

4.7.3.3 Test case (3,2, 0, 0,1,3,2)

After

4.7.3.3 Test case (3, 2, 0, 0, 1, 3, 2)
P136-C003 · PDF page 136 · vector_spacing

Original source page 136

Before

4.7.3.4 Test case (0,3,1, 2, 0,3,3)

After

4.7.3.4 Test case (0, 3, 1, 2, 0, 3, 3)
P136-C004 · PDF page 136 · vector_spacing

Original source page 136

Before

4.7.3.5 Test case (0,1, 0,3, 2,3,3)

After

4.7.3.5 Test case (0, 1, 0, 3, 2, 3, 3)
P136-C005 · PDF page 136 · course_identifier_ocr

Original source page 136

Before

The first human advice would be N6, NS7, and NM5. Because the prerequisites of NS7 and NM5 have not been fulfilled, the second and final advice is then N6, S8, and 02. The system gives exactly the same advice of N6, S8, and O2 as well.

After

The first human advice would be N6, NS7, and NM5. Because the prerequisites of NS7 and NM5 have not been fulfilled, the second and final advice is then N6, S8, and O2. The system gives exactly the same advice of N6, S8, and O2 as well.
P136-C006 · PDF page 136 · vector_spacing

Original source page 136

Before

4.7.3.6 Test case (0,1,3, 0, 2,3,3)

After

4.7.3.6 Test case (0, 1, 3, 0, 2, 3, 3)
P137-C007 · PDF page 137 · missing_bullet

Original source page 137

Before

Absolute specialisation

After

• Absolute specialisation
P137-C008 · PDF page 137 · course_identifier_ocr

Original source page 137

Before

Initially, the human advice would be M4, OM3, and NM5. But, OM3 and NM5 are blocked due to incomplete prerequisites. The subsequent advice would be M4, S8, and NS7. Given that NS7 is also blocked, the final advice would be M4, S8, and 02. The prototype system recommends M4, S8, and D1 (with M4 available as the next ranked choice). Diversity (or lack of it) within the knowledge base may have caused this difference.

After

Initially, the human advice would be M4, OM3, and NM5. But, OM3 and NM5 are blocked due to incomplete prerequisites. The subsequent advice would be M4, S8, and NS7. Given that NS7 is also blocked, the final advice would be M4, S8, and O2. The prototype system recommends M4, S8, and D1 (with M4 available as the next ranked choice). Diversity (or lack of it) within the knowledge base may have caused this difference.
P137-C009 · PDF page 137 · vector_spacing

Original source page 137

Before

4.7.3.7 Test case (0, 0,1, 2,3, 3,1)

After

4.7.3.7 Test case (0, 0, 1, 2, 3, 3, 1)
P138-C010 · PDF page 138 · course_identifier_ocr

Original source page 138

Before

The first advice would be S8, O2, and 0M3. Because OM3 is blocked for not having the prerequisite fulfilled, the next advice would be S8, O2, and D l. The system also recommends S8, O2, and D1 in exactly the same order.

After

The first advice would be S8, O2, and OM3. Because OM3 is blocked for not having the prerequisite fulfilled, the next advice would be S8, O2, and D1. The system also recommends S8, O2, and D1 in exactly the same order.
P139-C011 · PDF page 139 · vector_spacing

Original source page 139

Before

4.7.4.1 Test case (3, 0,1, 2, 0,2,3)

After

4.7.4.1 Test case (3, 0, 1, 2, 0, 2, 3)
P139-C012 · PDF page 139 · vector_spacing

Original source page 139

Before

The first test case is when the problem profile (DSP, OPTIC, MWAVE, NTWRK, SATEL, PRFM, CHRT) of (3, 0,1,2 , 0, 2, 3).

After

The first test case is when the problem profile (DSP, OPTIC, MWAVE, NTWRK, SATEL, PRFM, CHRT) of (3, 0, 1, 2, 0, 2, 3).
P139-C013 · PDF page 139 · vector_spacing

Original source page 139

Before

4.7.4.2 Test case (0, 0,3, 2,1,2, 2)

After

4.7.4.2 Test case (0, 0, 3, 2, 1, 2, 2)
P139-C014 · PDF page 139 · vector_spacing

Original source page 139

Before

Another test for stability under small change is to assign a prerequisite vector for the given courses. For testing purposes, make the prerequisites for courses associated with multiple disciplines (e.g., OM3 and NS7) not yet fulfilled. The prerequisite vector of (D1, O2, OM3, M4, NM5, N6, NS7, S8) will have the values (1, 1,0, 1, 1, 1,0, 1).

After

Another test for stability under small change is to assign a prerequisite vector for the given courses. For testing purposes, make the prerequisites for courses associated with multiple disciplines (e.g., OM3 and NS7) not yet fulfilled. The prerequisite vector of (D1, O2, OM3, M4, NM5, N6, NS7, S8) will have the values (1, 1, 0, 1, 1, 1, 0, 1).
P140-C015 · PDF page 140 · vector_spacing

Original source page 140

Before

A student who is interested in Microwave, Networking, and Satellite (in order of preference), has an average academic performance, and wants some specialisation in his fields will have a profile (DSP, OPTIC, MWAVE, NTWRK, SATEL, PRFM, CHRT) as (0, 0 ,3 ,2 , 1,2,2).

After

A student who is interested in Microwave, Networking, and Satellite (in order of preference), has an average academic performance, and wants some specialisation in his fields will have a profile (DSP, OPTIC, MWAVE, NTWRK, SATEL, PRFM, CHRT) as (0, 0, 3, 2, 1, 2, 2).
P140-C016 · PDF page 140 · course_identifier_ocr

Original source page 140

Before

Now, as an academic advisor, the instant advice given will be the courses M4, NM5, and N6. Taking into account that the perceived difficulties (difficulty level 3) of M4 and N6 are probably beyond the student’s academic performance (PRFM = 2), the advisor will skip these two courses and recommend NM5, OM3, and NS7. Because the prerequisites of OM3 and NS7 have not yet been fulfilled, the advisor will find another two courses to substitute these. Thus, the final recommendation will be NM5, S8, and either D1 or 02.

After

Now, as an academic advisor, the instant advice given will be the courses M4, NM5, and N6. Taking into account that the perceived difficulties (difficulty level 3) of M4 and N6 are probably beyond the student’s academic performance (PRFM = 2), the advisor will skip these two courses and recommend NM5, OM3, and NS7. Because the prerequisites of OM3 and NS7 have not yet been fulfilled, the advisor will find another two courses to substitute these. Thus, the final recommendation will be NM5, S8, and either D1 or O2.
P140-C017 · PDF page 140 · course_identifier_ocr

Original source page 140

Before

The prototype system using the improvement matching algorithm actually recommends a very similar set of courses, which contain NM5, O2 and D1, with a possibility of SB. Now, using commonsense, S8 should have a higher precedent over D1 and 02. However, keep in mind that pure CBR depends entirely on the quality of cases in its knowledge base. Currently, the number of cases is less than 10% of the overall number of every possible permutation. In addition, no rules are in place to double check the final advice against the preference in the fields of interest. We can use such rules to detect that S8 is within the student’s field of interests and D1 and O2 are not, thus adjusting the ranking of SB. This last process can be integrated into the refine phase in the CBR cycle.

After

The prototype system using the improvement matching algorithm actually recommends a very similar set of courses, which contain NM5, O2 and D1, with a possibility of S8. Now, using commonsense, S8 should have a higher precedent over D1 and O2. However, keep in mind that pure CBR depends entirely on the quality of cases in its knowledge base. Currently, the number of cases is less than 10% of the overall number of every possible permutation. In addition, no rules are in place to double check the final advice against the preference in the fields of interest. We can use such rules to detect that S8 is within the student’s field of interests and D1 and O2 are not, thus adjusting the ranking of S8. This last process can be integrated into the refine phase in the CBR cycle.
P146-C018 · PDF page 146 · word_boundary_punctuation

Original source page 146

Before

In a sense, tweaking is a combination of navigation by asking and navigation by proposing -sequences of cases can be proposed and the student can be asked for specific information about particular features. However, the cost to or involvement of the student should be lower than value elicitation because the student is not expected to provide specific feature values of which they may have little or no knowledge. This strategy can also combine elements of preference-based feedback since the student must explicitly identify a preferred case over which the tweaks should be applied.

After

In a sense, tweaking is a combination of navigation by asking and navigation by proposing – sequences of cases can be proposed and the student can be asked for specific information about particular features. However, the cost to or involvement of the student should be lower than value elicitation because the student is not expected to provide specific feature values of which they may have little or no knowledge. This strategy can also combine elements of preference-based feedback since the student must explicitly identify a preferred case over which the tweaks should be applied.
P149-C019 · PDF page 149 · line_break_hyphenation

Original source page 149

Before

To develop case-based academic advisement recommender systems that will be used in dynamic, institution environments by a large group of users, one must take into account the managerial (or administrative), organisational (or institutional), and technical processes. It has to be remembered that once a CBR system is in place, continuous knowledge acquisition and maintenance is necessary. Processes for knowledge acquisition and maintenance have to be developed and executed, and personnel have to be dedicated to performing these tasks. A non­ technical framework that defines these processes can be found in the appendix.

After

To develop case-based academic advisement recommender systems that will be used in dynamic, institution environments by a large group of users, one must take into account the managerial (or administrative), organisational (or institutional), and technical processes. It has to be remembered that once a CBR system is in place, continuous knowledge acquisition and maintenance is necessary. Processes for knowledge acquisition and maintenance have to be developed and executed, and personnel have to be dedicated to performing these tasks. A non-technical framework that defines these processes can be found in the appendix.
P153-C020 · PDF page 153 · line_break_hyphenation

Original source page 153

Before

Treating student profiles as transactions and the rated courses therein as item sets, the Apriori algorithm can be used to derive a set of course-course association rules and confidence levels. The resulting confidence values are taken as probabilities and used to fill in a course-course similarity matrix, which provides the additional similarity knowledge necessary to compare non­ identical profile items [31].

After

Treating student profiles as transactions and the rated courses therein as item sets, the Apriori algorithm can be used to derive a set of course-course association rules and confidence levels. The resulting confidence values are taken as probabilities and used to fill in a course-course similarity matrix, which provides the additional similarity knowledge necessary to compare non-identical profile items [31].
P153-C021 · PDF page 153 · mathematical_symbol

Original source page 153

Before

Since the matter of additional similarity coverage rests in populating the matrix as densely as possible, two natural extensions suggest themselves. First, the directly generated rules can be changed together (A -> B and B -> C imply A -> C) to provide indirect course relationships (absolutely useful for inter-disciplinary electives).

After

Since the matter of additional similarity coverage rests in populating the matrix as densely as possible, two natural extensions suggest themselves. First, the directly generated rules can be changed together (A → B and B → C imply A → C) to provide indirect course relationships (absolutely useful for inter-disciplinary electives).
P154-C022 · PDF page 154 · lost_subscript

Original source page 154

Before

• The target profile, t, is compared to each profile case, s, is an element of S, to select the k most similar cases

After

• The target profile, t, is compared to each profile case, sᵢ is an element of S, to select the k most similar cases
P154-C023 · PDF page 154 · quotation_glyph

Original source page 154

Before

A CBR system learns through adaptation (i.e., modifying a retrieved case that partially matches the current problem) to solve a new problem. This means that over time new cases are acquired and the system’s problem solving performance should improve as it "learns". Learning may be from positive examples given by the domain expert or from its own success (or even from its failure) in achieving the problem-solving goal. However, adaptation formulas are not always easy to define, even by a domain expert. How does the case-based reasoner know what to adapt and when? Can adaptation rules that are sufficiently generic (for all situations) be built so that the case-based reasoner is able to detect the differences between the new and retrieved case, decide what needs to be adapted, determine which adaptation strategy to choose (from several appropriate strategies), and project the likelihood of succeeding?

After

A CBR system learns through adaptation (i.e., modifying a retrieved case that partially matches the current problem) to solve a new problem. This means that over time new cases are acquired and the system’s problem solving performance should improve as it “learns”. Learning may be from positive examples given by the domain expert or from its own success (or even from its failure) in achieving the problem-solving goal. However, adaptation formulas are not always easy to define, even by a domain expert. How does the case-based reasoner know what to adapt and when? Can adaptation rules that are sufficiently generic (for all situations) be built so that the case-based reasoner is able to detect the differences between the new and retrieved case, decide what needs to be adapted, determine which adaptation strategy to choose (from several appropriate strategies), and project the likelihood of succeeding?
P156-C024 · PDF page 156 · punctuation_glyph

Original source page 156

Before

Thus, most hybrid systems have a combination of rules and cases, and may be according to whether rules and cases are independent of each other, or whether one was derived from the other (i.e., derive cases from rules, or rules from a set of sample cases). Rules may be used to capture broad trends in the domain, while cases are used to support exceptions to the rules or violations of the rules. Cases may be kept as positive examples to support, explain, or justify rules, as counter-examples to rules, or when rules fail because they are ill defined. However, there are problems integrating cases and rules, and these have to do with control - which mode of reasoning to use, and when. To date, there is still a lack of cognitive models of how human experts integrate rules and cases.

After

Thus, most hybrid systems have a combination of rules and cases, and may be according to whether rules and cases are independent of each other, or whether one was derived from the other (i.e., derive cases from rules, or rules from a set of sample cases). Rules may be used to capture broad trends in the domain, while cases are used to support exceptions to the rules or violations of the rules. Cases may be kept as positive examples to support, explain, or justify rules, as counter-examples to rules, or when rules fail because they are ill defined. However, there are problems integrating cases and rules, and these have to do with control – which mode of reasoning to use, and when. To date, there is still a lack of cognitive models of how human experts integrate rules and cases.
P160-C025 · PDF page 160 · bibliography_line_break_hyphenation

Original source page 160

Before

[3] Armengol, E., and Plaza, E. 2001, ‘Similarity Assessment for Relational CBR’. Case- Based Reasoning Research and Development: Fourth International Conference, ICCBR- 2001, Vancouver, BC, Canada, July/August 2001, pp. 44-58.

After

[3] Armengol, E., and Plaza, E. 2001, ‘Similarity Assessment for Relational CBR’. Case-Based Reasoning Research and Development: Fourth International Conference, ICCBR-2001, Vancouver, BC, Canada, July/August 2001, pp. 44-58.
P160-C026 · PDF page 160 · bibliography_line_break_hyphenation

Original source page 160

Before

[4] Bergmann, R., Breen, S., Goker, M., Manago, M., and Wess S. 1998, Developing Industrial Case-Based Reasoning Applications: The INRECA-Methodology, Springer- Verlag, Berlin Heidelberg, Germany.

After

[4] Bergmann, R., Breen, S., Goker, M., Manago, M., and Wess S. 1998, Developing Industrial Case-Based Reasoning Applications: The INRECA-Methodology, Springer-Verlag, Berlin Heidelberg, Germany.
P161-C027 · PDF page 161 · bibliography_line_break_hyphenation

Original source page 161

Before

[15] Göker, M. & Roth-Berghofer, T. 1999, ‘Development and Utilization of a Case- Based Help-Desk Support System in a Corporate Environment’. Case-Based Reasoning Research and Development: Proceedings of the 3rd International Conference on Case- Based Reasoning, ICCBR-99, Seeon Monastery, Germany, July 27-30, 1999, ed. K. Althoff, R. Bergmann & L. K. Branting, Springer-Verlag, Germany, pp. 132-146.

After

[15] Göker, M. & Roth-Berghofer, T. 1999, ‘Development and Utilization of a Case-Based Help-Desk Support System in a Corporate Environment’. Case-Based Reasoning Research and Development: Proceedings of the 3rd International Conference on Case-Based Reasoning, ICCBR-99, Seeon Monastery, Germany, July 27-30, 1999, ed. K. Althoff, R. Bergmann & L. K. Branting, Springer-Verlag, Germany, pp. 132-146.
P162-C028 · PDF page 162 · bibliography_quote_spacing

Original source page 162

Before

[17] Hammonds, K. H., and others. “The New ‘U ’: A Tough Market Is Reshaping Colleges.” Business Week, Dec. 22, 1997, pp. 96-102.

After

[17] Hammonds, K. H., and others. “The New ‘U’: A Tough Market Is Reshaping Colleges.” Business Week, Dec. 22, 1997, pp. 96-102.
P162-C029 · PDF page 162 · bibliography_line_break_spacing

Original source page 162

Before

[22] Khoshgoftaar, T. M., and Allen, E. B. ‘Classification of fault-prone software modules: Prior probabilities, costs, and model evaluation.’ In Technical Report TR-CSE- 97-52. ’ Boca Raton, FL USA, June 1997. Florida Atlantic University.

After

[22] Khoshgoftaar, T. M., and Allen, E. B. ‘Classification of fault-prone software modules: Prior probabilities, costs, and model evaluation.’ In Technical Report TR-CSE-97-52.’ Boca Raton, FL USA, June 1997. Florida Atlantic University.
P163-C030 · PDF page 163 · bibliography_line_break_hyphenation

Original source page 163

Before

[30] Montaner, M., Lopez, B., and de la Rosa, J. L. 2002, ‘Improving Case Representation and Case Base Maintenance in Recommender Agents’. Advances in Case- Based Reasoning: Sixth European Conference, ECCBR-2002, Aberdeen, Scotland, UK, September 2002, pp. 234.248.

After

[30] Montaner, M., Lopez, B., and de la Rosa, J. L. 2002, ‘Improving Case Representation and Case Base Maintenance in Recommender Agents’. Advances in Case-Based Reasoning: Sixth European Conference, ECCBR-2002, Aberdeen, Scotland, UK, September 2002, pp. 234.248.
P165-C031 · PDF page 165 · bibliography_punctuation_glyph

Original source page 165

Before

[42] Turing, A. 1950, ‘Computing machinery and intelligence’, Mind, 59, pp. 433 - 460.

After

[42] Turing, A. 1950, ‘Computing machinery and intelligence’, Mind, 59, pp. 433 – 460.
P175-C032 · PDF page 175 · code_ocr

Original source page 175

Before

'DSP' => Sdsp,

After

'DSP' => $dsp,
P175-C033 · PDF page 175 · code_ocr

Original source page 175

Before

'OPTIC' => Soptic,

After

'OPTIC' => $optic,
P175-C034 · PDF page 175 · code_ocr

Original source page 175

Before

'MWAVE' => Smwave,

After

'MWAVE' => $mwave,
P175-C035 · PDF page 175 · code_ocr

Original source page 175

Before

■NTWRK’ => Sntwrk,

After

'NTWRK' => $ntwrk,
P175-C036 · PDF page 175 · code_ocr

Original source page 175

Before

'SATEL' => Ssatel,

After

'SATEL' => $satel,
P175-C037 · PDF page 175 · code_ocr

Original source page 175

Before

'PRFM' => Sprfm,

After

'PRFM' => $prfm,
P175-C038 · PDF page 175 · code_ocr

Original source page 175

Before

'CHRT' => Schrt

After

'CHRT' => $chrt
P175-C039 · PDF page 175 · code_ocr

Original source page 175

Before

function case_size(Scase) {

After

function case_size($case) {
P175-C040 · PDF page 175 · code_ocr

Original source page 175

Before

Ssum = 0;

After

$sum = 0;
P175-C041 · PDF page 175 · code_ocr

Original source page 175

Before

foreach (Scase as Svalue) {

After

foreach ($case as $value) {
P175-C042 · PDF page 175 · code_ocr

Original source page 175

Before

Ssum += pow($value, 2);

After

$sum += pow($value, 2);
P176-C043 · PDF page 176 · code_ocr

Original source page 176

Before

return sqrt(Ssum);

After

return sqrt($sum);
P176-C044 · PDF page 176 · code_ocr

Original source page 176

Before

function sumproduct($vl, $v2) {

After

function sumproduct($v1, $v2) {
P176-C045 · PDF page 176 · code_ocr

Original source page 176

Before

foreach ($vl as $key => $ value) {

After

foreach ($v1 as $key => $value) {
P176-C046 · PDF page 176 · code_ocr

Original source page 176

Before

$DSP, $OPTIC, SMWAVE, SNTWRK, SSATEL, $PRFM, $CHRT,

After

$DSP, $OPTIC, $MWAVE, $NTWRK, $SATEL, $PRFM, $CHRT,
P176-C047 · PDF page 176 · code_ocr

Original source page 176

Before

$D1,$02,$0M3,$M4,$NM5,$N6,$NS7,$S8) {

After

$D1,$O2,$OM3,$M4,$NM5,$N6,$NS7,$S8) {
P176-C048 · PDF page 176 · code_ocr

Original source page 176

Before

for ($j=RANK_NUM; $j>$pos; $j—) {

After

for ($j=RANK_NUM; $j>$pos; $j--) {
P176-C049 · PDF page 176 · code_ocr

Original source page 176

Before

$match[$j] = $match[$j-l];

After

$match[$j] = $match[$j-1];
P176-C050 · PDF page 176 · code_ocr

Original source page 176

Before

'DSP' => $DSP, 'OPTIC' => SOPTIC,

After

'DSP' => $DSP, 'OPTIC' => $OPTIC,
P176-C051 · PDF page 176 · code_ocr

Original source page 176

Before

'MWAVE' => SMWAVE, "NTWRK" => SNTWRK,

After

'MWAVE' => $MWAVE, 'NTWRK' => $NTWRK,
P176-C052 · PDF page 176 · code_ocr

Original source page 176

Before

'SATEL' => SSATEL, 'PRFM' => SPRFM,

After

'SATEL' => $SATEL, 'PRFM' => $PRFM,
P176-C053 · PDF page 176 · code_ocr

Original source page 176

Before

'CHRT' => SCHRT, 'Dl' => $D1,

After

'CHRT' => $CHRT, 'D1' => $D1,
P176-C054 · PDF page 176 · code_ocr

Original source page 176

Before

02' => $02, 'OM3' => SOM3, 'M4' => $M4,

After

'O2' => $O2, 'OM3' => $OM3, 'M4' => $M4,
P176-C055 · PDF page 176 · code_ocr

Original source page 176

Before

•NM5' => SNM5, "N6' => $N6, 'NS7' => SNS7,

After

'NM5' => $NM5, 'N6' => $N6, 'NS7' => $NS7,
P176-C056 · PDF page 176 · code_ocr

Original source page 176

Before

'S8' => SS8);

After

'S8' => $S8);
P177-C057 · PDF page 177 · code_ocr

Original source page 177

Before

print "<th>PREM</th>";

After

print "<th>PRFM</th>";
P177-C058 · PDF page 177 · code_ocr

Original source page 177

Before

print "<th>Dl</th>";

After

print "<th>D1</th>";
P177-C059 · PDF page 177 · code_ocr

Original source page 177

Before

print "<th>02</th>";

After

print "<th>O2</th>";
P177-C060 · PDF page 177 · code_ocr

Original source page 177

Before

print "<td>" . $i[’DSP'] . "</td>";

After

print "<td>" . $i['DSP'] . "</td>";
P177-C061 · PDF page 177 · code_ocr

Original source page 177

Before

print "<td>" . $i ['OPTIC'] . "</td>";

After

print "<td>" . $i['OPTIC'] . "</td>";
P177-C062 · PDF page 177 · code_ocr

Original source page 177

Before

print "<td>" . $i['MWAVE] . "</td>";

After

print "<td>" . $i['MWAVE'] . "</td>";
P177-C063 · PDF page 177 · code_ocr

Original source page 177

Before

print "<td>" . $i[rNTWRK'] . "</td>";

After

print "<td>" . $i['NTWRK'] . "</td>";
P178-C064 · PDF page 178 · code_ocr

Original source page 178

Before

printf("<td>%2.3f</td>", $s['Dl’]);

After

printf("<td>%2.3f</td>", $s['D1']);
P178-C065 · PDF page 178 · code_ocr

Original source page 178

Before

printf("<td>%2.3f</td>", $s['02']);

After

printf("<td>%2.3f</td>", $s['O2']);
P178-C066 · PDF page 178 · code_ocr

Original source page 178

Before

printf("<td>%2.3f</td>", $s[rNM5’]);

After

printf("<td>%2.3f</td>", $s['NM5']);
P178-C067 · PDF page 178 · code_ocr

Original source page 178

Before

printf("<td>%2.3f</td>", $s["N6']);

After

printf("<td>%2.3f</td>", $s['N6']);
P178-C068 · PDF page 178 · code_ocr

Original source page 178

Before

printf("<td>%2.3f</td>", $s[K!S7']);

After

printf("<td>%2.3f</td>", $s['NS7']);
P178-C069 · PDF page 178 · code_ocr

Original source page 178

Before

print "<td>" . $s['Dl'] . "</td>";

After

print "<td>" . $s['D1'] . "</td>";
P178-C070 · PDF page 178 · code_ocr

Original source page 178

Before

print "<td>" . $s['02']. "</td>";

After

print "<td>" . $s['O2'] . "</td>";
P178-C071 · PDF page 178 · code_ocr

Original source page 178

Before

print "<td>". $s[rNM5']. "</td>";

After

print "<td>" . $s['NM5'] . "</td>";
P178-C072 · PDF page 178 · code_ocr

Original source page 178

Before

print "<td>". $s["NS7']. "</td>";

After

print "<td>" . $s['NS7'] . "</td>";
P178-C073 · PDF page 178 · code_ocr

Original source page 178

Before

function init soluQ {

After

function init_solu() {
P178-C074 · PDF page 178 · code_ocr

Original source page 178

Before

return array('Dl' => 0, '02' => 0, 'OM3' => 0, 'M4' => 0, KIMS' => 0, 'N6' => 0, 'NS7' =>

After

return array('D1' => 0, 'O2' => 0, 'OM3' => 0, 'M4' => 0, 'NM5' => 0, 'N6' => 0, 'NS7' =>
P179-C075 · PDF page 179 · code_ocr

Original source page 179

Before

return array( 'COUNT' => init_solu(), 'RANKPCENT' => init_solu(), ’WEIGHT_SUM’

After

return array( 'COUNT' => init_solu(), 'RANK_PCENT' => init_solu(), 'WEIGHT_SUM'
P179-C076 · PDF page 179 · code_ocr

Original source page 179

Before

print "<table border=\"l\"><tr>";

After

print "<table border=\"1\"><tr>";
P179-C077 · PDF page 179 · code_ocr

Original source page 179

Before

print ”<td>percent</td>";

After

print "<td>percent</td>";
P179-C078 · PDF page 179 · code_ocr

Original source page 179

Before

Sadvice = init_advice();

After

$advice = init_advice();
P179-C079 · PDF page 179 · code_ocr

Original source page 179

Before

for ($i=l; $i<=RANK_NUM; $i++) {

After

for ($i=1; $i<=RANK_NUM; $i++) {
P179-C080 · PDF page 179 · code_ocr

Original source page 179

Before

print "<td>". $match [$i] ['id']. "</td>";

After

print "<td>" . $match[$i]['id'] . "</td>";
P179-C081 · PDF page 179 · code_ocr

Original source page 179

Before

printf ("<td>%2.3f</td>", $match[$i][’percent']*100);

After

printf("<td>%2.3f</td>", $match[$i]['percent']*100);
P179-C082 · PDF page 179 · code_ocr

Original source page 179

Before

foreach (Sadvice ['RANK PCENT'] as Scourse => $rank_percentage) {

After

foreach ($advice['RANK_PCENT'] as $course => $rank_percentage) {
P179-C083 · PDF page 179 · code_ocr

Original source page 179

Before

$advice['COUNT'][$course]-H-;

After

$advice['COUNT'][$course]++;
P179-C084 · PDF page 179 · code_ocr

Original source page 179

Before

$advice['WEIGHT_SUM'] [Scourse] += (2/75 + (RANKNUM-

After

$advice['WEIGHT_SUM'][$course] += (2/75 + (RANK_NUM-
P179-C085 · PDF page 179 · code_ocr

Original source page 179

Before

$i+l)/75) * 100;

After

$i+1)/75) * 100;
P180-C086 · PDF page 180 · code_ocr

Original source page 180

Before

100:

After

* 100;
P180-C087 · PDF page 180 · code_ocr

Original source page 180

Before

return Sadvice;

After

return $advice;
P180-C088 · PDF page 180 · code_ocr

Original source page 180

Before

function show_advice_table($advice, Sprerequisites, Sdifficulties) {

After

function show_advice_table($advice, $prerequisites, $difficulties) {
P180-C089 · PDF page 180 · code_ocr

Original source page 180

Before

print '<table border=\"l\">";

After

print "<table border=\"1\">";
P180-C090 · PDF page 180 · code_ocr

Original source page 180

Before

print ’<tr>”;

After

print "<tr>";
P180-C091 · PDF page 180 · code_ocr

Original source page 180

Before

print '<td>Description</td>";

After

print "<td>Description</td>";
P180-C092 · PDF page 180 · code_ocr

Original source page 180

Before

print </tr>";

After

print "</tr>";
P180-C093 · PDF page 180 · code_ocr

Original source page 180

Before

print

After

print "<tr>";
P180-C094 · PDF page 180 · code_ocr

Original source page 180

Before

print <td>Prequisite</td>";

After

print "<td>Prequisite</td>";
P180-C095 · PDF page 180 · code_ocr

Original source page 180

Before

show solution($prerequisites);

After

show_solution($prerequisites);
P180-C096 · PDF page 180 · code_ocr

Original source page 180

Before

print </tr>";

After

print "</tr>";
P180-C097 · PDF page 180 · code_ocr

Original source page 180

Before

print <tr>";

After

print "<tr>";
P180-C098 · PDF page 180 · code_ocr

Original source page 180

Before

print <td>Difficulty</td>";

After

print "<td>Difficulty</td>";
P180-C099 · PDF page 180 · code_ocr

Original source page 180

Before

show_solution($di fficulties);

After

show_solution($difficulties);
P180-C100 · PDF page 180 · code_ocr

Original source page 180

Before

print </tr>";

After

print "</tr>";
P180-C101 · PDF page 180 · code_ocr

Original source page 180

Before

print <tr>";

After

print "<tr>";
P180-C102 · PDF page 180 · code_ocr

Original source page 180

Before

print <td>Count</td>";

After

print "<td>Count</td>";
P180-C103 · PDF page 180 · code_ocr

Original source page 180

Before

print

After

print "</tr>";
P180-C104 · PDF page 180 · code_ocr

Original source page 180

Before

print

After

print "<tr>";
P181-C105 · PDF page 181 · code_ocr

Original source page 181

Before

show_solution($advice['RANK_PCENT], "f’);

After

show_solution($advice['RANK_PCENT'], "f");
P181-C106 · PDF page 181 · code_ocr

Original source page 181

Before

show_solution($advice['WEIGHT_SUM'], "f');

After

show_solution($advice['WEIGHT_SUM'], "f");
P181-C107 · PDF page 181 · code_ocr

Original source page 181

Before

function give_advice($advice, Sprerequisites, Sdifficulties, Sperformance) {

After

function give_advice($advice, $prerequisites, $difficulties, $performance) {
P181-C108 · PDF page 181 · code_ocr

Original source page 181

Before

Sordinal = 0;

After

$ordinal = 0;
P181-C109 · PDF page 181 · code_ocr

Original source page 181

Before

foreach ($advice['RANK_PCENT'] as Scourse => $rank_percentage) {

After

foreach ($advice['RANK_PCENT'] as $course => $rank_percentage) {
P181-C110 · PDF page 181 · code_ocr

Original source page 181

Before

Srelevance = $advice['WEIGHT_SUM'][$course];

After

$relevance = $advice['WEIGHT_SUM'][$course];
P181-C111 · PDF page 181 · code_ocr

Original source page 181

Before

Scolour = "red";

After

$colour = "red";
P181-C112 · PDF page 181 · code_ocr

Original source page 181

Before

treason = "<br>This course is not available because its pre-requisites have

After

$reason = "<br>This course is not available because its pre-requisites have
P181-C113 · PDF page 181 · code_ocr

Original source page 181

Before

} elseif ($difficulties[$course] > Sperformance) {

After

} elseif ($difficulties[$course] > $performance) {
P181-C114 · PDF page 181 · code_ocr

Original source page 181

Before

Scolour = "orange";

After

$colour = "orange";
P181-C115 · PDF page 181 · code_ocr

Original source page 181

Before

treason = "<br>This course is not recommended because its perceived

After

$reason = "<br>This course is not recommended because its perceived
P181-C116 · PDF page 181 · code_ocr

Original source page 181

Before

} elseif (Sordinal < ENROL COURSE NUM) {

After

} elseif ($ordinal < ENROL_COURSE_NUM) {
P181-C117 · PDF page 181 · code_ocr

Original source page 181

Before

Scolour = "green";

After

$colour = "green";
P181-C118 · PDF page 181 · code_ocr

Original source page 181

Before

Sreason = "<br>This is recommended as the choice # Sordinal.";

After

$reason = "<br>This is recommended as the choice # $ordinal.";
P181-C119 · PDF page 181 · code_ocr

Original source page 181

Before

Scolour = "blue";

After

$colour = "blue";
P181-C120 · PDF page 181 · code_ocr

Original source page 181

Before

Sreason =

After

$reason = "";
P182-C121 · PDF page 182 · code_ocr

Original source page 182

Before

printf("<p><font color=\"$colour\">The course Scourse has a rating of

After

printf("<p><font color=\"$colour\">The course $course has a rating of
P182-C122 · PDF page 182 · code_ocr

Original source page 182

Before

$rank_percentage, Srelevance, Sreason);

After

$rank_percentage, $relevance, $reason);
P182-C123 · PDF page 182 · code_ocr

Original source page 182

Before

foreach (Stables as Skey => $ value) {

After

foreach ($tables as $key => $value) {
P182-C124 · PDF page 182 · code_ocr

Original source page 182

Before

print "<h 1 >Problem</h 1 >\n";

After

print "<h1>Problem</h1>\n";
P182-C125 · PDF page 182 · code_ocr

Original source page 182

Before

print "<table border=\"l\">\n";

After

print "<table border=\"1\">\n";
P182-C126 · PDF page 182 · code_ocr

Original source page 182

Before

attrtabheaderQ ;

After

attr_tab_header();
P183-C127 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td>knowledge 15</td><td>knowledge20</td><td>knowledge47</td>\n";

After

print "<td>knowledge15</td><td>knowledge20</td><td>knowledge47</td>\n";
P183-C128 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"text\" name=\"DSP\" size=\"l\"></td>";

After

print "<td><input type=\"text\" name=\"DSP\" size=\"1\"></td>";
P183-C129 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"text\" name=\"OPTIC\" size=\"l\"x/td>";

After

print "<td><input type=\"text\" name=\"OPTIC\" size=\"1\"></td>";
P183-C130 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"text\" name=\"MWAVE\" size=\"l\"></td>";

After

print "<td><input type=\"text\" name=\"MWAVE\" size=\"1\"></td>";
P183-C131 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"text\" name=\"NTWRK\" size=\"l\"></td>";

After

print "<td><input type=\"text\" name=\"NTWRK\" size=\"1\"></td>";
P183-C132 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"text\" name=\"SATEL\" size=\"l\"></td>";

After

print "<td><input type=\"text\" name=\"SATEL\" size=\"1\"></td>";
P183-C133 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"text\" name=\"PRFM\" size=\"l\"></td>";

After

print "<td><input type=\"text\" name=\"PRFM\" size=\"1\"></td>";
P183-C134 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"text\" name=\"CHRT\" size=\"l\"></td>";

After

print "<td><input type=\"text\" name=\"CHRT\" size=\"1\"></td>";
P183-C135 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"radio\" name=\"table\" value=\"l\"></td>";

After

print "<td><input type=\"radio\" name=\"table\" value=\"1\"></td>";
P183-C136 · PDF page 183 · code_ocr

Original source page 183

Before

print "<td><input type=\"radio\" name=\"table\" value=\"2\"x/td>";

After

print "<td><input type=\"radio\" name=\"table\" value=\"2\"></td>";
P183-C137 · PDF page 183 · code_ocr

Original source page 183

Before

$ lines = file ('http://www.tanat.net/cbr/problems.txt');

After

$lines = file ('http://www.tanat.net/cbr/problems.txt');
P183-C138 · PDF page 183 · code_ocr

Original source page 183

Before

Sproblem = build_case();

After

$problem = build_case();
P183-C139 · PDF page 183 · code_ocr

Original source page 183

Before

$query_str

After

$query_str =
P183-C140 · PDF page 183 · code_ocr

Original source page 183

Before

Sproblemid = strval($line_num+l);

After

$problem_id = strval($line_num+1);
P184-C141 · PDF page 184 · code_ocr

Original source page 184

Before

foreach (Stables as Skey => $ value) {

After

foreach ($tables as $key => $value) {
P185-C142 · PDF page 185 · code_ocr

Original source page 185

Before

print "<table border=\"l\">\n";

After

print "<table border=\"1\">\n";
P185-C143 · PDF page 185 · code_ocr

Original source page 185

Before

while ($row = mysql_fetch_array($result, MYSQL ASSOC)) {

After

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
P185-C144 · PDF page 185 · code_ocr

Original source page 185

Before

Scase = build_case($row['DSP'], $row[’OPTIC'], $row['MWAVE'], $row["NTWRK'],

After

$case = build_case($row['DSP'], $row['OPTIC'], $row['MWAVE'], $row['NTWRK'],
P186-C145 · PDF page 186 · code_ocr

Original source page 186

Before

print "<table border=\"l\">";

After

print "<table border=\"1\">";
P186-C146 · PDF page 186 · code_ocr

Original source page 186

Before

build_case($_GET['DSP'],$_GET['OPTIC'],$_GET['MWAVE,],$_GET[rNTWRK'],$_GET['SA

After

build_case($_GET['DSP'],$_GET['OPTIC'],$_GET['MWAVE'],$_GET['NTWRK'],$_GET['SA
P186-C147 · PDF page 186 · code_ocr

Original source page 186

Before

TEL'],$_GET['PRFM'],$_GET[’CHRT']);

After

TEL'],$_GET['PRFM'],$_GET['CHRT']);
P186-C148 · PDF page 186 · code_ocr

Original source page 186

Before

l^¥ ************************************ Diff of Mcsns

After

/***************************************Correlaton & Diff of Means
P186-C149 · PDF page 186 · code_ocr

Original source page 186

Before

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

After

*****************************************/
P186-C150 · PDF page 186 · code_ocr

Original source page 186

Before

for ($i=l; $i<=RANK_NUM; $i++) {

After

for ($i=1; $i<=RANK_NUM; $i++) {
P186-C151 · PDF page 186 · code_ocr

Original source page 186

Before

array('id,=>"0",,percent,=>0,'DSP’=>"0",'OPTIC'=>"0",,MWAVE'=>”0",,NTWRK'=>"0,',,SATE

After

array('id'=>"0",'percent'=>0,'DSP'=>"0",'OPTIC'=>"0",'MWAVE'=>"0",'NTWRK'=>"0",'SATE
P186-C152 · PDF page 186 · code_ocr

Original source page 186

Before

L'=>"0",'PRFM->"0",'CHRT->"0",,D1'=>"0",'02'=>"0",'OM3'=>"0",,M 4->"0",,NM5'=>"0",'

After

L'=>"0",'PRFM'=>"0",'CHRT'=>"0",'D1'=>"0",'O2'=>"0",'OM3'=>"0",'M4'=>"0",'NM5'=>"0",'
P186-C153 · PDF page 186 · code_ocr

Original source page 186

Before

N 6->"0”,'NS7'=>"0",'S8->"0");

After

N6'=>"0",'NS7'=>"0",'S8'=>"0");
P187-C154 · PDF page 187 · code_ocr

Original source page 187

Before

Squery = "SELECT * FROM knowledge$knowledge_size";

After

$query = "SELECT * FROM knowledge$knowledge_size";
P187-C155 · PDF page 187 · code_ocr

Original source page 187

Before

Sresult = mysql_query($query) or die ("Query failed");

After

$result = mysql_query($query) or die ("Query failed");
P187-C156 · PDF page 187 · code_ocr

Original source page 187

Before

while ($row = mysql_fetch_array($result, MYSQL ASSOC)) {

After

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
P187-C157 · PDF page 187 · code_ocr

Original source page 187

Before

Scase = build_case($row['DSP'], $row['OPTIC'], $row['MWAVE'],

After

$case = build_case($row['DSP'], $row['OPTIC'], $row['MWAVE'],
P187-C158 · PDF page 187 · code_ocr

Original source page 187

Before

$row['NTWRK'], $row['SATEL'], $row['PRFM'], $row['CHRT’]);

After

$row['NTWRK'], $row['SATEL'], $row['PRFM'], $row['CHRT']);
P187-C159 · PDF page 187 · code_ocr

Original source page 187

Before

Scaseint = array_slice($case, 0, 5);

After

$case_int = array_slice($case, 0, 5);
P187-C160 · PDF page 187 · code_ocr

Original source page 187

Before

Scasechar = array_slice($case, 5);

After

$case_char = array_slice($case, 5);
P187-C161 · PDF page 187 · code_ocr

Original source page 187

Before

Sproblemchar = array_slice($problem, 5);

After

$problem_char = array_slice($problem, 5);
P187-C162 · PDF page 187 · code_ocr

Original source page 187

Before

$mean = Sproblemchar;

After

$mean = $problem_char;
P187-C163 · PDF page 187 · code_ocr

Original source page 187

Before

foreach (Scasechar as Skey => Svalue) {

After

foreach ($case_char as $key => $value) {
P187-C164 · PDF page 187 · code_ocr

Original source page 187

Before

$mean[$key] = (Svalue + $problem_char[$key]) / 2;

After

$mean[$key] = ($value + $problem_char[$key]) / 2;
P187-C165 · PDF page 187 · code_ocr

Original source page 187

Before

Sdiff = Sproblemchar;

After

$diff = $problem_char;
P187-C166 · PDF page 187 · code_ocr

Original source page 187

Before

foreach (Sproblem char as Skey => Svalue) {

After

foreach ($problem_char as $key => $value) {
P187-C167 · PDF page 187 · code_ocr

Original source page 187

Before

SdifffSkey] = Svalue - $mean[$key];

After

$diff[$key] = $value - $mean[$key];
P187-C168 · PDF page 187 · code_ocr

Original source page 187

Before

$match_percent = sumproduct($problem_int, Scase int) /

After

$match_percent = sumproduct($problem_int, $case_int) /
P187-C169 · PDF page 187 · code_ocr

Original source page 187

Before

case size(Sproblem int) / case size(Scase int) * 5/7;

After

case_size($problem_int) / case_size($case_int) * 5/7;
P187-C170 · PDF page 187 · code_ocr

Original source page 187

Before

$match_percent += (1- pow(case size(Sdiff) / case_size($problem_char), 2)) *

After

$match_percent += (1- pow(case_size($diff) / case_size($problem_char), 2)) *
P187-C171 · PDF page 187 · code_ocr

Original source page 187

Before

for ($j=l; $j<=RANK_NUM; $j++) {

After

for ($j=1; $j<=RANK_NUM; $j++) {
P188-C172 · PDF page 188 · code_ocr

Original source page 188

Before

$row['DSP'], $row['OPTIC], $row['MWAVE'],

After

$row['DSP'], $row['OPTIC'], $row['MWAVE'],
P188-C173 · PDF page 188 · code_ocr

Original source page 188

Before

$row['PRFM'], $row['CHRT'], $row['Dl'], $row['02'],

After

$row['PRFM'], $row['CHRT'], $row['D1'], $row['O2'],
P188-C174 · PDF page 188 · code_ocr

Original source page 188

Before

$row['OM3'], $row['M4'], $row["NM5'],

After

$row['OM3'], $row['M4'], $row['NM5'],
P188-C175 · PDF page 188 · code_ocr

Original source page 188

Before

$difficulty = array('D 1' => 1, 02' => 2, '0M3' => 1, 'M4' => 3, 'NM5' => 2, "N6" => 3,

After

$difficulty = array('D1' => 1, 'O2' => 2, 'OM3' => 1, 'M4' => 3, 'NM5' => 2, 'N6' => 3,
P188-C176 · PDF page 188 · code_ocr

Original source page 188

Before

Sprereq = array('Dl' => 1, '02' => 1, '0M3' => 0, 'M4' => 1, 'NM5' => 0, 'N6' => 1, 'NS7'

After

$prereq = array('D1' => 1, 'O2' => 1, 'OM3' => 0, 'M4' => 1, 'NM5' => 0, 'N6' => 1, 'NS7'
P188-C177 · PDF page 188 · code_ocr

Original source page 188

Before

= > 0 ,'S8'=> 1);

After

=> 0, 'S8' => 1);
P188-C178 · PDF page 188 · code_ocr

Original source page 188

Before

$advicel = process_ranked_cases($match);

After

$advice1 = process_ranked_cases($match);
P188-C179 · PDF page 188 · code_ocr

Original source page 188

Before

^* ************************************* *^2g^£m£g of 2 vectors

After

/***************************************distance of 2 vectors
P188-C180 · PDF page 188 · code_ocr

Original source page 188

Before

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

After

*****************************************/
P188-C181 · PDF page 188 · code_ocr

Original source page 188

Before

for ($i=l; $i<=RANK_NUM; $i++) {

After

for ($i=1; $i<=RANK_NUM; $i++) {
P188-C182 · PDF page 188 · code_ocr

Original source page 188

Before

array('id'=>"0",'percent->0,'DSP'=>"0",'OPTIC'=>"0",'MW AVE'=>"0",'NTWRK'=>"0",'SATE

After

array('id'=>"0",'percent'=>0,'DSP'=>"0",'OPTIC'=>"0",'MWAVE'=>"0",'NTWRK'=>"0",'SATE
P188-C183 · PDF page 188 · code_ocr

Original source page 188

Before

L'=>"0",'PRFM'=>"0",'CHRT'=>"0",'Dl'=>"0",'02'=>"0",'OM3’=>"0",'M4'=>"0",rNM5->"0",'

After

L'=>"0",'PRFM'=>"0",'CHRT'=>"0",'D1'=>"0",'O2'=>"0",'OM3'=>"0",'M4'=>"0",'NM5'=>"0",'
P188-C184 · PDF page 188 · code_ocr

Original source page 188

Before

N6’=>"0",’NS7'=>"0",'S8'=>"0");

After

N6'=>"0",'NS7'=>"0",'S8'=>"0");
P188-C185 · PDF page 188 · code_ocr

Original source page 188

Before

Squery = "SELECT * FROM knowledge$knowledge_size";

After

$query = "SELECT * FROM knowledge$knowledge_size";
P188-C186 · PDF page 188 · code_ocr

Original source page 188

Before

Sresult = mysql_query($query) or die ("Query failed");

After

$result = mysql_query($query) or die ("Query failed");
P188-C187 · PDF page 188 · code_ocr

Original source page 188

Before

while ($row = mysql_fetch_array($result, MYSQL ASSOC)) {

After

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
P189-C188 · PDF page 189 · code_ocr

Original source page 189

Before

Scase = build_case($row['DSP'], $row['OPTIC'], $row['MWAVE'],

After

$case = build_case($row['DSP'], $row['OPTIC'], $row['MWAVE'],
P189-C189 · PDF page 189 · code_ocr

Original source page 189

Before

$row['NTWRK'], $row['SATEL'], $row['PRFM’], $row[’CHRT']);

After

$row['NTWRK'], $row['SATEL'], $row['PRFM'], $row['CHRT']);
P189-C190 · PDF page 189 · code_ocr

Original source page 189

Before

Sdiff = build_case();

After

$diff = build_case();
P189-C191 · PDF page 189 · code_ocr

Original source page 189

Before

foreach ($case as $key => Svalue) {

After

foreach ($case as $key => $value) {
P189-C192 · PDF page 189 · code_ocr

Original source page 189

Before

$diff[$key] = Svalue - $problem[$key];

After

$diff[$key] = $value - $problem[$key];
P189-C193 · PDF page 189 · code_ocr

Original source page 189

Before

$match_percent = 1- pow(case_size($diff) / casesize(Sproblem), 2);

After

$match_percent = 1- pow(case_size($diff) / case_size($problem), 2);
P189-C194 · PDF page 189 · code_ocr

Original source page 189

Before

for ($j=l; $j<=RANK_NUM; $j++) {

After

for ($j=1; $j<=RANK_NUM; $j++) {
P189-C195 · PDF page 189 · code_ocr

Original source page 189

Before

found_new_solution($matcli, $j, $row['id'], $match_percent,

After

found_new_solution($match, $j, $row['id'], $match_percent,
P189-C196 · PDF page 189 · code_ocr

Original source page 189

Before

Srowf’NTWRK'], $row[’SATEL’],

After

$row['NTWRK'], $row['SATEL'],
P189-C197 · PDF page 189 · code_ocr

Original source page 189

Before

$row['PRFM'], $row['CHRT'], $row['Dl'], $row['02’],

After

$row['PRFM'], $row['CHRT'], $row['D1'], $row['O2'],
P189-C198 · PDF page 189 · code_ocr

Original source page 189

Before

$row['OM3'], $row['M4'], $row["NM5'],

After

$row['OM3'], $row['M4'], $row['NM5'],
P189-C199 · PDF page 189 · code_ocr

Original source page 189

Before

$row["N6'], Srow^NSV], $row['S8']);

After

$row['N6'], $row['NS7'], $row['S8']);
P189-C200 · PDF page 189 · code_ocr

Original source page 189

Before

print "<h2>Distance of 2 vectors</h2xbr>";

After

print "<h2>Distance of 2 vectors</h2><br>";
P189-C201 · PDF page 189 · code_ocr

Original source page 189

Before

trivial IR.

After

/***************************************trivial IR
P189-C202 · PDF page 189 · code_ocr

Original source page 189

Before

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

After

*****************************************/
P189-C203 · PDF page 189 · code_ocr

Original source page 189

Before

for ($i=l; $i<=RANK_NUM; $i++) {

After

for ($i=1; $i<=RANK_NUM; $i++) {
P190-C204 · PDF page 190 · code_ocr

Original source page 190

Before

array('id'=>"0",'percent->0,'DSP'=>"0",'OPTIC->"0",'MWAVE'=>"0",'NTWRK->"0",'SATE

After

array('id'=>"0",'percent'=>0,'DSP'=>"0",'OPTIC'=>"0",'MWAVE'=>"0",'NTWRK'=>"0",'SATE
P190-C205 · PDF page 190 · code_ocr

Original source page 190

Before

L'=>"0",'PRFM'=>"0",'CHRT'=>"0",’DT=>"0",'02->"0",'OM3'=>"0",'M4'=>"0",rNM5'=>"0",'

After

L'=>"0",'PRFM'=>"0",'CHRT'=>"0",'D1'=>"0",'O2'=>"0",'OM3'=>"0",'M4'=>"0",'NM5'=>"0",'
P190-C206 · PDF page 190 · code_ocr

Original source page 190

Before

Squery = "SELECT * FROM knowledge$knowledge_size";

After

$query = "SELECT * FROM knowledge$knowledge_size";
P190-C207 · PDF page 190 · code_ocr

Original source page 190

Before

Sresult = mysqlquery(Squery) or die ("Query failed");

After

$result = mysql_query($query) or die ("Query failed");
P190-C208 · PDF page 190 · code_ocr

Original source page 190

Before

while ($row = mysql_fetch_array($result, MYSQL ASSOC)) {

After

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
P190-C209 · PDF page 190 · code_ocr

Original source page 190

Before

Scase = build_case($row['DSP'], $row[’OPTIC'], $row['MWAVE'],

After

$case = build_case($row['DSP'], $row['OPTIC'], $row['MWAVE'],
P190-C210 · PDF page 190 · code_ocr

Original source page 190

Before

$match_percent = sumproduct($problem,Scase) / case size(Sproblem) /

After

$match_percent = sumproduct($problem,$case) / case_size($problem) /
P190-C211 · PDF page 190 · code_ocr

Original source page 190

Before

casesize(Scase);

After

case_size($case);
P190-C212 · PDF page 190 · code_ocr

Original source page 190

Before

for ($j=l; $j<=RANK_NUM; $j++) {

After

for ($j=1; $j<=RANK_NUM; $j++) {
P190-C213 · PDF page 190 · code_ocr

Original source page 190

Before

found_new_solution($match, $j, $row['id’], $match_percent,

After

found_new_solution($match, $j, $row['id'], $match_percent,
P190-C214 · PDF page 190 · code_ocr

Original source page 190

Before

$row[’DSP'], $row['OPTIC’], $row['MWAVE'],

After

$row['DSP'], $row['OPTIC'], $row['MWAVE'],
P190-C215 · PDF page 190 · code_ocr

Original source page 190

Before

Srow [*NT WRK'], $row['SATEL'],

After

$row['NTWRK'], $row['SATEL'],
P190-C216 · PDF page 190 · code_ocr

Original source page 190

Before

$row['PRFM’], $row[’CHRT'], $row['Dl'], $row['02'],

After

$row['PRFM'], $row['CHRT'], $row['D1'], $row['O2'],
P190-C217 · PDF page 190 · code_ocr

Original source page 190

Before

$row['N6'], $row[rNS7’], $row['S8']);

After

$row['N6'], $row['NS7'], $row['S8']);
P190-C218 · PDF page 190 · code_ocr

Original source page 190

Before

Sadvice3 = process ranked cases(Smatch);

After

$advice3 = process_ranked_cases($match);
P190-C219 · PDF page 190 · code_ocr

Original source page 190

Before

^* ******************************************************/

After

/*******************************************************/
P190-C220 · PDF page 190 · code_ocr

Original source page 190

Before

print "<h 1 >Problem</h 1 >";

After

print "<h1>Problem</h1>";
P191-C221 · PDF page 191 · code_ocr

Original source page 191

Before

print "<table border=\"l\">";

After

print "<table border=\"1\">";
P191-C222 · PDF page 191 · code_ocr

Original source page 191

Before

print "<hl>Advice Table</hl>";

After

print "<h1>Advice Table</h1>";
P191-C223 · PDF page 191 · code_ocr

Original source page 191

Before

show_advice_table($advicel, Sprereq, Sdifficulty);

After

show_advice_table($advice1, $prereq, $difficulty);
P191-C224 · PDF page 191 · code_ocr

Original source page 191

Before

show_advice_table($advice2, Sprereq, Sdifficulty);

After

show_advice_table($advice2, $prereq, $difficulty);
P191-C225 · PDF page 191 · code_ocr

Original source page 191

Before

show_advice_table($advice3, Sprereq, Sdifficulty);

After

show_advice_table($advice3, $prereq, $difficulty);
P191-C226 · PDF page 191 · code_ocr

Original source page 191

Before

array_multisort( Sadvicel ['RANKPCENT'], SORTNUMERIC,

After

array_multisort( $advice1['RANK_PCENT'], SORT_NUMERIC,
P191-C227 · PDF page 191 · code_ocr

Original source page 191

Before

array_multisort( $advice2['RANK_PCENT'], SORTNUMERIC,

After

array_multisort( $advice2['RANK_PCENT'], SORT_NUMERIC,
P191-C228 · PDF page 191 · code_ocr

Original source page 191

Before

SORT_DESC,$advice3['WEIGHT_SUM'],SORT_NUMERIC, SORTDESC);

After

SORT_DESC,$advice3['WEIGHT_SUM'],SORT_NUMERIC, SORT_DESC);
P191-C229 · PDF page 191 · code_ocr

Original source page 191

Before

array multisort( Sadvice3 ['RANK PCENT'], SORT NUMERIC,

After

array_multisort( $advice3['RANK_PCENT'], SORT_NUMERIC,
P191-C230 · PDF page 191 · code_ocr

Original source page 191

Before

/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

After

/*******************************************************/
P191-C231 · PDF page 191 · code_ocr

Original source page 191

Before

print "<h 1 >Problem</h 1 >";

After

print "<h1>Problem</h1>";
P191-C232 · PDF page 191 · code_ocr

Original source page 191

Before

print "ctable border=\" l\"><tr>";

After

print "<table border=\"1\"><tr>";
P191-C233 · PDF page 191 · code_ocr

Original source page 191

Before

showinterest(Sproblem);

After

show_interest($problem);
P192-C234 · PDF page 192 · code_ocr

Original source page 192

Before

print "<hl>Advice with Reasons</hl>";

After

print "<h1>Advice with Reasons</h1>";
P192-C235 · PDF page 192 · code_ocr

Original source page 192

Before

give_advice($advice 1, Sprereq, Sdifficulty, $problem['PRFM']);

After

give_advice($advice1, $prereq, $difficulty, $problem['PRFM']);
P192-C236 · PDF page 192 · code_ocr

Original source page 192

Before

give_advice($advice2, Sprereq, Sdifficulty, $problem['PRFM']);

After

give_advice($advice2, $prereq, $difficulty, $problem['PRFM']);
P192-C237 · PDF page 192 · code_ocr

Original source page 192

Before

give_advice($advice3, Sprereq, Sdifficulty, $problem['PRFM']);

After

give_advice($advice3, $prereq, $difficulty, $problem['PRFM']);
P192-C238 · PDF page 192 · code_ocr

Original source page 192

Before

include("append.inc ");

After

include("append.inc");
P197-C239 · PDF page 197 · ocr_punctuation_spacing

Original source page 197

Before

The course O2 has a rating of 98.413% (matched with cases in the past) and a subrating of 24.000% (based on frequency of occurrances in ranked cases ). This is recommended as the choice # 2.

After

The course O2 has a rating of 98.413% (matched with cases in the past) and a subrating of 24.000% (based on frequency of occurrances in ranked cases). This is recommended as the choice # 2.
appendix-b-literal-rows · PDF page 173 · literal native source data

Original source page 173

Structural or native-object change

{
  "id": "appendix-b-literal-rows",
  "type": "literal_data_block",
  "pdf_pages": [
    173,
    174
  ],
  "source_file": "appendix_b_rows.json",
  "source_row_count": 50,
  "printed_values_per_row": 16,
  "source_header_labels": 15,
  "interpretation": "Positional single-digit transcription only; column-label alignment unresolved.",
  "category": "literal native source data"
}
screen-page-194 · PDF page 194 · native screenshot-table reconstruction

Original source page 194

Structural or native-object change

{
  "id": "screen-page-194",
  "type": "replace_paragraphs_with_tables",
  "pdf_page": 194,
  "replace_paragraph_indices": [
    1,
    2,
    3
  ],
  "table_ids": [
    "appendix-E-problem-initial",
    "appendix-E-ranked-correlation",
    "appendix-E-ranked-distance-part-194"
  ],
  "source_file": "screen_native_tables.json",
  "preserve_paragraph_indices": [
    0
  ],
  "trailing_blocks": [],
  "category": "native screenshot-table reconstruction"
}
screen-page-195 · PDF page 195 · native screenshot-table reconstruction

Original source page 195

Structural or native-object change

{
  "id": "screen-page-195",
  "type": "replace_paragraphs_with_tables",
  "pdf_page": 195,
  "replace_paragraph_indices": [
    0,
    1,
    2,
    3,
    4,
    5,
    6
  ],
  "table_ids": [
    "appendix-E-ranked-distance-part-195",
    "appendix-E-ranked-trivial",
    "appendix-E-problem-195"
  ],
  "source_file": "screen_native_tables.json",
  "trailing_blocks": [
    [
      "heading",
      "Advice Table"
    ],
    [
      "heading",
      "Correlation of Interests (INT) and Difference of Means"
    ],
    [
      "text",
      "Description D1 O2 OM3 M4 NM5 N6 NS7 S8"
    ]
  ],
  "category": "native screenshot-table reconstruction"
}
screen-page-196 · PDF page 196 · native screenshot-table reconstruction

Original source page 196

Structural or native-object change

{
  "id": "screen-page-196",
  "type": "replace_paragraphs_with_tables",
  "pdf_page": 196,
  "replace_paragraph_indices": [
    0,
    1,
    2,
    3,
    4
  ],
  "table_ids": [
    "appendix-E-advice-correlation",
    "appendix-E-advice-distance",
    "appendix-E-advice-trivial",
    "appendix-E-problem-196"
  ],
  "source_file": "screen_native_tables.json",
  "trailing_blocks": [
    [
      "heading",
      "Advice with Reasons"
    ]
  ],
  "category": "native screenshot-table reconstruction"
}
binding-visible-text-200 · PDF page 200 · visible binding transcription

Original source page 200

Structural or native-object change

{
  "id": "binding-visible-text-200",
  "type": "binding_metadata",
  "pdf_page": 200,
  "source_file": "source_images/pdf-200-200dpi.png",
  "visible_text": [
    "3 1259 00782 2161"
  ],
  "retain_source_image": true,
  "interpretation": "Printed library identifier, not an inferred student ID.",
  "category": "visible binding transcription"
}
binding-visible-text-201 · PDF page 201 · visible binding transcription

Original source page 201

Structural or native-object change

{
  "id": "binding-visible-text-201",
  "type": "binding_metadata",
  "pdf_page": 201,
  "source_file": "source_images/pdf-201-200dpi.png",
  "visible_text": [
    "RMIT UNIVERSITY LIBRARY",
    "3 1259 00782 2161"
  ],
  "retain_source_image": true,
  "category": "visible binding transcription"
}