У меня есть внутренний набор данных троек.
Я пытаюсь реализовать функцию опережающего ввода для приложения, использующего набор данных.
Я пытаюсь выяснить, как я могу условно перейти к основной концепции.
На этом рисунке, если бы я искал Dreamworks, это было бы на 3 уровня ниже (Коммерческие организации -> Частная компания -> Dreamworks).
Если я сделаю что-то еще, очевидно, это будет на разных слоях графа.
Я пытаюсь получить значение «Организация» или «Человек» в качестве верхнего уровня.
Этот очень простой запрос работает.
SELECT DISTINCT ?subjectPrefLabel ?a ?b ?o
WHERE
{
?subject skosxl:prefLabel/skosxl:literalForm ?subjectPrefLabel .
?subject skos:broader/skos:broader/skos:broader/skosxl:prefLabel/skosxl:literalForm ?a
FILTER regex(?subjectPrefLabel, "Dreamworks", 'i')
}
ORDER BY ?subjectPrefLabel
Однако очевидно, что это недопустимо, так как разработчику необходимо знать, на сколько уровней вниз по иерархии для выдачи правильного количества skos:broader
.
Могу ли я в любом случае условно обнаружить высший уровень иерархии?
Поскольку это внутренняя онтология, я не могу делиться какими-либо данными, поэтому я знаю, что с ней будет сложно работать, любые советы приветствуются.