home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / python-support / python2.6 / rdflib / syntax / serializers / N3Serializer.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  3.6 KB  |  89 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from rdflib.syntax.serializers.TurtleSerializer import TurtleSerializer, SUBJECT, VERB, OBJECT
  5. from rdflib.Graph import Graph
  6.  
  7. class N3Serializer(TurtleSerializer):
  8.     short_name = 'n3'
  9.     
  10.     def __init__(self, store, parent = None):
  11.         super(N3Serializer, self).__init__(store)
  12.         self.parent = parent
  13.  
  14.     
  15.     def reset(self):
  16.         super(N3Serializer, self).reset()
  17.         self._stores = { }
  18.  
  19.     
  20.     def getQName(self, uri):
  21.         qname = None
  22.         if self.parent is not None:
  23.             qname = self.parent.getQName(uri)
  24.         
  25.         if qname is None:
  26.             qname = super(N3Serializer, self).getQName(uri)
  27.         
  28.         return qname
  29.  
  30.     
  31.     def indent(self, modifier = 0):
  32.         indent = super(N3Serializer, self).indent(modifier)
  33.         if self.parent is not None:
  34.             indent += self.parent.indent(modifier)
  35.         
  36.         return indent
  37.  
  38.     
  39.     def p_clause(self, node, ignore = SUBJECT):
  40.         if isinstance(node, Graph):
  41.             self.subjectDone(node)
  42.             self.write(' {')
  43.             self.depth += 1
  44.             serializer = N3Serializer(node, parent = self)
  45.             serializer.serialize(self.stream)
  46.             self.depth -= 1
  47.             self.write('\n' + self.indent() + ' }')
  48.             return True
  49.         return False
  50.  
  51.     
  52.     def s_clause(self, subject):
  53.         if isinstance(subject, Graph):
  54.             self.write('\n' + self.indent())
  55.             self.p_clause(subject, SUBJECT)
  56.             self.predicateList(subject)
  57.             self.write('. ')
  58.             return True
  59.         return False
  60.  
  61.     
  62.     def statement(self, subject):
  63.         self.subjectDone(subject)
  64.         properties = self.buildPredicateHash(subject)
  65.         if len(properties) == 0:
  66.             return None
  67.         if not self.s_clause(subject):
  68.             super(N3Serializer, self).statement(subject)
  69.         
  70.  
  71.     
  72.     def path(self, node, position):
  73.         if not self.p_clause(node, position):
  74.             super(N3Serializer, self).path(node, position)
  75.         
  76.  
  77.     
  78.     def startDocument(self):
  79.         ns_list = list(self.namespaces.items())
  80.         ns_list.sort()
  81.         for prefix, uri in ns_list:
  82.             self.write('\n' + self.indent() + '@prefix %s: <%s>.' % (prefix, uri))
  83.         
  84.         if len(ns_list) > 0:
  85.             self.write('\n')
  86.         
  87.  
  88.  
  89.