Согласно описанию BaseGraph.CreateUriNode:
Обычно мы ожидаем, что будет передан абсолютный URI, в то время как относительные URI разрешены, поведение менее четко определено. Если для графа определен базовый URI, то относительные URI будут автоматически разрешены относительно этой базы, если базовый URI не определен, относительные URI останутся без изменений. В этом случае могут возникнуть проблемы при попытке сериализации данных или когда требуется точный круговой обход.
Кажется, это означает, что если базовый URI не установлен, URI будет храниться как есть. Однако все эти попытки создать его терпят неудачу:
var graph = new Graph();
graph.CreateUriNode();
graph.CreateUriNode(new Uri("", UriKind.Relative));
graph.CreateUriNode(new Uri("relative", UriKind.Relative));
Первая попытка не удалась с:
RdfParseException: "Нельзя использовать пустой URI для ссылки на базовый URI документа, так как базовый URI в области видимости отсутствует!"
Последние два просто с:
InvalidOperationException: "Эта операция не поддерживается для относительного URI".
Я знаю, что некоторые методы сериализации могут не поддерживать относительные URI, но, по крайней мере, Turtle поддерживает, и я хочу иметь возможность создавать документы, которые ссылаются на указанную извне базу. Как я могу это сделать?