Notice bibliographique
Résumé
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'
Récupéré en direct depuis OpenAlex et désinversé. Les résumés ne sont pas conservés dans cette base de données : les index inversés représentent 8,6 Go des 9,3 Go de texte de la base, et le serveur dispose de 13 Go libres.
Comment cette classification a été obtenuedéplier
Prédiction machine sur la base complète
Imitation des enseignantsNi prévalence calibrée, ni vérité terrain. Validation humaine à venir. Le volet Gemma est une étiquette directe du modèle pour chaque travail de la base, lue sur la notice réduite au titre. Le volet Codex est un classifieur appris des 10 348 étiquettes directes de Codex et calibré sur les taux pondérés de l'échantillon; les champs sans appui suffisant ne portent aucun appel Codex. Le mode candidate est l'union des deux volets; le consensus est leur intersection. Ces sorties portent le statut machine_predicted_unvalidated et ne sont pas des étiquettes humaines.
Scores du classifieur distillé par catégorie (deux têtes)
| Catégorie | Codex | Gemma |
|---|---|---|
| Métarecherche | 0,001 | 0,006 |
| Méta-épidémiologie (sens strict) | 0,002 | 0,001 |
| Méta-épidémiologie (sens large) | 0,001 | 0,001 |
| Bibliométrie | 0,002 | 0,002 |
| Études des sciences et des technologies | 0,001 | 0,001 |
| Communication savante | 0,006 | 0,005 |
| Science ouverte | 0,002 | 0,004 |
| Intégrité de la recherche | 0,002 | 0,002 |
| Charge utile insuffisante (le modèle a refusé de juger) | 0,650 | 0,481 |
Scores machine (provisoires)
Les deux têtes enseignantes du modèle étudiant, lues sur ce travail. Un score ordonne la base pour la relecture; il n'affirme jamais une catégorie, et le statut de validation accompagne chaque rangée tel quel.
Scores de référence d'un modèle non mature (critères de maturité non atteints, 7 itérations). Un score ordonne; il n'affirme jamais une catégorie.
score_only:v0-immature-baseline · tel quel depuis la passe de notation : score_only signifie que le nombre peut ordonner les travaux, et qu'aucune étiquette de catégorie n'en découleClassification
machine, non validéePrédiction automatique; l’étiquette directe de Gemma et le classifieur distillé Codex s’accordent sur ce qui est montré ici.
Le détail, modèle par modèle et score par score, se trouve en fin de page sous « Comment cette classification a été obtenue ».