Overview# I created a library for registering RDF data to Dydra using Python.
https://github.com/nakamura196/dydra-py
It includes some incomplete implementations, but we hope it proves useful in some situations.
Implementation Details# The import is performed in the following file.
https://github.com/nakamura196/dydra-py/blob/main/dydra_py/api.py#L55
It uses the SPARQL INSERT DATA operation as follows.
d e f i " I A " h } f p f m " m r " e i r o p " p g " a l i r o o s d e n r r : f f g e " " s t f # g g n i e i r i e t t i o r r A C ( i r r t f l f e f l _ s l r a s u o = " l R a a _ s s s b e m p t n N e D p p d g e v p r e y R _ a h = h t s u F h h a r q I { } " : q I G } } " e p o e p : p _ D p t _ o e e m i フ . t a u N n } " u N R } } " r r n s r r f F a u { r n l b n ァ = p a p e S t " e S A " b i s p i i i t ( r i t f e イ a h r E _ r E P o n e o n n l d h s i z - . r t ル r r = _ y R d y R H { s t n t t e a t a T _ q の d s u T a T n e ( = s ( ( ( t ( r ( t y c o d 読 f e g r = t = < t : q e " f s a s ) s i p h f m み l ( r i D a D { _ u r . D " e t : t o e u ( 込 i f a f A } f A g d e e s a E l f r r n " n c f み b i p i " T " T r a r q t t r f r ) T , " : k h i . l h s " A " A a t y u a a r , o : h : _ u l G e . " " p a ) e t o m e o " r n e r , s N { { h } s u s r f T p f a d k s a e o { { _ t s u : i a h f t " p f s ) p f r n u s _ c l e o i B p _ : : h o i e r . c c { e f r o e l f ( r a : i p o e r _ i p m n a i i " ) m l } o d s e p l a a a r c l , a i > s e s s a e t t l e a e t z t f p t h ) r t ( l = e { ( = u o h i o : i f e f ( { s = l n , n t f { o i n o f e l s t o U s n l ( r o l 2 y e f o t R e / e f m r f 0 . o t h I l s _ i a m . 0 i s r t h e f p p l t a e : n t m h e o . a a e ) t n s a a e R f a r t s = d e t t R D p q h ) ' p r u , D D F t i l , ) # n o t s y F h _ - t i e _ g d f e k u f フ ' n d c r r f i e p o ォ ) t . o a a i l g y d r ー , " d p l e r } a m マ ) e h s e a " t a ッ d } _ t ( p , e t ト a u o t e h " = は t { r r o . f フ a r i e g w o ァ = e = . i . h r イ q s N m , e m ル u p o p r a に e o n o ' e t 応 r n e r x ) じ y s , t m d て , e . l a 変 . v ' t 更 h t e , a e e r a x b ' w d t o n i e } s t l r " e ' l s ) = ) = F . b h a e e l a s i d e n e ) s r : e s r ) t e d . D e f a u l t s t o N o n e .
Key Design Decision# One notable design decision was handling large RDF files. When uploading large RDF files all at once, there were cases where the process would stop midway.
Therefore, I added a process to split RDF files and upload them in multiple requests.
d e f _ i s s " g g c c c c f p f # i r c f e e " . u u h o i r o f e h l l " = p r r u u l i r 最 t u o f f R a r r n n e n 後 l u n u o . . D G r e e k t s t s c # c i の e p f r k t u o _ F r s n n _ ( , o u f チ n a i n _ p t u c a e t t i = = " u 一 r ャ ( t l r u p t l フ p ( _ _ n T p n 時 r c ン c h e f d t u p e ァ h i c s d 0 [ r , t 的 e o # t t # i ク u s i f _ t u a イ ( n h i e ] i な n u e e f を r = . l _ d _ t r ル ) p u z x p + グ t n シ m m 現 保 r a e f i d _ _ を u n e l = ラ _ t リ p p 在 t 存 e s p s i r i d o 指 t k = e i フ c ア _ _ の e p f c c n e p l r i u 定 _ = n 1 に h % ラ s s チ m a i u h t l e e i r t さ f = 1 c ト u イ e i ャ p t l r u _ f n ( s = p れ i 0 o t リ n 1 ズ r z ン _ h e r n c . d s = u た l G u q プ k 0 し i e ク s s e k h _ ( e N t t サ e r n d ル . 0 て a サ i = . n _ u s p l o e o _ イ , a t m を a 0 サ l = イ z a t i n e a f n m u d ズ p : ( 追 d イ i ズ e s p _ n k r t , e p t i の f h g 加 d = ズ z l が e p c d ) i h : f p r チ o ( " ) ( = を e e 設 > l e h e a ) i i u ( ャ r ) , : ( 確 d n 定 = f n u x > l n l t o ン m s 0 認 ( 値 . d n i p e _ u ク a l , : = t を c _ ( k + 0 z u . d t に t e e 超 h s p = : e t m i p 分 = n p c m え u e a = _ _ k r u 割 f ( , u p た n r t 1 c f d t す o g r _ ら k i h G h i t _ る r ) r s シ _ a ) r u l e d " m ) e e リ s l a n e m i " a n r ア i i p k , p r " t t i ラ z z h ( ( ) ) _ a イ e e ( c o ) c l ズ : _ ) u u h i し c r t u z て h r p n e フ u # e u k d ァ n n t . ) イ k 新 t _ s ル ( し _ d e に c い c i r 保 u グ h r i 存 r ラ u = a r フ n N l e を k o i n 開 , n z t 始 e e _ c , ( c h f h u c o u n h r n k u m k _ n a , i k t n _ = c d s f h e i o u x z r n , e m k = a _ f 5 t i o 0 ) n r 0 d m * e a 1 x t 0 , = 2 f 4 f o , o r r m f m a o a t r t ) m = a f t o = r ' m t a u t r ) t l e ' ) :
Summary# We hope this serves as a useful reference for using RDF and Dydra.