Как заставить сплав работать с набором данных, чтобы проверить все правила - PullRequest
1 голос
/ 05 мая 2019

Я создал программу сплава, чтобы проверить некоторые правила системы.Теперь я хочу проверить правила в реальной системе.Для этого у меня есть все данные из реальной системы.Например,

Мой инструмент сплава проверяет правила поиска общего друга между двумя пользователями.Я могу сделать это, дав простое правило в сплаве.Теперь я хочу проверить это в большом наборе данных.Предположим, у меня есть набор данных друзей из Facebook.Теперь, как я могу передать свой набор данных Facebook сплаву, чтобы найти общего друга пользователя Facebook, использующего Alloy.

Можно ли написать оболочку из javascript / python / java для связи между моим анализатором сплавов и данными json?

Ответы [ 2 ]

1 голос
/ 06 мая 2019

ИМХО, Alloy не подходит для выполнения анализа на больших наборах данных .

При этом я считаю, что вы можете использовать aRby , вложение Alloy в Ruby, которое позволит вам не только составлять сценарий импорта вашего набора данных, но и указывать так называемые«частичные экземпляры», то есть экземпляры, частично заполненные вашими данными, которые можно дополнить анализом.

Если вы предпочитаете использовать Java, вы можете напрямую работать с Alloy API (добавьте кувшин Alloy в путь к вашему проекту).

Перед началом работы убедитесь, что масштабируемость не является ключевым требованием, поскольку оба подхода, безусловно, потребуют от вас определенных усилий и преданности делу при их реализации.

0 голосов
/ 06 мая 2019

Я работал над правильным API для Alloy, в настоящее время он находится в PR на Github . С этим API довольно легко использовать Alloy в качестве верификатора.

В отличие от ответа Лоика, я думаю, что вы легко запустили это на относительно больших наборах данных, потому что медленная часть - это решатель, который пытается найти экземпляр. Если вы создаете экземпляр, то легко убедиться, что он соответствует всем правилам.

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

...