diff --git a/Scripts/DatasetMerging/SQL_Queries/db_creation.sql b/Scripts/DatasetMerging/SQL_Queries/db_creation.sql index e3c2679..ca06e40 100644 --- a/Scripts/DatasetMerging/SQL_Queries/db_creation.sql +++ b/Scripts/DatasetMerging/SQL_Queries/db_creation.sql @@ -63,3 +63,41 @@ 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); + + diff --git a/Scripts/DatasetMerging/SQL_Queries/query.sql b/Scripts/DatasetMerging/SQL_Queries/query.sql index c2a0450..150afce 100644 --- a/Scripts/DatasetMerging/SQL_Queries/query.sql +++ b/Scripts/DatasetMerging/SQL_Queries/query.sql @@ -33,3 +33,13 @@ 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 ?;