knowledge patterns