From 3e30489f86240cf5931f5f0dd1081256bc6ae42c Mon Sep 17 00:00:00 2001 From: Christian Risi <75698846+CnF-Gris@users.noreply.github.com> Date: Wed, 24 Sep 2025 14:44:53 +0200 Subject: [PATCH] Updated Queries for DB --- .../SQL_Queries/db_creation.sql | 38 +++++++++++++++++++ Scripts/DatasetMerging/SQL_Queries/query.sql | 10 +++++ 2 files changed, 48 insertions(+) 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 ?;