Frage

Also habe ich nachgeschaut diese Verwendung des Freebase API und ich waren wirklich beeindruckt von den gefundenen Übersetzungen des Namens.IE Rome, Roma, Rom, Rzym, Rooma,로마, 罗马市.Das liegt daran, dass ich über eine Datenbank mit mehr als 5000 Ortsnamen verfüge und mir sehr gerne alle französischen, deutschen oder koreanischen Übersetzungen dieser englischen Namen wünsche.

Das Problem ist, dass ich etwa zwei Stunden damit verbracht habe, mich in Freebase umzusehen, und keine Möglichkeit gefunden habe, eine Ansicht der Stadt-/Ortsnamen in einer anderen Sprache zu erhalten, die dem Englischen zugeordnet ist.Daher würde ich mich freuen, wenn jemand, der versteht, was Freebase ist und wie es organisiert ist, mir einen Link zu dieser Ansicht besorgen könnte, den ich dann theoretisch exportieren könnte.

Außerdem wollte ich diese Frage nur teilen, weil ich von Freebase total beeindruckt bin und denke, wenn die Leute es sich noch nicht angesehen haben, sollten sie es tun.

War es hilfreich?

Lösung

Die Abfrage

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

gibt für jeden Standort und jede Sprache den Namen dieses Standorts in dieser Sprache zurück.Die Ergebnisse sind nach Sprachen geordnet.Hier ist zum Beispiel ein sehr kleines Segment des Rückgabewerts:

                    {
                      '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 Lösung ohne Programmierung kopieren Sie Folgendes, fügen Sie es in eine HTML-Datei ein 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>

Dazu zählen natürlich nur die ersten 10 Ergebnisse.Erhöhen Sie das oben genannte Limit, wenn Sie mehr wollen.(Übrigens ist nicht nur Freebase cool, sondern auch diese MJT-Vorlagensprache!)

Andere Tipps

Der von Ihnen gepostete Link verwendet mjt, ein für Freebase entwickeltes Javascript-Framework.

Die von ihnen verwendete Abfrage.

 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 auch Ihre gewünschte Sprache zum Übersetzen.qname – ist der abzufragende Speicherort.

Um den gewünschten Link zu erhalten, benötigen Sie den API, und Sie können die obige Abfrage in einen Link umwandeln, der ein JSON-Objekt zurückgibt, das die übersetzte Zeichenfolge enthält.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top