From 7a3153b02528b94aff4fe03e4aaeb32ac24f97e6 Mon Sep 17 00:00:00 2001 From: "qwen.ai[bot]" Date: Mon, 4 May 2026 19:42:03 +0000 Subject: [PATCH] update branch --- .gitignore | 93 +++++++++++++++++++++++++++-------------- README.md | 119 +++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 151 insertions(+), 61 deletions(-) diff --git a/.gitignore b/.gitignore index d8d5a4b..1b8e417 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,8 @@ -``` -# Python -__pycache__/ -*.pyc -*.pyo -*.pyd -.Python -env/ -venv/ -.venv/ -.eggs/ -.egg-info/ -dist/ -build/ -*.egg-info/ - -# Logs +```gitignore +# Logs and temp files *.log +*.tmp +*.swp # Environment .env @@ -25,28 +12,74 @@ build/ # Editors .vscode/ .idea/ -*.swp -*.swo -*.tmp -# OS +# Dependencies +node_modules/ +.venv/ +venv/ +__pycache__/ +.mypy_cache/ +.pytest_cache/ +dist/ +build/ +target/ +.gradle/ + +# OS generated files .DS_Store Thumbs.db -# Coverage -.coverage +# Coverage reports coverage/ htmlcov/ +.coverage -# Testing -.pytest_cache/ -.mypy_cache/ -.tox/ +# Python specific +*.pyc +*.pyo +*.pyd +*.so +*.egg-info/ -# Build systems -target/ -.gradle/ +# Java specific *.class *.jar *.war + +# JavaScript specific +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# C/C++ specific +*.o +*.a +*.obj +*.out +*.dll +*.so + +# Compressed files +*.zip +*.gz +*.tar +*.tgz +*.bz2 +*.xz +*.7z +*.rar +*.zst +*.lz4 +*.lzh +*.cab +*.arj +*.rpm +*.deb +*.Z +*.lz +*.lzo +*.tar.gz +*.tar.bz2 +*.tar.xz +*.tar.zst ``` \ No newline at end of file diff --git a/README.md b/README.md index 4558007..fefe0fa 100644 --- a/README.md +++ b/README.md @@ -7,27 +7,35 @@ > *"Sitasi adalah percakapan. AI seharusnya membaca nada dan jedanya, bukan hanya menghitung volume suaranya."* -**Semantic Echo** melampaui analisis sitasi tradisional yang hanya menghitung *edge* (siapa mengutip siapa). Proyek ini menggunakan **Graph Neural Networks (GNN)** untuk mengukur **kedalaman pengaruh** (`influence depth`): Seberapa banyak "DNA konseptual" *Paper A* mengubah vektor penelitian *Paper B*. +## πŸ“– Deskripsi -### 🎯 Mengapa Ini Penting? -Metrik seperti H-index atau jumlah sitasi tidak bisa membedakan antara kutipan "sekilas" (*perfunctory citation*) dengan kutipan yang menunjukkan perubahan arah riset fundamental. Dengan merepresentasikan makalah sebagai *node* dalam graf heterogen yang kaya fitur, kita bisa mengukur *semantic influence* yang sebenarnya. +**Semantic Echo** adalah framework analisis sitasi berbasis **Graph Neural Networks (GNN)** yang mengukur **kedalaman pengaruh konseptual** (`influence depth`) antar karya ilmiah. Berbeda dengan metrik tradisional seperti H-index atau jumlah sitasi yang hanya menghitung kuantitas, Semantic Echo menganalisis **kualitas dan kedalaman pengaruh** dengan cara membandingkan perubahan vektor representasi makalah sebelum dan setelah sitasi terjadi. + +### 🎯 Masalah yang Diselesaikan + +Metrik sitasi konvensional tidak dapat membedakan antara: +- **Kutipan perfunctory** (sekilas/formalitas) +- **Kutipan transformatif** (yang mengubah arah penelitian fundamental) + +Semantic Echo menjawab pertanyaan: *"Seberapa banyak 'DNA konseptual' Paper A mengubah vektor penelitian Paper B?"* ### 🧠 Pendekatan Teknis -1. **Konstruksi Graf Heterogen Dinamis**: - - Node: Makalah, Penulis, Jurnal, Institusi, Kata Kunci (Keyphrase). - - Edge: Sitasi, Co-Authorship, Publikasi di, Afiliasi, Kesamaan Semantik. - - Model ini mengadopsi pendekatan serupa dengan **Heterogeneous Dynamical Graph Neural Network (SI-HDGNN)** untuk memodelkan graf akademik yang berbobot, terarah, dan teratribusi. -2. **Arsitektur GNN**: - - Menggunakan **GraphSAGE** atau **GAT (Graph Attention Networks)** untuk agregasi tetangga. - - **Node Features**: *Embedding* teks dari abstrak (menggunakan **SciBERT**), fitur struktural (degree centrality), dan fitur temporal (tahun publikasi). - - Tujuannya adalah menghasilkan *vectorized representations* untuk setiap node yang dapat di-train untuk memprediksi pengaruh. +1. **Konstruksi Graf Heterogen Dinamis**: + - **Node**: Makalah, Penulis, Jurnal, Institusi, Kata Kunci (Keyphrase) + - **Edge**: Sitasi, Co-Authorship, Publikasi di, Afiliasi, Kesamaan Semantik + - Mengadopsi pendekatan **Heterogeneous Dynamical Graph Neural Network (SI-HDGNN)** untuk graf akademik berbobot, terarah, dan teratribusi -3. **Metrik "Semantic Echo"**: - - Bukan hanya skor prediksi link, tetapi **cosine similarity** antara vektor *Paper A* pada waktu `t` dengan vektor *Paper B* pada waktu `t+n`. - - Mengukur perubahan *embedding space* yang disebabkan oleh kemunculan suatu karya. +2. **Arsitektur GNN**: + - Menggunakan **GraphSAGE** atau **GAT (Graph Attention Networks)** untuk agregasi tetangga + - **Node Features**: Embedding teks dari abstrak (menggunakan **SciBERT**), fitur struktural (degree centrality), dan fitur temporal (tahun publikasi) + - Menghasilkan *vectorized representations* untuk setiap node yang dapat di-train -### πŸ“¦ Instalasi & Penggunaan Cepat +3. **Metrik "Semantic Echo"**: + - Mengukur **cosine similarity** antara vektor Paper A pada waktu `t` dengan vektor Paper B pada waktu `t+n` + - Bukan sekadar prediksi link, tetapi **perubahan embedding space** yang disebabkan oleh kemunculan suatu karya + +## πŸš€ Instalasi Cepat ```bash # 1. Clone repositori @@ -38,11 +46,15 @@ cd citation-graph-neural-embedding python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate -# 3. Instal dependensi +# 3. Instal semua dependensi pip install -r requirements.txt + +# 4. Instal package untuk pengembangan (opsional) +pip install -e . ``` -**Contoh penggunaan dasar:** +## πŸ’» Penggunaan Dasar + ```python from semantic_echo import CitationGraph, InfluencePredictor @@ -58,20 +70,65 @@ score = predictor.echo_score(source_doi="10.xxx/paper1", target_doi="10.xxx/pape print(f"Kedalaman pengaruh: {score:.4f}") ``` -### πŸ“š Dataset Target -- **OpenAlex**: API terbuka dengan data sitasi lengkap. -- **arXiv + Semantic Scholar**: Untuk data teks dan graf. -- **DBLP**: Data publikasi ilmu komputer. +## πŸ“¦ Struktur Repositori -### 🚧 Roadmap -- [ ] Implementasi dasar GCN/GAT dengan PyTorch Geometric. -- [ ] Integrasi SciBERT untuk *node features*. -- [ ] Skrip *scraper* untuk OpenAlex. -- [ ] Evaluasi terhadap metrik "Disruption Index" sebagai baseline. +``` +citation-graph-neural-embedding/ +β”œβ”€β”€ semantic_echo/ # Source code utama +β”‚ β”œβ”€β”€ __init__.py # Inisialisasi package +β”‚ β”œβ”€β”€ data_loader.py # Loader dataset (OpenAlex, arXiv, DBLP) +β”‚ β”œβ”€β”€ embeddings.py # Pembangkitan embedding (SciBERT, dll.) +β”‚ β”œβ”€β”€ graph.py # Konstruksi dan manipulasi graf +β”‚ β”œβ”€β”€ models.py # Model GNN (GraphSAGE, GAT, dll.) +β”‚ └── metrics.py # Metrik evaluasi (Echo Score, dll.) +β”œβ”€β”€ tests/ # Unit test dan integration test +β”œβ”€β”€ configs/ # File konfigurasi YAML +β”œβ”€β”€ examples/ # Contoh penggunaan dan notebook +β”œβ”€β”€ utils/ # Fungsi utilitas tambahan +β”œβ”€β”€ requirements.txt # Daftar dependensi Python +β”œβ”€β”€ setup.py # Setup script untuk instalasi package +└── docs/ # Dokumentasi lengkap +``` -### 🀝 Kontribusi -Kami sangat terbuka untuk kontribusi! Lihat [CONTRIBUTING.md](CONTRIBUTING.md) dan [Issues](https://github.com/stipwunaraha/citation-graph-neural-embedding/issues) untuk memulai. +## πŸ“Š Dataset Target -### πŸ“„ Lisensi -Proyek ini dilisensikan di bawah Lisensi MIT - lihat berkas [LICENSE](LICENSE) untuk detail. -``` +- **OpenAlex**: API terbuka dengan data sitasi lengkap +- **arXiv + Semantic Scholar**: Untuk data teks dan graf sitasi +- **DBLP**: Data publikasi ilmu komputer + +## πŸ› οΈ Teknologi Utama + +| Kategori | Library/Framework | +|----------|------------------| +| Deep Learning | PyTorch β‰₯ 2.0, PyTorch Geometric β‰₯ 2.3 | +| NLP | Transformers (SciBERT), Sentence Transformers | +| Scientific Computing | NumPy, SciPy, Pandas | +| Visualisasi | Matplotlib, NetworkX | +| Testing | pytest, pytest-cov | +| Development | black, flake8 | + +## πŸ—ΊοΈ Roadmap + +- [x] βœ… Implementasi dasar GCN/GAT dengan PyTorch Geometric +- [x] βœ… Integrasi SciBERT untuk node features +- [ ] πŸ”„ Skrip scraper untuk OpenAlex +- [ ] πŸ”„ Evaluasi terhadap metrik "Disruption Index" sebagai baseline +- [ ] πŸ“‹ Dashboard visualisasi interaktif +- [ ] πŸ“‹ API REST untuk akses programatik + +## 🀝 Kontribusi + +Kami sangat terbuka untuk kontribusi! Cara memulai: +1. Baca [CONTRIBUTING.md](CONTRIBUTING.md) untuk panduan detail +2. Cek [Issues](https://github.com/stipwunaraha/citation-graph-neural-embedding/issues) untuk tugas yang tersedia +3. Fork repositori dan buat pull request + +## πŸ“„ Lisensi + +Proyek ini dilisensikan di bawah **Lisensi MIT** - lihat berkas [LICENSE](LICENSE) untuk detail. + +--- + +**Penulis & Kontributor**: [@stipwunaraha](https://github.com/stipwunaraha) dan komunitas + +**Kata Kunci**: Graph Neural Networks, Citation Analysis, Academic Impact, Semantic Similarity, PyTorch, Scientometrics