Проверка файлов RDF с использованием Raptor или Sax - PullRequest
5 голосов
/ 07 февраля 2012

Учитывая файл RDF, я хочу написать скрипт на python, чтобы проверить файл и прокомментировать, если в неправильном формате.КАК я делаю это с RAptor?или сакс или есть какая нибудь другая библиотека?Не повезло с w3.

1 Ответ

3 голосов
/ 07 февраля 2012

У вас есть два варианта с 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 , проверьте его, и вы увидите больше примеров.

...