Я пытаюсь проанализировать файл данных в формате turtle, используя RDFlib v4.2.2 в Python v3.6.5, работающий на OS X 10.14.3 Mojave. Основываясь на исходных сообщениях об ошибках, я выяснил, что в файле черепах отсутствует префикс URI словарного запаса: @prefix xsd: <http://www.w3.org/2001/XMLSchema#>
.
Если я добавлю эту одну строку в заголовок файла, он будет работать как положено. Но было бы неплохо сделать это без редактирования файла данных, так как он может время от времени обновляться источником. Будучи новичком в RDF и Turtle, я отсканировал документацию RDFlib и решил, что связывание префикса - это то, что я хотел:
from rdflib import Graph
g = Graph()
g.namespace_manager.bind('prefix', 'xsd:http://www.w3.org/2001/XMLSchema#')
g.parse( 'currency.ttl', format='turtle')
Но нет радости. Если это полезно, вот заголовок и один образец черепахи из файла, который описывает различные валюты, взятые из проекта *1000* Thomson Reuters Open PermID :
@prefix tr-common: <http://permid.org/ontology/common/> .
@prefix tr-currency: <http://permid.org/ontology/currency/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
<https://permid.org/1-500191>
a tr-currency:Currency ;
tr-common:hasPermId "500191"^^xsd:string ;
tr-currency:decimalPlaces "0"^^xsd:decimal ;
tr-currency:isCurrencyOf <http://sws.geonames.org/1835841> ;
tr-currency:isISOHistorical false ;
tr-currency:isPrimaryCurrencyOf <http://sws.geonames.org/1835841> ;
tr-currency:iso4217 "KRW"^^xsd:string ;
tr-currency:iso4217Numeric "410"^^xsd:string ;
skos:prefLabel "Korean (South) Won" .
Можно ли добавить префикс URI, содержащийся в файле черепахи, и если да, то как?
Я заметил, что отсутствующий словарь, XSD, является неотъемлемой частью спецификации Turtle грамматики . Интересно, возможно ли явно объявить, что это необязательно в некоторых реализациях?