Esempio n. 1
0
    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
Esempio n. 2
0
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})
Esempio n. 3
0
 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
Esempio n. 4
0
# 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)
Esempio n. 5
0
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()
Esempio n. 6
0
# 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)