def fb_entity_property_from_id(self, dset, user, polarity=1, context=None): ''' Called when the result field is not '*', Only returns (property,value) pairs for properties listed in the results_args and query_args, Makes assertions for all of these pairs ''' # create or get dataset try: dataset = Dataset.objects.get(name=dset, language='en') except DoesNotExist: dataset = Dataset.create(name=dset, language='en') query = [self.query_args] assertionscreated = [] # start importing from freebase mss = HTTPMetawebSession("http://api.freebase.com") for searchterm in self.result_args: query[0][searchterm] = {} try: results = mss.mqlread(query) a = Assertion.make( dataset.name, '/rel/freebase/has%s' % searchterm.capitalize(), [self.query_args['id'], results[0][searchterm]['id']]) a.add_support(dataset.name + '/contributor/' + user) assertionscreated.append(a) except MetawebError as me1: if str(me1.args).rfind( '/api/status/error/mql/result') is not -1: query[0][searchterm] = [{}] results = mss.mqlread(query) for result in results[0][searchterm]: a = Assertion.make( dataset.name, '/rel/freebase/has%s' % searchterm.capitalize(), [self.query_args['id'], result['id']]) a.add_support(dataset.name + '/contributor/' + user) assertionscreated.append(a) elif str(me1.args).rfind( '/api/status/error/mql/type') is not -1: print 'The property %s is not recognized.' % searchterm return else: print str(me1.args) return del query[0][searchterm] return assertionscreated
def freeBase(request): albumList = list() # Use the metaweb module albums_by_bob = [{'id':'/en/pearl_jam','type': []}] fSession = HTTPMetawebSession("api.freebase.com") q = [{"id" : "/en/the_beatles", "/common/topic/article" : {"id" : None, "optional" : True, "limit" : 1}}] r = fSession.mqlread(albums_by_bob) # article_id = r["/common/topic/article"]["id"] # result = fSession.raw('/m/0b1zz') # result = fSession.mqlread(albums_by_bob) # for album in result: # Loop through query results # albumList.append(album) # Print album names # albumList.append(result) # return render_to_response("freebase.html",{"list":albumList}) return render_to_response("freebase.html",{"text":r})
def fb_entity_property_from_id(self, dset, user, polarity=1, context=None): ''' Called when the result field is not '*', Only returns (property,value) pairs for properties listed in the results_args and query_args, Makes assertions for all of these pairs ''' # create or get dataset try: dataset = Dataset.objects.get(name=dset, language='en') except DoesNotExist: dataset = Dataset.create(name=dset, language='en') query = [self.query_args] assertionscreated = [] # start importing from freebase mss = HTTPMetawebSession("http://api.freebase.com") for searchterm in self.result_args: query[0][searchterm]={} try: results = mss.mqlread(query) a = Assertion.make(dataset.name, '/rel/freebase/has%s'%searchterm.capitalize(), [self.query_args['id'],results[0][searchterm]['id']]) a.add_support(dataset.name + '/contributor/' + user) assertionscreated.append(a) except MetawebError as me1: if str(me1.args).rfind('/api/status/error/mql/result') is not -1: query[0][searchterm]=[{}] results = mss.mqlread(query) for result in results[0][searchterm]: a = Assertion.make(dataset.name, '/rel/freebase/has%s'%searchterm.capitalize(), [self.query_args['id'],result['id']]) a.add_support(dataset.name + '/contributor/' + user) assertionscreated.append(a) elif str(me1.args).rfind('/api/status/error/mql/type') is not -1: print 'The property %s is not recognized.' % searchterm return else: print str(me1.args) return del query[0][searchterm] return assertionscreated
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METAWEB # TECHNOLOGIES OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # ======================================================================== import sys from freebase.api.session import HTTPMetawebSession _base = HTTPMetawebSession("sandbox-freebase.com") __all__ = ["HTTPMetawebSession"] # we want to add base's functions to __init__.py # so that we can say freebase.func() and really # just call base.func() # a little trick to refer to ourselves self = sys.modules[__name__] for funcname in dir(_base): # we only want the 'real' functions if not funcname.startswith("_"): func = getattr(_base, funcname)
import sys from freebase.api.session import HTTPMetawebSession import sandbox __all__ = ["HTTPMetawebSession", "sandbox"] _base = HTTPMetawebSession("freebase.com") # we want to add base's functions to __init__.py # so that we can say freebase.func() and really # just call base.func() # a little trick to refer to __init__ # self isn't defined because __init__ is in # a world in and of itself self = sys.modules[__name__] for funcname in dir(_base): # we only want the 'real' functions if not funcname.startswith("_"): func = getattr(_base, funcname) # let's make sure we're getting functions # instead of constants or whatever if callable(func): # we're setting these functions # so that they can be called like # freebase.funcname -> base.func()
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METAWEB # TECHNOLOGIES OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # ======================================================================== import sys from freebase.api.session import HTTPMetawebSession _base = HTTPMetawebSession("http://sandbox-freebase.com") __all__ = ["HTTPMetawebSession"] # we want to add base's functions to __init__.py # so that we can say freebase.func() and really # just call base.func() # a little trick to refer to ourselves self = sys.modules[__name__] for funcname in dir(_base): # we only want the 'real' functions if not funcname.startswith("_"): func = getattr(_base, funcname)