SPARQL Construct.Как присвоить значение атрибута RDF фактической переменной RDF - PullRequest
0 голосов
/ 24 мая 2018

Мой запрос (выдержка) примерно такой.

CONSTRUCT {
?publication fb:type ?type;
fb:publicationType ?publicationType;
}
WHERE 
{
?publication a bibo:Document .
?publication vitro:mostSpecificType ?publicationType .
}

И он возвращает результат, похожий на ...

<rdf:Description rdf:about="https://abcd.fgh/individual/publication12345">
    <fb:publication>Example pub title</fb:publication>
    <fb:publicationType rdf:resource="http://purl.org/ontology/bibo/AcademicArticle"/>
</rdf:Description>

Возможно, вопрос новичка, но как мненастроить запрос так, чтобы результат был:

<rdf:Description rdf:about="https://abcd.fgh/individual/publication12345">
    <fb:publication>Example pub title</fb:publication>
    <fb:publicationType>Academic Article</fb:publicationType>
</rdf:Description>

Спасибо

1 Ответ

0 голосов
/ 24 мая 2018

Предполагая, что онтология bibo находится в запрашиваемом магазине, вы можете использовать его свойство rdfs:label в пути свойства :

CONSTRUCT {
  ?publication fb:type ?type;
    fb:publicationType ?publicationType;
} WHERE {
  ?publication a bibo:Document ;
    vitro:mostSpecificType/rdfs:label ?publicationType .
  FILTER (LANG(?publicationType) = "en")
}

?a vitro:mostSpecificType/rdfs:label ?b является сокращением для ?a vitro:mostSpecificType ?something. ?something rdfs:label ?b без привязки промежуточного термина.

...