Neo4j代写|COMP5338: Advanced Data Models Neo4j Assignment


1 Introduction

In this assignment, you are asked to build a graph representing units offered in a university
and their relationships. You also need to design a few queries to show that the graph can
be used to check degree and unit rules. There is no given data set; you should come up
with your own data to demonstrate your model and query. You are encouraged to use
degrees and units offered in this university as sample data but you can use any unit or

2 Problem Domain

You are asked to model some hypothetical degrees and units offered in a single School.
Each degree has a code, a name, and completion requirements. For simplicity, we assume
a degree’s completion requirements only include rules for total credit points and credit
points at each year level. Following the naming convention in our university, the first year
units are referred to as 1000 level units, second year units as 2000 level unit, and third
year units as 3000 level units. Below are sample degree requirements for a three year
degree. You can design your own degree requirements that are similar to it.

• Complete at least 144cp comprising:

– at least 48cp at 1000 level;
– at least 36cp at 2000 level;
– at least 36cp at 3000 level; and
– the rest at any level.

Each unit has a unique code and a descriptive title. It is designed for a particular year
level and has a specific number of credit points. Units may have different credit points. A
typical unit in our school has 6 credit points. We also have some units that have 12 credit
points or 2 credit points.

Some units have a list of prohibited units. Students are not allowed to enrol in a unit
if they have completed any of the prohibited units in the corresponding list.

Many units have prerequisite units. Students need to satisfy the prerequisite rule to be
enrolled in a unit. The prerequisite rule is usually given as a Boolean expression. Most
units require a single prerequisite unit and have a list of similar units as prerequisites.
Below are details of a sample unit COMP3027:

code: “COMP3027”,
title: “Algorithm Design”,
cp: 6,
level: 3000,
prerequisites: “COMP2123” OR “INFO1105”
prohibited: “COMP2007” OR “COMP2907″ OR COMP3927”

The unit COMP3027 requires one unit as prerequisite, which could be either “COMP2123”
or ”INFO1105”. The unit also has a prohibition list containing three units. A student
cannot enrol in COMP3027 if they have completed any of “COMP2007”, “COMP2907″, or
COMP3927” before.

Some units require more than one unit as prerequisites. This rule is expressed using
AND operators. For instance, a unit with the prerequisites expression (“COMP2017” OR
“COMP2129”) AND (“COMP2123” OR COMP2823) requires a student to complete one unit
from the list [“COMP2017”, “COMP2129”] and another unit from the list [“COMP2123”,
“COMP2823”] before enrolling in this unit. There could be units with more complex pre
requisite Boolean expressions but your graph only needs to model the following two basic

  • u1 OR u2 OR u3…
  • (u1 OR u2 OR u3 …) AND (u4 OR u5) AND …

3 Graph Requirements

Your graph should model

  • at least one degree (three or four year) with a set of completion requirements;
  • enough units at 1000, 2000, and 3000 or above level to satisfy that degree’s comple
    tion requirements (there should be at least three or four units per level);
  • some units with no prerequisites;
  • some units with a list of prohibition units;
  • some units with a list of prerequisite units linked by OR operators;
  • some units with two or more prerequisite units linked by OR and AND operators;
  • a chain of units linked by two or three prerequisite relationships.

An example chain with three prerequisite relationships is as follows: COMP3520 has
COMP21017 as a prerequisite, which in turn has INFO1103 as a prerequisite, which in
turn has INFO1110 as a prerequisite.