SPARQL クライアントを Apache Jena Fuseki に対応させるときにハマった 3 つのこと

Virtuoso / Dydra 向けに作られた SPARQL Explorer「Snorql」を Apache Jena Fuseki でも動くようにしました。SPARQL は W3C 標準ですが、エンドポイント実装ごとの挙動差は意外と大きいです。Fuseki 対応で直面した 3 つの問題と、その解決方法を記録します。 開発環境 Docker で Fuseki を起動し、ローカルで検証しました。 # 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 テ r - k ス l H - e ト d r デ - ' a ー X C t c タ o a o 投 P n - m 入 O t b p S e i o T n n s t a e ' - r h T y u 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 のレスポンス形式が違う 症状 Fuseki に DESCRIBE クエリを投げると、結果が画面に表示されません。コンソールには JSON パースエラーが出ていました。 ...

2026年2月8日 · 14 分 · Nakamura

Virtuosoが停止した際の再起動のためのコマンド

Virtuosoが停止した際の再起動のためのコマンドの備忘録です。誤りなどあるかもしれませんが、参考になりましたら幸いです。 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 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 lckファイルの削除と起動 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

2023年8月7日 · 2 分 · Nakamura

Amazon EC2に立てたVirtuosoのヘルスチェックを行う

概要 Amazon EC2に立てたVirtuosoのヘルスチェックを行う機会がありましたので、その備忘録です。 具体的には、何らかの不具合で、Virtuoso(https://xxx.zzz/sparql など)がエラーを返すようになってしまった際、その内容をメールで通知します。 方法 以下の記事で、Amazon EC2にVirtuoso RDFストアを構築する方法を紹介しています。 上記では、ELBを使用しています。上記の記事から1点だけ変更を行う必要があります。Health check pathを/に設定していますが、この部分をSPARQLエンドポイントへのパス(例えば/sparql)に変更します。 その後、以下の記事を参考に、CloudWatchやAmazon SNSの設定を行いました。 https://dev.classmethod.jp/articles/elb-healthcheck-monitoring-by-cloudwatch-alarm/ 結果 以下のようにモニタリングを行うことができるようになりました。 またアラート発生時には、以下のようなメールが届くようになりました。 Y V h A - - - - - - T - M - - - - - - - S - - - o i t l h o t u e t a N S R T A A r T n M M D P S U T a O A I w p r a t e i W l e h i e e i e t n r t K L N a s m m a a m S a s e t t t m r a i e e : A S r t : e t s e r h o r r e i t t a R U e h / D : e o s A m o a r i i n o i : t C M F i / e n t c l l e c c s d s M h : F r s u t C a c A d a d N N i : t i a I e s a h f m o r : r a a o i s n [ C c a - i a o p u n m M m m n c s g a I e l e l n r : n : e e e s : i e r E i a a s g t i t s : : n n N v r s : e S : s r p g A : T i m t : t i a D c a _ n - a i c c a t w D g i 1 t n : e t i s A n . e : a o : T t c t : n s A h t o C h s n : i h n h e : s s e s a : o n A u e A l g L s m W e e A - a S . : R e i a M a l M w s a s s t b n . t - e a a v O T F x a a 1 c g m i K h r x r t : a e a r r i x n e x u m z t e d x : x s e o u s a x a w x e n n o h y x w h x t . s A o x s e x y c o L l 1 x : n x o C o - A d 4 x c x u o m u R x l t A U [ 6 M n b x r n / n M C J x o h W n T 0 i o r x s c h r u x u e S H a n t e x A o l e o l x d / e r s i a x m l o a s y x w m A a g e m s c x a e u l s , a e p l e c u p h x z : d t e t t p t t o m e i x o w h d 2 c r l h G n c n : n a y : 0 h i i y r d i g D t h 2 : c c H o s f e C c o n 3 u a o u i f l h s o s i t s p e a o / t 0 - s i t d u u d c d 8 e o C = l d e o a : a G n o t W e u t 0 s r E u t _ a p n a 5 t e L n a C t l t p : - a B t r l c i - o 3 1 t g o h n a i 0 : e e u k l n x r t d A . a t U x T g W l j r s T x h r a a s m C x a o t r ? w x n u c m r e x O p h e r x r / _ " g e x E v A v i x q i l i o r x u r a r n e x a t r t = c x l u m u u e x T o s o s i x o s _ s - v : T o T o e e a h ] o - a d l r p u s a e [ i n t f r s A c h - o m h v ] e 1 r : o a a # v l i l a 5 i d l t l r a h a p t 1 b y r e u . i h m r o 0 l o s i s i s V o o f t t 2 d - o y c : s u r Z o a n o u l a h a n n a n e t e t r d a - m l l = a / 5 t e l v h a u a i m y s s r r i h t - m t s o e " u s s 5 a o i t s i s n c o t n o g o f - - u 1 t u d n t a h n a t h ] e h t - e e a a [ U a p l l L S l o a a o t i r s a E h n m t d a y t B s h s 5 a t o l s w p a ( t e e n N c r r c . o e i e u o r V n t d i t r ( = r - e s g a a ) a i l t p n a e o p i r d f / a m v ) a 6 i s 0 r r t e [ s u g B e o i r c s o e o o n a n / c d y h h s y a i . y s n y g y e ] y n . y t y e y r y e y d y y t y h y e ] A L A R M s t a t e , b e c a u s e " T h r e s h o l d C r o s s e d : n o d a t a p o i n t s w e r e r e c e i v e d f o r 5 p e r i o d s a n d 5 m i s s i n g d a t a p o i n t s w e r e t r e a t e d a s [ B r e a c h i n g ] . " a t " F r i d a y 1 4 J u l y , 2 0 2 3 0 8 : 0 5 : 3 0 U T C " . まとめ 同様の環境でVirtuosoを運用されている際の参考になりましたら幸いです。 ...

2023年7月14日 · 7 分 · Nakamura

[備忘録]Virtuosoの使い方

RDFストアであるVirtuosoの使い方に関する備忘録です。 登録済みのグラフURIを確認する Conductor > Linked Data > Graphs > Graphs 手動でのRDFファイルのアップロード Conductor > Linked Data > Quad Store Upload Federated Queryを有効化する 以下の記事が参考になりました。「Account Roles」の設定が必要でした。 https://community.openlinksw.com/t/enabling-sparql-1-1-federated-query-processing-in-virtuoso/2477 以上、参考になりましたら幸いです。

2022年8月19日 · 1 分 · Nakamura

コマンドラインから virtuoso を手動で再起動または停止する方法

コマンドラインから virtuoso を手動で再起動または停止する方法です。 以下の記事を参考にしています。 https://stackoverflow.com/questions/42575039/how-to-manually-restart-or-stop-virtuoso-from-commandline 以下のようにするのがよいようです。 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 具体例は以下です。 i s q l l o c a l h o s t : 1 1 1 1 d b a d b a E X E C = s h u t d o w n 以下のようにisqlがnot foundの場合、パスを変更して実行します。 ...

2022年8月19日 · 2 分 · Nakamura

[RDF] URIにアクセスしたらSnorqlの画面にリダイレクトさせる設定

以下の記事の続編です。 ジャパンサーチのRDFストアを参考として、https://xxx.abc/data/123などのURLにアクセスしたら、https://xxx.abc/?describe=https://xxx.abc/data/123にリダイレクトさせる設定の備忘録です。 ジャパンサーチの例 https://jpsearch.go.jp/entity/chname/葛飾北斎 -> https://jpsearch.go.jp/rdf/sparql/easy/?describe=https://jpsearch.go.jp/entity/chname/葛飾北斎 以下のようなconfファイルを作成し、適切な場所(例:/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 ] その後、apacheを再起動します。 ...

2022年8月19日 · 1 分 · Nakamura

AWS EC2を用いたVirtuoso RDFストアの構築

はじめに AWS EC2を用いたVirtuoso RDFストアの構築に関する備忘録です。独自ドメイン設定、HTTPS接続、Snorqlの設置、までを行います。 本記事以外にも、Virtuoso構築に関する有益な記事が多数存在しています。参考にしてください。 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 前提 ACM Certificateは作成済みとします。以下の記事などを参考にしてください。 https://dev.classmethod.jp/articles/specification-elb-setting/#toc-3 EC2 まずEC2のインスタンスを作成します。 Amazon Linuxを選択し、インスタンスタイプはt2.microとしました。 ネットワーク設定については、「セキュリティグループを作成する」を選択し、「HTTPSトラフィックを許可する」と「HTTPトラフィックを許可する」の両方にチェックを入れます(以下の図では、後者にのみチェックが入っている状態ですのでご注意ください)。 インスタンスの状態が「実行中」になったら、画面右上の「接続」ボタンを押して、サーバに接続します。 接続後、以下を実行して、apacheサーバを立ち上げておきます。 s c s < s s u d u p u u d d > d d o o t o o v e y a v s s s u r i t y y m / < s s w i / t t i w n p e e n w d > m m s / e c c t h x t t a t . l l l m h l l t s e m t n h l a a t r b t t l p e d h t h - t t y p t d p d ELB作成 「ロードバランシング」の「ターゲットグループ」を選択します。 ...

2022年8月16日 · 6 分 · Nakamura

Virtuoso RDFストアに対して、curlおよびpythonを用いてRDFファイルを登録・削除する方法

概要 Virtuoso RDFストアに対して、curlおよびpythonを用いてRDFファイルを登録・削除する方法の備忘録です。 以下を参考にしています。 https://vos.openlinksw.com/owiki/wiki/VOS/VirtRDFInsert#HTTP PUT curl 上記のページの通りです。まず、登録用のサンプルデータとして、myfoaf.rdfを作成します。 < 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 / 中 村 覚 " > 次に以下のコマンドを実行します。 ...

2022年8月16日 · 5 分 · Nakamura