Last active
March 13, 2022 19:24
-
-
Save inebritov/2a6f1208112468d89934 to your computer and use it in GitHub Desktop.
Revisions
-
inebritov revised this gist
Mar 13, 2022 . No changes.There are no files selected for viewing
-
inebritov revised this gist
May 19, 2015 . 1 changed file with 98 additions and 98 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,82 +8,82 @@ predicates request. clauses positive(''). positive('y'). positive('Y'). positive('yes'). positive('Yes'). positive('YES'). negative('n'). negative('N'). negative('no'). negative('No'). negative('NO'). request:- clearwindow, write('This expert system helps you to determine '), write('status code of your HTTP request. Please, '), write('answer the following questions[Y/n]:'),nl, rule(b12). rule(b12):-write('Service available?'),nl,readln(X),rule(b12,X). rule(b11):-write('URI too long?'),nl,readln(X),rule(b11,X). rule(b10):-write('Malformed?'),nl,readln(X),rule(b10,X). rule(b9):-write('Authorized?'),nl,readln(X),rule(b9,X). rule(b8):-write('Forbidden?'),nl,readln(X),rule(b8,X). rule(b7):-write('Unknown or unsupported Content-* header?'),nl,readln(X),rule(b7,X). rule(b6):-write('Unknown Content-Type?'),nl,readln(X),rule(b6,X). rule(b5):-write('Request entity too large?'),nl,readln(X),rule(b5,X). rule(b4):-write('OPTIONS?'),nl,readln(X),rule(b4,X). rule(b2):-write('DELETE,GET,HEAD,PUT,POST?'),nl,readln(X),rule(b2,X). rule(b1):-write('Known method?'),nl,readln(X),rule(b1,X). rule(c2):-write('Is method allow on this resource?'),nl,readln(X),rule(c2,X). rule(c3):-write('Accept exists?'),nl,readln(X),rule(c3,X). rule(c4):-write('Acceptable media type available?'),nl,readln(X),rule(c4,X). rule(d4):-write('Accept-Language exists?'),nl,readln(X),rule(d4,X). rule(d5):-write('Acceptable language exist?'),nl,readln(X),rule(d5,X). rule(e5):-write('Accept-Charset exist?'),nl,readln(X),rule(e5,X). rule(e6):-write('Acceptable charset available?'),nl,readln(X),rule(e6,X). rule(f6):-write('Accept-Encoding exists?'),nl,readln(X),rule(f6,X). rule(f7):-write('Acceptable encoding available?'),nl,readln(X),rule(f7,X). rule(g7):-write('Resource exists?'),nl,readln(X),rule(g7,X). rule(g8):-write('If-Match exists?'),nl,readln(X),rule(g8,X). rule(g9):-write('If-Match: * exists?'),nl,readln(X),rule(g9,X). rule(g11):-write('Etag in If-Match?'),nl,readln(X),rule(g11,X). rule(h10):-write('If-Unmodified-Since exists?'),nl,readln(X),rule(h10,X). rule(h11):-write('If-Unmodified-Since is valid date?'),nl,readln(X),rule(h11,X). rule(h12):-write('Last-Modified > If-Unmodified-Since?'),nl,readln(X),rule(h12,X). rule(i12):-write('If-None-Match exists?'),nl,readln(X),rule(i12,X). rule(i13):-write('If-None-Match: * exists?'),nl,readln(X),rule(i13,X). rule(j18):-write('GET/HEAD?'),nl,readln(X),rule(j18,X). rule(k13):-write('Etag in If-None-Match?'),nl,readln(X),rule(k13,X). rule(l13):-write('If-Modified-Since exists?'),nl,readln(X),rule(l13,X). rule(l14):-write('If-Modified-Since is valid date?'),nl,readln(X),rule(l14,X). rule(l15):-write('If-Modified-Since > Now?'),nl,readln(X),rule(l15,X). rule(l17):-write('Last-Modified > If-Modified-Since?'),nl,readln(X),rule(l17,X). rule(m16):-write('DELETE?'),nl,readln(X),rule(m16,X). rule(m20):-write('Delete enacted?'),nl,readln(X),rule(m20,X). rule(o20):-write('Response includes an entity?'),nl,readln(X),rule(o20,X). rule(o18):-write('Multiple representations?'),nl,readln(X),rule(o18,X). rule(n16):-write('POST?'),nl,readln(X),rule(n16,X). rule(n11):-write('Redirect?'),nl,readln(X),rule(n11,X). rule(o16):-write('PUT?'),nl,readln(X),rule(o16,X). rule(o14):-write('Conflict?'),nl,readln(X),rule(o14,X). rule(p11):-write('New resource?'),nl,readln(X),rule(p11,X). rule(h7):-write('If-None-Match: * exists?'),nl,readln(X),rule(h7,X). rule(i7):-write('PUT?'),nl,readln(X),rule(i7,X). rule(i4):-write('Server desires that the request be applied to a different URI?'),nl,readln(X),rule(i4,X). rule(p3):-write('Conflict?'),nl,readln(X),rule(p3,X). rule(k7):-write('Resource previously existed?'),nl,readln(X),rule(k7,X). rule(l7):-write('POST?'),nl,readln(X),rule(l7,X). rule(m7):-write('Server permits POST to missing resource?'),nl,readln(X),rule(m7,X). rule(k5):-write('Resource moved permanently?'),nl,readln(X),rule(k5,X). rule(l5):-write('Resource moved temporarily?'),nl,readln(X),rule(l5,X). rule(m5):-write('POST?'),nl,readln(X),rule(m5,X). rule(n5):-write('Server permits POST to missing resource?'),nl,readln(X),rule(n5,X). rule(b12,X):-positive(X),rule(b11). @@ -252,34 +252,34 @@ clauses rule(n5,X):-negative(X),status(410). status(Code):-write(Code),write(' '),writeStatusMessage(Code). writeStatusMessage(200):-write('OK'). writeStatusMessage(201):-write('Created'). writeStatusMessage(202):-write('Accepted'). writeStatusMessage(204):-write('No Content'). writeStatusMessage(300):-write('Multiple Choices'). writeStatusMessage(301):-write('Moved Permanently'). writeStatusMessage(303):-write('See Other'). writeStatusMessage(304):-write('Not Modified'). writeStatusMessage(307):-write('Moved Temporarily'). writeStatusMessage(400):-write('Bad Request'). writeStatusMessage(401):-write('Unauthorized'). writeStatusMessage(403):-write('Forbidden'). writeStatusMessage(404):-write('Not Found'). writeStatusMessage(405):-write('Method Not Allowed'). writeStatusMessage(406):-write('Not Acceptable'). writeStatusMessage(409):-write('Conflict'). writeStatusMessage(410):-write('Gone'). writeStatusMessage(412):-write('Precondition Failed'). writeStatusMessage(413):-write('Request Entity Too Large'). writeStatusMessage(414):-write('Request URI Too Long'). writeStatusMessage(415):-write('Unsupported Media Type'). writeStatusMessage(501):-write('Not Implemented'). writeStatusMessage(503):-write('Service Unavailable'). goal -
inebritov renamed this gist
May 19, 2015 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
inebritov created this gist
May 14, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,286 @@ predicates writeStatusMessage(integer). status(integer). positive(symbol). negative(symbol). rule(symbol,symbol). rule(symbol). request. clauses positive(""). positive("y"). positive("Y"). positive("yes"). positive("Yes"). positive("YES"). negative("n"). negative("N"). negative("no"). negative("No"). negative("NO"). request:- clearwindow, write("This expert system helps you to determine "), write("status code of your HTTP request. Please, "), write("answer the following questions[Y/n]:"),nl, rule(b12). rule(b12):-write("Service available?"),nl,readln(X),rule(b12,X). rule(b11):-write("URI too long?"),nl,readln(X),rule(b11,X). rule(b10):-write("Malformed?"),nl,readln(X),rule(b10,X). rule(b9):-write("Authorized?"),nl,readln(X),rule(b9,X). rule(b8):-write("Forbidden?"),nl,readln(X),rule(b8,X). rule(b7):-write("Unknown or unsupported Content-* header?"),nl,readln(X),rule(b7,X). rule(b6):-write("Unknown Content-Type?"),nl,readln(X),rule(b6,X). rule(b5):-write("Request entity too large?"),nl,readln(X),rule(b5,X). rule(b4):-write("OPTIONS?"),nl,readln(X),rule(b4,X). rule(b2):-write("DELETE,GET,HEAD,PUT,POST?"),nl,readln(X),rule(b2,X). rule(b1):-write("Known method?"),nl,readln(X),rule(b1,X). rule(c2):-write("Is method allow on this resource?"),nl,readln(X),rule(c2,X). rule(c3):-write("Accept exists?"),nl,readln(X),rule(c3,X). rule(c4):-write("Acceptable media type available?"),nl,readln(X),rule(c4,X). rule(d4):-write("Accept-Language exists?"),nl,readln(X),rule(d4,X). rule(d5):-write("Acceptable language exist?"),nl,readln(X),rule(d5,X). rule(e5):-write("Accept-Charset exist?"),nl,readln(X),rule(e5,X). rule(e6):-write("Acceptable charset available?"),nl,readln(X),rule(e6,X). rule(f6):-write("Accept-Encoding exists?"),nl,readln(X),rule(f6,X). rule(f7):-write("Acceptable encoding available?"),nl,readln(X),rule(f7,X). rule(g7):-write("Resource exists?"),nl,readln(X),rule(g7,X). rule(g8):-write("If-Match exists?"),nl,readln(X),rule(g8,X). rule(g9):-write("If-Match: * exists?"),nl,readln(X),rule(g9,X). rule(g11):-write("Etag in If-Match?"),nl,readln(X),rule(g11,X). rule(h10):-write("If-Unmodified-Since exists?"),nl,readln(X),rule(h10,X). rule(h11):-write("If-Unmodified-Since is valid date?"),nl,readln(X),rule(h11,X). rule(h12):-write("Last-Modified > If-Unmodified-Since?"),nl,readln(X),rule(h12,X). rule(i12):-write("If-None-Match exists?"),nl,readln(X),rule(i12,X). rule(i13):-write("If-None-Match: * exists?"),nl,readln(X),rule(i13,X). rule(j18):-write("GET/HEAD?"),nl,readln(X),rule(j18,X). rule(k13):-write("Etag in If-None-Match?"),nl,readln(X),rule(k13,X). rule(l13):-write("If-Modified-Since exists?"),nl,readln(X),rule(l13,X). rule(l14):-write("If-Modified-Since is valid date?"),nl,readln(X),rule(l14,X). rule(l15):-write("If-Modified-Since > Now?"),nl,readln(X),rule(l15,X). rule(l17):-write("Last-Modified > If-Modified-Since?"),nl,readln(X),rule(l17,X). rule(m16):-write("DELETE?"),nl,readln(X),rule(m16,X). rule(m20):-write("Delete enacted?"),nl,readln(X),rule(m20,X). rule(o20):-write("Response includes an entity?"),nl,readln(X),rule(o20,X). rule(o18):-write("Multiple representations?"),nl,readln(X),rule(o18,X). rule(n16):-write("POST?"),nl,readln(X),rule(n16,X). rule(n11):-write("Redirect?"),nl,readln(X),rule(n11,X). rule(o16):-write("PUT?"),nl,readln(X),rule(o16,X). rule(o14):-write("Conflict?"),nl,readln(X),rule(o14,X). rule(p11):-write("New resource?"),nl,readln(X),rule(p11,X). rule(h7):-write("If-None-Match: * exists?"),nl,readln(X),rule(h7,X). rule(i7):-write("PUT?"),nl,readln(X),rule(i7,X). rule(i4):-write("Server desires that the request be applied to a different URI?"),nl,readln(X),rule(i4,X). rule(p3):-write("Conflict?"),nl,readln(X),rule(p3,X). rule(k7):-write("Resource previously existed?"),nl,readln(X),rule(k7,X). rule(l7):-write("POST?"),nl,readln(X),rule(l7,X). rule(m7):-write("Server permits POST to missing resource?"),nl,readln(X),rule(m7,X). rule(k5):-write("Resource moved permanently?"),nl,readln(X),rule(k5,X). rule(l5):-write("Resource moved temporarily?"),nl,readln(X),rule(l5,X). rule(m5):-write("POST?"),nl,readln(X),rule(m5,X). rule(n5):-write("Server permits POST to missing resource?"),nl,readln(X),rule(n5,X). rule(b12,X):-positive(X),rule(b11). rule(b12,X):-negative(X),status(503). rule(b11,X):-positive(X),status(414). rule(b11,X):-negative(X),rule(b10). rule(b10,X):-positive(X),status(400). rule(b10,X):-negative(X),rule(b9). rule(b9,X):-positive(X),rule(b8). rule(b9,X):-negative(X),status(401). rule(b8,X):-positive(X),status(403). rule(b8,X):-negative(X),rule(b7). rule(b7,X):-positive(X),status(501). rule(b7,X):-negative(X),rule(b6). rule(b6,X):-positive(X),status(415). rule(b6,X):-negative(X),rule(b5). rule(b5,X):-positive(X),status(413). rule(b5,X):-negative(X),rule(b4). rule(b4,X):-positive(X),status(200). rule(b4,X):-negative(X),rule(b2). rule(b2,X):-positive(X),rule(c2). rule(b2,X):-negative(X),rule(b1). rule(b1,X):-positive(X),status(405). rule(b1,X):-negative(X),status(501). rule(c2,X):-positive(X),rule(c3). rule(c2,X):-negative(X),status(405). rule(c3,X):-positive(X),rule(c4). rule(c3,X):-negative(X),rule(d4). rule(c4,X):-positive(X),rule(d4). rule(c4,X):-negative(X),status(406). rule(d4,X):-positive(X),rule(d5). rule(d4,X):-negative(X),rule(e5). rule(d5,X):-positive(X),rule(e5). rule(d5,X):-negative(X),status(406). rule(e5,X):-positive(X),rule(e6). rule(e5,X):-negative(X),rule(f6). rule(e6,X):-positive(X),rule(f6). rule(e6,X):-negative(X),status(406). rule(f6,X):-positive(X),rule(f7). rule(f6,X):-negative(X),rule(g7). rule(f7,X):-positive(X),rule(g7). rule(f7,X):-negative(X),status(406). rule(g7,X):-positive(X),rule(h7). rule(g7,X):-negative(X),rule(g8). rule(g8,X):-positive(X),rule(g9). rule(g8,X):-negative(X),rule(h10). rule(g9,X):-positive(X),rule(h10). rule(g9,X):-negative(X),rule(g11). rule(g11,X):-positive(X),rule(h10). rule(g11,X):-negative(X),status(412). rule(h10,X):-positive(X),rule(h11). rule(h10,X):-negative(X),rule(i12). rule(h11,X):-positive(X),rule(h12). rule(h11,X):-negative(X),rule(i12). rule(h12,X):-positive(X),status(412). rule(h12,X):-negative(X),rule(i12). rule(i12,X):-positive(X),rule(i13). rule(i12,X):-negative(X),rule(l13). rule(i13,X):-positive(X),rule(j18). rule(i13,X):-negative(X),rule(k13). rule(j18,X):-positive(X),status(304). rule(j18,X):-negative(X),status(412). rule(k13,X):-positive(X),rule(j18). rule(k13,X):-negative(X),rule(l13). rule(l13,X):-positive(X),rule(l14). rule(l13,X):-negative(X),rule(m16). rule(l14,X):-positive(X),rule(l15). rule(l14,X):-negative(X),rule(m16). rule(l15,X):-positive(X),rule(m16). rule(l15,X):-negative(X),rule(l17). rule(l17,X):-positive(X),rule(m16). rule(l17,X):-negative(X),status(304). rule(m16,X):-positive(X),rule(m20). rule(m16,X):-negative(X),rule(n16). rule(m20,X):-positive(X),rule(o20). rule(m20,X):-negative(X),status(202). rule(o20,X):-positive(X),rule(o18). rule(o20,X):-negative(X),status(204). rule(o18,X):-positive(X),status(300). rule(o18,X):-negative(X),status(200). rule(n16,X):-positive(X),rule(n11). rule(n16,X):-negative(X),rule(o16). rule(n11,X):-positive(X),status(303). rule(n11,X):-negative(X),rule(p11). rule(o16,X):-positive(X),rule(o14). rule(o16,X):-negative(X),rule(o18). rule(o14,X):-positive(X),status(409). rule(o14,X):-negative(X),rule(p11). rule(p11,X):-positive(X),status(201). rule(p11,X):-negative(X),rule(o20). rule(h7,X):-positive(X),status(412). rule(h7,X):-negative(X),rule(i7). rule(i7,X):-positive(X),rule(i4). rule(i7,X):-negative(X),rule(k7). rule(i4,X):-positive(X),status(301). rule(i4,X):-negative(X),rule(p3). rule(p3,X):-positive(X),status(409). rule(p3,X):-negative(X),rule(p11). rule(k7,X):-positive(X),rule(k5). rule(k7,X):-negative(X),rule(l7). rule(l7,X):-positive(X),rule(m7). rule(l7,X):-negative(X),status(404). rule(m7,X):-positive(X),rule(n11). rule(m7,X):-negative(X),status(404). rule(k5,X):-positive(X),status(301). rule(k5,X):-negative(X),rule(l5). rule(l5,X):-positive(X),status(307). rule(l5,X):-negative(X),rule(m5). rule(m5,X):-positive(X),rule(n5). rule(m5,X):-negative(X),status(410). rule(n5,X):-positive(X),rule(n11). rule(n5,X):-negative(X),status(410). status(Code):-write(Code),write(" "),writeStatusMessage(Code). writeStatusMessage(200):-write("OK"). writeStatusMessage(201):-write("Created"). writeStatusMessage(202):-write("Accepted"). writeStatusMessage(204):-write("No Content"). writeStatusMessage(300):-write("Multiple Choices"). writeStatusMessage(301):-write("Moved Permanently"). writeStatusMessage(303):-write("See Other"). writeStatusMessage(304):-write("Not Modified"). writeStatusMessage(307):-write("Moved Temporarily"). writeStatusMessage(400):-write("Bad Request"). writeStatusMessage(401):-write("Unauthorized"). writeStatusMessage(403):-write("Forbidden"). writeStatusMessage(404):-write("Not Found"). writeStatusMessage(405):-write("Method Not Allowed"). writeStatusMessage(406):-write("Not Acceptable"). writeStatusMessage(409):-write("Conflict"). writeStatusMessage(410):-write("Gone"). writeStatusMessage(412):-write("Precondition Failed"). writeStatusMessage(413):-write("Request Entity Too Large"). writeStatusMessage(414):-write("Request URI Too Long"). writeStatusMessage(415):-write("Unsupported Media Type"). writeStatusMessage(501):-write("Not Implemented"). writeStatusMessage(503):-write("Service Unavailable"). goal request.