Bibliographic record
Abstract
Kececi Layout (Keçeci Yerleşimi): A deterministic graph layout algorithm designed for visualizing linear or sequential structures with a characteristic "zig-zag" or "serpentine" pattern. Python implementation of the Keçeci layout algorithm for graph visualization. Description / Açıklama This algorithm arranges nodes sequentially along a primary axis and offsets them alternately along a secondary axis. It's particularly useful for path graphs, chains, or showing progression. Bu algoritma, düğümleri birincil eksen boyunca sıralı olarak yerleştirir ve ikincil eksen boyunca dönüşümlü olarak kaydırır. Yol grafları, zincirler veya ilerlemeyi göstermek için özellikle kullanışlıdır. English Description Keçeci Layout: A deterministic node placement algorithm used in graph visualization. In this layout, nodes are arranged sequentially along a defined primary axis. Each subsequent node is then alternately offset along a secondary, perpendicular axis, typically moving to one side of the primary axis and then the other. Often, the magnitude of this secondary offset increases as nodes progress along the primary axis, creating a characteristic "zig-zag" or "serpentine" pattern. Key Characteristics: Linear Focus: Particularly useful for visualizing linear or sequential structures, such as paths, chains, or ordered processes. Deterministic: Produces the exact same layout for the same graph and parameters every time. Overlap Reduction: Helps prevent node collisions by spreading nodes out away from the primary axis. Parametric: Can be customized using parameters such as the primary direction (e.g., top-down), the starting side for the secondary offset (e.g., start_right), and the spacing along both axes (primary_spacing, secondary_spacing). Türkçe Tanımlama Keçeci Yerleşimi (Keçeci Layout): Graf görselleştirmede kullanılan deterministik bir düğüm yerleştirme algoritmasıdır. Bu yöntemde düğümler, belirlenen birincil (ana) eksen boyunca sıralı olarak yerleştirilir. Her bir sonraki düğüm, ana eksenin bir sağına bir soluna (veya bir üstüne bir altına) olmak üzere, ikincil eksen doğrultusunda dönüşümlü olarak kaydırılır. Genellikle, ana eksende ilerledikçe ikincil eksendeki kaydırma miktarı artar ve bu da karakteristik bir "zıgzag" veya "yılanvari" desen oluşturur. Temel Özellikleri: Doğrusal Odak: Özellikle yollar (paths), zincirler veya sıralı süreçler gibi doğrusal veya ardışık yapıları görselleştirmek için kullanışlıdır. Deterministik: Aynı graf ve parametrelerle her zaman aynı sonucu üretir. Çakışmayı Azaltma: Düğümleri ana eksenden uzağa yayarak çakışmaları önlemeye yardımcı olur. Parametrik: Ana eksenin yönü (örn. top-down), ikincil kaydırmanın başlangıç yönü (örn. start_right) ve eksenler arası boşluklar (primary_spacing, secondary_spacing) gibi parametrelerle özelleştirilebilir. Installation / Kurulum conda install bilgi::kececilayout -y pip install kececilayout https://anaconda.org/bilgi/kececilayout https://pypi.org/project/KececiLayout/ https://github.com/WhiteSymmetry/kececilayout Supported Backends NetworkX igraph Rustworkx Networkit Graphillion graph-tool Note: All backends are supported via unified kececi_layout function. v0.5.0: layouts = ['2d', 'cylindrical', 'cubic', 'spherical', 'elliptical', 'toric'] styles = ['standard', 'default', 'curved', 'helix', '3d', 'weighted', 'colored'] v0.5.1: edge (kececi_layout_edge) v0.6.0: periodic table v0.6.3: KececiBayesianOptimizer, kececi_barbell_layout v0.6.5: show_menu() v0.6.6: DAG & Transitive redused DAG v0.6.7: Quantum Circuit: Kuantum Devresi import kececilayout as kl from kececilayout import show_menu, draw_kececi # Menüyü başlat show_menu() KEÇECİ Layout GÖRSELLEŞTİRME MENÜSÜ TEMEL STİLLER Curved Style Standart 2D Layout Transparent Kenarlar Ağırlıklı Keçeci (Weighted) Renkli Düğümler (Colored) 3D Heliks Görünümü KENAR & PARAMETRE ANALİZ Edge‑Aware vs Basic Karşılaştırması ZZ Şampiyon Testi Bayesian Optimizasyon Demosu expanding=True vs False primary_direction Çeşitleri secondary_start & Aralık Etkisi PERİYODİK TABLO Hızlı 3D Periyodik Tablo 4'lü Karşılaştırma Figürü Demo Serisi (Otomatik) Özelleştirilmiş Tablo Element Vurgulama (Fe, Au, Hg) Periyodik Tablo PNG Kaydet Element Bilgisi (sembol ile) ALTERNATİF YERLEŞİMLER Barbell Layout Silindirik Layout (3D) Kübik Layout (3D) Küresel Layout (3D) Eliptik Layout (2D) Torik Layout (3D) KÜTÜPHANE DESTEĞİ & KARŞILAŞTIRMALAR igraph Graf Çizimi Keçeci vs Kamada‑Kawai Rastgele Graf Oluştur ve Çiz (NetworkX) Rustworkx Graf Testi NetworKit Graf Testi GELİŞMİŞ ANALİZ & DİĞER Tek Graf ZZ Skoru Hesapla Edge Crossing Analizi (K3,3) Graphillion Graf Denemesi graph‑tool Desteği (Linux) Pure Node Listesi Layout Spacing Parametreleri Geçişi 3D Heliks Parametre Taraması Tüm Stilleri Sırayla Göster GNN‑GRU Renkli Karşılaştırma (Tüm Layout'lar) SATRANÇ & OYUN AĞAÇLARI Oyun Ağacı (Satranç/Go) Görselleştirme Satranç Kısa Matlar – 2B Keçeci Layout (Zigzag) Satranç Kısa Matlar – 3B Keçeci Layout (Silindirik) Satranç Kısa Matlar – 3B Keçeci Layout (Küresel) Satranç Kısa Matlar – 3B Keçeci Layout (Torik) python‑chess Oyun Ağacı – 2D Zigzag python‑chess Oyun Ağacı – 3D Silindirik python‑chess Oyun Ağacı – 3D Küresel python‑chess Oyun Ağacı – 3D Torik Rastgele Satranç Açılış Hamle Sırası FİZİKSEL MODELLER Termodinamik Kavram Haritası (Keçeci) Kuantum Mekaniği Kavram Haritası (Keçeci) Kuantum Alan Teorisi Kavram Haritası (Keçeci) DAG ANALİZLERİ 2B DAG vs Transitive Reduction (Keçeci) 3B DAG vs Transitive Reduction (Silindirik) Kuantum Devre Analizleri ve Temsilleri OR3 Gate Circuit – VEYA(3) Kapısı Devresi, 3D Helix Sanatsal Temsili OR3 Gate Circuit – VEYA(3) Kapısı Devresi (DAG) OR3 Gate Circuit – VEYA(3) Kapısı Devresi, 3D Helix Sanatsal Temsili Quantum Circuit – Kuantum Devresi Çıkış Installation conda install bilgi::kececilayout -y pip install kececilayout 🔗 PyPI | Conda | GitHub Usage Example with NetworkX import networkx as nx import matplotlib.pyplot as plt import kececilayout as kl G = nx.path_graph(10) pos = kl.kececi_layout( G, primary_spacing=1.0, secondary_spacing=0.5, primary_direction='top_down', secondary_start='right' ) plt.figure(figsize=(6, 8)) nx.draw(G, pos=pos, with_labels=True, node_color='skyblue', node_size=500) plt.title("Kececi Layout with NetworkX") plt.axis('equal') plt.show() Example with iGraph import igraph as ig import matplotlib.pyplot as plt import kececilayout as kl G = ig.Graph.Ring(10, circular=False) # Get the positions using kececi_layout with proper conversion try: # Method 1: Direct conversion pos = kl.kececi_layout(G, primary_direction='left-to-right', secondary_start='up') # If pos is not iterable, it might be returning an error code if not hasattr(pos, '__iter__'): raise TypeError("kececi_layout returned non-iterable object") except (TypeError, AttributeError) as e: print(f"Direct approach failed: {e}") print("Using NetworkX conversion method...") # Method 2: Convert to NetworkX first import networkx as nx nx_graph = nx.Graph() nx_graph.add_nodes_from(range(G.vcount())) nx_graph.add_edges_from(G.get_edgelist()) pos = kl.kececi_layout(nx_graph, primary_direction='left-to-right', secondary_start='up') # Ensure we have proper coordinates if isinstance(pos, dict): # Convert dictionary to list pos_list = [pos[i] for i in range(G.vcount())] else: # Assume it's already a list of coordinates pos_list = pos layout = ig.Layout(pos_list) fig, ax = plt.subplots(figsize=(8, 6)) ig.plot(G, target=ax, layout=layout, vertex_label=[f"N{i}" for i in range(G.vcount())], vertex_size=30, edge_width=2, margin=50) ax.set_title("Keçeci Layout with igraph") ax.set_aspect('equal') plt.show() Example with RustworkX import matplotlib.pyplot as plt from matplotlib.collections import LineCollection # Efficient edge drawing import math import rustworkx as rx import kececilayout as kl import random try: import kececilayout as kl except ImportError: print("Error: 'kececi_layout.py' not found or could not be imported.") print("Please ensure the file containing kececi_layout is accessible.") exit() # --- General Layout Parameters --- LAYOUT_PARAMS = { 'primary_spacing': 1.0, 'secondary_spacing': 0.6, # Make the zigzag noticeable 'primary_direction': 'top_down', 'secondary_start': 'right' } N_NODES = 10 # Number of nodes in the example graph # === Rustworkx Example === try: import rustworkx as rx print("\n--- Rustworkx Example ---") # Generate graph (Path graph) G_rx = rx.generators.path_graph(N_NODES) print(f"Rustworkx graph generated: {G_rx.num_nodes()} nodes, {G_rx.num_edges()} edges") # Calculate layout print("Calculating Keçeci Layout...") # Call the layout function from the imported module pos_rx = kl.kececi_layout(G_rx, **LAYOUT_PARAMS) # print("Rustworkx positions:", pos_rx) # Debug print if needed # Plot using Matplotlib directly (Rustworkx doesn't have a built-in draw) print("Plotting graph using Matplotlib...") plt.figure(figsize=(6, 8)) ax = plt.gca() # Get current axes node_indices_rx = G_rx.node_indices() # Get node indices [0, 1, ...] # Check if all nodes have positions if not all(idx in pos_rx for idx in node_indices_rx): print("ERROR: Rustworkx positions dictionary does not cover all nodes!") # Decide how to handle: exit, plot partial, etc. else: # Draw nodes x_coords_rx = [pos_rx[i][0] for i in node_indices_rx] y_coords_rx = [pos_rx[i][1] for i in node_indices_rx] ax.scatter(x_coords_rx, y_coords_rx, s=700, c='#88CCEE'
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.001 | 0.006 |
| Meta-epidemiology (narrow) | 0.002 | 0.001 |
| Meta-epidemiology (broad) | 0.001 | 0.001 |
| Bibliometrics | 0.002 | 0.002 |
| Science and technology studies | 0.001 | 0.001 |
| Scholarly communication | 0.006 | 0.005 |
| Open science | 0.002 | 0.004 |
| Research integrity | 0.002 | 0.002 |
| Insufficient payload (model declined to judge) | 0.650 | 0.481 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; the direct Gemma label and the distilled Codex classifier agree on what is shown here.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".