SHACL Constraints - спецификация для правил контроля логической целостности, SHACL Rules - для получения выведенных фактов из постулированных. На мой взгляд, то и другое относится к инструментам логического вывода. А на ваш взгляд где граница между логическим выводом и всем остальным?
Логический вывод - это общий механизм. С помощью логического вывода можно извлекать следствия из существующих данных на основании определённых правил и аксиом. Сами эти правила и аксиомы могут быть зписаны как RDFS, OWL, SHACL, или даже ISO 15926. Эти стандарты определяют интерпретацию записанных на них правил.
При этом идеология этих стандартов всё же отличается, несмотря на сходство. Выражения на RDFS или OWL больше заточены именно под вывод - вывод новых утверждений из существующих. SHACL или ISO 15926 - заточены под описание ограничений схемы данных и под проверку выполнения этих ограничений, а не под пополнение набора сделанных утверждений.
В целом так, я бы только уточнил, что в RDFS и OWL как таковых используется конкретный набор правил, следующих из самой спецификации (см. например RDFS entailment - элементарные правила вроде того, что любой объект подкласса является и объектом его надклассов). А SWRL и SPIN создавались для описания правил, придуманных пользователем.
SHACL создается по частям: сначала создали SHACL Constraints, которая действительно описывает только правила проверки ограничений. Статус спецификации пока имеет только она. Но есть и следующая часть, SHACL Advanced Features, где описан синтаксис SHACL Rules, которые описывают именно способы извлечения следствий и фактов.
SHACL действительно привлекателен стандартизацией - можно предположить, что кто-нибудь сделает движок, реализующий вывод на основании SHACL Rules. Но мое изначальное удивление было связано не с этим. Сами алгоритмы вывода для таких движков не очень-то продвинулись с того момента, как их писали на Прологе. И изменения в этой области пока что не предвидятся, возможность записывать все более сложные patterns на новых стандартных языках не приводит к росту промышленного применения. Скорее уж стоит ожидать прорывов по линии совмешения логического вывода и машинного обучения, graph embedding etc.
Совершенно верно, алгоритмы вывода все те же, и вряд ли тут стоит ожидать кардинальных изменений. В моде разнообразные варианты автоматизации получения правил, которые не обходятся без машинного обучения, иногда и нейросетей.
Reply
А на ваш взгляд где граница между логическим выводом и всем остальным?
Reply
При этом идеология этих стандартов всё же отличается, несмотря на сходство. Выражения на RDFS или OWL больше заточены именно под вывод - вывод новых утверждений из существующих. SHACL или ISO 15926 - заточены под описание ограничений схемы данных и под проверку выполнения этих ограничений, а не под пополнение набора сделанных утверждений.
Reply
SHACL создается по частям: сначала создали SHACL Constraints, которая действительно описывает только правила проверки ограничений. Статус спецификации пока имеет только она.
Но есть и следующая часть, SHACL Advanced Features, где описан синтаксис SHACL Rules, которые описывают именно способы извлечения следствий и фактов.
Reply
Reply
Reply
Leave a comment