COMPACT_ARTICLES_GUIDE.md 6.3 KB

🎯 KOMPAKTNE NIMEKIRI: 700 artiklist

700 teadusartikli käsitlemine on suur andmehulk. Siin on optimaalsed lahendused kompaktsete nimeliste saamiseks.


📊 LAHENDUSED

Variant 1: Python skript (PARIM)

python3 compact_articles_list.py

Loob:

  • articles_compact_list.csv - Excel-ile
  • articles_compact_list.html - Veebis vaatamine + sorteerimine
  • articles_compact_list.md - Markdown tabel

Väljad:

| # | Pealkiri | Aasta | Žurnaal | Allikfail | Ülevaade (30 sõna) | Relevants/10 |

Eelised:

  • ✅ HTML on interaktiivne (sorteerimine, filtreerimine)
  • ✅ CSV on Exceli-nõõps
  • ✅ Markdown on VS Code'is mugav
  • ✅ Ülevaated ära lõigatud (30 sõna) - loetav!

Variant 2: Bash + CURL + jq (KIIRE)

chmod +x compact_curl_list.sh
./compact_curl_list.sh

Loob:

  • articles_compact.csv
  • articles_compact.md

Eelised:

  • ✅ Kiire (pole Pythoni init)
  • ✅ Vähem failisid
  • ✅ jq kasutab ülevaadete lõikamist (20 sõna)

Variant 3: Lihtne CURL käsk (KÄSITSI)

# CSV formaadis
curl -s http://100.80.222.54:9020/v1/graphql \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ Get { ScientificArticle(limit: 50) { title year journal abstract_en relevance_score } } }"
  }' \
  | jq -r '.data.Get.ScientificArticle[] | [.title, .year, .journal, .relevance_score] | @csv' \
  > ~/Downloads/articles.csv

# Markdown tabel
curl -s http://100.80.222.54:9020/v1/graphql \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{ Get { ScientificArticle(limit: 50) { title year journal relevance_score } } }"
  }' \
  | jq -r '.data.Get.ScientificArticle[] | "| \(.title) | \(.year) | \(.journal) | \(.relevance_score)/10 |"' \
  > ~/Downloads/articles.md

🔍 VÄLJAD - KOMPAKTSES PÄRINGUS

{
  Get {
    ScientificArticle(limit: 100) {
      # Põhivalik - KOMPAKTNE
      title                   # Artikli pealkiri
      source_file             # PDF allikfail
      year                    # Avaldamise aasta
      journal                 # Ajakirja nimi
      abstract_en             # Lühike kokkuvõte
      relevance_score         # Relevantsus (0-10)
      
      # Valikuline - suurendab hulka
      # doi                   # DOI ID
      # authors               # Autorite nimekiri
      # key_concepts          # Võtmesõnad
      # processing_date       # Töötlemise kuupäev
    }
  }
}

⚡ OPTIMISEERIMISE NIPID

1. Limit muuta suuremaks

Asemel limit: 100, kasuta limit: 700 (või kuni 10,000):

ScientificArticle(limit: 700) {
  title
  source_file
  year
}

⚠️ Hoiatus: 700+ artikli kohta võtab ~ 5-15 sekundit.

2. Filtreerimine võtmesõnade järgi

ScientificArticle(
  limit: 100
  where: {
    path: "key_concepts"
    operator: ContainsAny
    valueString: ["transport", "road safety"]
  }
) {
  title
  key_concepts
}

3. Sorteerimine relevantsuse järgi

ScientificArticle(
  limit: 100
  sort: {path: "relevance_score", order: desc}
) {
  title
  relevance_score
}

4. Ühendamine - ainult ülemused 10 sõna

# jq-s
.abstract_en | split(" ") | .[0:10] | join(" ")

📈 JÕUDLUSE VÕRDLUS

Lahendus Väljundid Kiirus Mugavus
Python CSV, HTML, MD 3-5s ⭐⭐⭐⭐⭐
Bash CSV, MD 2-3s ⭐⭐⭐⭐
CURL käsk JSON/CSV 1-2s ⭐⭐⭐

💾 FAILI FORMAADID

CSV (Excel, LibreOffice)

title,year,journal,abstract,relevance
"Article Title",2024,"Nature","Abstract text...",9

HTML (Veebis sorteeritav)

<table>
  <thead>
    <tr><th>Pealkiri</th><th>Aasta</th>...</tr>
  </thead>
  <tbody>
    <tr><td>Article</td><td>2024</td>...</tr>
  </tbody>
</table>

Markdown (VS Code)

| Pealkiri | Aasta | Relevants |
|----------|-------|-----------|
| Article | 2024 | 9/10 |

🚀 KIIRSTART

Kõige lihtsam:

python3 compact_articles_list.py

Kõige kiirem:

./compact_curl_list.sh

Käsitsi testi:

curl -s http://100.80.222.54:9020/v1/graphql \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"query": "{ Get { ScientificArticle(limit: 5) { title year } } }"}' \
  | jq .

🔧 KOHANDAMINE

Python skriptis:

# Rida 13: Väljad
COMPACT_QUERY = {
    "query": """{ Get { ScientificArticle(limit: 100) { 
        title
        source_file
        year
        # Lisa siia rohkem välju
    }

Bash skriptis:

# Rida 15: GraphQL päring
-d '{
    "query": "{ Get { ScientificArticle(limit: 100) { 
        title
        source_file
        # Lisa siia rohkem välju
    }"

💡 NÄPUNÄITED

  1. Exceli sorteerimine:

    • Data → AutoFilter
    • Kliki veeru päises ↓
    • Vali "Sort A to Z" või "Sort by Values"
  2. HTML avamine brauseris:

    open ~/Downloads/articles_compact_list.html
    # Või Windows: start ~/Downloads/articles_compact_list.html
    
  3. Markdown VS Code'is:

    code ~/Downloads/articles_compact_list.md
    
  4. CSV impordi Google Sheetsi:

    • Ava sheets.google.com
    • File → Import → Upload → Vali CSV
    • Valemi jätkamine otse tabelis
  5. PDF printimiseks:

    • HTML faili avamiseks: Print (Ctrl+P)
    • Vali: Save as PDF
    • Märgi: Background graphics

⚠️ PIIRANGUD WEAVIATE'is

  • Maksimumtulemused: 10,000 objekti
  • Offset + Limit summa: max 10,000
  • Päringute ajapiirang: 30 sekundit
  • Performance: Suured piirangud on aeglasemad

Lahendus: Kasuta pagination (offset + limit) suurte andmete jaoks:

# Esimesed 100
limit: 100, offset: 0

# Järgmised 100
limit: 100, offset: 100

📞 TÕRKEOTSING

Probleem Lahendus
"jq: command not found" sudo apt install jq
"Python: ModuleError" pip3 install --upgrade pip
"Timeout" (aegunud päring) Vähenda limit väärtust (100 asemel 50)
HTML näeb valesti välja Ava Firefox'is, mitte Internet Exploreris
CSV avatakse valesti Import: UTF-8 encoding, semicolon delimiter

Valminud: 09.01.2026
Versioon: 2.0
Format: Kompaktne, optimeeritud 700+ artikli jaoks