1
DCG에서 다음과 같은 전이 함수를 사용할 수 있습니까? 아니면 DCG 규칙과 결합할까요?DCG의 전이 함수
genx(A,B) :- gen(A,B).
genx(A,C) :- gen(A,B), genx(B,C).
gen(a,b).
gen(b,c).
내가 정확히 할 노력하고있어 설명 할 것입니다 :
을 난이 문법이있는 경우 :
noun_phrase(D,N) --> det(D), noun(N).
noun(n(cat)) --> [cat].
나는 내가에 noun(N)
에 N
를 원하는 경우 같은 몇 가지 제한을 만들고 싶어를 동물이 되십시오. 고양이의 정보가 동물입니다
noun_phrase(np(D,N)) --> det(D), noun(N), genx(N, animal).
이 같은 몇 가지 사실에서 유추 된입니다 :
gen(cat,pet).
gen(pet,animal).
감사
답변 주셔서 감사합니다.하지만 작동하지 않는 것 같습니다. 좀 더 명확한 대답을 줄 수 있습니까? – user2598997
@ user2598997 - 귀하의 프롤로그를 사용하고 있습니까? 나는 gprolog 및 swi-prolog와 함께 작업하는 것을 보았습니다. not list가 문제라면'gen ([a], [b]) .'와'gen ([b], [c])의 사실을 바꿀 수 있습니다. 'genx ([a], [c])'는 참을 리턴해야합니다. – max66
swi-prolog (온라인 vserion)를 사용하고 있습니다. genx (A, B) -> gen (A, B). genx (A, C) -> gen (A, B), genx (B, C). gen ([a], [b]). gen ([b], [c]). 프로 시저'genx (A, B) '가 존재하지 않습니다. – user2598997