GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Matdata-eu/MatGUI: A modern knowledge graph and SPARQL workbench

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

1,240 Commits
1,240 Commits

Folders and files

NameName
Last commit message
Last commit date
.changeset
.changeset
 
 
.github
.github
 
 
.husky
.husky
 
 
.specify
.specify
 
 
bin/hooks
bin/hooks
 
 
build-templates
build-templates
 
 
dev
dev
 
 
docker
docker
 
 
docs
docs
 
 
packages
packages
 
 
scripts
scripts
 
 
specs/001-query-management
specs/001-query-management
 
 
test
test
 
 
website
website
 
 
.dockerignore
.dockerignore
 
 
.eslintignore
.eslintignore
 
 
.eslintrc.cjs
.eslintrc.cjs
 
 
.gitignore
.gitignore
 
 
.prettierignore
.prettierignore
 
 
.prettierrc
.prettierrc
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
distributeBuildFiles.js
distributeBuildFiles.js
 
 
esbuild.config.js
esbuild.config.js
 
 
fetchLovData.js
fetchLovData.js
 
 
fetchPrefixData.js
fetchPrefixData.js
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
publiccode.yml
publiccode.yml
 
 
tsconfig-build.json
tsconfig-build.json
 
 
tsconfig-test.json
tsconfig-test.json
 
 
tsconfig-validate.json
tsconfig-validate.json
 
 
tsconfig.json
tsconfig.json
 
 
updateVersion.js
updateVersion.js
 
 
vite.config.ts
vite.config.ts
 
 

Repository files navigation

MatGUI

A modern knowledge graph and SPARQL workbench

More than just Another SPARQL GUI.

MatGUI is a powerful, user-friendly web-based workbench for querying, exploring and visualising knowledge graphs and RDF data with SPARQL. It combines a feature-rich query editor with a versatile results viewer to provide a complete SPARQL IDE.

Formerly Yasgui. MatGUI began as a fork of the Yasgui ecosystem and has since evolved well beyond it. The npm packages (@matdata/yasgui, @matdata/yasqe, @matdata/yasr) keep their names for backwards compatibility — only the project branding has changed. See the Rebranding & migration Guide.

🌐 Try it now: https://matgui.matdata.eu/

GitHub release Docker Image Version CI Try it live npm version License: MIT

Screenshot


Quick Links

  • 📖 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

Documentation

The documentation for Matgui is hosted on GitHub Pages:

  • 📚 Documentation Website: https://matgui-doc.matdata.eu/

    • User Guide, Developer Guide, API Reference
    • Built with Docusaurus
    • Version-tagged with the repository
  • 🚀 Development Build: https://matgui-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.

Features

Matgui provides a complete SPARQL development environment with powerful features:

✏️ Advanced Query Editor

  • 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
  • Endpoint Overview - Explore an unfamiliar endpoint: service description, VoID and overview queries (classes, properties, graphs, languages, links, geo) in a side panel
  • Keyboard Shortcuts - Efficient query development workflow

📊 Powerful Visualizations

  • 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

🎨 Themes & Layouts

  • Light & Dark Themes - Seamless theme switching with persistent preferences
  • Flexible Layouts - Vertical or horizontal editor/results arrangement

🔧 Expert Features

  • 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.


Browser Support

Matgui 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

Installation

npm

npm install @matdata/yasgui

Yarn

yarn add @matdata/yasgui

CDN

<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>

Docker

Run with default endpoint:

docker pull mathiasvda/matgui:latest
docker run -p 8080:8080 mathiasvda/matgui:latest

Access at: http://localhost:8080

Custom endpoint:

docker run -p 8080:8080 \
  -e MATGUI_DEFAULT_ENDPOINT=https://your-endpoint.com/sparql \
  mathiasvda/matgui:latest

For detailed installation instructions and usage examples, see the Developer Guide and User Guide - Docker.

Quick Start

Basic HTML Usage

<!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>

ES Modules / React / Vue / Angular

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'
});

Authentication

Matgui 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.


Configuration Options

Matgui 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
  endpointDescribe: { enabled: true },     // "Describe endpoint" panel (F8)
  
  // 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.


Troubleshooting

CORS Issues

If you encounter CORS errors when querying remote endpoints:

  1. Use a CORS proxy - Set up a proxy server that adds CORS headers
  2. Configure the endpoint - Some endpoints support CORS with proper configuration
  3. Server-side queries - Execute queries server-side and display results client-side

See the User Guide - CORS Errors for detailed solutions.

Local Endpoint Access

To query local SPARQL endpoints from YASGUI:

# Example: Running a local endpoint accessible to YASGUI
docker run -p 3030:3030 stain/jena-fuseki

Access at: http://localhost:3030/dataset/sparql

For more details, see User Guide - Querying Local Endpoints.


Contributing

We welcome contributions! To get started:

  1. Fork the repository
  2. Clone and install: PUPPETEER_SKIP_DOWNLOAD=1 npm ci
  3. Run dev server: npm run dev
  4. Make your changes
  5. Run tests: npm test
  6. Submit a pull request

📋 For detailed contribution guidelines, including our plugin development policy, see CONTRIBUTING.md.

Additional resources:

  • Developer Guide - API reference and integration guide
  • Plugin Development - How to create plugins

Support & Community

Getting Help

  • 📖 User Guide - Comprehensive usage documentation
  • 🛠️ Developer Guide - API reference and integration
  • 🐛 Issue Tracker - Report bugs or request features
  • 💬 Discussions - Ask questions and share ideas

Reporting Issues

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

License

MIT License - see LICENSE file for details.

Attribution & Acknowledgements

MatGUI stands on the shoulders of the Yasgui project and gratefully acknowledges its origins.

  • The project began as a fork of Zazuko/Yasgui, which was itself forked from the original Triply/Yasgui created by Laurens Rietveld and the Triply team.
  • The name “Yasgui” (Yet Another SPARQL GUI) and the original YASQE/YASR components were created and maintained by those teams and their contributors. We thank every original author and contributor for their foundational work on SPARQL tooling for the web.
  • MatGUI has since evolved substantially — with new features, a modernised codebase, and an expanded scope — and is developed and maintained independently by Matdata.

MatGUI is not affiliated with, endorsed by, or an official continuation of the rdfjs-, Zazuko-, or Triply-maintained Yasgui projects. It is an independent project that honours its heritage while charting its own direction. For details on how the projects relate, see the Rebranding & migration Guide.

Maintained by: Matdata


Release Notes & Changelog

Release notes and changelog are available in the Releases section.

For instructions on writing release notes, see release-note-instructions.md.

About

A modern knowledge graph and SPARQL workbench

matgui.matdata.eu

Topics

datagraphknowledgelinkedrdfsparqltypescriptwebappyasgui

Resources

Readme
License

Contributing

Contributing
Activity
Custom properties

Stars

47 stars

Watchers

2 watching

Forks

3 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.