规则 0.2.0

规则 0.2.0

Jim Roepcke 维护。



规则 0.2.0

  • 作者
  • Jim Roepcke

规则

Version License Platform

Rules 提供了一个简单的前向链推理规则引擎,可在运行时进行配置。

当您提供一组已知事实和一组规则时,可以确定可推断的事实。

例如

  • 已知事实:天空是蓝色的
  • 规则:如果天空是蓝色的,那么天气是晴朗的
  • 可推断事实:天气是晴朗的

您可以创建比这更复杂的规则,这些规则基于更多的事实,甚至基于可推断的事实。

例如

  • 已知事实:天空是蓝色的

  • 已知事实:现在是夏季

  • 规则:如果天空是蓝色的,那么天气是晴朗的

  • 规则:如果为真,海滩是空的(这是一个后备规则)

  • 规则:如果天气是晴朗的,并且季节是夏季,那么海滩是满的

  • 可推断事实:海滩是满的

  • 已知事实:现在是秋天

  • 可推断事实:海滩是空的

规则可以使用简单的文本格式指定,可以从 JSON 解码并加载到 Brain 中。

此仓库还包含一个用于 macOS 的 TextRulesToJSON 命令行程序,可以将具有可读规则的文本文件转换为 JSON。由于 Rules 中的 Rule 类型符合 Swift 的 Decodable 协议,这使得将规则导入应用程序变得容易。TextRulesToJSON 还可以对规则进行 linting,以确保在将其转换为 JSON 之前它们是有效的。

示例

示例项目仅用于单元测试。要运行它们,首先克隆仓库,然后从示例目录运行 pod install

要求

  • Xcode 10.0
  • Swift 4.2

安装

“规则”可以通过 CocoaPods 获得使用。要安装它,只需将以下命令添加到您的 Podfile 中。

pod 'Rules'

“规则”还可以作为 Swift Package 提供。有关更多信息,请参阅 Rules/Package.swift 文件。

作者

Jim Roepcke, [email protected]

许可协议

“规则”在 MIT 许可协议下可用。有关更多信息,请参阅 LICENSE 文件。