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


Python Graph.next_link方法代码示例

本文整理汇总了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
开发者ID:,项目名称:,代码行数:104,代码来源:


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