Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

loc-id-book-index.sql 2.9 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
  1. --- #step Extract instance IRIs
  2. DROP MATERIALIZED VIEW IF EXISTS locid.instance_entity CASCADE;
  3. CREATE MATERIALIZED VIEW locid.instance_entity AS
  4. SELECT sn.node_id AS instance_id, subject_id AS instance_uuid,
  5. sn.node_iri AS instance_iri
  6. FROM locid.instance_triples
  7. JOIN locid.nodes sn ON (subject_id = sn.node_uuid)
  8. WHERE pred_id = locid.common_node('type')
  9. AND object_id = locid.common_node('instance');
  10. CREATE INDEX instance_inst_id_idx ON locid.instance_entity (instance_id);
  11. CREATE INDEX instance_inst_uuid_idx ON locid.instance_entity (instance_uuid);
  12. --- #step Analyze instance IRIs
  13. --- #notx
  14. VACUUM ANALYZE locid.instance_entity;
  15. --- #step Extract work IRIs
  16. DROP MATERIALIZED VIEW IF EXISTS locid.work_entity CASCADE;
  17. CREATE MATERIALIZED VIEW locid.work_entity AS
  18. SELECT sn.node_id AS work_id, subject_id AS work_uuid,
  19. sn.node_iri AS work_iri
  20. FROM locid.work_triples
  21. JOIN locid.nodes sn ON (subject_id = sn.node_uuid)
  22. WHERE pred_id = locid.common_node('type')
  23. AND object_id = locid.common_node('work');
  24. CREATE INDEX work_inst_id_idx ON locid.work_entity (work_id);
  25. CREATE INDEX work_inst_uuid_idx ON locid.work_entity (work_uuid);
  26. --- #step Analyze work IRIs
  27. --- #notx
  28. VACUUM ANALYZE locid.work_entity;
  29. --- #step Extract instance/work relationships
  30. DROP MATERIALIZED VIEW IF EXISTS locid.instance_work CASCADE;
  31. CREATE MATERIALIZED VIEW locid.instance_work AS
  32. SELECT DISTINCT isn.node_id as instance_id, isn.node_uuid as instance_uuid,
  33. wsn.node_id AS work_id, wsn.node_uuid AS work_uuid
  34. FROM locid.instance_triples it
  35. JOIN locid.nodes isn ON (isn.node_uuid = it.subject_id)
  36. JOIN locid.nodes wsn ON (wsn.node_uuid = it.object_id)
  37. JOIN locid.work_entity we ON (it.object_id = we.work_uuid);
  38. CREATE INDEX instance_work_instance_idx ON locid.instance_work (instance_uuid);
  39. CREATE INDEX instance_work_work_idx ON locid.instance_work (work_uuid);
  40. --- #step Index instance ISBNs
  41. DROP MATERIALIZED VIEW IF EXISTS locid.instance_isbn CASCADE;
  42. CREATE MATERIALIZED VIEW locid.instance_isbn AS
  43. SELECT tt.subject_id AS subject_id,
  44. il.lit_value AS raw_isbn
  45. FROM locid.instance_triples tt
  46. JOIN locid.instance_literals il USING (subject_id)
  47. WHERE
  48. -- subject is of type ISBN
  49. tt.pred_id = locid.common_node('type')
  50. AND tt.object_id = locid.common_node('isbn')
  51. -- we have a literal value
  52. AND il.pred_id = locid.common_node('value');
  53. CREATE INDEX instance_isbn_node_idx ON locid.instance_isbn (subject_id);
  54. ANALYZE locid.instance_isbn;
  55. --- #step Index work ISBNs
  56. DROP MATERIALIZED VIEW IF EXISTS locid.work_isbn CASCADE;
  57. CREATE MATERIALIZED VIEW locid.work_isbn AS
  58. SELECT tt.subject_id AS subject_id,
  59. wl.lit_value AS raw_isbn
  60. FROM locid.work_triples tt
  61. JOIN locid.work_literals wl USING (subject_id)
  62. WHERE
  63. -- subject is of type ISBN
  64. tt.pred_id = locid.common_node('type')
  65. AND tt.object_id = locid.common_node('isbn')
  66. -- we have a literal value
  67. AND wl.pred_id = locid.common_node('value');
  68. CREATE INDEX work_isbn_node_idx ON locid.work_isbn (subject_id);
  69. ANALYZE locid.work_isbn;
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...