Единый учебный план

Запрос Единый учебный план

  • Пример вызова:
    http://a.roz37.ru:9984/garpix/semantik/app/app/api/v0.1/request/execute?rp=http://a.roz37.ru/lipers/запросы/единый-учебный-план&план=EUP-2022-2023.xlsx

Свойства запроса

  • Данные

    # формирует записи учебного плана
    # параметр {{план}} содержит полный путь к файлу в хранилище УП/НОО/NOO-UP-2019.xlsx
    PREFIX s:  <http://lipers.ru/схема/> 
    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
    
    SELECT *
    WHERE {
    GRAPH <http://lipers.ru/lipers-simplex/{{план}}>{
        ?предмет ?признак ?значение;
                s:предметныеОбластиФГОС ?предметнаяОбласть;
                s:названиеПредмета ?названиеПредмета;
                s:порядковыйНомер ?порядковыйНомер;
                s:раздел ?раздел
    }
    FILTER  (?раздел) 
    }
    ORDER BY ?порядковыйНомер
  • Рендеринг

    let $data := .[признак/substring-after(value, '-')]
    let $предметы := distinct-values($data/названиеПредмета/value/text())
    let $разделы := sort(distinct-values($data/раздел/value/text()))
    let $строки :=
    for $раздел in $разделы
    for $предмет in $предметы
    where 
        $data
        [раздел/value/text() = $раздел]
        [названиеПредмета/value/text() = $предмет]
        /значение/value/text()
    let $порядковыйНомер := 
        $data
        [раздел/value/text() = $раздел]
        [названиеПредмета/value/text() = $предмет][1]
        /порядковыйНомер/value/text()
    order by xs:integer($порядковыйНомер)  
    return
        <tr>
            <td>{$порядковыйНомер}</td>
            <td>{$раздел}</td>
            <td>{
                $data
                    [раздел/value/text() = $раздел]
                    [названиеПредмета/value/text() = $предмет][1]
                    /предметнаяОбласть/value/text()
            }</td>
            <td>{$предмет}</td>
            {
                for $год in 1 to 11
                let $часы := 
                    $data
                    [раздел/value/text() = $раздел]
                    [названиеПредмета/value/text() = $предмет]
                    [признак/substring-after(value, '-') = xs:string($год)]
                    /значение/value/text()
                return
                <td>{$часы}</td>
            }
            <td>{
                sum(
                $data
                [раздел/value/text() = $раздел]
                [названиеПредмета/value/text() = $предмет]
                /значение/value/text()
                )
            }</td>
        </tr>
    return
        <table>
            <tr>
                <th>Номер пп</th>
                <th>Раздел</th>
                <th>Предметная область</th>
                <th>Предмет</th>
                {for $i in 1 to 11 return <th>{$i}</th>}
                <th>Итого</th>
            </tr>
            {$строки}
            <tr>
                <th>Всего</th>
                <th></th>
                <th></th>
                <th></th>
                {
                    for $год in 1 to 11
                    let $часы := 
                        $data
                        [признак/substring-after(value, '-') = xs:string($год)]
                        /значение/value/text()
                    return
                    <th>{sum($часы)}</th>
                }
                <th>{sum($data/значение/value/text())}</th>
            </tr>
        </table>
  • Шаблон

    <div>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"/>
    </div>
  • Формат сериализации данных: json

  • Формат сериализации ответа: html