built-in predicate
specializes_class/2-3
Description
specializes_class(Class, Superclass)
specializes_class(Class, Superclass, Scope)
Enumerates, by backtracking, all pairs of objects such that the first
one specializes the second. The relation scope is represented by the
atoms public
, protected
, and private
.
Modes and number of proofs
specializes_class(?object_identifier, ?object_identifier) - zero_or_more
specializes_class(?object_identifier, ?object_identifier, ?scope) - zero_or_more
Errors
Class
is neither a variable nor a valid object identifier:type_error(object_identifier, Class)
Superclass
is neither a variable nor a valid object identifier:type_error(object_identifier, Superclass)
Scope
is neither a variable nor an atom:type_error(atom, Scope)
Scope
is an atom but an invalid entity scope:domain_error(scope, Scope)
Examples
% enumerate the state_space subclasses:
| ?- specializes_class(Subclass, state_space).
% enumerate the state_space subclasses where the
% specialization relation is public:
| ?- specializes_class(Subclass, state_space, public).