#java #rdf #jena
#java #rdf #jena
Вопрос:
Я создал программу для RDF, используя jena на Java… Я должен вернуть результат в строковом формате .. а затем в другой функции я должен получить его в строковом формате и преобразовать либо в модель, либо в оператор…. Возможно ли это… Если да, то как это сделать … не мог бы кто-нибудь помочь мне с примером кода…
Заранее спасибо
Комментарии:
1. Что вы подразумеваете под ‘строкой’? Строка на английском? Черепаха?
Ответ №1:
Если RDF, который вы хотите сериализовать, меньше, чем ваша полная модель, тогда создайте модель временной памяти и скопируйте в нее инструкции, которые хотите записать. Используйте Model.write
для преобразования этих операторов в строку (в формате RDF / XML, Turtle или N-triples). Если вы хотите загрузить строку, содержащую RDF, создайте java.io.StringReader
объект, содержащий вашу строку, и передайте его Model.read
методу.
Ответ №2:
Возможно, важно отметить, что, согласно последней версии JavaDoc, два метода Model.read(), которые принимают Reader в качестве параметра метода, все говорят «Использование этого метода часто является ошибкой».. Я не знаю, почему JavaDoc так говорит, но это так. Альтернатива, которую я использую, — передать InputStream, как показано (где ‘is’ — это входной поток):
// read(InputStream in, String base, String lang)...
memModel.read(is, null,"TTL");
Если вам нужно сначала преобразовать строку во входной поток, вы можете использовать:
InputStream is = new ByteArrayInputStream( str.getBytes() );