Closed Demirrr closed 3 weeks ago
If we comment one of the operations, then it works without a problem.
for ac in atomic_concepts:
for op in properties:
# memory[OWLObjectSomeValuesFrom(property=op, filler=ac)] = OWLObjectSomeValuesFrom(property=op, filler=ac)
memory[OWLObjectAllValuesFrom(property=op, filler=ac)] = OWLObjectAllValuesFrom(property=op, filler=ac)
This stems from the fact that the usage of hash does not differ between OWLObjectSomeValuesFrom and OWLObjectAllValuesFrom
def __hash__(self):
return hash((self._filler, self._property))
Solved in #102 by adding the class name into the tuple, e.g.,
def __hash__(self):
return hash(("OWLFacetRestriction",self._facet, self._literal))
..
def __hash__(self):
return hash(("OWLDatatypeRestriction", self._type, self._facet_restrictions))
..
def __hash__(self):
return hash(("OWLDataOneOf",self._values))
..
def __hash__(self):
return hash(("OWLDataHasValue",self._v, self._property))
leads to