Moved all db queries file in their own folder
This commit is contained in:
103
Scripts/DataBaseQueries/db_creation.sql
Normal file
103
Scripts/DataBaseQueries/db_creation.sql
Normal file
@@ -0,0 +1,103 @@
|
||||
CREATE TABLE IF NOT EXISTS Movies (
|
||||
MovieID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
MovieURI TEXT UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS WikiPageIDs (
|
||||
MovieID INTEGER PRIMARY KEY,
|
||||
PageID INTEGER UNIQUE NOT NULL,
|
||||
FOREIGN KEY(MovieID) REFERENCES Movies(MovieID)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS WikipediaAbstracts (
|
||||
MovieID INTEGER PRIMARY KEY,
|
||||
Abstract TEXT NOT NULL,
|
||||
FOREIGN KEY(MovieID) REFERENCES Movies(MovieID)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Origins (
|
||||
OriginID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
OriginName TEXT UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Subjects (
|
||||
SubjectID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
SubjectURI TEXT UNIQUE NOT NULL,
|
||||
OriginID BIGINT NOT NULL,
|
||||
FOREIGN KEY(OriginID) REFERENCES Origins(OriginID)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Relationships (
|
||||
RelationshipID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
RelationshipURI TEXT UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Objects (
|
||||
ObjectID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
ObjectURI TEXT UNIQUE NOT NULL,
|
||||
OriginID BIGINT NOT NULL,
|
||||
FOREIGN KEY(OriginID) REFERENCES Origins(OriginID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS RDFs (
|
||||
RDF_ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
MovieID INTEGER NOT NULL,
|
||||
SubjectID INTEGER NOT NULL,
|
||||
RelationshipID INTEGER NOT NULL,
|
||||
ObjectID INTEGER NOT NULL,
|
||||
UNIQUE(SubjectID, RelationshipID, ObjectID),
|
||||
FOREIGN KEY(MovieID) REFERENCES Movies(MovieID),
|
||||
FOREIGN KEY(SubjectID) REFERENCES Subjects(SubjectID),
|
||||
FOREIGN KEY(RelationshipID) REFERENCES Relationships(RelationshipID),
|
||||
FOREIGN KEY(ObjectID) REFERENCES Objects(ObjectID)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_rdf_movie_id ON RDFs(MovieID);
|
||||
CREATE INDEX IF NOT EXISTS idx_rdf_subject_id ON RDFs(SubjectID);
|
||||
CREATE INDEX IF NOT EXISTS idx_rdf_relationship_id ON RDFs(RelationshipID);
|
||||
CREATE INDEX IF NOT EXISTS idx_rdf_object_id ON RDFs(ObjectID);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Abbreviations (
|
||||
AbbreviationID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
URI TEXT UNIQUE NOT NULL,
|
||||
Abbreviation TEXT UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Subjects_Abbreviations (
|
||||
SubjectID INTEGER NOT NULL,
|
||||
AbbreviationID INTEGER NOT NULL,
|
||||
PRIMARY KEY(SubjectID, AbbreviationID),
|
||||
FOREIGN KEY(SubjectID) REFERENCES Subjects(SubjectID),
|
||||
FOREIGN KEY(AbbreviationID) REFERENCES Abbreviations(AbbreviationID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Relationships_Abbreviations (
|
||||
RelationshipID INTEGER NOT NULL,
|
||||
AbbreviationID INTEGER NOT NULL,
|
||||
PRIMARY KEY(RelationshipID, AbbreviationID),
|
||||
FOREIGN KEY(RelationshipID) REFERENCES Relationships(RelationshipID),
|
||||
FOREIGN KEY(AbbreviationID) REFERENCES Abbreviations(AbbreviationID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Objects_Abbreviations (
|
||||
ObjectID INTEGER NOT NULL,
|
||||
AbbreviationID INTEGER NOT NULL,
|
||||
PRIMARY KEY(ObjectID, AbbreviationID),
|
||||
FOREIGN KEY(ObjectID) REFERENCES Objects(ObjectID),
|
||||
FOREIGN KEY(AbbreviationID) REFERENCES Abbreviations(AbbreviationID)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_sub_abbr_sub_id ON Subjects_Abbreviations(SubjectID);
|
||||
CREATE INDEX IF NOT EXISTS idx_sub_abbr_abbr_id ON Subjects_Abbreviations(AbbreviationID);
|
||||
CREATE INDEX IF NOT EXISTS idx_rel_abbr_rel_id ON Relationships_Abbreviations(RelationshipID);
|
||||
CREATE INDEX IF NOT EXISTS idx_rel_abbr_abbr_id ON Relationships_Abbreviations(AbbreviationID);
|
||||
CREATE INDEX IF NOT EXISTS idx_obj_abbr_obj_id ON Objects_Abbreviations(ObjectID);
|
||||
CREATE INDEX IF NOT EXISTS idx_obj_abbr_abbr_id ON Objects_Abbreviations(AbbreviationID);
|
||||
|
||||
|
||||
54
Scripts/DataBaseQueries/query.sql
Normal file
54
Scripts/DataBaseQueries/query.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
-- Insert MovieURI into Movies ; MovieID is auto incremental
|
||||
INSERT INTO Movies (MovieURI) VALUES (?);
|
||||
|
||||
-- Get MovieID where MovieURI equal given value
|
||||
SELECT MovieID FROM Movies WHERE MovieURI = ?;
|
||||
|
||||
-- SetPageId
|
||||
INSERT INTO WikiPageIDs (MovieID, PageID) VALUES (?,?);
|
||||
|
||||
-- Get MovieId by PageID ... ( to create WikipediaAbstract)
|
||||
SELECT MovieID FROM WikiPageIDs WHERE PageID = ?;
|
||||
|
||||
-- SetAbstract ...
|
||||
|
||||
INSERT INTO WikipediaAbstracts (MovieID, Abstract) VALUES (?,?);
|
||||
|
||||
|
||||
-- SetOrigin
|
||||
---
|
||||
INSERT INTO Origins (OriginName) VALUES ("dataset.csv"),("reverse.csv");
|
||||
|
||||
-- GetOrigin
|
||||
SELECT OriginID FROM Origins WHERE OriginName = ?;
|
||||
|
||||
-- Subject, Relationship, Object, RDF
|
||||
INSERT INTO Subjects (SubjectURI, OriginID) VALUES (?,?);
|
||||
INSERT INTO Relationships (RelationshipURI) VALUES (?);
|
||||
INSERT INTO Objects (ObjectURI, OriginID) VALUES (?,?);
|
||||
|
||||
SELECT SubjectID FROM Subjects WHERE SubjectURI = ?;
|
||||
SELECT RelationshipID FROM Relationships WHERE RelationshipURI = ?;
|
||||
SELECT ObjectID FROM Objects WHERE ObjectURI = ?;
|
||||
|
||||
|
||||
INSERT INTO RDFs (MovieID, SubjectID, RelationshipID, ObjectID) VALUES (?,?,?,?);
|
||||
|
||||
-- Prefixes
|
||||
INSERT INTO Abbreviations(URI, Abbreviation) VALUES (?,?);
|
||||
INSERT INTO Objects_Abbreviations(ObjectID, AbrreviationID) VALUES (?,?);
|
||||
INSERT INTO Relationships_Abbreviations(RelationshipID, AbbreviationID) VALUES (?,?);
|
||||
INSERT INTO Subjects_Abbreviations(SubjectID, AbbreviationID) VALUES (?,?);
|
||||
|
||||
-- Please be sure it is a URI before running this query
|
||||
-- and take at least until the domain and the first path part
|
||||
SELECT AbbreviationID FROM Abbreviations WHERE URI LIKE ?;
|
||||
|
||||
-- Query to retrieve data
|
||||
SELECT MovieID, GROUP_CONCAT('<SOT>' || '<SUB>' || SubjectURI || '<REL>' || RelationshipURI || '<OBJ>' || ObjectURI || '<EOT>', '') as RDF_String, Abstract
|
||||
FROM RDFs
|
||||
INNER JOIN Subjects USING (SubjectID)
|
||||
INNER JOIN Relationships USING (RelationshipID)
|
||||
INNER JOIN Objects USING (ObjectID)
|
||||
INNER JOIN WikipediaAbstracts USING (MovieID)
|
||||
GROUP BY MovieID;
|
||||
Reference in New Issue
Block a user