Question: I've written some Prolog to replace elements in list two with an atom called `empty` if they are contained in list one:

```
replace_build([], _Inv, _Res).

replace_build([A| B], Inv, Res) :-
    replace_build2(A, Inv, Res), replace_build(B, Inv, Res).

replace_build2(_BuildItem, [], _NewInv) :- !.

replace_build2(BuildItem, [BuildItem| T], NewInv) :-
    replace_build2(BuildItem, T, NewInv1),
    append([empty], NewInv1, NewInv).

replace_build2(BuildItem, [H| T], NewInv) :-
    replace_build2(BuildItem, T, NewInv1),
    append([H], NewInv1, NewInv).

```

However, when I run it, I get an unusual anonymous variable (is that the correct terminology?) as per the following example:

```
?- replace_build([item3], [empty, item5, item1, item3, empty], X).
X = [empty, item5, item1, empty, empty|_G467]

```

(Also it resatisfies which I don't want, although hopefully I can work that out!)

Why is the `|_G467` in the resultant list?

Answer: 
There are several ways to achieve this (assuming you're thinking of general config reloading). You can have a daemon thread polling the file for last changed timestamp, and trigger a reload. Or you can check the timestamp on each configuration value lookup, if it doesn't happen to often. But my preferred way would be to expose a "reload configuration" operation either through JMX or a URL that is accessible only from the "inside".
If you are running Solr 4+ and are talking about schema.xml and solrconfig.xml, then you want 'Reload Core', which is in the Web Admin UI under core/collection management. You can also trigger it from a URL.