Datalog Instructions

datalog_instructions

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 3

DownloadDatalog Instructions
Open PDF In BrowserView PDF
Checking Data Integrity with Datalog (DLV)
General Instructions
1. To get started, install the DLV system on your computer.
2. Read the DLV tutorial. There are some notions that will not be easy to understand

at first. In particular, try and understand the following most important subparts:
– The Family Tree Example: Predicates, Variables, and Recursion
– DLV as a Deductive Database System: Comparison Operators
3. Download and extract the datalog_assignment.zip file. In the extracted zip file, you will
find 2 dlv files: family.dlv and publication.dlv.
4. You must answer the following problems in the dlv files by using facts that have been
given. Make sure you answer them using the correct rule name.
5. You are not able to add more facts other than the ones that have been given. However,
you can add additional rules to support your answer.
6. You can test your answer using the Python script dlvExecutor.py; execute it using
Python2.7. For example: python2.7 dlvExecutor.py
7. After your answers are ready (family.dlv and publication.dlv), you can submit them all at
once using submit.py; execute the script using Python 2.7 as well.
8. After submission, you can check the grading results in the Coursera web submission page.

Part 1: Family (family.dlv)

1. descendant: descendant(X,Y) holds if X is a descendant of Y
2. sibling: sibling(X ,Y) holds if X and Y are siblings. Hint: X and Y share a parent P.
3. Write the following integrity constraints (ICs) as “soft constraints” in denial form, i.e.,
write rules that yield variable bindings that serve as “constraint violation witnesses”:
a. icv_person_has_parent: Every person must have a parent. Hint: Look at the IC-rules
in the course handouts.

b. icv_person_has_father_mother: Every person has a father and a mother. Hint: Same
idea as in the Warm-Up. First, write a rule that yields the people for which the IC is
satisfied. Then write another rule that reports as an IC-violation those people who are
not in the answer to that first query.

Part 2: Publication (publication.dlv)
Consider “dirty” dataset store publication data in this following relation. The IC-checking
capabilities of a database provide a powerful way to detect inconsistencies.

This relational dataset has been transformed into Datalog format, which you can find in
publication.dlv.
1. Define the following ICs in denial form in Datalog syntax. You can assume that the table
is available as a Datalog predicate of the form publication(I, A, Y, T, J, V, N, F, L, P). Recall
that in Datalog, arbitrary (capitalized) names can be chosen as variables since it is the
argument position that determines which attribute/column is meant.
a. icv_pid_key: The publication identifier Pid is a key, i.e., if a row agrees with another
row on the key attribute Pid, then it also agrees on all other attributes (i.e., the “two”
rows are in fact one and the same). As usual, your rule should return the IC-violations.
b. icv_journal_publisher: Every journal has a single publisher. Like (FD-1), this is a
functional dependency. It is sometimes written as Journal → Publisher.
c. ncv_firstpage_lastpage: The last page Lp cannot be smaller than the first page Fp.
Note: This numerical constraint can be evaluated independently on each row.
2. Now consider that an additional table cites(P1, P2) is given, which records pairs of
publication P1, P2, where P1 is citing P2. Define the following IC in denial form:

a. icv_cited_publication: Every cited publication in CITES also occurs in PUBLICATION.
This is an inclusion dependency and is usually written in the form: CITES[Pid2] ⊆
PUBLICATION[Pid].

b. ncv_p1_greater_p2: If P1 cites P2, then P2’s year of publication cannot be greater
than P1’s year of publication.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
Linearized                      : No
Page Count                      : 3
PDF Version                     : 1.4
Title                           : datalog_instruction - QC
Author                          : Nikolaus Nova Parulian
Subject                         : 
Producer                        : Mac OS X 10.12.2 Quartz PDFContext
Creator                         : Word
Create Date                     : 2017:01:05 19:46:25Z
Modify Date                     : 2017:01:05 19:46:25Z
EXIF Metadata provided by EXIF.tools

Navigation menu