2008-08-28 2 views
3

Also ich habe this use der freebase API angeschaut und ich war wirklich beeindruckt von den Übersetzungen des Namens, den es gefunden hat. IE Rom, Rom, Rom, Rzym, Rooma, 로마, 罗马 市. Dies liegt daran, dass ich eine Datenbank mit mehr als 5000 Ortsnamen habe und mir alle französischen, deutschen oder koreanischen Übersetzungen für diese englischen Namen sehr gut gefallen würden.Kann ich Übersetzungen von Ortsnamen aus freebase.com exportieren

Das Problem ist, ich verbrachte etwa zwei Stunden rund um Freebase klicken, und konnte keine Möglichkeit finden, eine Ansicht der Stadt/Ortsnamen in einer anderen Sprache auf Englisch zugeordnet. So würde ich es lieben, wenn jemand, der versteht, was Freebase ist und wie es organisiert ist, könnte mir einen Link zu dieser Ansicht, die ich theoretisch dann exportieren könnte.

Auch ich wollte nur diese Frage teilen, weil ich total von freebase beeindruckt bin und denke, wenn die Leute es nicht angesehen haben, sollten sie es tun.

Antwort

4

Die Abfrage

[{ 
    limit: 100, 
    type: '/location/location', 
    name: [{ 
     value: null, 
     lang: { 
      name: { 
       value: null, 
       lang: '/lang/en', 
      }, 
     } 
    }], 
}]; 

kehrt für jeden Standort und jede Sprache, der Name dieser Stelle in dieser Sprache. Die Ergebnisse sind nach Sprache geordnet. Zum Beispiel, hier ist ein sehr kleines Segment des Rückgabewert:

    { 
         'lang': { 
            'name': { 
               'lang': '/lang/en', 
               'value': 'Russian' 
              } 
           }, 
         'value': 'Сан-Франциско' 
        }, 
        { 
         'lang': { 
            'name': { 
               'lang': '/lang/en', 
               'value': 'Swedish' 
              } 
           }, 
         'value': 'San Francisco' 
        }, 
        { 
         'lang': { 
            'name': { 
               'lang': '/lang/en', 
               'value': 'Portuguese' 
              } 
           }, 
         'value': 'São Francisco (Califórnia)' 
        }, 

Für eine nicht-Programmierlösung, copy-paste die folgenden in eine HTML-Datei und öffnen Sie sie mit Ihrem Browser:

<html><head> 
<script type="text/javascript" src="http://mjtemplate.org/dist/mjt-0.6/mjt.js"></script> 
</head> 
<body onload="mjt.run()"> 
<div mjt.task="q"> 
    mjt.freebase.MqlRead([{ 
    limit: 10, 
    type: '/location/location', 
    name: [{ 
     value:null, 
     lang:{ 
      name:{ 
      value:null, 
      lang:'/lang/en', 
      }, 
     } 
    }], 
    }])  
</div> 

<table><tr mjt.for="topic in q.result"><td> 
<table><tr mjt.for="(var rowi = 0; rowi &lt; topic.name.length; rowi++)" 
    mjt.if="rowi &lt; topic.name.length" style="padding-left:2em"><td> 
    <pre mjt.script=""> 
    var name = topic.name[rowi]; 
    </pre> 
    ${(name.lang['q:name']||name.lang.name).value}: 
</td><td>$name.value</td></tr></table></td></tr></table></body></html> 

Natürlich enthält das nur die ersten 10 Ergebnisse. Wenn Sie mehr wollen, müssen Sie die oben angegebene Grenze überschreiten. (Übrigens ist Freebase nicht nur cool, sondern auch diese mjt Templating-Sprache!)

4

Der von Ihnen gepostete Link verwendet mjt, ein JavaScript-Framework, das für Freebase entwickelt wurde.

Die Abfrage, die sie verwenden.

mjt.freebase.MqlRead([{ 
    limit: 100, 
    id:qid, 
    /* allow fuzzy matches in the value for more results... */ 
    /* 'q:name': {'value~=': qname, value:null, lang: '/lang/'+qlang}, */ 
    'q:name': {value: qname, lang: '/lang/'+qlang}, 

    type: '/common/topic', 
    name: [{ 
     value:null, 
     lang:{ 
      id:null, 
      name:{ 
       value:null, 
       lang:'/lang/en', 
       optional:true 
      }, 
      'q:name':{ 
       value:null, 
       lang:'/lang/'+qlang, 
       optional:true 
      } 
     } 
    }], 
    article: [{id:null, limit:1}], 
    image: [{id:null, limit:1, optional:true}], 
    creator: null, 
    timestamp:null 
    }])  

Wo: qlang - ist die gewünschte Sprache zu übersetzen. qname - is ist der abzurufende Ort.

Um den gewünschten Link zu erhalten, benötigen Sie API, und Sie können die obige Abfrage in einen Link konvertieren, der ein JSON-Objekt mit der übersetzten Zeichenfolge zurückgibt.

Verwandte Themen