Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_prolog_xml:prolog_api [2008/06/02 00:49]
miw
pl:miw:miw08_prolog_xml:prolog_api [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ===== API ===== ===== API =====
  
 +Plik API do pobrania tutaj:
 +{{:​pl:​miw:​miw08_prolog_xml:​xml_api.pl|plik xml_api.pl}}
  
-===== Wersja 1 - płaska struktura ===== 
-<code prolog> 
-delete(A, [A|B], B). 
-delete(B, [A|C], [A|D]) :- 
-        delete(B, C, D). 
  
-add(A, B, [A|B]). 
  
  
-make_node(Name,​List) :- +===== Wersja ​główna ​=====
-        add(element(Name,​ [], []), [], List), +
-        X=..List, +
-        assert(X),​ +
-        write(List). +
- +
-make_node(Name,​ Attr, Cont, List) :- +
-        add(element(Name,​ Attr, Cont), [], List), +
-        X=..List, +
-        assert(X),​ +
-        write(List). +
- +
-add_child(Parent,​Child,​Nlist):​- +
- element(Parent,​A,​C),​ +
- retract(element(Parent,​A,​C)),​ +
- add(element(Child,​[],​[]),​C,​L),​ +
- make_node(Parent,​A,​L,​Nlist). +
- +
-add_child(Parent,​Child,​Ch_att,​Ch_cont,​Nlist):​- +
- element(Parent,​A,​C),​ +
- retract(element(Parent,​A,​C)),​ +
- add(element(Child,​Ch_att,​Ch_cont),​C,​L),​ +
- make_node(Parent,​A,​L,​Nlist). +
- +
-make_list(List) :- +
- bagof(A,​element(A,​B,​C),​A),​ +
- L=..A, +
- add(element(L,​B,​C),​[],​List),​ +
- write(List). +
- +
-save :- +
- tell('​wiedza.pl'​),​ +
- listing(element),​ +
- told. +
- +
-prolog2xml(List,​File):​- +
- tell(File),​ +
- open(File,​write,​S),​ +
- xml_write(S,​List,​[]),​ +
- told, +
- close(S). +
- +
----------------------------------- +
- +
-add_child(Parent,​Child,​Nlist):​- +
- element(Parent,​A,​C),​ +
- element(Child,​Chatt,​Chcont),​ +
- retract(element(Parent,​A,​C)),​ +
- retract(element(Child,​Chatt,​Chcont)),​ +
- add(element(Child,​Chatt,​Chcont),​C,​L),​ +
- make_node(Parent,​A,​L,​Nlist). +
- +
-add_child(Parent,​A,​Child,​Chatt,​Nlist):​- +
- element(Parent,​A,​C),​ +
- element(Child,​Chatt,​Chcont),​ +
- retract(element(Parent,​A,​C)),​ +
- retract(element(Child,​Chatt,​Chcont)),​ +
- add(element(Child,​Chatt,​Chcont),​C,​L),​ +
- make_node(Parent,​A,​L,​Nlist). +
-</​code>​ +
- +
- +
- +
- +
- +
- +
- +
-===== Wersja ​=====+
  
  
Linia 306: Linia 235:
  
 </​code>​ </​code>​
 +
  
  
Linia 336: Linia 266:
  
 </​code>​ </​code>​
 +
 +===== Wersja poprzednia - płaska struktura =====
 +<code prolog>
 +delete(A, [A|B], B).
 +delete(B, [A|C], [A|D]) :-
 +        delete(B, C, D).
 +
 +add(A, B, [A|B]).
 +
 +
 +make_node(Name,​List) :-
 +        add(element(Name,​ [], []), [], List),
 +        X=..List,
 +        assert(X),
 +        write(List).
 +
 +make_node(Name,​ Attr, Cont, List) :-
 +        add(element(Name,​ Attr, Cont), [], List),
 +        X=..List,
 +        assert(X),
 +        write(List).
 +
 +add_child(Parent,​Child,​Nlist):​-
 + element(Parent,​A,​C),​
 + retract(element(Parent,​A,​C)),​
 + add(element(Child,​[],​[]),​C,​L),​
 + make_node(Parent,​A,​L,​Nlist).
 +
 +add_child(Parent,​Child,​Ch_att,​Ch_cont,​Nlist):​-
 + element(Parent,​A,​C),​
 + retract(element(Parent,​A,​C)),​
 + add(element(Child,​Ch_att,​Ch_cont),​C,​L),​
 + make_node(Parent,​A,​L,​Nlist).
 +
 +make_list(List) :-
 + bagof(A,​element(A,​B,​C),​A),​
 + L=..A,
 + add(element(L,​B,​C),​[],​List),​
 + write(List).
 +
 +save :-
 + tell('​wiedza.pl'​),​
 + listing(element),​
 + told.
 +
 +prolog2xml(List,​File):​-
 + tell(File),​
 + open(File,​write,​S),​
 + xml_write(S,​List,​[]),​
 + told,
 + close(S).
 +
 +----------------------------------
 +
 +add_child(Parent,​Child,​Nlist):​-
 + element(Parent,​A,​C),​
 + element(Child,​Chatt,​Chcont),​
 + retract(element(Parent,​A,​C)),​
 + retract(element(Child,​Chatt,​Chcont)),​
 + add(element(Child,​Chatt,​Chcont),​C,​L),​
 + make_node(Parent,​A,​L,​Nlist).
 +
 +add_child(Parent,​A,​Child,​Chatt,​Nlist):​-
 + element(Parent,​A,​C),​
 + element(Child,​Chatt,​Chcont),​
 + retract(element(Parent,​A,​C)),​
 + retract(element(Child,​Chatt,​Chcont)),​
 + add(element(Child,​Chatt,​Chcont),​C,​L),​
 + make_node(Parent,​A,​L,​Nlist).
 +</​code>​
 +
 +
 +
 +
 +
pl/miw/miw08_prolog_xml/prolog_api.1212360590.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0