Есть ли какой-нибудь бесплатный совин, который может рассуждать, не загружая все данные в память?

Я использую Jena и TDB для хранения RDF, и я хочу сделать некоторые выводы по нему. Но данные RDF большие, и сове-разумнику Jena приходится загружать все данные в память. Итак, я хочу найти одного рассудителя, который может рассуждать, не загружая все данные в память, есть ли такой?


person Wang Ruiqi    schedule 25.04.2012    source источник
comment
Насколько велики ваши данные? Просто любопытно...   -  person castagna    schedule 26.04.2012


Ответы (3)


Если вы готовы взять подмножество OWL, есть вещи, которые вы можете делать в режиме потоковой обработки, не загружая все ваши RDF-данные в память, и которые материализуют все предполагаемые тройки.

В качестве примера взгляните на команду infer RIOT:

Исходный код здесь:

Тривиально взять вывод RIOT и запустить его параллельно с чем-то вроде MapReduce, пример здесь:

Другой другой подход, который использует MapReduce для применения правил RDFS и OWL ter Horst и материализации всех производных операторов, находится здесь:

Возможно, вы можете просмотреть интересующие вас части OWL и проверить, сможете ли вы сделать это в потоковом режиме. Если это так, вы можете взять вывод RIOT и расширить его, добавив интересующие вас части OWL. Это было бы хорошим вкладом в Apache Jena (обратитесь в список рассылки jena-dev, если вы хотите это сделать) .

WebPIE — умный и интересный проект, но, как видите, немного более сложный и исследовательский проект (со всеми вытекающими последствиями с точки зрения долгосрочной поддержки и сопровождения). Однако, если вам нужна/нужна OWL ter Horst, WebPIE подойдет. Вы даже можете приложить усилия, разветвить WebPIE и внести свой вклад в проект с открытым исходным кодом, если другие заинтересованы в его использовании.

Возможно, вам будет интересно взглянуть также на Ymris (но он сейчас спит... zzzzz):

person castagna    schedule 26.04.2012

Не совсем. Рассуждения DL сложны в вычислительном отношении даже на малых масштабах. С много данных это просто не будет работать с существующими подходами. Выполнение этого во вторичном хранилище все еще остается открытой исследовательской проблемой.

Однако для решения этой проблемы существуют различные профили OWL. Все они имеют разную вычислительную сложность, и все они «проще», чем DL, что делает их гораздо более удобными для рассуждений в масштабе. В частности, QL предназначен для рассуждения о времени запроса, которое, по моему опыту, имеет тенденцию занимать очень мало памяти, а RL может быть реализован с помощью стандартного обработчика правил.

Поэтому, если вам не нужно использовать DL, я бы выбрал инструмент, который поддерживает один из профилей, и вы должны получить от этого довольно хорошие результаты.

Для справки вы можете найти этот документ о вычислительных сложностях различных OWL. диалекты интересные.

person Michael    schedule 25.04.2012
comment
На самом деле, данные RDF - это скоси, я не знаю, может ли это быть аргументировано QL - person Wang Ruiqi; 28.04.2012

Вы можете попробовать GRAKN.AI, они в режиме реального времени анализируют сохраненные данные в распределенных системах.

person user7420209    schedule 27.04.2018