У вас есть два варианта с raptor:
Опция 1: Используйте командную строку rapper
, это очень быстро. Приведенная ниже функция является примером в Python для обёртывания команды. Опция -c
- просто посчитать количество троек. Параметр lang
- это просто опция для указания формата RDF ntriples, rdfxml, turtle, ... Функция проверяет код возврата и выдает исключение в случае, если что-то пошло не так.
def rapper_count(f,lang):
p=subprocess.Popen(["rapper","-i",lang,"-c",f],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output, err = p.communicate()
ret = p.poll()
if ret <> 0:
raise Exception, "Error parsing with rapper\n%s"%err
return int(err.split()[-2])
Вариант 2: Использовать redland Привязки языка Python . Будет работать что-то вроде следующего:
import RDF
test_file = "/some/file"
uri=RDF.Uri(string="file:"+test_file)
parser=RDF.Parser(name="turtle")
if parser is None:
raise Exception("Failed to create RDF.Parser raptor")
count=0
for s in parser.parse_as_stream(uri,uri):
count=count+1
print "Parsing added",count,"statements"
Этот код был извлечен из example.py , проверьте его, и вы увидите больше примеров.