Задать вопрос
  • Как сделать агрегацию при помощи reasoning в owlready2?

    @Hrab Автор вопроса
    Вопрос скорее про теорию. Имеет смысл уточнить - речь о SWRL правилах. Нерабочий тест:
    with onto:
        class Element(Thing):
            pass
    
        class X(Element >> float, FunctionalProperty):
            pass
    
        class Y(Element >> float, FunctionalProperty):
            pass
    
        class neighbors(Element >> Element, SymmetricProperty):
            pass
    
        class adjacent(Element >> bool, FunctionalProperty):
            pass
    
        # Define SWRL Rule for adjacency
        rule = Imp()
        rule.set_as_rule(
            """Element(?e1), Element(?e2), X(?e1, ?x1), Y(?e1, ?y1), X(?e2, ?x2), Y(?e2, ?y2),
             add(?dist2, ?x1, ?x2),
             lessThan(?dist, 10.0) -> neighbors(?e1, ?e2), adjacent(?e1, true), adjacent(?e2, true)"""
        )
    Написано