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;