RDFLib / prez-ui

BSD 3-Clause "New" or "Revised" License
10 stars 7 forks source link

Neighbours UI widget #1

Open nicholascar opened 2 years ago

nicholascar commented 2 years ago

At least two projects - OGC Naming Server and Indigenous Data Network - want to have a front end widget that displays the neighbours for an object. In the OGC case, it is the neighbours of a Standard - those the Standard is derived from, replaces etc. - and in the IDN case it's the neighbours of an Agent - what Orgs the Agent is a member of, other orgs that Org is a part of and what classifications the Agent has and so on.

The challenge here is to make a reusable Neighbours widget.

The plan so far is to:

@rob-metalinkage @jamiefeiss @avillar

rob-metalinkage commented 2 years ago

For reference, a diagramming SDK at https://www.yworks.com/yfiles-overview - seems to use a thing called GraphML - maybe this is the intermediate schema to support - with the possibility of plugging in some of these commercial diagramming tools for advanced cases?

avillar commented 2 years ago

I have created a quick and dirty demo for a neighbo(u)rs widget for VocPrez, using SPARQL + d3.js + WebCoLa. The code could be easily ported to Vue.js.

Instead of SPARQL CONSTRUCT + JSON-LD, I opted for SPARQL SELECT + JSON, since it made it much easier to work with incoming predicates (and no framing necessary).

I am also working on some optimizations, such as filtering high cardinality properties (e.g., do not clutter a concept scheme graph by showing tens or hundreds of concepts). Exclude filters for properties and / or RDF types could also be implemented (e.g., do not show any SKOS relationships in the graph).

avillar commented 1 year ago

My prototype neighbors graph can be seen here:

It also supports data-driven tabs (i.e. defining regex for filtering predicates and/or related nodes URIs).

Ndace-hash commented 1 year ago

Hello @avillar, I would like to contribute to this project. I am familiar with Vue.js. The problem is, I don't quite understand the concept you are discussing and I don't know exactly what you want to achieve. It would be nice if you can help with any information, so that I can know what you are aiming for.

nicholascar commented 1 year ago

@Ndace-hash are you familiar with RDF and Knowledge Graphs? Knowing about them is very important for this project, not just knowledge of Vue.js.