Към съдържанието
Станете партньор
Изследвания · Онтологии и бизнес правила

Правилата на предприятието, написани веднъж и прилагани точно

Онтологията описва това, с което предприятието работи: неговите обекти, техните атрибути, връзките между тях и правилата, които се прилагат към тях. Във VAILS тя не е проектен документ: тя се изпълнява. Документите се пренасят в нея, бизнес правилата се прилагат върху нея и по всяко време можете да отправяте заявки към нея или да проверявате нейната съгласуваност.

Как работи

Деклариране, попълване, прилагане, заявки

Онтологията се декларира с класове, типизирани атрибути с ограничения (задължителност, граници, затворен списък от стойности, наследяване) и релации. Тя се компилира в логически правила, в база, отделна за всяка онтология и всяка сесия.

  1. 01Деклариране

    Класове, типизирани атрибути с ограничения, релации.

  2. 02Попълване

    Извлечени от текст или изображение, създадени от програмата или получени чрез оптимизация.

  3. 03Прилагане на правилата

    Условие, действие, приоритет: изводът ги прилага, докато нищо повече не се променя.

  4. 04Заявки и контрол

    Чрез филтри или на естествен език; съгласуваността се проверява по всяко време.

Примери от бизнеса

Правила, разбираеми за бизнеса

Банки: блокиране на рискови преводи

Три правила по реда на приоритета: висока сума или чувствителна държава правят превода рисков, а рисковият превод се блокира. Правилата са разбираеми за отдела по съответствие.

Резултат, получен на сървъра: преводът от 15 500 € към Кайманови острови е блокиран, а този от 820 € остава в изчакване.

Banque_SecuriteVVL
$Banque = [ontology:define "Banque_Securite"
    [ontology:class Virement
        [attributes
            [montant Float [required true]]
            [pays_destination String [default "France"]]
            [niveau_risque String [default "FAIBLE"]]
            [statut String [default "EN_ATTENTE"]]]]]
[ontology:rule "MontantEleve" $Banque [target "Virement"] [priority 100]
    [when ($this.montant > 10000)]
    [then [ontology:set $this "niveau_risque" "ELEVE"]]]
[ontology:rule "PaysSensible" $Banque [target "Virement"] [priority 90]
    [when ($this.pays_destination == "Iles Caimans")]
    [then [ontology:set $this "niveau_risque" "ELEVE"]]]
[ontology:rule "Blocage" $Banque [target "Virement"] [priority 10]
    [when ($this.niveau_risque == "ELEVE")]
    [then [ontology:set $this "statut" "BLOQUE"]]]
[ontology:commit [new Virement [montant 15500] [pays_destination "Iles Caimans"]]]
[ontology:commit [new Virement [montant 820]]]
[ontology:infer-fixpoint $Banque 10]
[ontology:select $Banque "Virement" [statut "BLOQUE"]]

Подбор на персонал: верига от правила

Първо правило определя нивото според опита; второ решава според нивото и оценката. Изводът свързва двете във верига.

Резултат, получен на сървъра: приета е само Marie; Paul е старши, но оценката му е недостатъчна, а Léa все още не е старши.

MarieACCEPTE9 години · оценка 82
PaulA_ETUDIERстарши · оценка 55
LéaA_ETUDIER3 години · оценка 90
RH_TriVVL
$RH = [ontology:define "RH_Tri"
    [ontology:class Candidat
        [attributes [nom String [required true]] [experience Integer [min 0]]
                    [score Integer [min 0] [max 100]]
                    [niveau String [default "JUNIOR"]] [decision String [default "A_ETUDIER"]]]]]
[ontology:rule "NiveauSenior" $RH [target "Candidat"] [priority 100]
    [when ($this.experience >= 7)]
    [then [ontology:set $this "niveau" "SENIOR"]]]
[ontology:rule "Accepte" $RH [target "Candidat"] [priority 10]
    [when (($this.niveau == "SENIOR") && ($this.score >= 70))]
    [then [ontology:set $this "decision" "ACCEPTE"]]]
[ontology:commit [new Candidat [nom "Marie"] [experience 9] [score 82]]]
[ontology:commit [new Candidat [nom "Paul"] [experience 9] [score 55]]]
[ontology:commit [new Candidat [nom "Lea"] [experience 3] [score 90]]]
[ontology:infer-fixpoint $RH 10]
[ontology:select $RH "Candidat" [decision "ACCEPTE"]]

Покупки: контрол на качеството на данните за доставчици

Преди да платите на доставчик или да го включите в списъка, онтологията проверява дали задължителните полета са попълнени и дали стойностите са в своите граници. Тази проверка е изцяло символна.

Резултат, получен на сървъра: две блокиращи нарушения – липсващ SIRET и оценка за качество 25 при максимум 20.

FournisseursVVL
$Four = [ontology:define "Fournisseurs"
    [ontology:class Fournisseur
        [attributes [raison_sociale String [required true]] [siret String [required true]]
                    [note_qualite Integer [min 0] [max 20]]]]]
[ontology:commit [new Fournisseur [raison_sociale "Alpha SARL"] [note_qualite 25]]]
[ontology:consistent $Four]
От текст и изображения към данни

Извличане, ръководено от схемата

Поръчки: свеждане на свободна стойност до каталога

Цветът и размерът на дограмата приемат само стойности от каталога. Когато клиентът напише антрацит или голям формат, извличането свежда стойността до правилното наименование според смисъла.

„антрацит“Gris 7016„голям формат“L
ontology:fromTextVVL
$menuiserie = [ontology:define menuiserie
    [ontology:class Fenetre [attributes
        [reference String]
        [couleur String [in_values "Blanc 9010" "Gris 7016" "Brun 8019" "Noir 9005"]]
        [taille String [in_values "S" "M" "L" "XL"]]]]]
$f = [ontology:fromText $menuiserie "Fenetre" "Commande REF-001 : fenetre coulissante, profil couleur anthracite, grand format (large)."]
[print $f.couleur]     # Gris 7016
[print $f.taille]      # L

Оферти: извличане от сканиран документ

Оферта в PDF се преобразува в изображения, след което се пренася в схемата, включително таблицата с редовете. Сумите пристигат типизирани, готови за проверка чрез правила.

ontology:fromImageVVL
[ontology:class Devis
    [attributes
        [numero String [key true]]
        [date Date]
        [client Client]
        [lignes List [of LigneDevis]]      # déclenche l'extraction du tableau
        [total_ht Currency]
        [taux_tva Number]
        [total_ttc Currency]]]
$images = [pdfToImages $fichier_pdf 2.0]
$devis  = [ontology:fromImage $DevisSystem "Devis" $images]

Правила, написани от бизнес екипите

Правилата могат да бъдат написани и на Gherkin – формата на тестовите сценарии – и след това автоматично преобразувани в изпълнима онтология.

ontology:loadGherkinVVL
$source = "
Feature: SecurityRules
  Background: Schema
    Given I define an ontology named 'BankSystem'
    And I define a class 'Transaction' with attributes:
    | Name   | Type    | Default   |
    | amount | Integer | 0         |
    | status | String  | 'Pending' |

  @priority: 100
  Scenario: High Value Rule
    Given a 'Transaction' context
    When 'amount' is greater than 1000
    Then set 'status' to 'HighRisk'
"
$Ontologie = [evaluate [ontology:loadGherkin $source]]
Гаранции

Какво гарантира и какви са ограниченията

  • Правилата се прилагат точно и възпроизводимо, по реда на своите приоритети, до достигане на стабилно състояние.
  • Съгласуваността се проверява без езиков модел: задължителни полета, граници, списъци от стойности, кардиналности.
  • Всяка сесия има собствени онтологии; запазването им след края на сесията става изрично, чрез съхраняване в работното пространство.
  • Извличането от текст или изображение минава през езиковия модел; онтологичните договори позволяват то да бъде валидирано и стартирано отново при отклонение.
Към практиката

Да приложим ли тези разработки към вашите процеси?

Тези инструменти са инструкции на езика VVL: нашите партньори ги внедряват при своите клиенти, върху платформите на ProSuite.