Почему пустой узел не отображается на странице ресурса в виде ссылки? И не отображается на визуальном графике?

Ontotext GraphDB 9.1.1, Бесплатная версия Centos7 3.10.0-1062.9.1.el7.x86_64

Один из моих графов, содержащий пустые узлы вроде этого:

@prefix : <urn:ex:> .
:John :weight [ :value "5" ;
                :unit  "kg"  ] .

Когда я ищу Джона в Исследовать / Обзор графиков для графика по умолчанию, отображаются тройки и тема: У Джона есть объект с именем _: node3.

Однако объект отображается как текст, а не как ссылка на ресурс, например: John.

И я нажимаю Визуальный график для: Джон, ничего не отображается. Я попробовал Расширенная конфигурация графика, тоже не удалось.

Я нашел решение, использующее CONCAT для объединения объектов, но оно недостаточно изящное.

Я ожидаю, что пустые узлы могут отображаться на страницах Обзор и Визуальный график.

Возможно ли это независимо от версии graphDB?

Спасибо!


person ilikecola    schedule 06.03.2020    source источник
comment
stackoverflow.com/a/57365387/7879193, stackoverflow.com/a/55445337/7879193   -  person Stanislav Kralin    schedule 08.03.2020


Ответы (1)


Пустой узел - это узел, не имеющий идентификатора IRI. Вот почему на визуальном графике отображаются только IRI. В идеале вам следует избегать использования пустых узлов, поскольку это будет несовместимо с тем фактом, что: Джон - это IRI, и вы используете пустой узел для определения его свойств. Вот обходной путь (я не уверен, что вы нашли его):

prefix : <urn:ex:>
CONSTRUCT { 
    :John :weight ?value
} WHERE {
    :John :weight ?bnode.
    ?bnode :value ?nameLiteral;
       :unit "kg" .
    BIND( IRI(CONCAT("http://test", ?nameLiteral)) as ?value)
}
person Konstantin Petrov    schedule 06.03.2020
comment
Спасибо за ответ. Но пример: Джон - самый простой субъект в реальном наборе данных, в некоторых случаях CONCAT нельзя использовать для объединения этих объектов. Возможно ли, что использование некоторого автоматически сгенерированного IRI для идентификации пустого узла? - person ilikecola; 06.03.2020
comment
Я считаю, что сопротивление OntoText обращению с пустыми узлами совершенно неудовлетворительно. Нет ничего несовместимого с использованием пустых узлов, как показано и документировано во всех онтологиях семантической паутины с использованием именно такого примера для захвата составных свойств. VCard использует это для свойства vcard: n, чтобы связать составные части имени (vcard: family-name, vcard: given-name и т. Д.). Хорошо зарекомендовавшие себя наборы данных используют пустые узлы по многим причинам. Стандартные контейнеры и коллекции изначально используют пустые узлы. Реификация часто использует пустые узлы. К ним следует относиться так же, как к IRI. - person AtesComp; 25.03.2021