Перейти до основного вмісту
AI-R Info

Основна навіґація

  • Головна
  • Проєкти
    • ІНТЕЛЕКТУАЛЬНИЙ АГЕНТ НА ОСНОВІ ЗНАНЬ
    • БАЗА ЗНАНЬ ЯК СХОВИЩЕ ДАНИХ ІНТЕЛЕКТУАЛЬНОГО АГЕНТА
Меню облікового запису користувача
  • Вхід

Рядок навіґації

  1. Головна

5 СИСТЕМА ЗАПИТІВ ЗАСОБАМИ ЛОГІЧНОГО ПРОГРАМУВАННЯ

Для ефективного використання побудованої KB потрібна система запитів до неї як до SM. В проєкті використані засоби пакету логічного програмування Julog [11] мови програмування Julia [12]. Обґрунтування використання в проєкті мови Julia наведено в додатку Б.

Нижче наведено текст фрагменту програми на  Julia, який формує твердження для системи логічного програмування  Julog. Ця система подібна до системи Prolog, але реалізована як пакет  Julia і дозволяє використовувати всі переваги цієї мови.

rules = @julog [
Attr(ID, Name) <<= A(ID, V) & V(V, Name, _),
Cat(ID, Name) <<= C(ID, V) & V(V, Name, _),
Rel(ID, Name) <<= R(ID, V) & V(V, Name, _),
Obj(ID, Name) <<= O(ID, _, V) & V(V, Name, _),
CatObj(ID, CatID, ObjID, CatName, ObjName) <<= 
    CO(ID, CatID, ObjID,) & Cat(CatID, CatName) & Obj(ObjID, ObjName),
RelCat(ID, RelID, CatFromID, CatToID, RelName, CatFromName, CatToName) <<= 
    RC(ID, RelID, CatFromID, CatToID) & Rel(RelID, RelName) & Cat(CatFromID, CatFromName) & Cat(CatToID, CatToName),
RelCatObj(ID, RelCatID, CatFromID, ObjFromID, CatToID, ObjToID, RelName, CatFromName, ObjFromName, CatToName, ObjToName) <<= 
    RCO(ID, RelCatID, ObjFromID, ObjToID) & RelCat(RelCatID, RelID, CatFromID, CatToID, RelName, CatFromName, CatToName)      & Obj(ObjFromID, ObjFromName) & Obj(ObjToID, ObjToName),
AttrCat(ID, CatID, AttrID, ValueID, CatName, AttrName, Value) <<= 
    AC(ID, CatID, AttrID, ValueID) & Attr(AttrID, AttrName) & Cat(CatID, CatName) & V(ValueID, Value, _),
AttrCatObj(ID, CatObjID, CatID, ObjID, AttrID, ValueID, CatName, ObjName, AttrName, Value) <<= 
    ACO(ID, CatObjID, AttrID, ValueID) & CatObj(CatObjID, CatID, ObjID, CatName, ObjName) & Attr(AttrID, AttrName) & Cat(CatID, CatName) & V(ValueID, Value, _),
AttrRel(ID, RelID, AttrID, ValueID, RelName, AttrName, Value) <<= 
    AR(ID, RelID, AttrID, ValueID) & Attr(AttrID, AttrName) & Rel(RelID, CatName) & V(ValueID, Value, _),
AttrRelCat(ID, RelCatID, RelID, CatFromID, CatToID, AttrID, ValueID, RelName, CatFromName, CatToName, AttrName, Value) <<=
    ARC(ID, RelCatID, AttrID, ValueID) & RelCat(RelCatID, RelID, CatFromID, CatToID, RelName, CatFromName, CatToName) & Attr(AttrID, AttrName) & V(ValueID, Value, _),
AttrRelCatObj(ID, RelCatObjID, RelID, CatFromID, ObjFromID, CatToID, ObjToID, AttrID, ValueID, RelName, CatFromName, ObjFromName, CatToName, ObjToName, AttrName, Value) <<= 
    ARCO(ID, RelCatObjID, AttrID, ValueID) & RelCatObj(RelCatObjID, RelCatID, CatFromID, ObjFromID, CatToID, ObjToID, RelName, CatFromName, ObjFromName, CatToName, ObjToName) & Attr(AttrID, AttrName) & V(ValueID, Value, _)
]

Ці твердження дозволяють робити запити на вибірку з SM  в стилі Prolog.

Далі

Language switcher

  • English
  • Ukrainian
RSS-потік

© Юрій Харченко. 2024

email: info@ai-r.info

Побудовано на Drupal