Вычисление объектов, удовлетворяющих условию


Пример задачи: на форме проекта отобразить в коллекции только тех сотрудников, которые обладают необходимыми для проекта навыками. Сотрудник отображается только в том случае, если все запрашиваемые навыки присутствуют.

Проект «Космический туризм», необходимые навыки для работы в проекте: Астрономия, Иностранные языки, Логистика.

Сотрудник №1 обладает навыками: Астрономия, Логистика, Программирование, Сетевые технологии.

Сотрудник №2 обладает навыками: Веб-дизайн, "Астрономия, Иностранные языки, Логистика.

У сотрудника №1 нет всех необходимых навыков для участия в проекте, его не нужно отображать в коллекции. А сотрудник №2 подходит, его нужно отобразить.  

Модель данных:

Для того, чтобы вычислить объекты, удовлетворяющие условию, заданному в основном объекте (в данном случае, сотрудников с необходимыми навыками), введите следующее выражение:

@prefix object: <http://comindware.com/ontology/object#>.
@prefix assert: <http://comindware.com/logics/assert#>.
@prefix cmw: <http://comindware.com/logics#>.
{
    ("projects" "required_skills") object:findProperty ?PropertyLittle. 
    ("employees" "available_skills") object:findProperty ?PropertyBig.


    ?container object:alias "employees". 
    ?allObjs cmw:container ?container.

    {
        ?item ?PropertyLittle ?resultL.
        ?allObjs ?PropertyBig ?resultL.
    } assert:count ?c.

    {
        ?item ?PropertyLittle ?resultA.
    } assert:count ?d.
    
    if {?c == ?d}
    then {?allObjs -> ?value.}
}


Настраиваемые Поля

Номер Статьи: 2023
Размещено: Thu, Mar 3, 2022
Последнее обновление: Thu, Dec 21, 2023

Online URL: https://kb.comindware.ru/article/vychislenie-obektov-udovletvoryayushih-usloviyu-2023.html