本文整理汇总了Python中rdflib.Graph.next_link方法的典型用法代码示例。如果您正苦于以下问题:Python Graph.next_link方法的具体用法?Python Graph.next_link怎么用?Python Graph.next_link使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rdflib.Graph
的用法示例。
在下文中一共展示了Graph.next_link方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_state
# 需要导入模块: from rdflib import Graph [as 别名]
# 或者: from rdflib.Graph import next_link [as 别名]
#.........这里部分代码省略.........
the slicing parameters are not supported by
`~rdfrest.cores.ICore.force_state_refresh`:meth.
I consider an empty dict as equivalent to no dict.
"""
# TODO LATER find a way to generate dynamic slices?
# on the other hand, this is only by http_server when a query_string
# is provided, and http_server does not require dynamic graphs, so...
if (not parameters # empty dict is equivalent to no dict
or "refresh" in parameters and len(parameters) == 1):
return super(AbstractTraceObsels, self).get_state(None)
else:
self.check_parameters(parameters, parameters, "get_state")
graph = Graph(identifier=self.uri)
graph_add = graph.add
# fill graph with data about the obsel collection
for triple in self.state.triples((self.uri, None, None)):
graph_add(triple)
for triple in self.state.triples((None, None, self.uri)):
graph_add(triple)
# build SPARQL query to retrieve matching obsels
# NB: not sure if caching the parsed query would be beneficial here
query_filter = []
minb = parameters.get("minb")
if minb is not None:
query_filter.append("?b >= %s" % minb)
maxb = parameters.get("maxb")
if maxb is not None:
query_filter.append("?b <= %s" % maxb)
mine = parameters.get("mine")
if mine is not None:
query_filter.append("?e >= %s" % mine)
maxe = parameters.get("maxe")
if maxe is not None:
query_filter.append("?e <= %s" % maxe)
after = parameters.get("after")
if after is not None:
query_filter.append(
"?e > {2} || "
"?e = {2} && ?b > {1} || "
"?e = {2} && ?b = {1} && str(?obs) > \"{0}\"".format(
after.uri, after.begin, after.end,
))
before = parameters.get("before")
if before is not None:
query_filter.append(
"?e < {2} || "
"?e = {2} && ?b < {1} || "
"?e = {2} && ?b = {1} && str(?obs) < \"{0}\"".format(
before.uri, before.begin, before.end
))
if query_filter:
query_filter = "FILTER((%s))" % (") && (".join(query_filter))
else:
query_filter = ""
query_epilogue = ""
reverse = (parameters.get("reverse", "no").lower()
not in ("false", "no", "0"))
if reverse:
query_epilogue += "ORDER BY DESC(?e) DESC(?b) DESC(?obs)"
else:
query_epilogue += "ORDER BY ?e ?b ?obs"
limit = parameters.get("limit")
if limit is not None:
query_epilogue += " LIMIT %s" % limit
offset = parameters.get("offset")
if offset is not None:
query_epilogue += " OFFSET %s" % offset
query_str = """PREFIX : <http://liris.cnrs.fr/silex/2009/ktbs#>
SELECT ?obs { ?obs :hasBegin ?b ; :hasEnd ?e . %s } %s
""" % (query_filter, query_epilogue)
# add description of all matching obsels
self_state = self.state
obs = None
for obs, in self.state.query(query_str): #/!\ returns 1-uples
get_obsel_bounded_description(obs, self_state, graph)
if limit and obs:
obs_id = obs.rsplit("/", 1)[1]
if reverse:
qstr = "?reverse&limit=%s&before=%s" % (limit, obs_id)
else:
qstr = "?limit=%s&after=%s" % (limit, obs_id)
if minb:
qstr += "&minb=%s" % minb
if maxb:
qstr += "&maxb=%s" % maxb
if mine:
qstr += "&mine=%s" % mine
if maxe:
qstr += "&maxe=%s" % maxe
graph.next_link = self.uri + qstr
return graph