как вставить список в rdf

У меня есть график, и на этом графике у меня есть такой список:

:Michelangelo       :representativeFor :Italy;
                rdfs:label "Michelangelo di Ludovico Buonarroti Simoni";
                :birthInfo [:date "1475-03-10"^^xsd:date; :place  :Florence];
                :sculptorOf [a rdf:List; rdf:first :Pieta; rdf:rest [a rdf:List; rdf:first :David; rdf:rest [a rdf:List; rdf:first :TheLastJudgement; rdf:rest rdf:nil]]];
:sculptorOf rdfs:domain :Sculptor; rdfs:range :Sculpture.

Когда я помещаю этот запрос

select * 
where {:David a ?z}

Я ожидаю получить ресурс и скульптуру. Я не понимаю, почему не работает, что мне делать?


person Anca Ioana    schedule 23.05.2016    source источник
comment
Ваш пример данных недействителен (в частности, список, который вы написали, не является законным RDF), вы никогда не могли бы добавить его в магазин Sesame без ошибки. Это делает очень неясным, что вы пытаетесь сделать или где именно проблема. Исправьте свой пример, чтобы показать данные, которые вы на самом деле вставляете, точный запрос, который вы используете, ожидаемый результат и фактический результат.   -  person Jeen Broekstra    schedule 23.05.2016
comment
Я отредактировал и поставил именно то, что добавил в Sesame. То, что я написал ранее, было попыткой решить проблему @JeenBroekstra.   -  person Anca Ioana    schedule 24.05.2016


Ответы (1)


Ваш заголовок как вставить список в rdf, но похоже, что вы пытаетесь запросить, где ваши значения в запросе находятся в списке в данных.

Если я правильно вас понял, вы хотите найти типы Дэвида на основе:

:Michelangelo :sculptorOf [a rdf:List;
                           rdf:first :Pieta; 
                           rdf:rest [a rdf:List;
                                     rdf:first :David;
                                     rdf:rest [a rdf:List;
                                               rdf:first :TheLastJudgement;
                                               rdf:rest rdf:nil]]];

и аксиомы домена и диапазона:

:sculptorOf rdfs:domain :Sculptor; rdfs:range :Sculpture.

Это не то, как работают RDF и OWL. Микеланджело не лепил список вещей, он лепил разные вещи. В RDF вы бы представили это как:

:Michelangelo :sculptorOf  :Pieta, :David, :TheLastJudgement .

Это сокращение для трех троек:

:Michelangelo :sculptorOf  :Pieta .
:Michelangelo :sculptorOf  :David .
:Michelangelo :sculptorOf  :TheLastJudgement .

Теперь, если у вас включен вывод OWL, вы сможете сделать вывод, что поскольку Дэвид является объектом утверждения sculptorOf, Дэвид должен имеют тип Скульптура. Если доступен вывод RDF(S), вы также сможете сделать вывод, что Дэвид является rdfs:Resource.

person Joshua Taylor    schedule 23.05.2016
comment
На самом деле я использовал этот список для скульптур, потому что меня интересует их положение. Скульптуры расположены в списке в порядке их создания. Есть ли возможность использовать список и еще настроить их диапазон? @Джошуа - person Anca Ioana; 24.05.2016