Hey Nouf,
1 - Closed predicates follow the closed world assumption and Open predicates follow the open-world assumption?
Yes.
But remember that under non-lazy inference, atoms from open predicates must be fully specified in data files.
2 - in the PSL program, we only define the Closed predicates set?
PSL must know about all predicates.
So if you tell PSL about the closed predicates, then it also knows about the open predicates.
Of course, this is only done in the Java/Groovy interface.
In the CLI/Python all predicates are defined as open/closed.
-eriq