2012-06-13 1 views
1

Freebase을 사용하여 전문 운동 선수가 속한 팀을 찾으려고합니다. Freebase beginner : 운동 선수의 스포츠 받기

그래서 내가 속성을이

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

query editor

처럼 뭔가를하고 추출하기 위해 노력하고있어 플레이어가 소속 된 스포츠 찾아 "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"목록에 결과에 단일 값이 있음을 명확하게 보여줍니다.

하지만 왜 null입니까? 오히려 Basketball 객체에 대한 참조가 아니어야합니까?

답변

0

귀하의 검색어는 sports_played 목록을 요청하고 있지만 대괄호 만 사용했기 때문에 일치하는 모든 주제의 이름 목록 만 반환합니다. 쿼리에 중괄호를 추가하는 경우

당신은 실제로 (이전 쿼리가 보여주는 된 것입니다) 이름 = null이 하나 개의 주제 expected value of sports_played이를이기 때문이다

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

을 반환 sports_played 볼 수 있습니다 CVTSports played은 운동 선수를 특정 시간 동안 스포츠에 연결합니다. 이것은 우리가 여러 스포츠를 한 선수들을 추적하고 어느 선수가 가장 최신 선수인지 알 수 있도록하기 위해서입니다.

당신이 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 
    }] 
}] 

Query Editor

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}] 
    }] 
}]​ 

당신 자동으로 쿼리 할 수있을만큼 안정적으로 정규화되어 있지 않으므로 손으로 스키마를 살펴보고 관심있는 속성을 손으로 꺼내야합니다.하지만 고려해야 할 스포츠는 많지 않으므로 귀하의 목록을 조립 오래.