Skip to content

Conversation

@kidehen
Copy link

@kidehen kidehen commented Dec 22, 2025

…ed layout

Implements a new internal Yasr plugin for interactive RDF graph visualization with the following features:

  • D3.js v7 force-directed graph with physics simulation
  • Interactive controls: zoom, pan, drag nodes with sticky behavior
  • Draggable control panel with physics parameters and filtering
  • Node grouping by rdf:type with automatic color coding
  • Predicate display: toggle between FontAwesome icons and CURIE labels
  • Tooltip system: toggle between full IRIs and compact CURIEs
  • Faceted filtering by node groups with visual legend
  • Real-time physics parameter adjustment (charge strength, link distance)
  • Theme support (light/dark) with automatic switching
  • JSON-LD metadata injection and SVG download functionality
  • Configuration persistence via localStorage
  • Responsive design with mobile support

Plugin registered at priority 11 to auto-select for CONSTRUCT/DESCRIBE queries. All preferences (panel position, visibility, display modes) persist across sessions.

🤖 Generated with Claude Code

…ed layout

Implements a new internal Yasr plugin for interactive RDF graph visualization with the following features:

- D3.js v7 force-directed graph with physics simulation
- Interactive controls: zoom, pan, drag nodes with sticky behavior
- Draggable control panel with physics parameters and filtering
- Node grouping by rdf:type with automatic color coding
- Predicate display: toggle between FontAwesome icons and CURIE labels
- Tooltip system: toggle between full IRIs and compact CURIEs
- Faceted filtering by node groups with visual legend
- Real-time physics parameter adjustment (charge strength, link distance)
- Theme support (light/dark) with automatic switching
- JSON-LD metadata injection and SVG download functionality
- Configuration persistence via localStorage
- Responsive design with mobile support

Plugin registered at priority 11 to auto-select for CONSTRUCT/DESCRIBE queries.
All preferences (panel position, visibility, display modes) persist across sessions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@MathiasVDA
Copy link
Collaborator

Hello @kidehen and thanks for your contribution!

I tried very hard to separate the plugins that are used by Yasgui and in particular Yasr from the core code. You might have seen that the current yasr/plugins folder only contains the response, boolean and error plugins. I pulled out the table plugin, created the graph plugin from scratch and collaborated with @Thib-G to implement his geo plugin. All these plugins are in their own repository, with their own tests, documentation and dependencies, keeping the core yasgui code as clean as possible.

Could you perhaps also put your plugin in such a repository? I used spec.kit to help me with creating the table and graph plugin. You might want to reuse part of the specs. I could then add a npm dependency to yasr to load your plugin by default. Alternatively, you could recreate this pull request on the graph plugin repository instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants