1

Freebaseを使用して、プロのアスリートが所属するチームを調べようとしています。

だから私はこのようなことをしようとしています

[{
  "id":   null,
  "name": "Kobe Bryant",
  "type": "/sports/pro_athlete",
  "sports_played":    []
}]​

クエリ エディタ

次に、プロパティ「sport_played」を抽出して、プレーヤーが属しているスポーツを見つけます。私の計画は、チーム名が見つかるまで、「basketball_player」などのより具体的なクエリを実行することです。(これを行うより簡単な方法はありますか?)

ただし、最初のステップではすでに失敗しています。結果では、プロパティ sport_played と sport_played_professionally には単一のエントリが含まれていますが、そのエントリは null です。

{
  "code":          "/api/status/ok",
  "result": [{
    "id":   "/en/kobe_bryant",
    "name": "Kobe Bryant",
    "sports_played": [
      null
    ],
    "type": "/sports/pro_athlete"
  }],
  "status":        "200 OK",
  "transaction_id": "cache;cache03.p01.sjc1:8101;2012-06-13T13:30:20Z;0053"
}

私は混乱しています。データベースを参照したところ、このプレーヤーにはスポーツの価値があるはずです。結果は、結果の「sports_played」リストに単一の値があることを明確に示しています。

しかし、なぜヌルなのですか?Basketball オブジェクトへの参照であるべきではありませんか?

4

2 に答える 2

0

クエリは sports_played のリストを要求していますが、角括弧のみを使用しているため、一致するすべてのトピックの名前のリストのみが返されます。

クエリに中括弧を追加すると、sports_played が実際に name = null のトピックを 1 つ返すことがわかります (これは、前のクエリが示していたものです)。

[{
  "id": null,
  "name": "Kobe Bryant",
  "type": "/sports/pro_athlete",
  "sports_played": [{}]
}]

これは、sports_played の期待値が、スポーツ選手を特定の期間スポーツに結び付ける、 Sports presented と呼ばれるCVTであるためです。これは、複数のスポーツをプレーしたアスリートを追跡し、最新のスポーツを把握できるようにするためです。

CVT オブジェクト内の値を確認したい場合は、次のようにさらにドリルダウンする必要があります。

[{
  "id": null,
  "name": "Kobe Bryant",
  "type": "/sports/pro_athlete",
  "sports_played": [{
    "type": "/sports/pro_sports_played",
    "sport": {
      "id": null,
      "name": null
    },
    "career_start": null,
    "career_end": null
  }]
}]

クエリ エディターで試してみる

于 2012-06-14T18:20:39.303 に答える
0

このsports_playedプロパティは、チーム情報を含むプロパティと必ずしも関連付けられているとは限らないため、ここで実際に必要なものではありません。

代わりに、次の行に沿って何かを使用したい:

{
  "id":   null,
  "name": "Kobe Bryant",
  "/basketball/basketball_player/team" : [{"team":null}],
  }]
}

すべてのコービー・ブライアントのすべてのチームを取得したい場合は、次のように使用できます。

[{
  "id":   null,
  "name": "Kobe Bryant",
  "/soccer/football_player/current_team" : [{"team":null,"optional":true}],
  "/basketball/basketball_player/team" : [{"team":null,"optional":true}],
  "/american_football/football_player/current_team" :[{"team":null,"optional":true}]
  }]
}]​

残念ながら、手動でスキーマを調べて、関心のあるプロパティを手動で引き出す必要があります。それらは、自動的にクエリを実行できるほど確実に規則的ではないためです。リストを組み立てるのに非常に時間がかかります。

于 2012-07-12T16:39:16.853 に答える