RFC: kgdiff for Python and Jupyter

Aperta
#14 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Attiva
Stack tecnologico
jupyter, pandas, python, typescript

Direzione di ricerca

Start by reading the proposal and open questions in this issue, especially the suggested anywidget wrapper and the first-prototype idea using two NetworkX graphs. Gather feedback from Python users on the API, package name, repository location, graph inputs, and notebook environments before choosing an implementation. Done means the project has agreed on a Python entry point and a concrete first prototype.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

integrations rfc

Most people who build knowledge graphs work in Python: rdflib, NetworkX, pandas, LangChain,
LlamaIndex, GraphRAG, and notebooks around them. Today they reach kgdiff by writing files and
running npx. This issue is for agreeing on what a Python entry point should be before anyone
builds one. Comments from Python users are the most useful thing here: what would you call,
from where, on what?

A proposal to react to
  1. A Jupyter widget first. <kgdiff-viewer> is a framework-agnostic web component that
    computes everything in the browser, which is what anywidget wraps
    well. The Python side would only serialise the two graphs:

    from kgdiff import Diff  # name to be decided, see below
    
    Diff(before_graph, after_graph, match="similarity")  # renders the viewer in the cell
    

    with before_graph / after_graph as an rdflib.Graph (serialised to Turtle), a
    networkx.Graph (to node-link JSON), a pandas edge list, or a path. No Node.js needed.

  2. Then, maybe, a headless API (kgdiff.diff(a, b) -> dict for scripts and CI). Options:
    run the bundled JavaScript engine through an embedded runtime, or call the CLI when Node.js
    is present. Neither is free, so this should wait until people ask for it.

Open questions
  • The name. kgdiff on PyPI belongs to an unrelated project (a molecule generation model,
    CMACH508/KGDiff). Candidates: kgdiff-py, pykgdiff, kgdiff-widget. Better ideas welcome.
  • Where it lives: a python/ folder in this repository (one release process, one set of
    example datasets) or its own repository.
  • Which inputs matter most to you: rdflib, NetworkX, pandas / parquet (Microsoft GraphRAG),
    Neo4j query results, something else?
  • VS Code notebooks, JupyterLab, Colab, marimo: which do you use?

If you would like to build this, say so here. A first prototype that renders the widget from
two NetworkX graphs would already answer most of these questions.

Lingua principale
TypeScript
Stelle
47
Fork
6
Merge medio
2h 32m
PR unite (30g)
22

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di iiwish/kgdiff

Tutte le issue di iiwish/kgdiff

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.