def ted(self): response = self._get_request('ted', accept='text/turtle') g = Graph() g.parse(StringIO(response), format='turtle') g = deskolemize(g) ted = TED.from_graph(g) return ted
def resources(self): response = self._get_request('resources', accept='text/turtle') g = Graph() g.parse(StringIO(response), format='turtle') g = deskolemize(g) all_resources = set() for uri in set(g.subjects()): r_types = list(g.objects(predicate=RDF.type)) all_resources.add(Resource(URIRef(uri), r_types)) return all_resources
def get_thing(self, tid): response = self._get_request('things/{}'.format(tid), accept='text/turtle') g = Graph() g.parse(StringIO(response), format='turtle') g = deskolemize(g) try: node = list(g.subjects(predicate=CORE.describedBy)).pop() return Resource.from_graph(g, node, {}) except IndexError: raise AttributeError(tid)
def deserialize(data, format): g = Graph() if format == TURTLE: try: g.parse(StringIO(data), format='turtle') except BadSyntax as e: raise ValueError(e.message) else: try: ld_triples(json.loads(data), g) except Exception as e: raise ValueError(e.message) return deskolemize(g)
def get_description(self, tdid, fetch=True): try: response = self._get_request('descriptions/{}'.format(tdid), accept='text/turtle') except IOError as e: raise AttributeError(e.message['text']) g = Graph() g.parse(StringIO(response), format='turtle') g = deskolemize(g) return TD.from_graph(g, list(g.subjects(RDF.type, CORE.ThingDescription)).pop(), {}, fetch=fetch)
def discover(self, query, strict=False, lazy=True, **kwargs): path = 'discover' lazy_arg = 'min' if lazy else '' strict_arg = 'strict' if strict else '' args = '&'.join([lazy_arg, strict_arg]) if args: path += '?' + args try: response = self._post_request(path, query, content_type='text/plain', accept='text/turtle') g = Graph() g.parse(StringIO(response), format='turtle') g = deskolemize(g) ted = TED.from_graph(g, fetch=lazy, loader=self.__loader) return ted except IOError as e: raise AttributeError(e.message)
def __loader(self, uri): g = request_loader(uri) if g: return deskolemize(g)