Написание выражений на языке N3
Введение
Comindware Platform позволяет составлять выражения на языке N3 (Notation3) для выполнения запросов данных и вычисления значений.
Преимущество языка N3 заключается в скорости вычислений, что позволяет эффективно использовать все возможности графовой базы данных. Язык выражений N3 позволяет осуществлять доступ к искомым данным и их связям поатрибутивно без необходимости загрузки данных потаблично, что присуще реляционным базам данных и языку запросов SQL.
Нотация N3 представляет собой набор записей типа: «субъект» «предикат» «объект». Данная конструкция может применяться в различных вариантах, от получения данных по заданным атрибутам, до математических операций.
Синтаксис N3
Выражения N3 состоят из триплетов вида субъект-предикат-объект.
Например, ?group rdf:type account:Group
— триплет, позволяющий по любому из заданных аргументов обнаружить неизвестные. Если в триплете заданы объект и предикат, ПО будет осуществлять поиск субъекта, если заданы субъект и предикат — поиск объекта и т.д. Если в выражении задан один аргумент, ПО вернёт все значения для остальных двух.
Основы построения языка выражений N3 приведены в открытой документации, размещенной по адресу https://www.w3.org/TR/rdf11-concepts/.
Синтаксические элементы
@prefix property: <http://comindware.com/ontology/user/op#>.
— объявление префикса встроенного пакета, т. е. синонима, используемого в выражении.rdf:type
— использование префикса для удобочитаемости и сокращения размеров кода.{}
— объявление тела выражения.?
— объявление переменных.?item
— входной параметр.?item
— значения ссылки (экземпляры шаблона записи, с которым связан текущий шаблон записи).?value
— выходной параметр.a
— принадлежность субъекта к объекту..
— терминатор триплета.#
— комментарий.->
— присваивание значения.()
— объявление списка.[]
— неявное использование субъекта.
Полезные конструкции и встроенные функции
("templateSystemName" "attributeSystemName") object:findProperty ?p.
— возвращает в переменную?p
атрибут по заданным системным именам шаблона и атрибута.once {}.
— выходит после первой успешной итерации.or {} or {} … or {}.
— логический операторИЛИ
.if {} then {} else {}.
— условный оператор.from {} select ?v -> ?vList.
— возвращает список в переменную?vList
.?list math:sum ?sum.
— вычисляет сумму.{} assert:count ?c.
— вычисляет количество записей.({} … {}) assert:union true.
— объединяет итераторы в один.
Упрощения
Ниже представлены некоторые упрощения N3, упрощающие и ускоряющие работу.
@prefix: <#>.
—:John
означает, что субъект определён в текущем документе.a/ @a
—Rdf:type
.[]
— указываем, что существует объект с заданными свойствам без возможности ссылаться на него.=
— эквивалентность (owl:equivalentTo
).=>
—Log:implies
.объект.свойство
— переход к свойству.(элемент1 элемент2)
— список._:variable
—log:forSome
.?variable
—log:forAll
.
Запросы в N3
- Запросы пишутся в виде набора триплетов.
- У запроса есть входные (в некоторых случаях) и выходные данные.
- Запрос выполняется последовательно сверху вниз по каждому триплету.
- Если запрос ничего не вернул, то это считается пустым результатом.
- Ризонёр (Reasoner) — специальный механизм, выполняющий запросы.
in ?item.
{
#наш код
} => { ?item attribute:value ?value. }.
Пять видов запросов
Структура запроса |
Описание |
||
---|---|---|---|
|
|
|
Поиск объекта по заданному предикату и субъекту. |
|
|
|
Поиск субъекта по заданному предикату и объекту. |
|
|
|
Проверка субъекта и объекта на полное совпадение. |
|
|
|
Поиск субъекта и объекта по заданному предикату. |
|
|
|
Проверка наличия значения. Здесь |
Порядок обработки запросов
Возможности использования выражений N3
ПО позволяет использовать выражения N3 при настройке следующих сущностей и функций:
- Атрибут → Вычисление значения
- Форма → Фильтр на поле
- Правила для формы → Условие применения правила
- Правила для формы → Условие выполнения действия
- Правила для формы → Вычисление значения для действия
- Кнопка → Условие отображения
- Таблица → Системный фильтр
- Роль → Разрешения → Шаблон записи, аккаунта, процесса → Фильтр аккаунтов (Переназначение)
- Роль → Разрешения → Шаблон записи, аккаунта, процесса → Условие применения
- Сценарий → Изменение значений переменных → Вычисление значения
- Сценарий → Изменение значений атрибутов → Вычисление значения
- Сценарий → Смена контекста → Вычисление набора объектов
- Сценарий → Дублирование записи → Вычисление набора объектов
- Сценарий → Проверка результата выражения → Выражение для проверки
- Сценарий → Выполнение по условиям → Условие выполнения действий
- Сценарий → Повтор по числовому счётчику → Количество итераций
- Сценарий → Повтор по количеству объектов → Вычисление набора объектов
Входные и выходные данные выражений в зависимости от контекста
Сущность | Входные данные (контекст) | Выходные данные |
---|---|---|
Атрибут → Вычисляемое значение | ?item — текущая запись или экземпляр процесса |
?value — вычисленное значение атрибута |
Форма → Фильтр на поле | ?item — текущая запись или экземпляр процесса |
?value — список искомых записей |
Правила для формы → Правило → Условие выполнения | ?item — текущая запись или экземпляр процесса |
?value — true (правило сработает) или false или пусто (не сработает) |
Правила для формы → Действие → Условие выполнения | ?item — текущая запись или экземпляр процесса |
?value — true (действие сработает) или false или пусто (не сработает) |
Правила для формы → Вычисляемое значение для действия | ?item — текущая запись или экземпляр процесса |
?value — целевое значение атрибута |
Кнопка → Условия отображения | ?item — текущая запись или экземпляр процесса |
?value — true или false |
Таблица → Системный фильтр | ?item — список записей для вывода в таблице |
|
Роль → Разрешения → Шаблон записи, аккаунта, процесса → Фильтр аккаунтов | ?item — текущая запись или экземпляр процесса |
?value — список групп или аккаунтов, которые имеют соответствующие разрешения на запись или экземпляр процесса |
Роль → Разрешения → Шаблон записи, аккаунта, процесса → Условие применения | ?item — текущая запись или экземпляр процесса |
?value — true или false |
Сценарий → Изменение значений переменных → Вычисление значения | ?item — текущая запись или экземпляр процесса |
?value — вычисленное значение переменной |
Сценарий → Изменение значений атрибутов → Вычисление значения | ?item — текущая запись или экземпляр процесса |
?value — вычисленное значение атрибута |
Сценарий → Смена контекста → Вычисление набора объектов | ?item — текущая запись или экземпляр процесса |
?value — список объектов для перехода |
Сценарий → Дублирование записи → Вычисление набора объектов | ?item — текущая запись или экземпляр процесса |
?value — список объектов для дублирования |
Сценарий → Проверка результата выражения → Выражение для проверки | ?item — текущая запись или экземпляр процесса |
?value — true (проверка пройдена) или false |
Сценарий → Выполнение по условиям → Условие выполнения действий | ?item — текущая запись или экземпляр процесса |
?value — true (выполнять действия) или false |
Сценарий → Повтор по числовому счётчику → Количество итераций | ?item — текущая запись или экземпляр процесса |
?value — количество итераций |
Сценарий → Повтор по количеству объектов → Вычисление набора объектов | ?item — текущая запись или экземпляр процесса |
?value — список объектов |
Примеры использования встроенных функций и операторов N3
Функция .?
@prefix object: <http://comindware.com/ontology/object#>.
{
("currentTemplate" "Region") object:findProperty ?Region.
# Проверяем, что в текущей записи, атрибут Region содержит непустое значение
?item ?Region ?.
?item -> ?value.
}
Функция once
@prefix object: <http://comindware.com/ontology/object#>.
{
("currentTemplate" "Region") object:findProperty ?Region.
("Biznesstruktura" "Region") object:findProperty ?Region2.
once {
?item ?Region ?RegionVal.
?check ?Region2 ?RegionVal.
}.
true -> ?value.
}
Оператор if
@prefix cmw: <http://comindware.com/logics#>.
@prefix session: <http://comindware.com/ontology/session#>.
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
{
session:context session:requestTime ?now. #получим текущую дату
?tasks a cmw:UserTask.
if {?tasks cmw:dueDate ?.}
then {
?tasks cmw:dueDate ?dueDateVal.
?dueDateVal math:greaterThan ?now.
?tasks -> ?value.
}
else {?tasks -> ?value.}.
}
Оператор from
и функция sum
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
@prefix object: <http://comindware.com/ontology/object#>.
{
("Nakladnaya" "PoziciiNakladnoy") object:findProperty ?Positions.
("PoziciiNakladnoy" "Summa") object:findProperty ?Summa.
from {
?item ?Positions ?PositionsVal.
?PositionsVal ?Summa ?SummaVal.
} select ?SummaVal -> ?SummaList.
?SummaList math:sum ?value.
}
Функция count
@prefix object: <http://comindware.com/ontology/object#>.
@prefix assert: <http://comindware.com/logics/assert#>.
{
("Nakladnaya" "PoziciiNakladnoy") object:findProperty ?Positions.
{
?item ?Positions ?PositionsVal.
} assert:count ?value.
}
Функция distinct
@prefix object: <http://comindware.com/ontology/object#>.
@prefix assert: <http://comindware.com/logics/assert#>.
{
("Nakladnaya" "PoziciiNakladnoy") object:findProperty ?Positions.
("PoziciiNakladnoy" "Nomenklatura") object:findProperty ?Items.
{
{
?item ?Positions ?PositionsVal.
?PositionsVal ?Items ?ItemsVal.
} assert:distinct ?ItemsVal.
} assert:count ?value.
}
Оператор union
@prefix assert: <http://comindware.com/logics/assert#>.
@prefix object: <http://comindware.com/ontology/object#>.
{
("Nakladnaya" "Gruzootpravitel") object:findProperty ?ShippedBy.
("Nakladnaya" "Poluchatel") object:findProperty ?Receiver.
(
{?item ?ShippedBy ?Contractor.}
{?item ?Receiver ?Contractor.}
) assert:union true.
?Contractor -> ?value.
}
Примеры использования расширений Comindware для языка N3
Пример 1
Вывести заявки, у которых значение атрибута Status не равно «Завершен» и дата начала уже прошла относительно текущей даты.
@prefix object: <http://comindware.com/ontology/object#>.
@prefix session: <http://comindware.com/ontology/session#>.
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
{
("Proekt" "Status") object:findProperty ?StatusProp.
?Proekty ?StatusProp ?Status.
("Proekt" "Datanachala") object:findProperty ?DatanachalaProp.
?Proekty ?DatanachalaProp ?Datanachala.
session:context session:requestTime ?now.
?now math:greaterThan ?Datanachala.
?Status != "Завершен".
?value == ?Proekty.
}
Пример 2
При добавлении существующих записей в коллекцию отображать в списке только те проекты, у которых прошла проверка (атрибут Proverka имеет значение true
) или у которых атрибут Status имеет значение «Создан».
@prefix object: <http://comindware.com/ontology/object#>.
{
("Proekt" "Status") object:findProperty ?StatusProp.
?Proekty ?StatusProp ?Status.
("Proekt" "Proverka") object:findProperty ?ProverkaProp.
?Proekty ?ProverkaProp ?Proverka.
or {
?Proverka == true.
}
or {
?Status == "Создан".
}.
?value == ?Proekty.
}
Пример 3
Выводить в списке на добавление только руководителей текущего пользователя (атрибут manager типа «Аккаунт») или пользователей с должностью «Менеджер» (атрибут title типа «Текст»)
@prefix cmw: <http://comindware.com/logics#>.
@prefix account: <http://comindware.com/ontology/account#>.
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
{
cmw:securityContext cmw:currentUser ?currUser.
?users a account:Account.
or {
?currUser account:manager ?users. #users - руководители
}
or {
?users account:title ?title.
?title string:matches "Менеджер".
}.
?value == ?users.
}
Пример 4
Выводить только тех заявителей, которые прикреплены к заявкам.
@prefix object: <http://comindware.com/ontology/object#>.
{
("Zayavitel" "Application") object:findProperty ?ApplicationProp.
?Zayavitel ?ApplicationProp ? .
}
Пример 5
Выполнять действия с полем на форме при условии, что процент выполнения заявки больше 70, при этом действие не должно выполняться, если этап (атрибут Etap) выполнения равен 1.
@prefix object: <http://comindware.com/ontology/object#>.
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
{
("Application" "Etap") object:findProperty ?EtapProp.
?item ?EtapProp ?Etap.
("Application" "percent") object:findProperty ?percentProp.
?item ?percentProp ?percent.
or {
?Etap == 1.
?value == false.
}
or {
?percent math:greaterThan 70.
?value == true.
}.
}
Пример 6
При выполнении вышеописанного условия, выполнять для поля «Статус» заявки следующие действия: сменить тип доступа на «Только для чтения», установить значение «Завершена» и показать предупреждение с текстом «Заявка <Название заявки (атрибут Name)> завершена».
@prefix object: <http://comindware.com/ontology/object#>.
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
@prefix output: <http://comindware.com/ontology/tableOutput#>.
{
output:result a output:Result.
("Application" "Etap") object:findProperty ?EtapProp.
?item ?EtapProp ?Etap.
("Application" "percent") object:findProperty ?percentProp.
?item ?percentProp ?percent.
?Etap != 1.
?percent math:greaterThan 70.
output:result output:typeOfAccess "Только чтения".
output:result output:value "Завершена".
("Application" "Name") object:findProperty ?NameProp.
?item ?NameProp ?Name.
("Заявка" ?Name "завершена") string:format ?warning.
output:result output:warning "Завершена".
}
Справочник встроенных функций N3
В следующей таблице приведен перечень функций, которые можно использовать в выражениях N3.
Определения
- QName — qualified name (квалифицированное имя) идентификатор для элементов и атрибутов. QName используется для создания соответствия между URI и пространством имен.
- Escape-последовательности — сочетание символов, состоящих из косой черты (
\
), за которой следует буква или набор цифр. Escape-последовательность рассматривается как один символ и, следовательно, является допустимой символьной константой. - StreamID — идентификатор файла изображения, расположенного в базе данных ПО.
Математические функции w3math
@prefix w3math: <http://www.w3.org/2000/10/swap/math#>. |
|
---|---|
w3math:quotient |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и результат деления первого на второе помещает в переменную объекта. |
Синтаксис |
|
Возвращает | number |
w3math:integerQuotient |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и результат целочисленного деления первого на второе помещает в переменную объекта. |
Синтаксис |
|
Возвращает | number |
w3math:remainder |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и остаток от деления первого на второе помещает в переменную объекта. |
Синтаксис |
|
Возвращает | number |
w3math:product |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и результат их умножения помещает в переменную объекта. |
Синтаксис |
|
Возвращает | number |
w3math:lessThan |
|
Описание | Меньше чем |
Синтаксис |
|
Возвращает | bool |
w3math:notLessThan |
|
Описание | Не меньше чем |
Синтаксис |
|
Возвращает | bool |
w3math:equalTo |
|
Описание | Равно (dateTime , date , duration , string , number ). |
Синтаксис |
|
Возвращает | bool |
w3math:notEqualTo |
|
Описание | Не равно (dateTime , date , duration , string , number ). |
Синтаксис |
|
Возвращает | bool |
w3math:greaterThan |
|
Описание | Больше чем (dateTime , date , duration , string , number ). |
Синтаксис |
|
Возвращает | bool |
w3math:notGreaterThan |
|
Описание | Не больше чем (dateTime , date , duration , string , number ). |
Синтаксис |
|
Возвращает | bool |
w3math:negation |
|
Описание | Отрицание |
Синтаксис |
|
Возвращает | number |
Математические функции cmwmath
@prefix cmwmath: <http://comindware.com/logics/math#>. |
|
---|---|
cmwmath:sum |
|
Описание | Берёт сумму из субъекта типа List и записывает значение в объект. |
Синтаксис |
|
Возвращает | number |
cmwmath:difference |
|
Описание | Берёт разность из субъекта типа List и записывает значение в объект. |
Синтаксис |
|
Возвращает | number |
cmwmath:min |
|
Описание | Берёт минимальное значение из субъекта типа List и записывает значение в объект. |
Синтаксис |
|
Возвращает | number dateTime duration |
cmwmath:max |
|
Описание | Берёт максимальное значение из субъекта типа List и записывает значение в объект. |
Синтаксис |
|
Возвращает | number dateTime duration |
cmwmath:average |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и помещает их среднее арифметическое в переменную объекта. |
Синтаксис |
|
Возвращает | number |
cmwmath:round |
|
Описание | Округление к ближайшему целому. |
Синтаксис |
|
Возвращает | number |
cmwmath:floor |
|
Описание | Округление в меньшую сторону. |
Синтаксис |
|
Возвращает | number |
cmwmath:ceil |
|
Описание | Округление в большую сторону. |
Синтаксис |
|
Возвращает | number |
Функции для работы с датами и временем w3time
@prefix w3time: <http://www.w3.org/2000/10/swap/time#>. |
|
---|---|
w3time:inSeconds |
|
Описание | Конвертирует значение типа dateTime или duration в количество секунд. Конвертирует количество секунд в значение типа dateTime от начала времен. |
Синтаксис |
|
Возвращает | number |
Функции для работы с датами и временем cmwtime
@prefix cmwtime: <http://comindware.com/logics/time#>. |
|
---|---|
cmwtime:toDuration |
|
Описание | Конвертирует количество секунд в значение типа duration . |
Синтаксис |
|
Возвращает | duration |
cmwtime:getSpan |
|
Описание | Вычитает из первого значения субъекта типа dateTime второе значение субъекта типа dateTime . |
Синтаксис |
|
Возвращает | duration |
cmwtime:addDuration |
|
Описание | Добавляет к значению субъекта типа dateTime значение типа duration . |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:subDuration |
|
Описание | Вычитает из значения субъекта типа dateTime значение типа duration . |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:endOfDay |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время окончания дня, в пределах которого находится значение субъекта. |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:startOfDay |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала дня, в пределах которого находится значение субъекта. |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:startOfWeek |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала недели, в пределах которой находится значение субъекта. |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:startOfMonth |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала месяца, в пределах которого находится значение субъекта. |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:fromTzToTz |
|
Описание | Перевод значения типа dateTime в заданный часовой пояс. |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:timeZoneHours |
|
Описание | Возвращает разницу во времени UTC и местным часовым поясом. |
Синтаксис |
|
Возвращает | integer |
cmwtime:isToday |
|
Описание | Берёт значение из субъекта типа dateTime и проверяет на текущую дату. |
Синтаксис |
|
Возвращает | bool |
cmwtime:century |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает числовое значение, соответствующее веку указанной даты в местном часовом поясе. |
Синтаксис |
|
Возвращает | number |
cmwtime:isoFormat |
|
Описание | Конвертирует значение типа dateTime в формат ISO. |
Синтаксис |
|
Возвращает | string |
cmwtime:year |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает числовое значение, соответствующее году указанной даты в местном часовом поясе. |
Синтаксис |
|
Возвращает | number |
cmwtime:month |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает числовое значение, соответствующее месяцу указанной даты в местном часовом поясе. |
Синтаксис |
|
Возвращает | number |
cmwtime:day |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает числовое значение, соответствующее дню месяца указанной даты в местном часовом поясе. |
Синтаксис |
|
Возвращает | number |
cmwtime:hour |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает числовое значение, соответствующее часу указанной даты в местном часовом поясе. |
Синтаксис |
|
Возвращает | number |
cmwtime:minute |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает числовое значение, соответствующее минуте указанной даты в местном часовом поясе. |
Синтаксис |
|
Возвращает | number |
cmwtime:second |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает числовое значение, соответствующее секундам указанной даты в местном часовом поясе. |
Синтаксис |
|
Возвращает | number |
cmwtime:makeDate |
|
Описание | Берёт значения субъекта типа число и возвращает объект типа dateTime . |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:workhours |
|
Описание | Возвращает дату и время на основании количества рабочих часов с определенного момента времени, с поправкой на праздники и фактические выходные дни. |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:workdays |
|
Описание | Возвращает дату на основании количества рабочих дней с определенной даты, с поправкой на праздники и фактические выходные дни. |
Синтаксис |
|
Возвращает | dateTime |
cmwtime:workhoursDuration |
|
Описание | Возвращает продолжительность работы между двумя датами при условии, что рабочий день начинается в заданное время и имеет определенную длительность. |
Синтаксис |
|
Возвращает | duration |
cmwtime:workdaysDuration |
|
Описание | Возвращает продолжительность работы между двумя датами, на основании предположения, что рабочий день начинается в 00:00 и длится 24 часа. |
Синтаксис |
|
Возвращает | duration |
Функции для работы с интервалами времени cmwduration
@prefix cmwduration: <http://comindware.com/logics/duration#>. |
|
---|---|
cmwduration:days |
|
Описание | Берёт промежуток времени и возвращает количество дней. |
Синтаксис |
|
Возвращает | number |
cmwduration:hours |
|
Описание | Берёт промежуток времени и возвращает количество часов. |
Синтаксис |
|
Возвращает | number |
cmwduration:minutes |
|
Описание | Берёт промежуток времени и возвращает количество минут. |
Синтаксис |
|
Возвращает | number |
Функции для работы со строками w3string
@prefix w3string: <http://www.w3.org/2000/10/swap/string#>. |
|
---|---|
w3string:format |
|
Описание | Подставляет аргументы в нумерованные заместители вида {0} …{n} в исходной строке и возвращает результирующую строку. |
Синтаксис |
|
Возвращает | string |
w3string:matches |
|
Описание | Использует в качестве аргументов строку и регулярное выражение. Возвращает логическое значение Истина, если какая-либо часть строки или строка полностью соответствует условию, заданному регулярным выражением. В противном случае возвращает результат Ложь. |
Синтаксис |
|
Возвращает | bool |
w3string:notMatches |
|
Описание | Использует в качестве аргументов строку и регулярное выражение. Возвращает логическое значение Истина, если часть строки или строка полностью не соответствуют условию, заданному регулярным выражением. В противном случае возвращает результат Ложь. |
Синтаксис |
|
Возвращает | bool |
w3string:greaterThan |
|
Описание | Возвращает логическое значение Истина, если аргумент2 больше аргумента1, в противном случае возвращает результат Ложь. |
Синтаксис |
|
Возвращает | bool |
w3string:lessThan |
|
Описание | Возвращает логическое значение Истина, если аргумент2 меньше аргумента1, в противном случае возвращает результат Ложь. |
Синтаксис |
|
Возвращает | bool |
w3string:notGreaterThan |
|
Описание | Возвращает логическое значение Истина, если аргумент2 НЕ больше аргумента1, в противном случае возвращает результат Ложь. |
Синтаксис |
|
Возвращает | bool |
w3string:notLessThan |
|
Описание | Возвращает логическое значение Истина, если аргумент2 НЕ меньше аргумента1, в противном случае возвращает результат Ложь. |
Синтаксис |
|
Возвращает | bool |
Функции для работы со строками cmwstring
@prefix cmwstring: <http://comindware.com/logics/string#>. |
|
---|---|
cmwstring:join |
|
Описание | Объединяет строки с использованием заданного разделителя. |
Синтаксис |
|
Возвращает | string |
cmwstring:replace |
|
Описание | Заменяет все экземпляры заданной строки в исходной строке на новое значение. |
Синтаксис |
|
Возвращает | string |
cmwstring:cutString |
|
Описание | Обрезает строку на заданную длину и добавляет в конец заданные символы. |
Синтаксис |
|
Возвращает | string |
cmwstring:firstCapital |
|
Описание | Преобразует первый символ строки в прописной. |
Синтаксис |
|
Возвращает | string |
cmwstring:concatenation |
|
Описание | Конкатенация строк. |
Синтаксис |
|
Возвращает | string |
cmwstring:length |
|
Описание | Возвращает количество символов в строке. |
Синтаксис |
|
Возвращает | number |
cmwstring:substring |
|
Описание | Обрезает строку от заданной позиции на заданное количество символов (опционально). |
Синтаксис |
|
Возвращает | string |
cmwstring:indexOf |
|
Описание | Возвращает номер (отсчитываемый от нуля) позиции, на которой располагается искомая строка в исходной строке. Номер позиции может отсчитываться от произвольного положения (опционально). |
Синтаксис |
|
Возвращает | number |
cmwstring:toUri |
|
Описание | Преобразует escape-последовательности в URI. |
Синтаксис |
|
Возвращает | string |
cmwstring:fromUri |
|
Описание | Преобразует URI в escape-последовательности. |
Синтаксис |
|
Возвращает | string |
cmwstring:toBase64 |
|
Описание | Преобразует строку по стандарту кодирования Base64. |
Синтаксис |
|
Возвращает | string |
cmwstring:fromBase64 |
|
Описание | Декодирует строку по стандарту Base64. |
Синтаксис |
|
Возвращает | string |
cmwstring:split |
|
Описание | Находит заданный разделитель в строке и создает список. |
Синтаксис |
|
Возвращает | — |
cmwstring:format |
|
Описание | Форматирует аргументы в соответствии с заданным шаблоном. Возвращает отформатированную строку. |
Синтаксис |
|
Возвращает | string |
Функции для работы со строками cmwlogics
@prefix cmwlogics: <http://comindware.com/logics#>. |
|
---|---|
cmwlogics:value |
|
Описание | Присваивает значение субъекта объекту. |
Синтаксис |
|
Возвращает | number dateTime string duration reference account |
Функции для работы со строками cmwentity
@prefix cmwentity: <http://comindware.com/ontology/entity#>. |
|
---|---|
cmwentity:like |
|
Описание | Сравнивает шаблон и строку. |
Синтаксис |
|
Возвращает | bool |
cmwentity:startsWith |
|
Описание | Проверяет, что заданная строка начинается в соответствии с шаблоном и (опционально) в соответствии с заданной опцией сравнения (StringComparison). |
Синтаксис |
|
Возвращает | bool |
cmwentity:endsWith |
|
Описание | Проверяет, что заданная строка заканчивается в соответствии с шаблоном и (опционально) в соответствии с заданной опцией сравнения (StringComparison). |
Синтаксис |
|
Возвращает | bool |
cmwentity:indexOf |
|
Описание | Возвращает индекс первого вхождения подстроки в строку. Отсчет начинается с 1. |
Синтаксис |
|
Возвращает | number |
cmwentity:toLower |
|
Описание | Преобразует все символы строки в строчные. |
Синтаксис |
|
Возвращает | string |
cmwentity:toUpper |
|
Описание | Преобразует все символы строки в прописные. |
Синтаксис |
|
Возвращает | string |
cmwentity:contains |
|
Описание | Проверяет вхождение значения объекта типа string в значение субъекта типа string . |
Синтаксис |
|
Возвращает | string |
Функции для работы со строками cmwbuiltin
@prefix cmwbuiltin: <http://comindware.com/ontology/image/builtin#>. |
|
---|---|
cmwbuiltin:toPlainText |
|
Описание | Конвертирует HTML-текст в обычный. |
Синтаксис |
|
Возвращает | string |
Функции для работы со списками w3list
@prefix w3list: <http://www.w3.org/2000/10/swap/list#>. |
|
---|---|
w3list:append |
|
Описание | Добавляет элементы к списку |
Синтаксис |
|
Возвращает | list |
w3list:in |
|
Описание | Если объект — список, и в нём есть субъект, возвращает true |
Синтаксис |
|
Возвращает | bool |
w3list:last |
|
Описание | Из представленной последовательности получает последний элемент. |
Синтаксис |
|
Возвращает | string |
w3list:member |
|
Описание |
- Если субъект — список, и в нём есть объект, возвращает true .
- Если субъект — список, а объект не задан, возвращает итератор по элементам списка.
|
Синтаксис |
|
Возвращает |
bool , iterator
|
Функции для работы со списками cmwlist
@prefix cmwlist: <http://comindware.com/logics/list#>. |
|
---|---|
cmwlist:length |
|
Описание | Возвращает количество элементов последовательности. |
Синтаксис |
|
Возвращает | number |
cmwlist:at |
|
Описание | Берёт список элементов и задает индекс. Возвращает значение элемента, соответствующее индексу. ([23, 25, 12] 2) возвращает 12 . |
Синтаксис |
|
Возвращает | string |
Функции группировки и сортировки списков cmwentity
@prefix cmwentity: <http://comindware.com/ontology/entity#>. |
|
---|---|
cmwentity:groupby |
|
Описание | Группировка |
Синтаксис |
Входные данные:
Результат:
|
Возвращает | list |
cmwentity:sortby |
|
Описание | Сортировка |
Синтаксис |
Входные данные:
Результат:
|
Возвращает | list |
Функции логических выражений и логики cmwassert
@prefix cmwassert: <http://comindware.com/logics/assert#>. |
|
---|---|
cmwassert:true |
|
Описание | Объявляет логическое значение true |
Синтаксис |
|
Возвращает | boolean |
cmwassert:false |
|
Описание | Объявляет логическое значение false |
Синтаксис |
|
Возвращает | boolean |
cmwassert:or |
|
Описание | Оператор ИЛИ |
Синтаксис |
|
Возвращает | boolean |
cmwassert:if |
|
Описание | Условный оператор |
Синтаксис |
|
Возвращает | boolean |
cmwassert:count |
|
Описание | Выводит количество записей, удовлетворяющих условиям. |
Синтаксис |
|
Возвращает | number |
cmwassert:union |
|
Описание | Объединяет итераторы в один. |
Синтаксис |
|
Возвращает | list |
cmwassert:distinct |
|
Описание | Выбирает уникальные записи из связанных наборов данных. |
Синтаксис |
|
Возвращает | list |
cmwassert:sort |
|
Описание | Сортирует элементы по заданному критерию. |
Синтаксис |
|
Возвращает | list |
cmwassert:once |
|
Описание | Выходит после первой успешной итерации |
Синтаксис |
|
Возвращает | — |
Функции для работы с идентификаторами ресурсов cmwurl
@prefix cmwurl: <http://comindware.com/logics/url#>. |
|
---|---|
cmwurl:encode |
|
Описание | Кодирует строку URL-адреса. Аналог System.Web.HttpUtility.UrlEncode(url) |
Синтаксис |
|
Возвращает | string |
cmwurl:combine |
|
Описание | Объединяет части предоставления списка строк пути в путь одной строкой. Аналог System.IO.Path.Combine |
Синтаксис |
|
Возвращает | string |
cmwurl:siteDir |
|
Описание | Получает текущую директорию нахождения проекта. |
Синтаксис |
|
Возвращает | string |
Функции для работы с идентификаторами ресурсов cmwui
@prefix cmwui: <http://comindware.com/ontology/ui#>. |
|
---|---|
cmwui:toClientString |
|
Описание | Получает строковое представление ресурса (элемента или атрибута). |
Синтаксис |
|
Возвращает | string |
cmwui:toQName |
|
Описание | Преобразует строковое представление ресурса в QName. |
Синтаксис |
|
Возвращает | string |
Функции поддерживающие и корректно обрабатывающие нулевые значения cmwnullable
@prefix cmwnullable <http://comindware.com/ontology/entity/nullable#>. |
|
---|---|
cmwnullable:lessThan |
|
Описание | Меньше чем. (dateTime , date , duration , string , number ).
Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | bool |
cmwnullable:greaterThan |
|
Описание | Больше чем (dateTime , date , duration , string , number ).
Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | bool |
cmwnullable:notLessThan |
|
Описание | Не меньше (dateTime , date , duration , string , number ).
Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | bool |
cmwnullable:notGreaterThan |
|
Описание | Не больше (dateTime , date , duration , string , number ).
Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | bool |
cmwnullable:quotient |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и результат деления первого на второе помещает в переменную объекта. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:product |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и результат их умножения помещает в переменную объекта. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:integerQuotient |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и результат целочисленного деления первого на второе помещает в переменную объекта. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:remainder |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и остаток от деления первого на второе помещает в переменную объекта. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:sum |
|
Описание | Берёт сумму из субъекта типа List и записывает значение в объект. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | number |
cmwnullable:difference |
|
Описание | Берёт разность из субъекта типа List и записывает значение в объект. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | number |
cmwnullable:startOfDay |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала дня, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:startOfWeek |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала недели, в пределах которой находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:startOfMonth |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала месяца, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:startOfQuarter |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала квартала, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:startOfYear |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время начала месяца, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:endOfDay |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время окончания дня, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:endOfWeek |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время окончания недели, в пределах которой находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:endOfMonth |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время окончания месяца, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:endOfQuarter |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время окончания квартала, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:endOfYear |
|
Описание | Берёт значение из субъекта типа dateTime и возвращает дату и время окончания года, в пределах которого находится значение субъекта. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | dateTime |
cmwnullable:inSeconds |
|
Описание | Конвертирует значение длительности в количество секунд. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:min |
|
Описание | Берёт минимальное значение из субъекта типа List и записывает значение в объект. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | number dateTime date duration |
cmwnullable:max |
|
Описание | Берёт максимальное значение из субъекта типа List и записывает значение в объект. Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | number dateTime date duration |
cmwnullable:average |
|
Описание | Берёт 2 аргумента в скобках, указанные в субъекте и помещает их среднее арифметическое в переменную объекта. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:toDuration |
|
Описание | Конвертирует количество секунд в значение типа duration . Если в субъекте нулевое значение, возвращает нулевое значение.
|
Синтаксис |
|
Возвращает | duration |
cmwnullable:round |
|
Описание | Округление к ближайшему целому. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:floor |
|
Описание | Округление в меньшую сторону. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:ceiling |
|
Описание | Округление в большую сторону. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | number |
cmwnullable:format |
|
Описание | Форматирует аргументы в соответствии с заданным шаблоном. Возвращает отформатированную строку. Если в субъекте нулевое значение, возвращает нулевое значение. |
Синтаксис |
|
Возвращает | string |
Функции для работы с изображениями cmwbuiltin
@prefix cmwbuiltin: <http://comindware.com/ontology/image/builtin#>. |
|
---|---|
cmwbuiltin:isSupportedImage |
|
Описание | Проверяет формат файла на соответствие одному из допустимых форматов: .bmp, .gif, .exif, .jpg, .jpeg, .png, .tif |
Синтаксис |
|
Возвращает | bool |
cmwbuiltin:dimensions |
|
Описание | По streamId изображения получает разрешение в формате ширина × высота. |
Синтаксис |
|
Возвращает | string |
Специальные функции для работы с аккаунтами и группами cmwlogics
@prefix cmwlogics: <http://comindware.com/logics#>. |
|
---|---|
cmwlogics:currentUser |
|
Описание | Предикат, получающий аккаунт текущего пользователя. |
Синтаксис |
|
Возвращает | — |
cmwlogics:securityContext |
|
Описание | Субъект, определяющий контекст персонального пространства. |
Синтаксис |
|
Возвращает | — |
Специальные функции для работы с аккаунтами и группами cmwaccount
@prefix cmwaccount: <http://comindware.com/ontology/account#>. |
|
---|---|
cmwaccount:Group |
|
Описание | Определяет тип переменной Группа. |
Синтаксис |
|
Возвращает | — |
cmwaccount:groupName |
|
Описание | Предикат для получения наименования группы. |
Синтаксис |
|
Возвращает | string |
cmwaccount:isSystemAdministrator |
|
Описание | Предикат для определения принадлежности аккаунта к системной роли «Системные администраторы» |
Синтаксис |
|
Возвращает | bool |
cmwaccount:displayName |
|
Описание | Предикат, для получения полного имени аккаунта |
Синтаксис |
|
Возвращает | string |
cmwaccount:fullName |
|
Описание | Предикат для получения Ф. И. О. аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:manager |
|
Описание | Предикат для получения аккаунта руководителя, указанного для аккаунта. |
Синтаксис |
|
Возвращает | accountProperty |
cmwaccount:mbox |
|
Описание | Предикат для получения адреса эл. почты аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:phone |
|
Описание | Предикат для получения номера телефона аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:instantMessagingId |
|
Описание | Предикат для получения идентификатора аккаунта в мессенджере. |
Синтаксис |
|
Возвращает | string |
cmwaccount:status |
|
Описание | Предикат для получения статуса аккаунта: true — включён. |
Синтаксис |
|
Возвращает | bool |
cmwaccount:skype |
|
Описание | Предикат для получения идентификатора аккаунта в Skype. |
Синтаксис |
|
Возвращает | string |
cmwaccount:username |
|
Описание | Предикат для получения имени пользователя (логина) аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:active |
|
Описание | Предикат для получения состояния аккаунта: true — включён. |
Синтаксис |
|
Возвращает | bool |
cmwaccount:lastLoginDate |
|
Описание | Предикат для получения даты последней авторизации аккаунта. |
Синтаксис |
|
Возвращает | dateTime |
cmwaccount:language |
|
Описание | Предикат для получения кода языка отображения веб-сайта для аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:sid |
|
Описание | Предикат для получения Active Directory Security ID аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:notificationSettings |
|
Описание | Предикат для получения параметров уведомлений аккаунта |
Синтаксис |
|
Возвращает | multiValue |
cmwaccount:password |
|
Описание | Предикат для получения пароля к аккаунту. |
Синтаксис |
|
Возвращает | string |
cmwaccount:userpic |
|
Описание | Предикат для получения изображения профиля аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:userpicLarge |
|
Описание | Предикат для получения увеличенного изображения профиля аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:title |
|
Описание | Предикат для получения наименования должности аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:department |
|
Описание | Предикат для получения наименования отдела аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:office |
|
Описание | Предикат для получения наименования офиса аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:userGroupMembership |
|
Описание | Предикат для получения списка групп, в которых состоит аккаунт. |
Синтаксис |
|
Возвращает | multiValue groupProperty |
cmwaccount:authenticationMethod |
|
Описание | Предикат для получения способа аутентификации аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:substitute |
|
Описание | Предикат для получения аккаунта заместителя, назначенного аккаунту. |
Синтаксис |
|
Возвращает | accountProperty |
cmwaccount:substituteDateFrom |
|
Описание | Предикат для получения даты начала замещения аккаунта. |
Синтаксис |
|
Возвращает | dateTime |
cmwaccount:substituteDateTo |
|
Описание | Предикат для получения даты окончания замещения аккаунта. |
Синтаксис |
|
Возвращает | dateTime |
cmwaccount:birthday |
|
Описание | Предикат для получения дня рождения аккаунта. |
Синтаксис |
|
Возвращает | dateTime |
cmwaccount:personalCalendarId |
|
Описание | Предикат для получения ID персонального календаря аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:personalCalendarUri |
|
Описание | Предикат для получения URI персонального календаря аккаунта. |
Синтаксис |
|
Возвращает | string |
cmwaccount:presentedOnOrgchart |
|
Описание | Предикат для получения статуса включения аккаунта в организационную структуру: true — включён. |
Синтаксис |
|
Возвращает | bool |
cmwaccount:timeZone |
|
Описание | Предикат для получения серверного часового пояса аккаунта. |
Синтаксис |
|
Возвращает | string |
Специальные функции cmwobject
@prefix cmwobject: <http://comindware.com/ontology/object#>. |
|
---|---|
cmwobject:findProperty |
|
Описание | Возвращает в объект ID атрибута по заданной в субъекте паре системных имён шаблона записи и атрибута. |
Синтаксис |
|
Возвращает | string |
Специальные функции cmwcontext
@prefix cmwcontext: <http://comindware.com/logics/session/context#>. |
|
---|---|
cmwcontext:time |
|
Описание | Возвращает текущее время сеанса. |
Синтаксис |
|
Возвращает | dateTime |
cmwcontext:timeZoneOffset |
|
Описание | Возвращает смещение часового пояса сеанса. |
Синтаксис |
|
Возвращает | number |
cmwcontext:origin |
|
Описание | Возвращает объект, по которому был запущен сценарий. |
Синтаксис |
|
Возвращает | — |
cmwcontext:variable |
|
Описание | Возвращает переменную в контексте. |
Синтаксис |
|
Возвращает | — |
Эта статья была полезна 2 чел.