Skip to content
Daniel Heward-Mills edited this page Sep 27, 2025 · 1 revision

FAQ

Frequently asked questions about SPARQLWorks™ and their answers.

🚀 Getting Started

What is SPARQLWorks?

SPARQLWorks is a web-based application for composing, running, and visualizing SPARQL queries against any SPARQL 1.1 compliant endpoint. It transforms query results into interactive knowledge graphs using D3.js visualization.

Do I need to install anything?

No installation required! SPARQLWorks runs entirely in your web browser. Just open the URL and start querying.

What browsers are supported?

SPARQLWorks works in all modern browsers:

  • Chrome 80+
  • Firefox 75+
  • Safari 13+
  • Edge 80+
  • Mobile browsers with modern JavaScript support

📝 Query Composition

What's the difference between Basic and Advanced modes?

  • Basic Mode: User-friendly interface for simple queries. You write WHERE clauses and SPARQLWorks automatically generates the full CONSTRUCT query.
  • Advanced Mode: Full SPARQL editor for complex queries, custom constructs, and advanced SPARQL features.

Can I use any SPARQL endpoint?

Yes! SPARQLWorks works with any SPARQL 1.1 compliant endpoint that supports JSON-LD output format. Popular endpoints include Wikidata, DBpedia, and custom enterprise endpoints. Additional output formats will be supported in the future.

How do I write queries in Basic mode?

Basic mode uses simple triple patterns:

?movie dbo:creator ?creator;
       rdfs:label ?movieName.
FILTER(?creator = dbr:Spike_Lee)

SPARQLWorks converts this into a complete CONSTRUCT query automatically.

What's the LIMIT for queries?

Default limit is 200 results. You can adjust this in Basic mode (1-10000) or set it explicitly in Advanced mode queries.

🎨 Graph Visualization

Why is my graph empty?

Possible causes:

  • No results: Your query returned no data - try broadening the WHERE clause
  • Filtering: Active filters may be hiding all nodes
  • Endpoint issues: Check if the endpoint is accessible
  • Authentication: Some endpoints require login and/or have ACL protected content

How do I navigate large graphs?

  • Zoom: Mouse wheel or pinch gestures
  • Pan: Click and drag empty space
  • Fit: Click "Fit" button to see entire graph
  • Hover focus: Hover over nodes to highlight connections
  • Filters: Use type/property filters to reduce complexity

What do the different node colors mean?

  • Blue: IRI entities (persons, places, organizations)
  • Green: RDF classes and types
  • Orange: Categories and classifications
  • Purple: Roles and functions
  • Gray: Literal values (strings, numbers, dates)

How do I make nodes larger/smaller?

Node sizes are automatic based on type:

  • Classes: Largest (18px)
  • Roles: Large (16px)
  • Entities: Medium (14px)
  • Literals: Small (10px)

🔐 Authentication

How do I access protected endpoints?

SPARQLWorks supports two authentication methods:

  1. OAuth 2.0: Modern, secure authentication with PKCE
  2. Bearer tokens: Direct token input

What's OAuth vs Bearer token?

  • OAuth: Browser-based login flow, secure and standard
  • Bearer: Manual token entry, simpler but requires token management

Why does OAuth require HTTPS?

OAuth 2.0 security requires HTTPS to prevent token interception. The application must be served over HTTPS for OAuth to work.

Can I share authenticated queries?

Yes, but they will return empty or reduced results if the recipient does not have the same granted access. Authentication credentials are not included in shareable URLs for security reasons. Recipients must authenticate separately.

⚙️ Settings and Customization

How do I save my settings?

All settings are automatically saved in your browser's local storage and persist between sessions.

Can I reset all settings?

Yes, in browser console:

localStorage.clear();
location.reload();

How do I customize label priority?

  1. Click the gear icon next to "Use IRI Labels"
  2. Drag predicates to reorder priority
  3. Click "Save" to apply changes

What's the difference between IRI and friendly labels?

  • IRI Labels: Show compact CURIEs (e.g., dbr:Apple_Inc.)
  • Friendly Labels: Show human-readable names from schema:name, rdfs:label, etc.

🔗 Sharing and URLs

How do I share my queries?

Click the link icon (🔗) next to the controls toggle. This copies a complete URL with your query and settings to the clipboard.

What parameters are included in shared URLs?

Everything: query, endpoint, filters, physics settings, visualization preferences, and node positions.

Why is my shared URL so long?

SPARQLWorks encodes the complete application state, including the full SPARQL query and all settings. This ensures exact reproduction.

Can I bookmark specific visualizations?

Yes! Shared URLs are bookmarkable and will restore the exact state when opened.

🐛 Troubleshooting

Query fails with "HTTP 400/500"

  • Check query syntax in Advanced mode
  • Verify endpoint URL is correct and accessible
  • Ensure proper authentication if required
  • Try a simpler query first

Graph shows "No results"

  • Remove FILTER clauses that might be too restrictive
  • Check if the endpoint has the expected data
  • Verify namespace prefixes are correct
  • Try increasing the LIMIT

Application is slow or unresponsive

  • Reduce graph size with LIMIT or filters
  • Close other browser tabs
  • Clear browser cache
  • Try a different browser

Controls panel doesn't open

  • Click the gear icon (⚙️) in the top-right
  • Check if popup blockers are interfering
  • Try refreshing the page

Authentication doesn't work

  • Ensure HTTPS for OAuth
  • Check redirect URI configuration
  • Verify endpoint supports chosen auth method
  • Try clearing browser data for the domain

📊 Performance

What's the maximum graph size?

SPARQLWorks can handle thousands of nodes, but performance depends on your device.

How can I improve performance?

  • Use LIMIT to reduce result size
  • Apply filters before visualization
  • Close the query panel when exploring
  • Use simpler physics settings
  • Disable hover focus for large graphs

Why does my browser slow down?

Large graphs require significant memory and processing. Try:

  • Reducing node count
  • Using filters to focus on relevant data
  • Closing other applications
  • Using a more powerful device

🔧 Advanced Usage

Can I use custom prefixes?

Yes! In Both Basic and Advanced mode, you can define custom prefixes:

PREFIX my: <http://example.com/my-schema#>
CONSTRUCT { ?s my:property ?o }
WHERE { ?s my:property ?o }

How do I export graph data?

Currently, SPARQLWorks focuses on visualization. For data export, use the underlying SPARQL endpoint directly or implement custom export functionality.

Can I embed SPARQLWorks in other applications?

The application is designed as a standalone tool, but you can:

  • Link to specific queries via URL parameters
  • Embed in iframes (with proper CORS setup)
  • Integrate via API if you extend the application

What's the difference between URL formats?

  • Default: Opens IRIs directly in the browser
  • Virtuoso: Opens entity description pages using the endpoint's describe service

🛠️ Technical Questions

Is my data sent to external servers?

No! SPARQLWorks processes everything in your browser. Queries go directly to the SPARQL endpoint you specify.

How does SPARQLWorks handle CORS?

SPARQLWorks relies on SPARQL endpoints supporting CORS. Some endpoints may require proxy configuration for browser access.

What's the technology stack?

  • Frontend: Vanilla JavaScript (ES6+)
  • Visualization: D3.js v7
  • Styling: Tailwind CSS
  • Editor: Ace Editor
  • Data: JSON-LD, RDF

📞 Getting Help

Where can I report issues?

  • Check existing issues on the project repository
  • Create a new issue with detailed information
  • Include browser, endpoint, and steps to reproduce

What information should I include when reporting bugs?

  • Browser and version
  • SPARQL endpoint URL
  • Exact query that fails
  • Error messages or screenshots
  • Steps to reproduce the issue

Can I contribute to SPARQLWorks?

Yes! SPARQLWorks is open source. Contributions are welcome for:

  • Bug fixes
  • New features
  • Documentation improvements
  • Performance optimizations

← Technical Details

Clone this wiki locally