[pypy-svn] r27698 - pypy/dist/pypy/lib/pyontology
ale at codespeak.net
ale at codespeak.net
Fri May 26 11:09:51 CEST 2006
Author: ale
Date: Fri May 26 11:09:50 2006
New Revision: 27698
Modified:
pypy/dist/pypy/lib/pyontology/pyontology.py
Log:
Simplification
Modified: pypy/dist/pypy/lib/pyontology/pyontology.py
==============================================================================
--- pypy/dist/pypy/lib/pyontology/pyontology.py (original)
+++ pypy/dist/pypy/lib/pyontology/pyontology.py Fri May 26 11:09:50 2006
@@ -630,44 +630,30 @@
#---Property restrictions------------------------------------------------------
- def maxCardinality(self, s, var):
- """ Len of finite domain of the property shall be less than or equal to var"""
+ def cardinality_helper(self, s, var, card):
self.resolve_item(s)
- log("%r maxCardinality %r "%(s, var))
+ log("%r %sCardinality %r "%(s, card, var))
svar =self.make_var(Restriction, s)
cls = list(self.graph.subjects(None,s))[0]
self.resolve_item(cls)
cls_name = self.make_var(ClassDomain, cls)
prop = self.variables[svar].property
assert prop
- self.variables[svar].TBox[prop] = {'Cardinality': [( '<', int(var))]}
- self.constraints.append(CardinalityConstraint(prop, cls, var, '<='))
+ comp = {'max': '<', 'min': '>'}.get(card, '=')
+ self.variables[svar].TBox[prop] = {'Cardinality': [( comp, int(var))]}
+ self.constraints.append(CardinalityConstraint(prop, cls, var, comp+'='))
+ def maxCardinality(self, s, var):
+ """ Len of finite domain of the property shall be less than or equal to var"""
+ self.cardinality_helper(s, var, 'max')
+
def minCardinality(self, s, var):
""" Len of finite domain of the property shall be greater than or equal to var"""
- self.resolve_item(s)
- log("%r minCardinality %r "%(s, var))
- svar =self.make_var(Restriction, s)
- cls = list(self.graph.subjects(None,s))[0]
- cls_name = self.make_var(ClassDomain, cls)
- prop = self.variables[svar].property
- assert prop
- self.variables[svar].TBox[prop] = {'Cardinality': [( '>', int(var))]}
-
- self.constraints.append(CardinalityConstraint(prop, cls, var, '>='))
+ self.cardinality_helper(s, var, 'min')
def cardinality(self, s, var):
""" Len of finite domain of the property shall be equal to var"""
- self.resolve_item(s)
- log("%r Cardinality %r "%(s, var))
- svar =self.make_var(Restriction, s)
- cls = list(self.graph.subjects(None,s))[0]
- cls_name = self.make_var(ClassDomain, cls)
- prop = self.variables[svar].property
- assert prop
- self.variables[svar].TBox[prop] = {'Cardinality': [( '=', int(var))]}
-
- self.constraints.append(CardinalityConstraint(prop, cls, var, '=='))
+ self.cardinality_helper(s, var, '')
def hasValue(self, s, var):
self.resolve_item(s)
@@ -729,7 +715,6 @@
constrain = SameasConstraint(s_var, var_var)
self.constraints.append(constrain)
-
def differentFrom(self, s, var):
s_var = self.make_var(Thing, s)
var_var = self.make_var(Thing, var)
More information about the Pypy-commit
mailing list