C 또는 파이썬의 규칙 엔진 [폐쇄
-
20-09-2019 - |
문제
C 또는 Python의 규칙 엔진을 찾고 있지만 다른 언어로 구현되는 규칙 엔진을 알고 있다면 기꺼이 알고 싶습니다.
엔진은 누군가가 방을 떠날 때 조명을 끄는 것과 같이 집을 자동화하는 방법으로 사용됩니다. 따라서 "사무실"규칙이 없습니다 (일명 Excel 또는 그와 같은 규칙).
나는 Java에있는 Jess와 침물을보고 완벽한 일을했습니다. 나는 다른 사람들을 알고 싶습니다. 아마도 Java보다 기억이 적을 수 있습니다. Python의 Rulecore에 대해 들었지만 실제로 문서를 찾을 수 없었습니다 (버전 1.0은 Sourceforge에서 제공되지만 2.0 v. 2.0을 판매하는 것처럼 보입니다).
편집하다: Rules Engine (추론 엔진)에 의해 Rete 또는 동등한 구현을 의미합니다.
다른 팁
룰비 루비로 작성된 규칙 엔진입니다. Rubyhoedown 2008에서 프레젠테이션의 대상이되었습니다. Ruleby-Rule-Engine-Ruby
Pychinko는 한동안 주변에있었습니다. 나는 그것을 생산에 사용한 적이 없지만 잠시 동안 가능한 생산 응용 프로그램을 위해 조사했습니다. 그것은 매우 좋은 기능과 괜찮은 사용자 커뮤니티를 가지고있는 것 같습니다.
사실상 파이썬 ~이다 규칙 엔진.
"엔진은 누군가가 방을 떠날 때 조명을 끄는 것처럼 집을 자동화하는 방법으로 사용됩니다."
센서와 컨트롤러가 필요합니다. "규칙"을 일반 파이썬 객체로 작성합니다.
주요 "프로그램"은 센서에서 이벤트를 수집하고 컨트롤러로 이벤트를 보냅니다.
일반 USB를 통해 센서에서 읽을 수 있다면 더 좋습니다. 해양 산업은 센서에서 컨트롤러로 버스의 트래픽을 지정하기 위해 NMEA 0183 및 NMEA 2000과 같은 몇 가지 밀접하게 관련된 표준을 사용합니다.
또 다른 규칙 언어가 필요하지 않습니다. 당신은 파이썬이 있습니다.
Rulecore는 실제로 파이썬으로 부분적으로 작성되었습니다. 그러나 그것은 실제로 중요하지 않습니다. 사용자로서 귀하는 어쨌든 이러한 구현 세부 정보를 보지 못할 것입니다.
규칙은 순전히 선언적이고 XML을 사용하여 정의됩니다. XML은 웹 서비스 또는 JMS 또는 기타 프로토콜을 사용한 이벤트로 Rulecore CEP 서버로 전송됩니다.
다음은 Java의 13 개의 오픈 소스 규칙 엔진 목록입니다. 드로스는 아마도 이들 중 최고 일 것입니다. http://java-sources.org/open-source/rule-engines
나는 Rulecore가 Python으로 작성된 일부 부품을 가지고 있다는 것을 알고 있습니다. 그러나 API는 XML 및 ActiveMQ 또는 WebServices를 사용하므로 추상화 수준이 높습니다.
네브리 홈 자동화 및 기타 소프트웨어/기계에 대한 규칙을 작성하는 가장 쉬운 방법입니다. 다음은 Light 차단을 수행하는 예입니다.
class high_temp_shutdown(NebriOS):
listens_to == ['shared.pebble_location']
def check(self):
# if pebble dongle is out or room, return true
return shared.pebble_location > 3 # in meters
def action(self):
smartthings.lights(2,"off")
스크립트에 사용할 기존 라이브러리를 설치할 수 있기 때문에 집을 자동화하기위한 완벽한 도구입니다. Nest, Smartthings, Sen.se 등. 그것은 단지 파이썬입니다!
그리고 Python이 규칙 엔진 자체가 아닌 이유에 대한 자세한 설명은 이 기사. 파이썬 자체가 규칙을 실행할 수 있기 때문에 규칙 엔진이 없습니다. 실제로 거대한 건축 적 변화입니다.
파이썬으로 간단한 규칙 엔진을 씁니다. 규칙을 JSON 또는 YAML 문자열에 저장 하고이 규칙 엔진을 사용하여 규칙과 컨텍스트와 일치합니다.