本文整理汇总了Python中rdflib.query.Result.__init__方法的典型用法代码示例。如果您正苦于以下问题:Python Result.__init__方法的具体用法?Python Result.__init__怎么用?Python Result.__init__使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rdflib.query.Result
的用法示例。
在下文中一共展示了Result.__init__方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from rdflib.query import Result [as 别名]
# 或者: from rdflib.query.Result import __init__ [as 别名]
def __init__(self, tree):
boolean = tree.find(RESULTS_NS_ET + 'boolean')
results = tree.find(RESULTS_NS_ET + 'results')
if boolean!=None:
type_='ASK'
elif results!=None:
type_='SELECT'
else:
raise ResultException("No result-bindings or boolean answer found!")
Result.__init__(self, type_)
if type_=='SELECT':
self.bindings=[]
for result in results:
r = {}
for binding in result:
r[binding.get('name')] = parseTerm(binding[0])
self.bindings.append(r)
self.vars=[x.get("name") for x in tree.findall(RESULTS_NS_ET+'head')]
elif type_=='ASK':
self.askAnswer=bool(boolean.text)
示例2: __init__
# 需要导入模块: from rdflib.query import Result [as 别名]
# 或者: from rdflib.query.Result import __init__ [as 别名]
def __init__(self, source):
xmlstring = source.read()
if isinstance(xmlstring, text_type):
xmlstring = xmlstring.encode('utf-8')
try:
parser = etree.XMLParser(huge_tree=True)
tree = etree.parse(BytesIO(xmlstring), parser)
except TypeError:
tree = etree.fromstring(xmlstring)
except Exception as e:
log.exception("Error parsing XML results: %s"%xmlstring)
raise e
boolean = tree.find(RESULTS_NS_ET + 'boolean')
results = tree.find(RESULTS_NS_ET + 'results')
if boolean is not None:
type_ = 'ASK'
elif results is not None:
type_ = 'SELECT'
else:
g = Graph()
try:
g.parse(data=xmlstring)
if len(g) == 0:
raise
type_ = 'CONSTRUCT'
except:
raise ResultException(
"No RDF Graph, result-bindings or boolean answer found!")
Result.__init__(self, type_)
if type_ == 'SELECT':
self.bindings = []
for result in results:
r = {}
for binding in result:
r[Variable(binding.get('name'))] = parseTerm(binding[0])
self.bindings.append(r)
self.vars = [Variable(x.get("name"))
for x in tree.findall(
'./%shead/%svariable' % (
RESULTS_NS_ET, RESULTS_NS_ET))]
elif type_ == 'ASK':
self.askAnswer = boolean.text.lower().strip() == "true"
elif type_ == 'CONSTRUCT':
self.graph = g
示例3: __init__
# 需要导入模块: from rdflib.query import Result [as 别名]
# 或者: from rdflib.query.Result import __init__ [as 别名]
def __init__(self, json):
self.json=json
if "boolean" in json:
type_='ASK'
elif "results" in json:
type_='SELECT'
else:
raise ResultException('No boolean or results in json!')
Result.__init__(self,type_)
if type_=='ASK':
self.askAnswer=bool(json['boolean'])
else:
self.bindings=self._get_bindings()
示例4: __init__
# 需要导入模块: from rdflib.query import Result [as 别名]
# 或者: from rdflib.query.Result import __init__ [as 别名]
def __init__(self, source, **kwargs):
if not isinstance(source, Graph):
graph = Graph()
graph.load(source, **kwargs)
else:
graph = source
rs = graph.value(predicate=RDF.type, object=RS.ResultSet)
# there better be only one :)
if rs is None:
type_ = 'CONSTRUCT'
# use a new graph
g = Graph()
g += graph
else:
askAnswer = graph.value(rs, RS.boolean)
if askAnswer is not None:
type_ = 'ASK'
else:
type_ = 'SELECT'
Result.__init__(self, type_)
if type_ == 'SELECT':
self.vars = [Variable(v) for v in graph.objects(rs,
RS.resultVariable)]
self.bindings = []
for s in graph.objects(rs, RS.solution):
sol = {}
for b in graph.objects(s, RS.binding):
sol[Variable(graph.value(
b, RS.variable))] = graph.value(b, RS.value)
self.bindings.append(sol)
elif type_ == 'ASK':
self.askAnswer = askAnswer.value
if askAnswer.value == None:
raise Exception('Malformed boolean in ask answer!')
elif type_ == 'CONSTRUCT':
self.graph = g
示例5: __init__
# 需要导入模块: from rdflib.query import Result [as 别名]
# 或者: from rdflib.query.Result import __init__ [as 别名]
def __init__(self, source, content_type=None):
try:
parser = etree.XMLParser(huge_tree=True)
tree = etree.parse(source, parser)
except TypeError:
tree = etree.parse(source)
boolean = tree.find(RESULTS_NS_ET + 'boolean')
results = tree.find(RESULTS_NS_ET + 'results')
if boolean is not None:
type_ = 'ASK'
elif results is not None:
type_ = 'SELECT'
else:
raise ResultException(
"No RDF result-bindings or boolean answer found!")
Result.__init__(self, type_)
if type_ == 'SELECT':
self.bindings = []
for result in results:
r = {}
for binding in result:
r[Variable(binding.get('name'))] = parseTerm(binding[0])
self.bindings.append(r)
self.vars = [Variable(x.get("name"))
for x in tree.findall(
'./%shead/%svariable' % (
RESULTS_NS_ET, RESULTS_NS_ET))]
else:
self.askAnswer = boolean.text.lower().strip() == "true"
示例6: __init__
# 需要导入模块: from rdflib.query import Result [as 别名]
# 或者: from rdflib.query.Result import __init__ [as 别名]
def __init__(self, inner_result):
if type(inner_result) is EagerIterator:
Result.__init__(self, "SELECT")
self._eagerIterator = inner_result
self.vars = inner_result.vars
elif type(inner_result) is bool:
Result.__init__(self, "ASK")
self.askAnswer = inner_result
elif type(inner_result) is Graph:
Result.__init__(self, "CONSTRUCT")
self.graph = inner_result
else:
raise ValueError("Unrecognized inner_result %r" % inner_result)
示例7: __init__
# 需要导入模块: from rdflib.query import Result [as 别名]
# 或者: from rdflib.query.Result import __init__ [as 别名]
def __init__(self, res):
Result.__init__(self, res["type_"])
self.vars = res.get("vars_")
self.bindings = res.get("bindings")
self.askAnswer = res.get("askAnswer")
self.graph = res.get("graph")