Open-Source-FundamentPython · RustPyPI

Knoten, Kanten, Attribute — und sonst keine Annahmen.

GraphRecords hält Entitäten und ihre Beziehungen. Die Bibliothek kennt keine Fachdomäne: was ein Knoten bedeutet, entscheidet Ihr Modell. Der medizinische Aufsatz MedRecord ist eine Anwendung davon, nicht ihre Voraussetzung.

Struktur

Ein Netz ohne Mitte.

Kein Knotentyp ist ausgezeichnet, keine Richtung vorgegeben. Das Beispiel unten zeigt Fachliteratur und ihre Konzepte — dieselbe Struktur trägt jede andere Domäne. Zeigen Sie auf einen Knoten, um seine Beziehungen zu sehen.

PublikationKonzeptPersonInstitution

Vier Knotentypen — Publikation, Konzept, Person, Institution — verbunden durch Beziehungen wie zitiert, behandelt, verfasst von und angesiedelt bei. Keiner der Typen ist der Bibliothek bekannt; alle vier sind Definitionen des Modells.

Schematische Darstellung. Knoten- und Kantentypen sind frei definierbar.

Aufbau

Rust darunter, Python davor.

Der Kern ist in Rust geschrieben und verwaltet Speicher und Traversierung. Darüber liegt eine Python-Schnittstelle, die sich wie eine gewöhnliche Bibliothek anfühlt. Wer in Python arbeitet, bekommt Rust-Laufzeit, ohne Rust zu schreiben.

Kern

Rust

Speicherverwaltung ohne Garbage Collector, Traversierung nebenläufig, keine Laufzeitüberraschungen bei großen Beständen.

Schnittstelle

Python

Typisierte API mit vertrauten Idiomen, kompatibel mit dem üblichen Analysewerkzeug im Data-Science-Alltag.

Laufzeit

Im Arbeitsspeicher

Millionen Knoten und Kanten auf einer Maschine. Kein Datenbankserver, kein Cluster, keine Netzwerkverbindung nötig.

Abhängigkeiten

Wenige

Eine schmale Abhängigkeitsliste hält die Prüfung durch Ihre IT kurz und die Installation reproduzierbar.

Installation

Ein Befehl.

Das Paket liegt auf PyPI, mit vorkompilierten Wheels für Linux, macOS und Windows. Eine Rust-Toolchain ist für die Installation nicht erforderlich.

Python 3.10+Linux · macOS · WindowsOhne Rust-Toolchain
TerminalPyPI
pip install graphrecords
pip install medrecords # medizinischer Aufsatz
Mitwirken

Offen entwickelt.

Entwicklung, Diskussion und Planung finden im Repository statt. Fehlermeldungen und Beiträge sind willkommen, auch von außerhalb der Medizin — die Bibliothek soll domänenunabhängig bleiben.

Darüber

Für medizinische Daten: MedRecord.

MedRecord setzt auf GraphRecords auf und bringt mit, was die Medizin verlangt: Entitätstypen für Diagnosen, Prozeduren, Medikationen und Laborwerte, dazu Kataloge mit Version.

Zur MedRecord-Seite