[pypy-svn] r27494 - pypy/dist/pypy/lib/pyontology
ale at codespeak.net
ale at codespeak.net
Sat May 20 11:11:10 CEST 2006
Author: ale
Date: Sat May 20 11:11:08 2006
New Revision: 27494
Modified:
pypy/dist/pypy/lib/pyontology/pyontology.py
Log:
A small bug fix
Modified: pypy/dist/pypy/lib/pyontology/pyontology.py
==============================================================================
--- pypy/dist/pypy/lib/pyontology/pyontology.py (original)
+++ pypy/dist/pypy/lib/pyontology/pyontology.py Sat May 20 11:11:08 2006
@@ -385,6 +385,7 @@
return Solver().solve(rep, verbose)
def consistency(self, verbose=0):
+ self.check_TBoxes()
self.rep = Repository(self.variables.keys(), self.variables, self.constraints)
self.rep.consistency(verbose)
@@ -400,6 +401,7 @@
while lis != rdf_nil:
res.append(list(self.graph.objects(lis, rdf_first))[0])
lis = list(self.graph.objects(lis, rdf_rest))[0]
+ self.variables[avar].setValues(res)
else:
# For testing
avar = self.make_var(List, BNode('anon_%r'%rdf_list))
@@ -420,6 +422,7 @@
if not var in builtin_voc :
# var is not one of the builtin classes
svar = self.make_var(self.variables[avar].__class__, s)
+ self.variables[avar].addValue(s)
else:
# var is a builtin class
cls = builtin_voc[var]
@@ -433,7 +436,7 @@
cls = self.variables[svar]
if hasattr(cls, 'constraint'):
self.constraints.append(cls.constraint)
- self.variables[avar].addValue(svar)
+ self.variables[avar].addValue(s)
def first(self, s, var):
pass
@@ -499,6 +502,7 @@
def oneOf(self, s, var):
var = self.flatten_rdf_list(var)
+ print "*******", var, type(var), self.variables[var]
#avar = self.make_var(List, var)
svar = self.make_var(ClassDomain, s)
res = self.variables[var].getValues()
@@ -586,9 +590,9 @@
cls_name = self.make_var(ClassDomain, cls)
prop = self.variables[svar].property
self.variables[svar].TBox[prop] = {'Cardinality': [( '<', int(var))]}
-# formula = "not isinstance(%s[0], self.variables[%s]) or len(%s[1] < int(%s))" %(prop, cls_name, prop, var)
-# constrain = Expression([prop], formula)
-# self.constraints.append(constrain)
+ formula = "not isinstance(%s[0], self.variables[%s]) or len(%s[1]) < int(%s)" %(prop, cls_name, prop, var)
+ constrain = Expression([prop, cls_name, prop, var], formula)
+ self.constraints.append(constrain)
for cls,vals in self.variables[prop].getValuesPrKey():
if len(vals) < int(var):
More information about the Pypy-commit
mailing list