Closed
Description
Are the implicit choice-points created by the following member/2
and select/3
calls required?
The call to the realise_triples/4
predicate from the object_edges/3
predicate suggests that those calls could be replaced with memberchk/2
and selectchk/3
. As the realise_triples/4
predicate is recursive, these choice-points accumulate.
P.S. Given sort/2
semantics, the object_edges/3
predicate can also be rewritten as:
object_edges(URI,Database,Edges) :-
( most_specific_type(URI,Class,Database),
class_frame(Class,Database,Frame),
realise_triples(URI,Frame,Database,Unsorted)
-> sort(Unsorted,Edges)
% There is no type in the database, so it doesn't exist...
; Edges=[]).
Metadata
Metadata
Assignees
Labels
No labels