Search code examples
javaprotegejessnexpose

What does "&:" mean in JessRule?


I have this JessRule code

     (ServiceConfiguration
        (endpoint ?j_endpoint &:(call ?j_advertiserEndpoint equals ?j_endpoint))
        (config ?j_config &:(call ?j_config containsSetting "verbs-count"))
     )

Does the code mean that it assigns the return value of (call ?j_advertiserEndpoint equals ?j_endpoint) to j_endpoint


Solution

  • Ampersands (&) represent logical "and", while pipes (|) represent logical "or." A colon (:) followed by a function call is a logical expression (constraint) that is true if the function returns the special value TRUE.

    The search for endpoint facts succeeds if it has a single field that equals the return value from the call.

    No assignment takes place.