2016-09-09 11 views
0

Мой вопрос касается включения в базы данных (по сравнению с онтологиями). Мое понимание гласит, что если у меня есть экземпляры, принадлежащие классу B, тогда класс A, который является суперклассом класса B, также будет иметь эти экземпляры.Возможна ли субминификация в традиционных системах баз данных (РСУБД)?

Онтологии предоставляют встроенный логический вывод через различные методы (например, RDFS ++, Pellet и т. Д.). Я хотел бы знать, можно ли достичь аналогичной задачи в системах баз данных. Если да, то насколько гибко или просто реализовать? Существуют ли какие-либо преимущества реализации базы данных (если они есть) в отношении подхода, основанного на онтологии?

ответ

2

Чтобы уточнить, онтология не выполняет рассуждения. Онтология - это набор логических аксиом, которые рассудитель использует для ответа на запросы с помощью выводимой (и явной) информации в вашей базе знаний.

Существует ряд существующих систем с открытым исходным кодом и коммерческих систем, которые выполняют рассуждения и могут считаться базой данных, в отличие от того, что используется исключительно для рассуждений, таких как Pellet/Fact/Hermit. Примеры включают AllegroGraph, GraphDb и Stardog. Так что, очевидно, да, это возможно. Существует несколько различных способов подхода к реализации, поэтому у вас есть определенная гибкость в отношении того, как создавать систему на основе предпочтительного варианта использования.

Нетрудно создать игрушку-разума, которая будет анализировать онтологию и делать некоторые основные рассуждения, такие как подчинение. Но если вы хотите поддержать (правильно) один из OWL-фрагментов, и вы хотите сделать это в масштабе, это непросто.

Посмотрите, как реализованы Йена и ее сторонники, которых будет достаточно, чтобы вы начали.

У Sesame также есть аргумент RDFS, так что это будет еще один источник для вас.