概要

Pythonを使ってRDFデータをDydraに登録するライブラリを作成しました。

https://github.com/nakamura196/dydra-py

中途半端な実装が含まれますが、お役に立つ場面があれば幸いです。

工夫

インポートは以下で行なっています。

https://github.com/nakamura196/dydra-py/blob/main/dydra_py/api.py#L55

以下のように、SPARQLのINSERT DATA オペレーションを使用しています。

defi"IA"h}fpfm"mr"eirop"pg"aliroosdenrr:ffge""stf#ggnieiriettiorrAC(irrtflfefl_slrasuo="lRaa_sssbemptnNeDppdgevpreyR_ah=htsuFhharqI{}":qIG}}"epoep:p_Dpt_oeemi.tauNn}"uNR}}"rrnsrrfFau{rnlbn=papeSt"eSA"bispiiit(ritfeahrE_rEPoneonnldhsiz-.rtrr=_yRdyRH{stntteataT_qdsuTaTne(=s(((t(r(tycodfegr=t=<t:qe"fsas)siphfml(riDaD{_ur.D"et:toeu(ifafA}fAgdeesaElfrrn"ncfbipi"T"Trarqttrfr)T,":khi.lhs"A"Aatyuaar,o:h:_ulGe.""pa)etomeo"rner,sN{{h}susrfTpfadksaeo{{_tsu:iahft"pfs)pfrnus_cleoiBp_::hoier.cc{efroelf(ra:ipoer_ipmnaii")ml}odseplaaarcl,ai>sessaettleaetztfpth)rt(l=e{(=uohio:ifef({s=ln,ntf{oinofelstoUsnl(rol2yefotRe/efmrf0.othIls_iam.0isrthefppltae:ntmheo.aae)tnsaaeRfarts=dettRDpqh)'pru,DDFtil,)#notsyFh_-tie_gdfekuf'ndcrrfiepo)t.oaailgydr,"dpler}am)ehsea"tad}_t(p,etauoteh"=t{rro.fariegwo=e=.i.hrqsNm,emupopraeono'etrnerx)ys,tmd,e.la.v'thte,aeeraxb'wdtonie}stlr"e'ls)=)=F.bhaeelasidene)sr:esr)ted.DefaultstoNone.

工夫

工夫した点として、サイズが大きいRDFファイルを一度にアップロードした際、プロセスが途中で止まってしまうケースがありました。

そこで、以下のようにRDFファイルを分割する処理を加えて、複数回アップロードするようにしています。

def_iss"ggccccfpf#ircfee".uuhoirofehll"=prruulirtuoffRarrnnenlunuo..DGreektstsc#ciepfrktuo_Frsnn_(,oufnain_ptucaetti=="ur(tlruptlp(__nTpnrcchefdtupehicsd0[r,teo#tt#iusif_tua(nhie]inueefr=.l_d_tr)puzxp+tnmmraefid__unel=_tpptespsiridotk=eic__epfccneplriu_=n1h%ssmaiuhtleeirtf=1cueiptlru_fn(s=pi0otn1rz_hernc.ds=ulGuqk0iessekh_(eNtternd.0ai=.n_usploeo_,atma0l=zatineafnmudp:(diesp_nkrt,eptifhgd=zlepcd)ih:fpro(")(=ee>lehea)iiu(r),:(dn=fnux>lnltoms0(.dnipe_ual,:=tc_(k+0zu.dtteehsp=:etmip=npcmuea=__kruf(,upnrt1cfdtogr_kihGhit_r)rs_a)ruled"m)eeslanemi"anriipk,pr"ttizzh(())_aee(co)cl:_)uuhicrtuzhrpneu#eukdnnt.)kt_s(_decciruhriru=arnNlekoin,nztee_c,(chfhucounhrnkumk_na,iktn_=cdsfheiouxzrn,emk=a_f5tio0)nr0dm*ea1xt0,=2f4fo,orrmfmaoatrt)m=afto=r'mtautr)tle'):

まとめ

RDFやDydraの利用にあたり、参考になりましたら幸いです。