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) |
===== 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 2 ===== | |
| |
| |
| |
</code> | </code> |
| |
| |
| |
| |
</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> |
| |
| |
| |
| |
| |