2013-09-28 1 views
1

Mac OSX의 SWI Prolog에서? - 프롬프트 다음에 대괄호와 작은 따옴표를 여러 가지 조합으로 시도했습니다. 아무것도 효과가 없습니다. 이 명령은 한꺼번에 많은 파일을로드해야합니까? 나는 심지어 프롬프트에 도달하기 전에 무엇인가 입력합니까?프롤로그 파일 : "실행"swipl -f main.pl ""의 의미는 무엇입니까?

누군가가 아래에 # 1을 입력 할 때 정확하게 무엇을 말할 수 있다면 멋질 것입니다. (나는 프로그래머가 아니지만,인지 과학 수업에 대한 나의 소개를위한 간단한 전문가 시스템 셸을 찾으려고 노력했다. 나는 Amzi 새들을 약 백만 번 시도했는데 오류가 발생했다. Amzi 및 SWI). 감사!

프롤로그 전문가 시스템 (APES) http://apes.sourceforge.net/ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

실행 :

  • 실행 "swipl -f main.pl"
  • 입력

    1. 는 SWI - 프롤로그 (모든 ISO-표준 프롤로그 통역에 작동해야하지만이 안된) 설치 "를 시작합니다."

    는 UPDATE : (! 감사합니다 hardmath 및 user882813 너무 많이) 나는 명령 "swipl -f main.pl"로 오류가 존재하지 않는 가지고, 그래서 SWI 프롤로그 ABD 수동 main.pl로드 시작했다. 여기

    % A Prolog Expert System (APES) 
    % http://apes.sourceforge.net/ 
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    
    :- ensure_loaded('engine.pl'). 
    :- ensure_loaded('tokenizer.pl'). 
    :- ensure_loaded('parser.pl'). 
    :- ensure_loaded('knowledge/knowledge.pl'). 
    :- ensure_loaded('knowledge/groups/*.pl'). 
    :- ensure_loaded('helpers.pl'). 
    :- ensure_loaded('processor.pl'). 
    
    start:- 
        %dynamic((::)/2), 
        write('_____________________________________________________'), 
        nl,nl, 
        loop_read_in(_). 
    
    loop_read_in(X):- 
        % from tokenizer.pl (clocksin & mellish, "programming in prolog"): 
        read_in(X), 
        process(X), 
        loop_read_in(_). 
    
    loop_read_in(X):- 
        read_in(X), 
        not(process(X)), 
        !,fail. 
    

    하지만 무슨 일이 있었는지입니다 : 여기 main.pl의 코드는 ERROR : 내가 입력하면 내가 파일이 오류가 존재하지 않는 얻을 시작 /Users/leesebastiani/prologfiles/main.pl:10 : source_sink`knowledge/groups/*. pl '이 존재하지 않습니다.

    수동으로로드하려고 시도했을 때 수동으로 얻은 결과는 ? - ['knowledge/groups/*. pl ']입니다. 오류 : /Users/leesebastiani/prologfiles/main.pl:10 : source_sink`knowledge/groups/*. pl '이 (가) 존재하지 않습니다. 경고 : /Users/leesebastiani/prologfiles/main.pl:10 : 목표 (지침) failed : user : ensure_loaded (knowledge/groups/*. pl)

    나는 내 학생들에게 이것을 쉽게 만들고 싶습니다. 제 마지막 세션이 있습니다 :

    ?- ['main.pl']. 
    % engine.pl compiled 0.00 sec, 64 clauses 
    % tokenizer.pl compiled 0.00 sec, 62 clauses 
    % parser.pl compiled 0.00 sec, 32 clauses 
    % knowledge/knowledge.pl compiled 0.00 sec, 17 clauses 
    ERROR: /Users/leesebastiani/prologfiles/main.pl:10: 
        source_sink `knowledge/groups/*.pl' does not exist 
    Warning: /Users/leesebastiani/prologfiles/main.pl:10: 
        Goal (directive) failed: user:ensure_loaded(knowledge/groups/*.pl) 
    % helpers.pl compiled 0.00 sec, 24 clauses 
    % processor.pl compiled 0.00 sec, 12 clauses 
    % main.pl compiled 0.01 sec, 227 clauses 
    true. 
    
    ?- ['knowledge/groups/*.pl']. 
    % knowledge/groups/feline.pl compiled 0.00 sec, 2 clauses 
    % knowledge/groups/pet.pl compiled 0.00 sec, 5 clauses 
    true. 
    
    ?- ['main.pl']. 
    ERROR: /Users/leesebastiani/prologfiles/main.pl:10: 
        source_sink `knowledge/groups/*.pl' does not exist 
    Warning: /Users/leesebastiani/prologfiles/main.pl:10: 
        Goal (directive) failed: user:ensure_loaded(knowledge/groups/*.pl) 
    % main.pl compiled 0.00 sec, 1 clauses 
    true. 
    
    ?- 
    

    고마워요!

  • 답변

    0

    "swipl -f main.pl"명령은? 프롬프트의 SWI-Prolog가 아닌 OS 명령 프롬프트에 입력되는 명령입니다.

    명령은 최상위 레벨 명령 인터프리터를 실행하고 Prolog 소스 파일 main.pl을로드합니다.

    +0

    감사합니다. 오류가 존재하지 않는 명령이있어 수동으로 main.pl을로드했습니다. main.pl 코드는 다음과 같습니다. –

    0

    이 경우 "swipl -f main.pl"은 swi-prolog를 시작하고 주 프로그램 파일을로드하는 명령 줄 프롬프트에 입력 할 명령입니다.

    SWI-Prolog를 이미 시작한 경우 파일 ⇒을 통해 APES 배포본의 main.pl 파일을 엽니 다. 메뉴 항목을 연 다음 "시작"을 입력하십시오. (따옴표 제외)를 입력하고 Enter 키를 누릅니다.

    UPD : 나는 :- ensure_loaded('knowledge/groups/*.pl'). 라인에 대해 같은 오류가있어 그냥 *.pl 대신에 정확한 파일 이름을 가진 두 개의 라인을 교체 :

    :- ensure_loaded('knowledge/groups/feline.pl'). 
    :- ensure_loaded('knowledge/groups/pet.pl'). 
    

    하지 않음이이 문제를 해결하는 올바른 방법인지 확인 그래도.

    0

    AMZI 튜토리얼은 오래되었습니다. Prolog에 대한 지식이없는 상태에서 실행하려고하면 고통의 세계처럼 보입니다. 다른 것을 찾을 수 있습니다. 오히려 너무 좋지 않습니다. 훌륭한 자습서입니다. 당신이 전문가 시스템에 새로운 브랜드 경우

    , 나를 프롤로그는 시스템 그 자체에 쉘 전문가가 아닌 클립

    http://clipsrules.sourceforge.net/

    을 제안 할 수 있습니다. 프롤로그는 프로그래밍 언어입니다. 물론 그것은 그러한 쉘을 작성하는 훌륭한 선택이 될 것입니다.

    $ git clone https://github.com/fsteeg/apes.git
    [...]
    $ cd com.quui.apes/src/
    $ swipl -f main.pl
    ?- start.

    내가 GitHub의 버전을 사용하지만, 코드가 동일해야합니다 : 나를 위해

    2

    ,이 (맥 OS 10.8.5에) 작동합니다. SWI-Prolog 버전에 문제가 될 수 있습니까? swipl -f main.pl를 실행할 때 이것이 당신이 원래의 문제에 대한 몇 가지 세부 사항을 제공 할 수있는, 도움이되지 않는 경우

    $ brew install swi-prolog
    [...]
    $ swipl --version
    SWI-Prolog version 6.0.2 for i386-darwin12.5.0

    : 나는 브루 (http://brew.sh/)와 함께 내 설치되어 있습니까?

    +0

    Fabian, 최고입니다! OS 10.7.5 및 Prolog SWI 6.4.1을 실행 중입니다. 다음과 같은 상황이 발생합니다 : [lee-sebastianis-macbook-pro : ~/prologfiles/apes-0.2.0/src] leevebastiani % swipl -f main.pl swipl : 명령을 찾을 수 없습니다. –

    +0

    SWI를 수동으로 시작하는 데 신경 쓰지 않지만 다음과 같은 일이 발생합니다 :? - [ 'main.pl']. %의 engine.pl 컴파일 0.00 초, 64 절 % tokenizer.pl 컴파일 0.00 초, 62 절 % parser.pl 컴파일 0.00 초 % 지식/knowledge.pl 0.00 초 컴파일 32 절 17 절 ERROR/ 경고 : \t 목표 (지시어) 실패 : 사용자 : ensure_loaded (사용자 정의/실패/실패) : 사용자/leesebastiani/prologfiles/apes-0.2.0/src/main.pl : 10 : \t 소스/0.% helpers.pl 컴파일 된 0.00 초, 24 절 % processor.pl 컴파일 된 0.00 초, 12 절 % main.pl 컴파일 된 0.01 초, 227 절 참. –

    +0

    @Lee이 오류는'knowledge/groups /'하위 디렉토리에있는 소스 파일을 언급하기 때문에 수동으로 SWI를로드하는 방법이나 파일에 해당 하위 디렉토리가 표시되지 않는 것으로 생각됩니다. 나는 SWI-Prolog를 Homebrew와 함께 설치하여 명령 행에서 작동하는 설치 (원래 'Command not found.'문제점 수정)를 시도하려고합니다. –