From a6760cd52deaed8e231a0b0e058d683adb5a2fe5 Mon Sep 17 00:00:00 2001 From: Christian Risi <75698846+CnF-Gris@users.noreply.github.com> Date: Wed, 24 Sep 2025 19:28:55 +0200 Subject: [PATCH] Updated SQL Queries to support parsing in DB --- Scripts/DataBaseQueries/db_creation.sql | 45 +++++++++++++++++++++++++ Scripts/DataBaseQueries/query.sql | 9 ++--- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/Scripts/DataBaseQueries/db_creation.sql b/Scripts/DataBaseQueries/db_creation.sql index ca06e40..3af4521 100644 --- a/Scripts/DataBaseQueries/db_creation.sql +++ b/Scripts/DataBaseQueries/db_creation.sql @@ -100,4 +100,49 @@ CREATE INDEX IF NOT EXISTS idx_rel_abbr_abbr_id ON Relationships_Abbreviations(A 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); +-- Views +-- Subjects +CREATE VIEW IF NOT EXISTS ParsedSubjects +AS +SELECT + SubjectID, + CASE WHEN Abbreviation IS NULL + THEN SubjectURI + ELSE Abbreviation || ':' || replace(SubjectURI, URI, '') END + AS SubjectURI +FROM Subjects + LEFT JOIN Subjects_Abbreviations USING (SubjectID) + LEFT JOIN Abbreviations USING (AbbreviationID); + +-- Relationships +CREATE VIEW IF NOT EXISTS ParsedRelationships +AS +SELECT + RelationshipID, + CASE WHEN Abbreviation IS NULL + THEN RelationshipURI + ELSE Abbreviation || ':' || replace(RelationshipURI, URI, '') END + AS RelationshipURI +FROM Relationships + LEFT JOIN Relationships_Abbreviations USING (RelationshipID) + LEFT JOIN Abbreviations USING (AbbreviationID) + +-- Objects +CREATE VIEW IF NOT EXISTS ParsedObjects +AS +SELECT + ObjectID, + CASE WHEN Abbreviation IS NULL + THEN ObjectURI + ELSE Abbreviation || ':' || replace(ObjectURI, URI, '') END + AS ObjectURI +FROM Objects + LEFT JOIN Objects_Abbreviations USING (ObjectID) + LEFT JOIN Abbreviations USING (AbbreviationID); + + + + + + diff --git a/Scripts/DataBaseQueries/query.sql b/Scripts/DataBaseQueries/query.sql index 2dc7f2a..890e38d 100644 --- a/Scripts/DataBaseQueries/query.sql +++ b/Scripts/DataBaseQueries/query.sql @@ -36,7 +36,7 @@ INSERT INTO RDFs (MovieID, SubjectID, RelationshipID, ObjectID) VALUES (?,?,?,? -- Prefixes INSERT INTO Abbreviations(URI, Abbreviation) VALUES (?,?); -INSERT INTO Objects_Abbreviations(ObjectID, AbrreviationID) VALUES (?,?); +INSERT INTO Objects_Abbreviations(ObjectID, AbbreviationID) VALUES (?,?); INSERT INTO Relationships_Abbreviations(RelationshipID, AbbreviationID) VALUES (?,?); INSERT INTO Subjects_Abbreviations(SubjectID, AbbreviationID) VALUES (?,?); @@ -47,8 +47,9 @@ SELECT AbbreviationID FROM Abbreviations WHERE URI LIKE ?; -- Query to retrieve data SELECT MovieID, GROUP_CONCAT('' || '' || SubjectURI || '' || RelationshipURI || '' || ObjectURI || '', '') as RDF_String, Abstract FROM RDFs -INNER JOIN Subjects USING (SubjectID) -INNER JOIN Relationships USING (RelationshipID) -INNER JOIN Objects USING (ObjectID) +INNER JOIN ParsedSubjects USING (SubjectID) +INNER JOIN ParsedRelationships USING (RelationshipID) +INNER JOIN ParsedObjects USING (ObjectID) INNER JOIN WikipediaAbstracts USING (MovieID) + -- insert WHERE here GROUP BY MovieID;