home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / python-support / python-rdflib / rdflib / sparql / bison / Resource.py < prev    next >
Encoding:
Python Source  |  2007-04-04  |  1.6 KB  |  53 lines

  1. from rdflib import URIRef, BNode
  2. from Util import ListRedirect
  3. from sets import Set
  4.  
  5. class RDFTerm(object):
  6.     """
  7.     Common class for RDF terms
  8.     """
  9.  
  10. class Resource(RDFTerm):
  11.     """
  12.     Represents a sigle resource in a triple pattern.  It consists of an identifier
  13.     (URIReff or BNode) and a list of rdflib.sparql.bison.Triples.PropertyValue instances
  14.     """
  15.     def __init__(self,identifier=None,propertyValueList=None):
  16.         self.identifier = identifier is not None and identifier or BNode()
  17.         self.propVals = propertyValueList is not None and propertyValueList or []
  18.  
  19.     def __repr__(self):
  20.         resId = isinstance(self.identifier,BNode) and '_:'+self.identifier or self.identifier
  21.         #print type(self.identifier)
  22.         return "%s%s"%(resId,self.propVals and ' %s'%self.propVals or '')
  23.  
  24.     def extractPatterns(self) :
  25.         for prop,objs in self.propVals:
  26.             for obj in objs:
  27.                 yield (self.identifier,prop,obj)
  28.  
  29. class TwiceReferencedBlankNode(RDFTerm):
  30.     """
  31.     Represents BNode in triple patterns in this form:
  32.     [ :prop1 :val1 ] :prop2 :val2
  33.     """
  34.     def __init__(self,props1,props2):
  35.         self.identifier = BNode()
  36.         self.propVals = list(Set(props1+props2))
  37.  
  38. class ParsedCollection(ListRedirect,RDFTerm):
  39.     """
  40.     An RDF Collection
  41.     """
  42.     reducable = False
  43.     def __init__(self,graphNodeList):
  44.         self.identifier = BNode()
  45.         self.propVals = []
  46.         self._list = graphNodeList
  47.         
  48.     def setPropertyValueList(self,propertyValueList):
  49.         self.propVals = propertyValueList
  50.         
  51.     def __repr__(self):
  52.         return "<RDF Collection: %s>"%self._list
  53.