Преобразовать строку в модель или оператор в jena с помощью Java-программы?

#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() );