1
그래서 나는 답변 프로그래밍 설정 - 사실 수를 계산하는 방법이 내 쿼리 결과로 보입니까?
%Q1 : Find the implicit "is_a" relationship between terms
%ex: if term A is is_a term B, term B is_a term C, then term A is_a term C
%is_a One level
triple1(TermA, "go:is_a", TermB):- triple(TermA, "go:is_a", TermB), TermA != TermB.
%is_a MultiLevel
triple1(TermA, "go:is_a", TermC) :-
triple(TermA, "go:is_a", TermB),
triple(TermB, "go:is_a", TermC),
TermA != TermC.
triple1(TermA, "go:is_a", TermC) :-
triple1(TermA, "go:is_a", TermB),
triple1(TermB, "go:is_a", TermC),
TermA != TermC.
다음 나는 사실을 포함하지 설정 내 대답에 얼마나
triple1
트리플 많은 계산하려면, DLV에서 실행되는 사실의 집합 및 ASP로 작성된 쿼리가 있습니다. 나는 집계 COUNT 개 쿼리의 이런 종류의 만든 :
triple1nr(X) :- #count{TermA : triple1(TermA,"go:is_a",TermC)} = X.
을하지만 내가 얻은 것은 변수 TermA
의 수는 내 결과로 표시했다. 그리고 내 검색어를 다음과 같이 변경했을 때
triple1nr(X) :- #count{triple1(TermA,"go:is_a",TermC)} = X.
내게 오류가 발생합니다. 이 쿼리는 어떻게해야합니까?
테스트를 통해 완벽하게 작동합니다. 고맙습니다! –