Skip to content

Releases: Matdata-eu/MatGUI

v6.12.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 29 Oct 14:11

MatGUI v6.12.0

A calmer settings window where changes apply at once, a short tour for people who open MatGUI for the first time, and a What's new that tells you what changed after an update.

New features

  • Redesigned settings (#248): pages grouped in the navigation (Querying, Your data, Assistant, Help) with an icon each, one row per setting with a line about it and its control on the right, and a header and footer that stay in place
    • Changes apply at once: the footer says Saved, and Done closes the settings. The Save and Cancel buttons are gone
    • New General page with the theme (Light, Dark or System), the editor themes, the request settings and what happens before a query runs
    • Settings > AI: services stay cards. Adding one starts with a searchable Provider list that fills in the base URL (still editable, with a reset) and links to where you get an API key. Fetch models fills a searchable Model list, recommended models first. When the browser can't read a model list (CORS), MatGUI offers the models it knows for that provider and explains what to do (a proxy, OpenRouter, or the CORS setting of Ollama or LM Studio)
  • "How MatGUI works" (#249): a quick start tour of five pages, each with three things to know and a small illustration. It opens the first time someone uses MatGUI, stays available in the help menu and the Ctrl+K search, and links to the full user guide
  • What's new (#250): the help button of the top bar opens a menu with How MatGUI works, What's new and the Documentation. What's new lists the changes of every version since 5.0.0 as New, Improved or Fixed, with a filter per kind and a link to the full release notes. After an update a dot on the help button points to it until it is opened; first-time users get no dot

Changes

  • Request settings for every tab (#248): the request method, Accept headers and custom HTTP headers now apply to every tab, including tabs opened later. The formatter, auto-format and the CONSTRUCT check apply to every tab too and are kept across reloads
  • SPARQL Anything query builder (#247): Load structure (on the chip, Retry and in the Ctrl+K search) opens the Source view. Build query has one compact bar at the top with an All checkbox to tick every value at once, Replace block, and icon buttons to insert at the cursor or open in a new tab

Fixes

  • Installing @matdata/yasgui no longer pulls in the old 4.x @matdata/yasqe and @matdata/yasr packages: the packages now depend on the matching version of each other, and DOMPurify 3.4.17 or later is required. This clears the Dependabot alerts (query-string, DOMPurify) in projects that depend on MatGUI (#246)

For developers and embedders

  • Yasqe options showShareButton and showFullscreenButton (default true) hide the Share and Fullscreen buttons of the editor, also in the mobile menu and the Ctrl+K search. In Yasgui: yasqe: { showShareButton: false, showFullscreenButton: false } (#251, #252). Thanks @Kevin-Darty for the report
  • New Yasgui options showQuickStart and quickStartOnFirstVisit (both default true), and yasgui.quickStart.open(page?)
  • New Yasgui option showWhatsNew (default true); add your own help menu entries with yasgui.helpMenu.addItem({ id, label, icon, onClick, badge, order }). helpUrl: false now only leaves out the Documentation entry
  • Request settings are stored once as requestSettings in the persisted config; tab.openSettings("request") still works and opens General. AI services remember their provider (providerId)
  • Nothing was removed: existing config keys, methods and events keep working

Full Changelog: v6.11.0...v6.12.0

v6.11.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 27 Oct 14:43
a23f7c3

MatGUI v6.11.0

Query CSV, JSON and XML files with SPARQL Anything without opening them first: MatGUI now reads the structure of a SPARQL Anything source through your endpoint, suggests its columns and keys in autocompletion, shows a preview, and builds the fx:anySlot patterns for you.

New features

  • SPARQL Anything sources (#244): help with SERVICE <x-sparql-anything:...> { } blocks
    • Once a block is closed, a chip after its opening brace offers Load structure. One query goes to the endpoint of the tab, with your SERVICE IRI and fx:properties options unchanged, so files that only the endpoint can reach (a server path, a URL behind a firewall or with authentication) work too. Nothing is sent before you click, and a running load can be cancelled
    • Autocompletion suggests the columns, keys and XML elements of the file first (xyz:email, xyz:book), under From people.csv, with how often they occur
    • A new Source view in the side panel, listed only while the query has such a block (Inspect on the chip, or Inspect … in the Ctrl+K search):
      • Structure: the tree of the file as SPARQL Anything sees it, with counts and example values. Click to insert
      • Preview: the first 100 triples in Turtle, with Open as query
      • Build query: tick the values you need and MatGUI writes the patterns from the root, with OPTIONAL for optional values. Replace the block, insert at the cursor, or open a complete SELECT in a new tab
    • Loaded structures are remembered per endpoint and options for a day. CSV, JSON and XML are shown best; other formats work with a more generic tree
  • SPARQL Anything vocabularies (#242): the xyz:, fx: and fxe: prefixes are always in the bundled prefix list, fx:anySlot, fx:Root and the fxe: options (fxe:location, fxe:csv.headers…) are suggested, and the fx: functions (fx:entity, fx:String.substring…) are suggested where an expression can start

For developers and embedders

  • New Yasgui option sparqlAnything: set it to false to switch off the chips and the Source view
  • Yasqe gets getSparqlAnythingSources(), getSparqlAnythingSourceAt(), Yasqe.SparqlAnything.findSparqlAnythingSources(), the contextTerms and sparqlAnythingChip config options, and a new function autocompleter
  • The side panel gets setViewVisible(view, visible)
  • dev/sparql-anything has a Docker Compose test environment with a SPARQL Anything server and sample CSV, TSV, JSON and XML files
  • Prefixes listed in ALWAYS_INCLUDED now survive the prefix.cc refresh at build time
  • Nothing was removed: existing config keys, methods and events keep working

Full Changelog: v6.10.0...v6.11.0

v6.10.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 24 Oct 15:24
b9cae02

MatGUI v6.10.0

Ask an AI to write, explain or fix your query, and see how the endpoint ran it: this release adds an AI assistant and a new Explain view with the execution plan and the SPARQL algebra.

New features

  • AI assistant (#239): a new AI view in the side panel, opened with the AI button of the editor toolbar or Ask AI… in the Ctrl+K search
    • Write a query from a question in plain language, explain or fix the query in the editor, and explain the results
    • The error view of the results gets Fix with AI and Copy for AI. For a query without results, the fix becomes Why no results?
    • Queries in an answer can be put in the editor, inserted, opened in a new tab or copied. Nothing is run automatically
    • The assistant knows the endpoint: it gets the most used classes and properties (the same source as the autocomplete), and may run up to five small read-only check queries (SELECT/ASK, at most 20 rows), each shown in the answer
    • Works with any OpenAI-compatible API. Add one or more services in Settings > AI: pick a provider such as OpenAI, Anthropic, Gemini, Mistral or Kimi from the Base URL list, or type any other URL (Azure OpenAI, LM Studio, a local model…), then add your API key and model. Choose a default service and switch at the top of the AI view
    • No service? The actions copy a ready-made prompt you can paste in any AI chat
    • Privacy: before the first request to a service you see what is sent and where, and every answer shows the exact request. Your API key stays in your browser and is never exported or shared
  • Explain view (#147): the new Explain tab in the results shows the execution plan of the query you just ran, asked from the endpoint with one background request: the operations with their rows and time for QLever (slowest operation highlighted), and the plans of GraphDB, Stardog, Blazegraph and Amazon Neptune. For any endpoint it also shows the SPARQL algebra of the query, as a tree and as the s-expression of the specification. The engine is recognised from the endpoint URL and can be picked by hand per endpoint. Provided by the new yasgui-explain-plugin 1.0.0
  • railML 3 and RailTopoModel autocomplete (#236): the railml: and rtm: vocabularies are always part of the bundled suggestions

Changes

  • The Response view has an outline icon matching the other views (#238)

For developers and embedders

  • New Yasgui option ai: offer your own AI service with ai.proxy (one proxy or a list), so users don't need their own key, or remove the assistant with ai: { enabled: false }. The provider specifics (Gemini base URL, Azure deployments, LM Studio CORS) are in the user guide
  • yasr.hostApi is version 2:
    • yasr.executeQuery(query, { extraArgs, endpoint }) lets a plugin add request parameters or use another path on the same server, with the tab's authentication and request settings (hostApi.queryRequest)
    • hostApi.assistant and yasr.askAssistant({ title, prompt, context }) let a plugin hand a question to the AI assistant; embedders can plug in their own with the assistant config hook
  • Yasqe keeps the first syntax error of the query in yasqe.syntaxError
  • Nothing was removed: existing config keys, methods and events keep working

Full Changelog: v6.9.0...v6.10.0

v6.9.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 20 Oct 07:50
e0d2752

The editor now knows your endpoint: autocomplete suggests the classes and properties the endpoint actually uses, and hovering an IRI tells you what it is.

New features

  • Class and property autocomplete from the endpoint (#195): Ctrl+Space after a or in a property position lists the classes and properties used in the current endpoint first, most used first with their usage count. The terms come from the Endpoint overview (VoID, the Classes/Properties results, or one small background query cached per endpoint). Picking one inserts the prefixed name and adds the missing PREFIX. Switch it off per endpoint in the Endpoint overview
  • Linked Open Vocabularies suggestions work again: the LOV API is broken, so MatGUI now ships the classes and properties of the most used LOV vocabularies and searches them in the browser. The ERA ontology is always included. LOV suggestions are inserted as prefixed names with their PREFIX
  • IRI hover info (#196): hover an IRI or prefixed name in the editor to see its label, description, type and, for properties, domain and range. The information comes from a small query on the tab's endpoint, with a LOV lookup when the endpoint doesn't describe the IRI. Switch it off in Settings > Editor
  • Pick the result view in the query (#134): a #defaultView:<view> comment line opens the results in that view, like the Wikidata Query Service. View names match case-insensitively, and Wikidata names such as Map and BarChart open the Geo and Chart views. Added prefixes now go below the comment lines at the top of a query, so the comment stays on the first line

Changes

  • The snippets bar is no longer offered in the editor settings, since snippets are in the Insert menu and the Ctrl+K search. A value saved by that setting is ignored

Fixes

  • Even spacing around the side panel's icon bar (#231)
  • The default Light Theme didn't clearly show the selected text in the editor

For developers and embedders

  • New Yasgui options iriHover and iriHoverLovFallback, and endpointDescribe.autocomplete: false to turn off endpoint suggestions for all endpoints
  • New Yasqe options iriHover, iriHoverDelay, endpointTerms and lovTerms (replace the bundled LOV list, or null to leave out LOV suggestions), and a getIriAt(pos) method. Autocomplete hints can carry a detail, a section and prefixes to declare
  • The bundled LOV list lives in packages/yasqe/src/lov-terms.json. Refresh it with npm run util:fetchLov; a monthly "Refresh LOV terms" workflow opens a pull request with the update
  • Embedders can still show the snippets bar with showSnippetsBar: true
  • Dependency updates: query-string 9 in yasqe, and Vite 8, esbuild 0.28 and Mocha 12 for development
  • Nothing was removed: existing config keys, methods and events keep working

Full Changelog: v6.8.0...v6.9.0

v6.8.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 18 Oct 14:25
c1fb065

A lighter, calmer MatGUI: each query now lives on one card, and a new search finds your saved queries, commands, snippets and settings with Ctrl+K.

Thanks to @miapb for the help with the redesign.

New features

  • One query card: the query title, the editor and the results sit together on one card with no gap, separated by a thin line with a grip to resize them
  • Title and breadcrumbs: the card shows the name of the query (double-click to rename it) and, for saved queries, the workspace and folders it is in and its version
  • Saved status: saved queries show "✓ Saved", "Unsaved changes" or "Read-only" next to Run
  • Editor toolbar: Prefixes, Insert, Share, Format, Save, Download, full screen and the layout toggle sit in a compact toolbar at the top right of the editor
  • Search (Ctrl+K / ⌘K): find and open saved queries from all workspaces, insert code snippets, run commands (Run, New tab, Switch endpoint, Explore endpoint, Format, Share, Toggle side panel, dark mode and more) and open any settings section. Type > to search commands and settings only
  • Side panel: a bar of icons stays on the left while the panel is closed. Ctrl+B / ⌘B shows or hides the panel, and Queries / Endpoint are now segmented tabs
  • Describe panel: drag its left edge to make it wider, float it as a window you can move and resize, or maximize it. The width and position are remembered
  • New look: pill-shaped tabs, the Geist font at 13px, quieter colours, MatData colours for SPARQL in the editor, and a compact results header, in light and dark mode

Fixes

  • Full screen results now stay below the top bar, like the full screen editor, on a solid background

For developers and embedders

  • New config option showCommandPalette (default true) to hide the search and its Ctrl+K shortcut
  • New yasgui.commandPalette, yasgui.queryBrowser.openQuery(workspaceId, queryId, label), and on tabs getBreadcrumbs(), getSavedVersionLabel(), openInsertMenu(), insertPrefixes(), focusEndpoint(), getSnippets() and insertSnippet()
  • New theme tokens: --yasgui-surface-selected, --yasgui-line-soft, --yasgui-line-grip, --yasgui-ink-subtle, --yasgui-brand-fill, --yasgui-success, --yasgui-shadow-raise, --yasgui-shadow-sheet, --yasgui-shadow-overlay, --yasgui-scrim and --yasgui-font-size. All existing --yasgui-* variables keep working
  • The interface font is now Geist (it was Barlow). MatGUI loads no web fonts: load Geist and JetBrains Mono on your page to get the full look, otherwise the system font is used
  • Nothing was removed: existing config keys, methods, classes such as controlbar, events and persisted settings still work. The Prefixes, Insert and layout buttons moved from the query bar into the editor toolbar, and the Explore endpoint button moved to the side panel's icon bar (F8 still works)

Full Changelog: v6.7.0...v6.8.0

v6.7.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 17 Oct 22:12
55a2b90

A new look for MatGUI, in the MatData style, and upgraded table, geo, graph and chart viewer plugins.

New features

  • New top bar with the tabs, plus help, theme and settings on the right
  • New query bar: an endpoint picker with the quick-switch endpoints in its dropdown, Run (Ctrl+Enter) right next to it, and labelled Prefixes, Explore endpoint and Insert buttons
  • Run turns into Stop while a query runs
  • Code snippets moved into one Insert menu with search. The snippets bar is hidden by default and can be turned back on in the settings
  • One side panel on the left with the saved queries and the endpoint overview. Pin it, fold it to a narrow rail, or resize it. F8 still opens the endpoint overview
  • Managed queries show their saved version in the query bar
  • New shared describe panel next to the results: outgoing and incoming triples, back and forward (Alt+← / Alt+→), click a resource to hop to it, raw response, Open as query and Copy IRI. All viewers use it
  • All viewers put their controls in the same toolbar under the results header, with View settings on the right
  • New MatData colours in light and dark mode, and Lucide icons throughout

Table viewer

  • Describe opens in the shared describe panel and the controls move to the shared toolbar

Geo viewer

  • Map settings move to the shared toolbar; zoom, layers and the time slider stay on the map
  • Describe opens in the shared describe panel
  • Emoji map buttons replaced by icons

Graph viewer

  • Ctrl+click a node to describe it
  • Controls move to the shared toolbar
  • New node colours that match the map and chart

Chart viewer

  • Chart selects move to the shared toolbar
  • Describe opens in the shared describe panel
  • First series in brand blue, hovered item in amber

For developers and embedders

  • New plugin host API in YASR: yasr.hostApi, yasr.describe(), yasr.closeDescribe(), the describe event, yasr.getPluginToolbar() and the openQueryInNewTab config hook. Plugins should feature-detect yasr.hostApi
  • New config key helpUrl, new yasgui.sidePanel and tab.openSettings(), and yasqe.isQueryRunning(). yasqe.insertSnippet() is now public
  • New theme tokens (--yasgui-surface, --yasgui-ink, --yasgui-brand, --yasgui-highlight, radius, shadow and font tokens). All existing --yasgui-* variables keep working
  • Nothing was removed: existing config keys, yasgui.queryBrowser and yasgui.endpointDescribe methods, events and persisted settings still work. Older plugin versions keep their own toolbar and describe window
  • MatGUI loads no web fonts; load Barlow and JetBrains Mono on your page to get the full look

Full Changelog: v6.6.0...v6.7.0

v6.6.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 07 Oct 14:32

Upgraded table and geo result viewer plugins.

Table viewer

New features

  • Added clickable URIs in the describe modal: Ctrl+click describes a URI as subject, Ctrl+Shift+click as object, so you can hop from node to node
  • Added back, forward and back-to-start buttons (and Alt+← / Alt+→) to the describe modal, to step through those hops

Geo viewer

New features

  • Added back, forward and back-to-start buttons (and Alt+← / Alt+→) to the describe modal, to step through the IRIs reached by Ctrl+click

Full Changelog: v6.5.0...v6.6.0

v6.5.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 06 Oct 21:32

New features

  • Added option to mark workspaces as readonly (fixes #187)

Fixes

  • Updated geo viewer to fix issues with hover where label and hover color remained on geometry collections

Full Changelog: v6.4.1...v6.5.0

v6.4.1

Choose a tag to compare

@MathiasVDA MathiasVDA released this 06 Oct 14:17

Fixes

  • Missing font in package, see #191

Full Changelog: v6.4.0...v6.4.1

v6.4.0

Choose a tag to compare

@MathiasVDA MathiasVDA released this 06 Oct 09:55

Upgraded table and geo result viewer plugins.

Table viewer

Fixes

Geo viewer

New features

  • Added Ctrl+click and Ctrl+Shift+click support to describe entities.
  • Added hover highlighting and labels for features.
  • Added a None basemap option and keyless layers, and removed the (API required) CartoDB option.
  • Added openrailwaymap overlay

Fixes

  • Fixed popup overflow so long IRIs and geometry literals stay visible inside the popup.

Full Changelog: v6.3.0...v6.4.0