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 / Query.py < prev    next >
Encoding:
Python Source  |  2007-04-04  |  2.9 KB  |  82 lines

  1. class Query(object):
  2.     """
  3.     Query ::= Prolog ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )
  4.     See: http://www.w3.org/TR/rdf-sparql-query/#rQuery
  5.     """
  6.     def __init__(self,prolog,query):
  7.         self.prolog = prolog
  8.         self.query = query
  9.  
  10.     def __repr__(self):
  11.         return repr(self.query)
  12.  
  13. class WhereClause(object):
  14.     """
  15.     The where clause is essentially a wrapper for an instance of a ParsedGraphPattern
  16.     """
  17.     def __init__(self,parsedGraphPattern):
  18.         self.parsedGraphPattern = parsedGraphPattern
  19.  
  20. class SelectQuery(object):
  21.     """
  22.     SelectQuery ::= 'SELECT' 'DISTINCT'? ( Var+ | '*' ) DatasetClause* WhereClause SolutionModifier
  23.     See: http://www.w3.org/TR/rdf-sparql-query/#rSelectQuery
  24.     """
  25.     def __init__(self,variables,dataSetList,whereClause,solutionModifier,distinct=None):
  26.         self.variables = variables is not None and variables or []
  27.         self.dataSets = dataSetList and dataSetList or []
  28.         self.whereClause = whereClause
  29.         self.solutionModifier = solutionModifier
  30.         self.distinct = distinct is not None
  31.  
  32.     def __repr__(self):
  33.         return "SELECT %s %s %s %s %s"%(self.distinct and 'DISTINCT' or '',self.variables and self.variables or '*',self.dataSets,self.whereClause.parsedGraphPattern,self.solutionModifier and self.solutionModifier or '')
  34.  
  35. class AskQuery(object):
  36.     """
  37.     AskQuery ::= 'ASK' DatasetClause* WhereClause
  38.     See: http://www.w3.org/TR/rdf-sparql-query/#rAskQuery
  39.     """
  40.     def __init__(self,dataSetList,whereClause):
  41.         self.dataSets = dataSetList and dataSetList or []
  42.         self.whereClause = whereClause
  43.  
  44.     def __repr__(self):
  45.         return "ASK %s %s"%(self.dataSets,self.whereClause.parsedGraphPattern)
  46.  
  47. class ConstructQuery(object):
  48.     """
  49.     ConstructQuery ::= 'CONSTRUCT' ConstructTemplate DatasetClause* WhereClause SolutionModifier
  50.     See: http://www.w3.org/TR/rdf-sparql-query/#rConstructQuery
  51.     """
  52.     pass
  53.  
  54. class DescribeQuery(object):
  55.     """
  56.     DescribeQuery ::= 'DESCRIBE' ( VarOrIRIref+ | '*' ) DatasetClause* WhereClause? SolutionModifier
  57.     http://www.w3.org/TR/rdf-sparql-query/#rConstructQuery
  58.     """
  59.     pass
  60. #    def __init__(self,dataSetList,whereClause):
  61. #        self.dataSets = dataSetList and dataSetList or []
  62. #        self.whereClause = whereClause
  63. #
  64. #    def __repr__(self):
  65. #        return "ASK %s %s"%(self.dataSets,self.whereClause.parsedGraphPattern)
  66.  
  67.  
  68. class Prolog(object):
  69.     """
  70.     Prolog ::= BaseDecl? PrefixDecl*
  71.     See: http://www.w3.org/TR/rdf-sparql-query/#rProlog
  72.     """
  73.     def __init__(self,baseDeclaration,prefixDeclarations):
  74.         self.baseDeclaration = baseDeclaration
  75.         self.prefixBindings = {}
  76.         if prefixDeclarations:
  77.             for prefixBind in prefixDeclarations:
  78.                 self.prefixBindings[prefixBind.qName] = prefixBind.base
  79.  
  80.     def __repr__(self):
  81.         return repr(self.prefixBindings)
  82.