Changeset 92
- Timestamp:
- 02/04/08 23:12:05 (4 years ago)
- Location:
- rdfalchemy/trunk/rdfalchemy
- Files:
-
- 4 modified
-
orm.py (modified) (3 diffs)
-
rdfalchemy.py (modified) (1 diff)
-
samples/foaf.py (modified) (2 diffs)
-
sesame2.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
rdfalchemy/trunk/rdfalchemy/orm.py
r85 r92 8 8 """ 9 9 10 from rdfalchemy import rdfObject, rdflibAbstract 10 from rdfalchemy import rdfSubject 11 from descriptors import rdflibAbstract 11 12 12 13 import logging 13 14 log=logging.getLogger('rdfAlchemy') 14 15 15 def allsub(cl ):16 def allsub(cl, beenthere = set([])): 16 17 "return all subclasses of the given class" 17 sub = set(cl.__subclasses__()) 18 for onesub in cl.__subclasses__(): 19 sub |= allsub(onesub) 18 sub = set(cl.__subclasses__()) | beenthere 19 newsubs = set(cl.__subclasses__()) - beenthere 20 for onesub in newsubs: 21 sub |= allsub(onesub, sub) 20 22 return sub 21 23 … … 23 25 def mapper(*classes): 24 26 """Map the classes given to allow descriptors with ranges to the proper Class of that type 25 default if no args is to map all subclasses(recursivly) of rdf Object27 default if no args is to map all subclasses(recursivly) of rdfSubject 26 28 27 29 preforms the mapping … … 29 31 returns a dict of {rdf_type: mapped_class} for further processing""" 30 32 if not classes: 31 classes = allsub(rdf Object)33 classes = allsub(rdfSubject) 32 34 class_dict = dict([(str(cl.rdf_type), cl) for cl in classes]) 33 35 for cl in classes: # for each class -
rdfalchemy/trunk/rdfalchemy/rdfalchemy.py
r91 r92 251 251 #finally if the object in the triple was a bnode 252 252 #cascade delete the thing it referenced 253 if isinstance(o,BNode): 253 # ?? FIXME Do we really want to cascade if it's an rdfSubject?? 254 if isinstance(o,BNode) or isinstance(o,rdfSubject) and o.node_type == 'bnode': 254 255 rdfSubject(o)._remove(db=self.db,cascade='bnode') 255 256 -
rdfalchemy/trunk/rdfalchemy/samples/foaf.py
r91 r92 18 18 openid = rdflibSingle(FOAF.openid) 19 19 20 20 21 class Person(Agent): 21 22 rdf_type = FOAF.Person … … 24 25 givenname = rdflibSingle(FOAF.givenname,'first') 25 26 surname = rdflibSingle(FOAF.surname,'last') 26 -
rdfalchemy/trunk/rdfalchemy/sesame2.py
r71 r92 1 1 from sparql import SPARQLGraph 2 2 3 from rdflib import Graph,Literal, BNode, Namespace, URIRef3 from rdflib import Literal, BNode, Namespace, URIRef 4 4 from rdflib.syntax.parsers.ntriples import NTriplesParser 5 5
