Python语义代理/服务器,使用哪个框架?
今年我和一个朋友需要为大学的最后一年做一个项目。我们的计划是制作一个代理服务器,这个服务器可以存储本体和RDF数据。通过这种方式,这些数据就像是“链接”到一个网络上,你可以向这个网络发出请求,代理服务器会把带有元数据的主页发给你。
我们考虑使用Python和rdflib来实现这个项目,但对于网页部分,我们不太确定哪个框架最好。我们想过使用Django,但觉得它对我们的需求来说有点太复杂了,所以我们决定选择webpy或web2py作为更好的选择。
我们没有任何Python编程经验,这是我们第一次尝试。之前我们一直在用C++和Java编程。
所以,考虑到我们提到的所有内容,我们的问题是,哪个网页框架最适合我们的项目?而rdflib和这个框架搭配得好吗?
谢谢 :)
1 个回答
我用Python框架开发了几个网络应用,这些应用需要处理RDF数据。选择哪个框架主要看你需要的性能和你要处理的数据量。
如果你要处理的数据量在几千个三元组左右,那么用RDFlib加Django组合起来就很简单。我之前用这个组合做过一些小项目,但一旦数据量大了,你就会发现这个组合不太够用。问题不在于Django,而是RDFlib处理三元组存储的方式,实在是一般。
如果你对C/C++比较熟悉,我建议你看看Redland库。这个库是用C写的,还有Python的接口,这样你可以继续用Django开发你的网页部分,同时用Python来提取RDF数据。我们经常这样做,通常效果还不错。这个选择的扩展性会好一些,但也不是特别理想。
如果你的数据量增长到几百万个三元组,那我建议你使用一个可扩展的三元组存储。你可以通过SPARQL和HTTP来访问这些存储。我个人比较推荐4store。这里有一个Python客户端,可以用来发送查询和添加/删除数据,具体可以看4store Python客户端。