| from __future__ import annotations |
|
|
| |
| |
| |
|
|
| from db.parsers.consitution.constitution_parser import ( |
| ConstitutionParser |
| ) |
|
|
| from db.graph_builders.constitution_graph_builder import ( |
| ConstitutionGraphBuilder |
| ) |
|
|
| |
| |
| |
|
|
| from db.parsers.bns.cleaner import ( |
| BNSTextCleaner |
| ) |
|
|
| from db.parsers.bns.bns_parser import ( |
| BNSParser |
| ) |
|
|
| from db.graph_builders.bns_graph_builder import ( |
| BNSGraphBuilder |
| ) |
|
|
| |
| |
| |
|
|
| from db.parsers.bnss.cleaner import ( |
| BNSSTextCleaner |
| ) |
|
|
| from db.parsers.bnss.bnss_parser import ( |
| BNSSParser |
| ) |
|
|
| from db.graph_builders.bnss_graph_builder import ( |
| BNSSGraphBuilder |
| ) |
|
|
| |
| |
| |
|
|
| from db.parsers.bsa.cleaner import ( |
| BSATextCleaner |
| ) |
|
|
| from db.parsers.bsa.bsa_parser import ( |
| BSAParser |
| ) |
|
|
| from db.graph_builders.bsa_graph_builder import ( |
| BSAGraphBuilder |
| ) |
|
|
| |
| |
| |
|
|
| from db.neo4j_store import ( |
| Neo4jStore |
| ) |
|
|
| class AllFilesLoader: |
| |
| |
| |
| @staticmethod |
| def load_constitution( |
| store: Neo4jStore |
| ): |
|
|
| print( |
| "\nLoading Constitution..." |
| ) |
|
|
| with open( |
| "db/pdfs/constitution.txt", |
| "r", |
| encoding="utf8" |
| ) as f: |
|
|
| text = f.read() |
|
|
| parser = ConstitutionParser() |
|
|
| constitution = parser.parse( |
| text |
| ) |
|
|
| builder = ( |
| ConstitutionGraphBuilder( |
| store |
| ) |
| ) |
|
|
| builder.build( |
| constitution |
| ) |
|
|
| print( |
| "Constitution loaded" |
| ) |
|
|
|
|
| |
| |
| |
| @staticmethod |
| def load_bns( |
| store: Neo4jStore |
| ): |
|
|
| print( |
| "\nLoading BNS..." |
| ) |
|
|
| with open( |
| "db/pdfs/bns.txt", |
| "r", |
| encoding="utf8" |
| ) as f: |
|
|
| text = f.read() |
|
|
| cleaner = BNSTextCleaner() |
|
|
| text = cleaner.clean( |
| text |
| ) |
|
|
| parser = BNSParser() |
|
|
| bns = parser.parse( |
| text |
| ) |
|
|
| builder = ( |
| BNSGraphBuilder( |
| store |
| ) |
| ) |
|
|
| builder.build( |
| bns |
| ) |
|
|
| print( |
| "BNS loaded" |
| ) |
|
|
|
|
| |
| |
| |
| @staticmethod |
| def load_bnss( |
| store: Neo4jStore |
| ): |
|
|
| print( |
| "\nLoading BNSS..." |
| ) |
|
|
| with open( |
| "db/pdfs/bnss.txt", |
| "r", |
| encoding="utf8" |
| ) as f: |
|
|
| text = f.read() |
|
|
| cleaner = ( |
| BNSSTextCleaner() |
| ) |
|
|
| text = cleaner.clean( |
| text |
| ) |
|
|
| parser = BNSSParser() |
|
|
| bnss = parser.parse( |
| text |
| ) |
|
|
| builder = ( |
| BNSSGraphBuilder( |
| store |
| ) |
| ) |
|
|
| builder.build( |
| bnss |
| ) |
|
|
| print( |
| "BNSS loaded" |
| ) |
|
|
|
|
| |
| |
| |
| @staticmethod |
| def load_bsa( |
| store: Neo4jStore |
| ): |
|
|
| print( |
| "\nLoading BSA..." |
| ) |
|
|
| with open( |
| "db/pdfs/bsa.txt", |
| "r", |
| encoding="utf8" |
| ) as f: |
|
|
| text = f.read() |
|
|
| cleaner = BSATextCleaner() |
|
|
| text = cleaner.clean( |
| text |
| ) |
|
|
| parser = BSAParser() |
|
|
| bsa = parser.parse( |
| text |
| ) |
|
|
| builder = ( |
| BSAGraphBuilder( |
| store |
| ) |
| ) |
|
|
| builder.build( |
| bsa |
| ) |
|
|
| print( |
| "BSA loaded" |
| ) |
|
|
|
|
| |
| |
| |
|
|
| def main(self): |
|
|
| store = Neo4jStore( |
| uri="bolt://localhost:7687", |
| username="neo4j", |
| password="test12345" |
| ) |
|
|
| |
| |
| |
|
|
| store.create_constraints() |
|
|
| |
| |
| |
|
|
| answer = input( |
| "\nClear existing graph? (y/n): " |
| ) |
|
|
| if answer.lower() == "y": |
|
|
| store.clear_graph() |
|
|
| print( |
| "Graph cleared" |
| ) |
|
|
| store.create_constraints() |
|
|
| |
| |
| |
|
|
| try: |
| self.load_constitution(store) |
| except Exception as e: |
| print(f"Constitution failed: {e}") |
|
|
| try: |
| self.load_bns(store) |
| except Exception as e: |
| print(f"BNS failed: {e}") |
|
|
| try: |
| self.load_bnss(store) |
| except Exception as e: |
| print(f"BNSS failed: {e}") |
|
|
| try: |
| self.load_bsa(store) |
| except Exception as e: |
| print(f"BSA failed: {e}") |
|
|
| |
| |
| |
|
|
| print( |
| "\n=================================" |
| ) |
|
|
| print( |
| "LEGAL KNOWLEDGE GRAPH CREATED" |
| ) |
|
|
| print( |
| "=================================\n" |
| ) |
|
|
| print( |
| "Nodes:", |
| store.count_nodes() |
| ) |
|
|
| print( |
| "Relationships:", |
| store.count_relationships() |
| ) |
|
|
| store.close() |
|
|
| print( |
| "\nDone." |
| ) |
|
|
|
|
| if __name__ == "__main__": |
| load=AllFilesLoader() |
| load.main() |