Example #1
0
 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
Example #2
0
 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
Example #3
0
    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)
Example #4
0
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)
Example #5
0
    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)
Example #6
0
 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)
Example #7
0
 def __loader(self, uri):
     g = request_loader(uri)
     if g:
         return deskolemize(g)