Я пытаюсь изучить SPARQL, и для этого мне нужно выполнять запросы к локальному файлу ttl. Я исследовал это, и в каждом ответе говорится, что нужно использовать rdflib
, а затем выполнить запрос против этого.
Вот пример файла ttl, который я использую
# filename: ex002.ttl
@prefix ab: <http://learningsparql.com/ns/addressbook#> .
ab:richard ab:homeTel "(229) 276-5135" .
ab:richard ab:email "[email protected]" .
ab:cindy ab:homeTel "(245) 646-5488" .
ab:cindy ab:email "[email protected]" .
ab:craig ab:homeTel "(194) 966-1505" .
ab:craig ab:email "[email protected]" .
ab:craig ab:email "[email protected]" .
Теперь код Python, который должен работать, следующий:
filename = "C:/DataStuff/SemanticOntology/LearningSPARQLExamples/ex002.ttl"
import rdflib
g = rdflib.Graph()
result = g.parse(filename, format='ttl')
print(result)
query = """
SELECT * WHERE {
?s ?p ?o .
}
"""
g.query(query)
for stmt in g:
print(stmt)
К сожалению, всякий раз, когда он доходит до g.query(query)
, я получаю ModuleNotFoundError: No module named 'rdfextras'
Хорошо, без проблем. Поэтому я иду в conda-forge, чтобы установить его, и он говорит, что пакет недоступен с текущих каналов.
Ладно, странно. Поэтому я провел небольшое исследование и обнаружил https://github.com/RDFLib/rdfextras, в котором говорится, что это снято с производства и больше не требуется для rdflib
>=4
. Итак, я проверяю свою версию rdflib
, и это 4.2.2
. Так что, очевидно, что-то не так, поскольку для этого не требуется rdfextras
.
Так что два вопроса -
- Почему он это делает, если моя версия
rdflib >=4
? - В конечном счете - это все не по делу. Меня не волнуют средства, так как я могу использовать python для запуска запросов SPARQL к локальным файлам ttl (таким образом, что не требуются права администратора на моем компьютере)
Заранее спасибо.
rdflib
— это, безусловно, самая распространенная библиотека для RDF/SPARQL, написанная на Python. - person UninformedUser   schedule 11.09.2019pip install rdflib
, а затем просто использовал его. может быть, у вас есть несколько версий пакета в вашей системе? Вы используетеvirtualenv
или что-то подобное? Как вы запускаете свой код? Из IDE или через командную строку? - person UninformedUser   schedule 11.09.2019