Three Pitfalls When Adapting a SPARQL Client to Apache Jena Fuseki

I adapted the SPARQL Explorer “Snorql,” originally built for Virtuoso / Dydra, to work with Apache Jena Fuseki. While SPARQL is a W3C standard, the behavioral differences between endpoint implementations can be surprisingly large. Here I document the three issues I encountered during Fuseki adaptation and their solutions. Development Environment I started Fuseki with Docker and tested locally. # s e o d r f l f o v u u u c i s i c p e m s k c e m o o n o e e e e k a n r - v - - l - s k r s i g t t i u : i - : : e a s " r A F m f - c : i : 3 o D U e u d o n 0 n M S s s a m s e 3 m I E : e t p t r 0 e N K k a o a _ : n _ I i : s i n 3 t P _ - e n a 0 : A D d . / m 3 S A a y j e 0 S T t m e : " W A a l n O S : a f R E / - u D T f f s = _ u u e a 1 s s k d = e e i m t k k i e i i n s t d # c o u c L r - k o l H - e a d r d - ' a X C t c t o a o e P n - m s O t b p t S e i o T n n s d t a e a ' - r t h T y u a t y p t p @ p e t - : : e d / s / t t l e d o x a c t t a / a l t . h u t o r t s t l t l : e 3 ' 0 3 0 / t e s t / d a t a ' 1. DESCRIBE Response Format Differs Symptom When sending a DESCRIBE query to Fuseki, results were not displayed on screen. The console showed JSON parse errors. ...

February 8, 2026 · 16 min · Nakamura

Commands for Restarting Virtuoso When It Stops

This is a personal note on the commands for restarting Virtuoso when it stops. There may be some errors, but I hope it serves as a useful reference. Checking virtuoso-t w h i / c u h s r v / i l r o t c u a o l s b - i t n / v i r t u o s o - t Checking the Location of virtuoso.ini s u d o u s f r i / n l d o c / a l - / n v a a m r e / l v i i b r / t v u i o r s t o u . o i s n o i / d b / v i r t u o s o . i n i Deleting the lck File and Starting s s u u d d o o r / m u s - r r / f l c u a s l r b l i o n c / a v l i / r v t a u r s l o i - b t / v + i c r o t n u f o i s g o f / i d l b e / v / i u r s t r u l s o o c . a l l c / k v a r / l i b / v i r t u o s o / d b / v i r t u o s o . i n i

August 7, 2023 · 2 min · Nakamura

Health Checking Virtuoso Running on Amazon EC2

Overview I had the opportunity to set up health checks for Virtuoso running on Amazon EC2, so this is a memo of the process. Specifically, when Virtuoso (e.g., https://xxx.zzz/sparql) starts returning errors due to some issue, the details are sent via email notification. Method The following article introduces how to set up a Virtuoso RDF store on Amazon EC2. The above setup uses an ELB. Only one change needs to be made from the above article. The Health check path was set to /, but this should be changed to the path to the SPARQL endpoint (e.g., /sparql). ...

July 14, 2023 · 7 min · Nakamura

[Memo] How to Use Virtuoso

This is a memo on how to use Virtuoso, an RDF store. Checking Registered Graph URIs Conductor > Linked Data > Graphs > Graphs Manually Uploading RDF Files Conductor > Linked Data > Quad Store Upload Enabling Federated Query The following article was helpful. The “Account Roles” configuration was required. https://community.openlinksw.com/t/enabling-sparql-1-1-federated-query-processing-in-virtuoso/2477 I hope this serves as a helpful reference.

August 19, 2022 · 1 min · Nakamura

How to Manually Restart or Stop Virtuoso from the Command Line

Here is how to manually restart or stop Virtuoso from the command line. The following article was used as a reference. https://stackoverflow.com/questions/42575039/how-to-manually-restart-or-stop-virtuoso-from-commandline The following approach seems to work well. i s q l { h o s t } : { p o r t } { U I D } { P W D } E X E C = s h u t d o w n A specific example is as follows. ...

August 19, 2022 · 2 min · Nakamura

[RDF] Configuring URI Access to Redirect to the Snorql Interface

This is a continuation of the following article. This is a memo on configuring redirects so that accessing URLs like https://xxx.abc/data/123 redirects to https://xxx.abc/?describe=https://xxx.abc/data/123, using Japan Search’s RDF store as a reference. Japan Search example: https://jpsearch.go.jp/entity/chname/葛飾北斎 -> https://jpsearch.go.jp/rdf/sparql/easy/?describe=https://jpsearch.go.jp/entity/chname/葛飾北斎 Create a conf file like the following and place it in the appropriate location (e.g., /etc/httpd/conf.d/). R R R e e e w w w r r r i i i t t t e e e E C R n o u g n l i d e n e % { o H n T ( T d P a _ t A a C | C e E n P t T i } t y ) * / t . e * x ) t / h h t t t m p l s : / / x x x . a b c / ? d e s c r i b e = h t t p s : / / x x x . a b c / $ 1 [ L , R = 3 0 3 ] Then restart Apache. ...

August 19, 2022 · 2 min · Nakamura

Building a Virtuoso RDF Store Using AWS EC2

Introduction These are notes on building a Virtuoso RDF store using AWS EC2. This covers custom domain configuration, HTTPS connection, and Snorql installation. There are many other useful articles on building Virtuoso. Please refer to them as well: https://midoriit.com/2014/04/rdfストア環境構築virtuoso編1.html https://qiita.com/mirkohm/items/30991fec120541888acd https://zenn.dev/ningensei848/articles/virtuoso_on_gcp_faster_with_cos Prerequisites An ACM Certificate should already be created. Please refer to articles such as the following: https://dev.classmethod.jp/articles/specification-elb-setting/#toc-3 EC2 First, create an EC2 instance. Select Amazon Linux, and set the instance type to t2.micro. ...

August 16, 2022 · 8 min · Nakamura

How to Register and Delete RDF Files in Virtuoso RDF Store Using curl and Python

Overview Notes on how to register and delete RDF files in Virtuoso RDF store using curl and Python. The following was used as a reference. https://vos.openlinksw.com/owiki/wiki/VOS/VirtRDFInsert#HTTP PUT curl As described on the above page. First, create myfoaf.rdf as sample data for registration. < r / d r f d : < f R f / : D o f R F a o D f < a F x : f f > m P o : l e a P n r f e s s : r : o n s f n a o o m n a r e > f d > = f 中 " : 村 h a 覚 t b < t o / p u f : t o / = a / " f x h : m t n l t a n p m s : e . / > c w m w / w f . o e a x f a / m 0 p . l 1 e / . " c > o m / p e o p l e / 中 村 覚 " > Next, execute the following command. ...

August 16, 2022 · 6 min · Nakamura