Update readme
This commit is contained in:
@@ -1,84 +0,0 @@
|
|||||||
# Hospital Leadership Graph Database
|
|
||||||
|
|
||||||
This repository contains the implementation for building a Neo4j graph database of Polish hospitals and their leadership structures.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
The project creates a graph database that links:
|
|
||||||
- **Hospitals** in Poland → **Directors** (`[:DYREKTOR]`)
|
|
||||||
- **Hospitals** → **Supervisory Boards** (`[:RADNIA]`)
|
|
||||||
- **Supervisory Board members** → **Political parties** (`[:CZŁONEK_PARTII]`)
|
|
||||||
- **Supervisory Board members** → **Regional councilors** (`[:RADNY]`) when the same person holds both roles
|
|
||||||
|
|
||||||
## Implementation
|
|
||||||
|
|
||||||
The implementation consists of:
|
|
||||||
|
|
||||||
1. **build_hospital_graph.py** - Main Python script that:
|
|
||||||
- Sets up Neo4j connection and schema
|
|
||||||
- Processes hospital data (using sample data as real API is not accessible)
|
|
||||||
- Processes councilor data (using sample data)
|
|
||||||
- Creates graph nodes and relationships
|
|
||||||
- Generates summary reports
|
|
||||||
|
|
||||||
2. **PLAN.md** - Detailed execution plan outlining the steps and methodology
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
- Docker (to run Neo4j)
|
|
||||||
- Python 3.6+
|
|
||||||
- Required packages: requests, beautifulsoup4, neo4j, pandas, python-levenshtein
|
|
||||||
|
|
||||||
### Setup
|
|
||||||
```bash
|
|
||||||
# Run Neo4j container
|
|
||||||
docker run -d --name neo4j-test -p 7687:7687 -p 7474:7474 -e NEO4J_AUTH=neo4j/password neo4j:latest
|
|
||||||
|
|
||||||
# Create virtual environment and install dependencies
|
|
||||||
python3 -m venv hospital_graph_env
|
|
||||||
source hospital_graph_env/bin/activate
|
|
||||||
pip install requests beautifulsoup4 neo4j pandas python-levenshtein
|
|
||||||
|
|
||||||
# Run the script
|
|
||||||
python build_hospital_graph.py
|
|
||||||
```
|
|
||||||
|
|
||||||
## Data Sources
|
|
||||||
|
|
||||||
1. **Hospital List**:
|
|
||||||
- Primary: NFZ registry or Ministry of Health (currently using sample data due to API unavailability)
|
|
||||||
- Fallback: Wikipedia's "Lista szpitali w Polsce"
|
|
||||||
|
|
||||||
2. **Hospital Staff**:
|
|
||||||
- Official hospital websites (often under "Zarząd" / "Rada Nadzorcza")
|
|
||||||
|
|
||||||
3. **Regional Councilors**:
|
|
||||||
- Biuletyn Informacji Publicznej (BIP) for each voivodeship
|
|
||||||
|
|
||||||
4. **Political Party Affiliation**:
|
|
||||||
- Same BIP pages or party registries
|
|
||||||
|
|
||||||
## Graph Schema
|
|
||||||
|
|
||||||
- **Hospital** node with properties: `name`, `city`, `website`, `nip`
|
|
||||||
- **Person** node with properties: `name`, `party`, `sourceUrls` (array)
|
|
||||||
- **Council** node with property: `region`
|
|
||||||
- Relationships:
|
|
||||||
- `[:DYREKTOR]` from Hospital to Person
|
|
||||||
- `[:RADNIA]` from Hospital to Person
|
|
||||||
- `[:RADNY]` from Person to Council (with `region` property)
|
|
||||||
- `[:CZŁONEK_PARTII]` from Person to Party (if applicable)
|
|
||||||
|
|
||||||
## Files Generated
|
|
||||||
|
|
||||||
1. **scrape_log.json** - Log of all scraping attempts
|
|
||||||
2. **overlap_report.csv** - Summary report of persons in multiple roles
|
|
||||||
3. **PLAN.md** - Detailed execution plan
|
|
||||||
|
|
||||||
## Validation
|
|
||||||
|
|
||||||
The script includes validation to ensure:
|
|
||||||
- Every hospital has at least one director relationship
|
|
||||||
- All person nodes have their source URLs properly recorded
|
|
||||||
- Graph schema constraints are enforced
|
|
||||||
Reference in New Issue
Block a user