Cyc

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Cyc ([saɪk], від encyclopaedia) — проект в галузі штучного інтелекту що старається скласти вичерпну онтологію та базу знань повсякденного здорового глузду, з метою дати змогу застосуванням штучного інтелекту виконувати міркування як люди. Проект початий в 1984 Дугласом Ленатом в Microelectronics and Computer Technology Corporation і розробляється в компанії Cycorp. Частини проекту випущені як OpenCyc, який надає API, RDF endpoint, та дамп даних під відкритою ліцензією.

Огляд[ред.ред. код]

Проект був початий в 1984. Завданням було систематизувати в машинопридатному форматі мільйони шматочків знань, які складають людський здоровий глузд. CycL - схема представлення знань, яка використовує відношення першого порядку.[1] В 1986, Дуглас Ленат оцінив зусилля потрібні для завершення проекту в 250,000 правил і 350 людино-років.[2] В 1994 проект Cyc був переданий Cycorp, Inc. з Остіна, штат Техас.

Назва "Cyc" - зареєстрована торгова марка Cycorp. Початкова база знань власницька, але менша версія випущена під ліцензією Apache. Недавно його випустили під додатковою ліцензією, яка робить його доступнішим для дослідників штучного інтелекту.

Типовими елементами знань, представлених в базі даних є "Кожне дерево це рослина", і "Рослини колись помирають". Тоді на питання "Чи дерева вмирають?", машина може провести потрібне виведення, і відповісти правильно. База знань (БЗ) містить більше мільйона описаних людьми припущень та правил. Вони всі формуються мовою CycL, яка базується на численні предикатів і має синтаксис подібний на мову LISP.

Більшість поточної роботи над проектом Cyc продовжує бути ручним введенням фактів про світ, і реалізацію ефективного механізму виведення нових знань. Також робота в Cycorp включає додавання до Cyc можливості спілкування з кінцевими користувачами природньою мовою, та допомагати формуванню знань через машинне навчання.

Як і багато інших компаній, Cycorp має амбіції використати інструменти розпізнавання природньої мови Cyc для аналізу всього інтернету з метою видобути структуровані дані.[3]

В 2008, ресурси Cyc були відображені на багато статей вікіпедії,[4] потенційно спрощуючи об'єднання з іншими колекціями даних, такими як DBpedia та Freebase.

База знань[ред.ред. код]

Назви коцептів в Cyc відомі як константи. Константи починаються з необов'язкового "#$" та чутливі до регістру. Існують константи для:

  • Окремих речей, названих особовими, таких як #$BillClinton чи #$France.
  • Колекцій, таких як #$Tree-ThePlant (містить всі дерева, не графи) чи #$EquivalenceRelation (містить всі відношення еквівалентності). Член колекції називається її екзепляром.
  • Функції істини що можуть застосовуватись до одного чи кількох концептів, і повертати true чи false. Наприклад #$siblings - відношення брат-або-сестра, яке має значення true якщо два аргументи - брати або сестри. За домовленістю константи функцій істини починаюються з літери в нижньому регістрі.

Функції істини можуть розбиватись на логічні зв'язки (такі як #$and, #$or, #$not, #$implies), квантори (#$forAll, #$thereExists, і т. д.) та предикатів.

  • Функції, які утворюють нові терми з наявних. Наприклад, #$FruitFn, коли їй дадуть аргумент що описує тип (чи колекцію) рослин, поверне колекцію їх фруктів. За домовленістю константи функцій починаються з великої літери і закінчуються символами "Fn".

Найважливішими предикатами є #$isa та #$genls. Перший визначає чи є елемент екземпляром колекції, інший чи є колекція підколекцією іншої. Факти про концепти затверджуються з використанням певних речень мови CycL. Предикати записуються перед аргументами в дужках:

 (#$isa #$BillClinton #$UnitedStatesPresident)

"Білл Клінтон належить колекції американських президентів",

 (#$genls #$Tree-ThePlant #$Plant)

"Всі дерева - рослини".

 (#$capitalCity #$France #$Paris)

"Париж це столиця Франції."

Речення також містять змінні, рядки починаються з "?". Такі речення називаються "правилами". Важливе правило що стверджується про предикат #$isa записується:

(#$implies
   (#$and   
     (#$isa ?OBJ ?SUBSET)
     (#$genls ?SUBSET ?SUPERSET))
   (#$isa ?OBJ ?SUPERSET))

з інтерпритацією "якщо OBJ екземпляр колекції SUBSET та SUBSET підколекція колекції SUPERSET, тоді OBJ екземпляр колекції SUPERSET".

Інший типовий приклад:

 (#$relationAllExists #$biologicalMother #$ChordataPhylum #$FemaleAnimal)

який означає що для кожного екземпляра #$ChordataPhylum (хордових), існує самиця (екземпляр #$FemaleAnimal) яка є матірю (описується предикатом #$biologicalMother).

База знань поділена на мікротеорії (Mt), колекції концептів та фактів що стосуються однієї області знань. На відміну від всієї бази знань, кожна мікротеорія мусить бути вільною від протиріч. Кожна мікротеорія має ім'я, яке теж є константою, і за домовленістю містить символи "Mt". Наприклад #$MathMt, мікротеорія що містить знання з математики. Мікротеорії можуть наслідувати одна одну, і організовуються в ієрархію: наприклад #$MathMt містить вужчу мікротеорію #$GeometryGMt, про геометрію.

Машина виведення[ред.ред. код]

Машина виведення - програма що намагається вивести відповіді з бази знань. Машина виведення Cyc виконує дедуктивні правила, (наприклад Modus ponens, Modus tollens, ...).[5]

Релізи[ред.ред. код]

OpenCyc[ред.ред. код]

Остання версія OpenCyc, 2.0, випущена в липні 2009. OpenCyc 1.0 включає повну онтологію Cyc включно з сотнями тисяч термінів, з мільйонами припущень що стосуються цих термінів, хоча це в основному таксономічні припущення, а не складні правила можливі в Cyc. База знань містить 47,000 концептів та 306,000 фактів і може переглядатись прямо на сайті OpenCyc.

Перша версія OpenCyc випущена навесні 2002 та містила лише 6,000 концептів та 60,000 фактів. База знань публікується під Apache License. Cycorp заявила про наміри випустити OpenCyc під паралельними необмеженими ліцензіями щоб задовольнити вимоги користувачів. CycL та інтерпретатор SubL (програма що дозволяє вам переглядати та редагувати базу, і малювати відношення) розповсюджується безплатно, але лише в бінарному вигляді. Є версії для Лінукс та Microsoft Windows.

ResearchCyc[ред.ред. код]

В липні 2006, Cycorp випустила бінарний код ResearchCyc 1.0, версію націлену на дослідницьку спільноту, безплатно. (ResearchCyc був на бета-стадії розробки від 2004, а перша бета версія випущена в лютому 2005.) На додачу до таксономічної інформації що міститься в OpenCyc, ResearchCyc включає значно більше семантичних знань (додаткових фактів) про концепти в базі знань, включно з великим лексиконом, інструментами аналізу і генерації англійської, та інтерфейси для редагування і запитів до бази знань написані на Java.

Застосування[ред.ред. код]

База знань про тероризм[ред.ред. код]

Вичерпна база знань про Тероризм - це одне із застосувань Cyc, яке має на меті зібрати всі доречні знання про терористичні групи, їх членів, лідерів, ідеологію, засновників, спонсорів, відділи, можливості, місцезнаходження, фінанси, наміри, тактику і повний опис всіх подій що стосуються тероризму.[6]

Cyclopedia[ред.ред. код]

Cyclopedia зараз розробляється; вона накладає ключові слова Cyc на сторінки взяті з вікіпедії.[7][8]

Cleveland Clinic Foundation[ред.ред. код]

Клініка Клівленду використовувала Cyc для розробки інтерфейсу запитів природньою мовою до біометричної інформації.[9] Запит парситься в множину фрагментів з відкритими змінними CycL (логіка вищого порядку), а після застосування різноманітних обмежень (знання з медичної галузі, здоровий глузд, синтаксис), існує спосіб для зчеплення тих фрагментів разом, в один семантично значимий формальний запит.[10]

Критика проекту Сус[ред.ред. код]

Проект Cyc описувався як "одне з найсуперечливіших зусиль в історії штучного інтелекту",[11] і звісно отримав свою долю критики. Вона включала:

  • Складність системи - можливо вимушена її енциклопедичними амбіціями - і як наслідок складність в ручному додаванні інформації до системи
  • Проблеми з маштабованістю, пов'язані з тим, що твердження мають залежні твердження, і як наслідок кількість зв'язків між ними зростає експоненційно.
  • Незадовільне трактування ідеї субстанції і пов'язаної з нею відмінності між внутрішніми та зовнішніми властивостями
  • Відсутність способів оцінки продуктивності машини виведення
  • Поточна незавершеність системи як в ширину так і в глибину, і складність в оцінці її завершеності.
  • Обмежена документація, і нестача навчального матеріалу, що освоєння системи складним для нових людей.
  • Велика кількість пропусків не тільки в онтології рядових об'єктів, але й майже повна нестача прийнятних тверджень що описують ті об'єкти.

Див. також[ред.ред. код]

Зноски[ред.ред. код]

  1. Lenat, Douglas. «Hal's Legacy: 2001's Computer as Dream and Reality. From 2001 to 2001: Common Sense and the Mind of HAL». Cycorp, Inc. Процитовано 2006-09-26. 
  2. The Editors of Time-Life Books (1986). Understanding Computers: Artificial Intelligence. Amsterdam: Time-Life Books. с. 84. ISBN 0-7054-0915-5. 
  3. «Cyc R&D». Процитовано 2009-02-19. 
  4. «INTEGRATING CYC AND WIKIPEDIA: Folksonomy meets rigorously defined common-sense». Процитовано 2009-02-19. 
  5. «cyc Inference engine». Процитовано 2009-02-19. 
  6. «The Comprehensive Terrorism Knowledge Base in Cyc». Архів оригіналу за 2006-02-22. Процитовано 2009-02-19. 
  7. «DBpedia and (Open-)Cyc». Архів оригіналу за 2013-07-12. Процитовано 2009-06-09. 
  8. Cyclopedia Sampleshowing cyc highlighted cyc concept for family
  9. [1]
  10. [2]
  11. Bertino, Piero & Zarri 2001, p. 275

Further reading[ред.ред. код]

Посилання[ред.ред. код]