Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools

Suffixes for PEF-Predicates

In short:

  • <PEF>_In(A, B) :- <PEF>(B, A, . . .)
  • <PEF>_InEncl(A, B) :- <PEF>(B, _, A, . . .)


Because of Prologs build-in first argument indexing we create for every Program Element Fact to additional PEFs that can be used as an index. In case the ID of the parent or the enclosing element is already bound it is much more efficient to use these generated facts to bind the ID of the original fact.

These facts have the same name as the original fact with a suffix _In or _InEncl respectively.

  • The first parameter of the _In-fact is the second parameter of the original fact (ID of parent PEF) and the first parameter of the _InEncl-fact is the third parameter of the original fact (ID of enclosing PEF).
  • The second parameter of the generated fact is always the ID of the original fact and the first.

More Information


  • for extendsT and implementsT, there is no _InEncl suffix extension
  • for externT, interfaceT, sourceLocation, projectLocationT and slT there are no _In and _InEncl suffix extensions
research/cultivate/pefsuffixes.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2023