[pypy-svn] r21815 - in pypy/dist/pypy/lib/pyontology: . test
ale at codespeak.net
ale at codespeak.net
Sun Jan 8 14:58:22 CET 2006
Author: ale
Date: Sun Jan 8 14:58:22 2006
New Revision: 21815
Modified:
pypy/dist/pypy/lib/pyontology/pyontology.py
pypy/dist/pypy/lib/pyontology/test/test_ontology.py
Log:
Added a test for oneof with a DataRange as object
Modified: pypy/dist/pypy/lib/pyontology/pyontology.py
==============================================================================
--- pypy/dist/pypy/lib/pyontology/pyontology.py (original)
+++ pypy/dist/pypy/lib/pyontology/pyontology.py Sun Jan 8 14:58:22 2006
@@ -233,7 +233,7 @@
return Solver().solve(rep, verbose)
def consistency(self, verbose=0):
- self.rep = Repository(self.variables.keys(), self.variables, self.constraints[:])
+ self.rep = Repository(self.variables.keys(), self.variables, self.constraints)
self.rep.consistency(verbose)
def get_list(self, subject):
@@ -267,11 +267,11 @@
return var
if not var in self.variables.keys():
self.variables[var] = cls(var)
- elif type(self.variables[var]) != cls:
- olddom = self.variables[var]
- newdom = cls(var)
- newdom.setValues(olddom.getValues())
- self.variables[var] = newdom
+## elif type(self.variables[var]) != cls:
+## olddom = self.variables[var]
+## newdom = cls(var)
+## newdom.setValues(olddom.getValues())
+## self.variables[var] = newdom
return var
def find_prop(self, s):
@@ -374,7 +374,7 @@
def oneOf(self, s, var):
avar = self.make_var(List, var)
- svar = self.make_var(None, s)
+ svar = self.make_var(ClassDomain, s)
cons = OneofPropertyConstraint(svar, avar)
self.constraints.append(cons)
@@ -430,15 +430,15 @@
def maxCardinality(self, s, var):
""" Len of finite domain of the property shall be less than or equal to var"""
svar =self.make_var(Restriction, s)
- avar =self.make_var(None, var)
- constrain = MaxCardinality(avar, cls, var)
+ #avar =self.make_var(None, var)
+ constrain = MaxCardinality(svar, None, int(var))
self.constraints.append(constrain)
def minCardinality(self, s, var):
""" Len of finite domain of the property shall be greater than or equal to var"""
avar = self.find_property(s)
cls =self.make_var(None, self.find_cls(s))
- constrain = MinCardinality(avar, cls, int(var))
+ constrain = MinCardinality(avar, None, int(var))
self.constraints.append(constrain)
def cardinality(self, s, var):
@@ -446,7 +446,7 @@
avar = self.find_property(s)
cls =self.make_var(None, self.find_cls(s))
# Check if var is an int, else find the int buried in the structure
- constrain = Cardinality(avar, cls, int(var))
+ constrain = Cardinality(avar, None, int(var))
self.constraints.append(constrain)
def differentFrom(self, s, var):
@@ -600,6 +600,9 @@
class RangeConstraint(SubClassConstraint):
+ def estimateCost(self, domains):
+ return 200
+
def narrow(self, domains):
propdom = domains[self.variable]
rangedom = domains[self.object]
@@ -798,5 +801,6 @@
else:
domains[self.variable].setValues(val)
return 1
+
class HasvalueConstraint:
pass
Modified: pypy/dist/pypy/lib/pyontology/test/test_ontology.py
==============================================================================
--- pypy/dist/pypy/lib/pyontology/test/test_ontology.py (original)
+++ pypy/dist/pypy/lib/pyontology/test/test_ontology.py Sun Jan 8 14:58:22 2006
@@ -374,4 +374,21 @@
O.oneOf(restrict, own)
O.type(restrict, namespaces['owl']+'#Class')
O.consistency(4)
+ assert len(O.rep._domains[restrict].getValues()) == 3
+
+def test_oneofdatarange():
+ O = Ontology()
+ restrict = BNode('anon')
+ own = URIRef('favlist')
+ obj = URIRef(namespaces['rdf']+'#List')
+ O.type(own, obj)
+ O.first(own, URIRef('first'))
+ O.rest(own, URIRef('1'))
+ O.first( URIRef('1'), URIRef('second'))
+ O.rest( URIRef('1'), URIRef('2'))
+ O.first( URIRef('2'), URIRef('third'))
+ O.rest( URIRef('2'), URIRef(namespaces['rdf']+'#nil'))
+ O.oneOf(restrict, own)
+ O.type(restrict, namespaces['owl']+'#DataRange')
+ O.consistency(4)
assert len(O.rep._domains[restrict].getValues()) == 3
\ No newline at end of file
More information about the Pypy-commit
mailing list