Как хранить тройки в 4store - PullRequest
0 голосов
/ 15 марта 2012
 File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/django_gstudio-0.3.dev-py2.7.egg/gstudio/testing1.py", line 129, in rdf_description
    store.add(self,(subject, predicate, object),context)
  File "/usr/local/lib/python2.7/dist-packages/rdflib-3.2.0-py2.7.egg/rdflib/plugins/memory.py", line 298, in add
    Store.add(self, triple, context, quoted)
  File "/usr/local/lib/python2.7/dist-packages/rdflib-3.2.0-py2.7.egg/rdflib/store.py", line 177, in add
    def add(self, (subject, predicate, object), context, quoted=False):
in 

store.add(self, (subject, predicate, object), context, quoted=False)

1 Ответ

2 голосов
/ 15 марта 2012

AFAIK - rdflib не поддерживает 4store. Но вы можете легко утверждать тройки, используя curl и python и 4store SPARQL Server . Здесь есть пример:

 import subprocess
 command = ["curl","-s",
            "-T","/some/file/with/triples",
            "-H","Content-Type: application/x-turtle",
            "http://localhost:port/data/http://graph.to/save/triples"]

  p = subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
  output, err = p.communicate()
  ret = p.poll()
  if ret <> 0:
     raise Exception, "Error asserting triples"

В этом примере тип содержимого turtle , но вы можете использовать любую другую сериализацию RDF (ntriples, rdfxml).

Если вы не хотите иметь дело с подпроцессами, вы также можете перевести этот вызов в urllib/urllib2 функцию.

Другие примеры приведены в документации 4store SparqlServer . И, опционально, вы можете использовать любую клиентскую библиотеку Python 4store .

...