I may be misunderstanding something, here, but it's not loading either way.
Person[|
child=>Person
|].
Morticia:Person[
child->{Pugsley,Wednesday}
].
Gomez:Person[
child->{Pugsley,Wednesday}
].
Wednesday:Person.
Pugsley:Person.
@!{Siblings_Share_Parents[
source->'common sense',
description->"two people are siblings if all of the parents of the first person are also parents of the second person"^^\string]}
?X[sibling->?Y] :-
?X:Person,
?Y:Person,
forall(?parents)^(?parents:Person[child->?X] ~~> ?parents[child->?Y]).
and then I load that into Flora-2, and run the following commands
\logforest('family_log').
Wednesday[sibling->Pugsley].
\nologforest.
It creates a file called family_log. If I rename it to family_log.flr and attempt to load it using [family_log]., I get the following errors.
flora2 ?- ['family_log.flr'].
++Warning[Flora-2]> Errors found: discarding the rest of the file
++Error[Flora-2]> [family_log.flr] <Composer> near line(35)/char(44) `@' and near line(35)/char(70) `@'
operators around this point cannot be meaningfully composed
++Error[Flora-2]> [family_log.flr] <Composer> near line(36)/char(90) `@' and near line(36)/char(116) `@'
operators around this point cannot be meaningfully composed
++Error[Flora-2]> [family_log.flr] <Composer> near line(40)/char(80) `@' and near line(40)/char(106) `@'
operators around this point cannot be meaningfully composed
++Error[Flora-2]> [family_log.flr] <Composer> near line(44)/char(163) `@' and near line(44)/char(189) `@'
operators around this point cannot be meaningfully composed
++Error[Flora-2]> [family_log.flr] <Parser> near line(33)/char(196) `@'
term@module in arguments in rule heads & facts is illegal unless explicitly reified
++Error[Flora-2]> [family_log.flr] <Parser> near line(34)/char(201) `@'
term@module in arguments in rule heads & facts is illegal unless explicitly reified
++Error[Flora-2]> [family_log.flr] <Parser> near line(45)/char(173) `@'
term@module in arguments in rule heads & facts is illegal unless explicitly reified
++7 errors
++compilation aborted
Times (in seconds): elapsed = 0.444; pure CPU = 0.141
No
Which I take it is the expected behaviour. But if I rename to family_log.P, and try to load it again with [family_log]., I get the following. For context, the first line of the family_log file is 'error(2)[goal->null].' So loading it as a prolog module seems to be failling on the first line.
++Abort[Flora-2]> syntax_error(_h0):error ( 2 ) <--- HERE? ************
++ [ goal -> null ]
Forward Continuation...
... machine:xsb_backtrace/1 From C:/Program Files/Flora-2/XSB/syslib/machine.xwam
... xsb_read:iso_read_syntax_error/3 From C:/Program Files/Flora-2/XSB/syslib/xsb_read.xwam
... parse:my_read/2 From C:/Program Files/Flora-2/XSB/cmplib/parse.xwam
... parse:parse_clauses/2 From C:/Program Files/Flora-2/XSB/cmplib/parse.xwam
... parse:parse1/3 From C:/Program Files/Flora-2/XSB/cmplib/parse.xwam
... parse:parse/4 From C:/Program Files/Flora-2/XSB/cmplib/parse.xwam
... standard:call/1 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... consult:compile_f/6 From C:/Program Files/Flora-2/XSB/syslib/consult.xwam
... consult:reconsult0/3 From C:/Program Files/Flora-2/XSB/syslib/consult.xwam
... consult:consult/1 From C:/Program Files/Flora-2/XSB/syslib/consult.xwam
... flora_load_file/4 From C:\Program Files\Flora-2\flora2\syslib\flrload.xwam
... standard:call/1 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:catch/3 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:call_cleanup/2 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:call/1 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:catch/3 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:call/1 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:catch/3 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... flora_process_shell_command/1 From C:\Program Files\Flora-2\flora2\flrshell.xwam
... standard:call/1 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... x_interp:_$call/1 From C:/Program Files/Flora-2/XSB/syslib/x_interp.xwam
... x_interp:call_query/1 From C:/Program Files/Flora-2/XSB/syslib/x_interp.xwam
... standard:call/1 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:catch/3 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... x_interp:interpreter/0 From C:/Program Files/Flora-2/XSB/syslib/x_interp.xwam
... loader:ll_code_call/3 From C:/Program Files/Flora-2/XSB/syslib/loader.xwam
... loader:load_object_file/2 From C:/Program Files/Flora-2/XSB/syslib/loader.xwam
... standard:call/1 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
... standard:catch/3 From C:/Program Files/Flora-2/XSB/syslib/standard.xwam
Any further help would be appreciated.