Yet Another SPARQL GUI (YASGUI) is a powerful, user-friendly web-based interface for querying and exploring RDF data using SPARQL. It combines a feature-rich query editor (YASQE) with a versatile results viewer (YASR) to provide a comprehensive SPARQL IDE.
π Try it now: https://yasgui.matdata.eu/
- π User Guide - Complete guide for end users
- π οΈ Developer Guide - API reference and integration guide
- π Production Environment - Live instance
- π¦ npm Package
- π³ Docker Hub
- π Releases & Changelog
- π» GitHub Repository
The documentation for YASGUI is hosted on GitHub Pages:
-
π Documentation Website: https://yasgui-doc.matdata.eu/
- User Guide, Developer Guide, API Reference
- Built with Docusaurus
- Version-tagged with the repository
-
π Development Build: https://yasgui-doc.matdata.eu/dev/main/
- Live build from the main branch
- Updated automatically with every commit
- Test latest features before release
The documentation is version-tagged with the repository, ensuring consistency between code and documentation across releases.
YASGUI provides a complete SPARQL development environment with powerful features:
- SPARQL Syntax Highlighting - Color-coded SPARQL with error detection
- Smart Autocomplete - Context-aware suggestions for keywords, prefixes, and URIs
- Query Formatting - One-click query beautification with configurable formatters
- Prefix Management - Auto-capture and reuse PREFIX declarations
- URI Explorer - Ctrl+Click URIs to explore connections
- Keyboard Shortcuts - Efficient query development workflow
- Table Plugin - Sortable, filterable, paginated result tables
- Graph Plugin - Interactive RDF graph visualization
- Geo Plugin - Geographic data on interactive maps
- Response Plugin - Raw response viewer with syntax highlighting
- Boolean Plugin - Visual true/false indicators for ASK queries
- Error Plugin - Detailed error diagnostics
- Light & Dark Themes - Seamless theme switching with persistent preferences
- Flexible Layouts - Vertical or horizontal editor/results arrangement
- Multiple Tabs - Work on multiple queries simultaneously
- Endpoint Management - Quick-switch between SPARQL endpoints
- Authentication Support - Basic Auth, Bearer Token, API Key, OAuth2
- Persistent Storage - Auto-save queries and preferences
- URL Sharing - Share queries via URL parameters
- Fullscreen Mode - Maximize editor or results viewer
- Export Results - Download results in various formats
- Configuration Import/Export - Backup and restore settings
For detailed feature documentation, see the User Guide.
YASGUI works on all modern browsers:
- β Chrome / Edge (latest)
- β Firefox (latest)
- β Safari (latest)
- β Opera (latest)
Requirements:
- JavaScript enabled
- Cookies/LocalStorage enabled (for query persistence)
- Modern ES6+ support
npm install @matdata/yasguiyarn add @matdata/yasgui<link rel="stylesheet" href="https://unpkg.com/@matdata/yasgui/build/yasgui.min.css" /> <script src="https://unpkg.com/@matdata/yasgui/build/yasgui.min.js"></script>Run with default endpoint:
docker pull mathiasvda/yasgui:latest docker run -p 8080:8080 mathiasvda/yasgui:latestAccess at: http://localhost:8080
Custom endpoint:
docker run -p 8080:8080 \ -e YASGUI_DEFAULT_ENDPOINT=https://your-endpoint.com/sparql \ mathiasvda/yasgui:latestFor detailed installation instructions and usage examples, see the Developer Guide and User Guide - Docker.
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://unpkg.com/@matdata/yasgui/build/yasgui.min.css" /> </head> <body> <div id="yasgui"></div> <script src="https://unpkg.com/@matdata/yasgui/build/yasgui.min.js"></script> <script> const yasgui = new Yasgui(document.getElementById("yasgui"), { requestConfig: { endpoint: "https://dbpedia.org/sparql" } }); </script> </body> </html>import Yasgui from '@matdata/yasgui'; import '@matdata/yasgui/build/yasgui.min.css'; const yasgui = new Yasgui(document.getElementById('yasgui'), { requestConfig: { endpoint: 'https://query.wikidata.org/sparql' }, theme: 'dark', orientation: 'horizontal' });YASGUI supports multiple authentication methods for secure SPARQL endpoints:
Basic Authentication:
const yasgui = new Yasgui(document.getElementById('yasgui'), { requestConfig: { endpoint: 'https://secure-endpoint.com/sparql', basicAuth: { username: 'myuser', password: 'mypassword' } } });Bearer Token (OAuth2/JWT):
const yasgui = new Yasgui(document.getElementById('yasgui'), { requestConfig: { endpoint: 'https://api.example.com/sparql', bearerAuth: { token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' } } });API Key (Custom Headers):
const yasgui = new Yasgui(document.getElementById('yasgui'), { requestConfig: { endpoint: 'https://api.example.com/sparql', apiKeyAuth: { headerName: 'X-API-Key', apiKey: 'your-api-key-here' } } });Authentication can also be configured through the UI via the Settings modal (gear icon). For detailed authentication documentation including dynamic auth and OAuth2, see the Developer Guide - Authentication.
For framework-specific examples and advanced usage, see the Developer Guide.
YASGUI is highly configurable. Here are some common configuration options:
const yasgui = new Yasgui(document.getElementById('yasgui'), { // Request configuration requestConfig: { endpoint: 'https://dbpedia.org/sparql', method: 'POST', // GET or POST headers: { 'Custom-Header': 'value' }, // Custom HTTP headers args: [{ name: 'param', value: 'val' }] // URL parameters }, // UI configuration theme: 'dark', // 'light' or 'dark' orientation: 'horizontal', // 'horizontal' or 'vertical' showSnippetsBar: true, // Show code snippets // Persistence persistenceId: 'my-yasgui-instance', // Custom storage ID persistencyExpire: 7 * 24 * 60 * 60, // Storage expiration (7 days) // Default query yasqe: { value: 'SELECT * WHERE { ?s ?p ?o } LIMIT 10' } });For complete configuration options, see the Developer Guide - Configuration.
If you encounter CORS errors when querying remote endpoints:
- Use a CORS proxy - Set up a proxy server that adds CORS headers
- Configure the endpoint - Some endpoints support CORS with proper configuration
- Server-side queries - Execute queries server-side and display results client-side
See the User Guide - CORS Errors for detailed solutions.
To query local SPARQL endpoints from YASGUI:
# Example: Running a local endpoint accessible to YASGUI docker run -p 3030:3030 stain/jena-fusekiAccess at: http://localhost:3030/dataset/sparql
For more details, see User Guide - Querying Local Endpoints.
We welcome contributions! To get started:
- Fork the repository
- Clone and install:
npm install - Run dev server:
npm run dev - Make your changes
- Run tests:
npm test - Submit a pull request
For detailed contribution guidelines, see the Developer Guide.
- π User Guide - Comprehensive usage documentation
- π οΈ Developer Guide - API reference and integration
- π Issue Tracker - Report bugs or request features
- π¬ Discussions - Ask questions and share ideas
When reporting issues, please include:
- Browser version and operating system
- Steps to reproduce the problem
- Expected vs. actual behavior
- Console errors (if any)
- Minimal example query demonstrating the issue
MIT License - see LICENSE file for details.
This is a fork from Zazuko who forked it from Triply.
Maintained by: Matdata
Release notes and changelog are available in the Releases section.
For instructions on writing release notes, see release-note-instructions.md.