当前位置: 首页>>代码示例>>Python>>正文


Python Graph.etags方法代码示例

本文整理汇总了Python中rdflib.Graph.etags方法的典型用法代码示例。如果您正苦于以下问题:Python Graph.etags方法的具体用法?Python Graph.etags怎么用?Python Graph.etags使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在rdflib.Graph的用法示例。


在下文中一共展示了Graph.etags方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get_state

# 需要导入模块: from rdflib import Graph [as 别名]
# 或者: from rdflib.Graph import etags [as 别名]

#.........这里部分代码省略.........
                query_filter = "FILTER((%s))" % (") && (".join(query_filter))
            else:
                query_filter = ""

            reverse = (parameters.get("reverse", "no").lower()
                       not in ("false", "no", "0"))
            limit = parameters.get("limit")
            offset = parameters.get("offset")

            matching_obsels = [
                row[0].n3() for row in self.state.query(
                    self.build_select(minb, maxe, after, before, reverse,
                                      query_filter, limit, offset),
                    initNs={
                        "ktbs": "http://liris.cnrs.fr/silex/2009/ktbs#"
                    },
                )
            ]

            LOG.debug("%s matching obsels", len(matching_obsels))
            if len(matching_obsels) == 0:
                matching_obsels.append(Literal(42))
                # this is a hack because rdflib 4.2.2 does not support an empty VALUES list
                # but it should not match anything

            query_str = """PREFIX ktbs: <http://liris.cnrs.fr/silex/2009/ktbs#>
                SELECT ?s ?p ?o ?strc ?otrc ?obs {
                  VALUES ?obs { %s }
                  {
                    ?obs ?p ?o.
                    BIND(?obs as ?s)
                    OPTIONAL { ?o ktbs:hasTrace ?otrc }
                  } UNION {
                    ?s ?p ?obs.
                    BIND(?obs as ?o)
                    OPTIONAL { ?s ktbs:hasTrace ?strc }
                  } UNION {
                    ?obs ?p1 ?s.
                    FILTER isBlank(?s)
                    ?s ?p ?o.
                  } UNION {
                    ?obs ?p1 ?b1.
                    FILTER isBlank(?b1)
                    ?b1 ?p2 ?s.
                    FILTER isBlank(?s)
                    ?s ?p ?o.
                  }
                }
                """% (' '.join(matching_obsels))

            results = self.state.query(query_str)
            LOG.debug("described by %s triples", len(results))

            # add description of all matching obsels
            old_graph_len = len(graph)
            graph_add = graph.add
            for s, p, o, strc, otrc, obs in results:
                graph_add((s, p, o))
                if strc is not None:
                    graph_add((s, KTBS.hasTrace, strc))
                if otrc is not None:
                    graph_add((o, KTBS.hasTrace, otrc))

            if len(graph) > old_graph_len:
                maxe_triple = max(( t for t in graph.triples((None, KTBS.hasEnd, None)) ),
                                  key=lambda t: t[2].toPython() )
                maxobs = maxe_triple[0]
                maxe = maxe_triple[2].toPython()
            else:
                maxobs = maxe = None

            # canonical link
            graph.links = links = [{
                'uri': self.uri,
                'rel': 'canonical',
                'etag': iter(self.iter_etags()).next(),
                'mstable-etag': self.get_str_mon_tag(),
            }]
            # link to next page
            if limit and maxobs:
                obs_id = maxobs.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.link = self.uri + qstr
                links.append({'uri': self.uri + qstr, 'rel': 'next'})

            # compute etags
            graph.etags = list(self.iter_etags({'maxe': maxe, 'before': before}))

            return graph
开发者ID:ktbs,项目名称:ktbs,代码行数:104,代码来源:trace_obsels.py


注:本文中的rdflib.Graph.etags方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。