一个小型的django应用程序,它使得使用4store rdf数据库进行开发更加容易。

django-4store的Python项目详细描述


Author:Martin Galpin
Contact:m@66laps.com

django-4store是一个小型django应用程序,它使开发 使用4Store RDF database更简单的应用程序。

安装

django-4store位于PyPi上,easy_installbuildout

$ easy_install django-4store

或者,克隆存储库并将其放在django中 投影或在$PYTHONPATH

$ git clone git://github.com/66laps/django-4store.git

配置

编辑settings.py并将fourstore添加到 INSTALLED_APPS

您还必须向settings.py

添加两个附加设置
FOURSTORE_KBNAME = "demo"  # Name of 4store knowledge base
FOURSTORE_PORT = 6667      # Port for 4store HTTP server

建议(但不是必需)也将常量设置为 同时SPARQL端点:

SPARQL_ENDPOINT = "http://localhost:6667/sparql/"

依赖于此终结点url的代码将在 测试(请参见Test Cases.)

管理命令

提供了两个管理命令来包装标准的4s-* 方便的命令。

第一个,4store-import将创建并导入指定的 将文件放入4store知识库(在settings.py)中:

$ python manage.py 4store-import rdf/card.rdf rdf/myself.n3

可以指定标志--recursive递归地添加任何rdf 目录中的文件。

注意,导入数据将覆盖 知识库。

第二个命令4store将在端口上启动http服务器 在settings.py

中指定
$ python manage.py 4store
...

测试用例

包含django.test.Testcase的子类。这提供了 启动独立4store服务器并自动 正在导入测试设备。

例如,下面的测试用例可以用来测试任何4store 从属代码:

from django.conf import settings
from HTTP4Store import HTTP4Store

from fourstore.test import Base4StoreTest

class MySemanticTestCase(Base4StoreTest):
    kbfixtures = ["card.rdf", "someone.n3"]

    def test_something(self):
        store = HTTP4Store(settings.SPARQL_ENDPOINT)
        response = store.sparql("SELECT * WHERE { ?s ?p ?o . } ")
        self.assertEquals(..., response)

测试设备应该放在 正在测试的应用程序(请注意,类变量是kbfixtures)。

django设置属性settings.SPARQL_ENDPOINT是 自动更新为当前终结点URL。

服务器在测试之间重新初始化,其操作取决于 在setUptearDown上。如果需要重写这些方法, 确保仍调用父实现:

class MySemanticTestCase(Base4StoreTest):
    ...
    def setUp(self):
         Base4StoreTest.setUp(self)
         // do something

    def tearDown(self):
        Base4StoreTest.tearDown(self)
        // do something

视图

Cross-site HTTP Requests通常被 许多historically well documented security reasons。这些限制阻止 Web应用程序直接与SPARQL端点通信。

django-4store提供了解决此问题的方法。景色 fourstore.views.sparql_proxy中继它接收到的所有http请求 到指定的端点(在urls.py中给定)。

例如,要与Dbpedia通信,请按如下方式配置urls.py

from django.conf.urls.defaults import url, patterns

urlpatterns = patterns('fourstore.views',
    url(r"^sparql/$", "sparql_proxy", {"sparql_endpoint": "http://www.dbpedia.org/sparql/"}),
)

http://www.yourdjangoapp.com/sparql/发出的任何请求现在都是 自动中继到http://www.dbpedia.org/sparql/,然后 透明响应发送回原始浏览器。

注意,根据SPARQL Protocol,所有请求都必须具有 ^ application/x-www-form-urlencoded中的{tt24}$。

测试套件

Django-4商店的测试套件包括:

$ python manage.py test fourstore

许可证

这个库是免费软件;您可以重新分发和/或修改它 根据GNU的条款 由自由软件基金会出版;或 许可证,或(由您选择)任何更高版本。

这个图书馆的发行是希望它会有用,但是 没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。看GNU 更详细的信息,请参阅较低的通用公共许可证。

你应该收到一份GNU的副本 与此库一起使用许可证;如果没有,请写入免费软件 马萨诸塞州波士顿富兰克林街51号5楼基金会公司 02110-1301美国

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring数据elasticsearch@Query嵌套对象注释   java JAXB解组器正在跳过具有其他命名空间的元素   java Web视图文件选择器崩溃问题   macos通过java创建的应用程序访问MacOSX上的麦克风,并打包到。dmg   在子文件夹上使用java设置ACL的文件权限失败(缺少继承)   java Force在AlertDialog中显示软键盘   java如何保存上传的文件   java如何从jpeg文件中的FFC4(DHT)头创建哈夫曼树?   关于高性能流数据处理的java问题   SpringMVC项目中Tiles页面的java集标题   从Java到Webview Javascript的Android回调函数   java无法从循环打印“FlimFlam”   OpenJDK安装时没有java命令