ПРИМЕЧАНИЕ: @base
предоставляет префикс для относительных IRI с использованием <...>
. Таким образом, в приведенном ниже примере <Entity>
расширяется до <http://my-url.com/ontologies/0.1/entity#Entity>
.
Откуда вы взяли эту идею? Это не вариант. @base
не имеет префикса между тем, что находится между <
и >
. @base
определяет базовый IRI, по которому разрешаются относительные IRI. Разрешить относительные IRI сложнее, чем объединить две строки.
Во-первых, базовый IRI обязательно удаляется из его конечного #
и любого идентификатора фрагмента. Итак, если вы напишите:
@base <http://my-url.com/ontologies/0.1/entity#> .
<> a owl:Ontology .
, вы имеете в виду:
<http://my-url.com/ontologies/0.1/entity> a owl:Ontology .
, вам придется явно добавить #
, чтобы иметь его в IRI:
@base <http://my-url.com/ontologies/0.1/entity#> .
<#> a owl:Ontology .
означает:
<http://my-url.com/ontologies/0.1/entity#> a owl:Ontology .
Если вы хотите добавить непустой идентификатор фрагмента, вам также понадобится #
:
@base <http://my-url.com/ontologies/0.1/entity#> .
<#Entity> a owl:Ontology .
означает:
<http://my-url.com/ontologies/0.1/entity#Entity> a owl:Ontology .
Во-вторых, если вы используете непустую строку между <
и >
, и она не является идентификатором фрагмента, то IRI создается путем избавления от локальной части базы, которая является любойпоявляются после последнего /
пути IRI. Например,
@base <http://my-url.com/ontologies/0.1/entity#> .
<Entity> a owl:Ontology .
означает:
<http://my-url.com/ontologies/0.1/Entity> a owl:Ontology .
Другой пример:
@base <http://my-url.com/something/?uri=http://example.com/anything> .
<Entity> a owl:Ontology .
означает:
<http://my-url.com/something/Entity> a owl:Ontology .
Это не совсем правильноговоря, прямой ответ на ваш вопрос (ы), но должно быть достаточно, чтобы вы могли принять правильное решение.