agoose77 / jupyterlab-knowledge-graph

Knowledge graph for JupyterLab
BSD 3-Clause "New" or "Revised" License
3 stars 0 forks source link

Make `ParserRegistry` pluggable #5

Open agoose77 opened 2 years ago

agoose77 commented 2 years ago

So that other document types can be supported

bollwyvl commented 2 years ago

This is a splendid architectural move.

For things that are strictly JSON compatible (without internal string-banging like link parsing), JSON-LD can make this very declarative and portable, and is probably worth a special case (and the runtime dependency). Many of the declarative transform definitions can be made to work with js/py implementations.

Notebooks, of course, will always be special. A couple years back, i made a strawman JSON-LD context, but a number of newer JSON-LD 1.1 features like @nest, explicit cell ids, etc. will make this more robust today.

I think the notebook parser might be a few parsing phases, which can each access the prior levels of extracted content:

Tabular data (whether in files or mime outputs) might need a little help, such as with JSON table schema, which pandas and the lumino data grid can produce/consume directly, respectively. I guess this is another place that could be pluggable.