XSB support for predicates with same name but different signature
For example, support for the following vocabulary:
vocabulary V {
type T
T(T)
T(T,T)
}
Comments (12)
-
reporter -
I don't understand the explanation. Does it work now? Will it work for a vocabulary with T(T1) T(T2) in it?
-
reporter It will not work for the example you give, since their XSB signature (T/1) is the same. I am filing a new bug report for your case.
-
Why not just solve it by using the full quantified names (namespaces + symbolname + typenames)?
-
- changed status to open
Opened due to previous comments
-
reporter - changed status to resolved
Removed detection of duplicate generation of facts
This would never happen but would filter out fact generation because the _loaded list does not take arity into account.
E.g.: with a type T and predicate T(arg,arg...) both given. The predicate would not be generated
Even when using name() instead of nameNoArity() this leads to problems
E.g. when a predicate T(arg) and function T(arg):arg are given. One of the two would not be generated.
The filter of open symbols that would be already "loaded" is useless to begin with: they are always only generated once. The _loaded list is only useful for detecting which sorts are already generated as ranges (in the getRanges() method).
This fixes issue
#440.→ <<cset cb22c3114301>>
-
reporter Bugfix for predicates with same name + arity but different sorts
For this a fqn_name() procedure is needed in PFSymbol.
This fixes bug
#440completely→ <<cset 3414ccc29192>>
-
reporter Bugfix for predicates with same name + arity but different sorts
For this a fqn_name() procedure is needed in PFSymbol.
This fixes bug
#440completelyAlso added a test for this
→ <<cset a639ef886df4>>
-
reporter Removed detection of duplicate generation of facts
This would never happen but would filter out fact generation because the _loaded list does not take arity into account.
E.g.: with a type T and predicate T(arg,arg...) both given. The predicate would not be generated
Even when using name() instead of nameNoArity() this leads to problems
E.g. when a predicate T(arg) and function T(arg):arg are given. One of the two would not be generated.
The filter of open symbols that would be already "loaded" is useless to begin with: they are always only generated once. The _loaded list is only useful for detecting which sorts are already generated as ranges (in the getRanges() method).
This fixes issue
#440.→ <<cset 483b895767dc>>
-
reporter Bugfix for predicates with same name + arity but different sorts
For this a fqn_name() procedure is needed in PFSymbol.
This fixes bug
#440completelyAlso added a test for this
→ <<cset c542203c969c>>
-
reporter Removed detection of duplicate generation of facts
This would never happen but would filter out fact generation because the _loaded list does not take arity into account.
E.g.: with a type T and predicate T(arg,arg...) both given. The predicate would not be generated
Even when using name() instead of nameNoArity() this leads to problems
E.g. when a predicate T(arg) and function T(arg):arg are given. One of the two would not be generated.
The filter of open symbols that would be already "loaded" is useless to begin with: they are always only generated once. The _loaded list is only useful for detecting which sorts are already generated as ranges (in the getRanges() method).
This fixes issue
#440.→ <<cset 39422e4ad2e6>>
-
reporter Bugfix for predicates with same name + arity but different sorts
For this a fqn_name() procedure is needed in PFSymbol.
This fixes bug
#440completelyAlso added a test for this
→ <<cset f2ffafb44bcd>>
- Log in to comment
Removed detection of duplicate generation of facts
This would never happen but would filter out fact generation because the _loaded list does not take arity into account.
E.g.: with a type T and predicate T(arg,arg...) both given. The predicate would not be generated
Even when using name() instead of nameNoArity() this leads to problems
E.g. when a predicate T(arg) and function T(arg):arg are given. One of the two would not be generated.
The filter of open symbols that would be already "loaded" is useless to begin with: they are always only generated once. The _loaded list is only useful for detecting which sorts are already generated as ranges (in the getRanges() method).
This fixes issue
#440.→ <<cset cc7002f3619a>>