2014-12-14 8 views
0

Если у меня есть тип, например «/ government/government_position_held», как определить, какие из его свойств содержат пользователя читаемое имя? В этом случае это свойство «office_position_or_title». В случае «/ sports/sports_played» собственность «спорт». В случае «/ film/performance» свойство «фильм». Некоторые типы имеют свойство «имя», но многие этого не делают. Мне понадобится общий способ сделать это, вместо того, чтобы знать конкретную схему для каждого типа.В общем виде, как найти свойство Freebase, которое содержит читаемое пользователем имя для произвольного типа

ответ

0

Большинство типов имеют имена. Основными исключениями являются так называемые «медиаторы» или «сложные типы значений» (то есть CVT). CVT обычно не имеют имени (т. Е. Свойство/type/object/name имеет нулевое значение). Если к CVT подключены только два не-примитивных именованных типа (т. Е. Другие - такие, как даты, валюты и т. Д.), Вы можете отличить «лучшее» имя по тому направлению, из которого вы пришли (т.е. другой именованный тип). Но для чего-то вроде вашего примера /film/performance, кто говорит, что «лучший» объект - /film/performance/film, а не /film/performance/character? Или, альтернативно, если бы я начал снимать фильм, почему бы не быть /film/performance/actor?

В этом весь смысл медиаторов/CVT. Они располагаются между/между всеми другими узлами. Возможно, вы сможете кодифицировать алгоритм для решения простого случая (т. Е. Двух связанных именных не-примитивных типов), но общий случай сложный.

+0

Привет, Том, спасибо за понимание. – user2373544

+0

Привет, Том, спасибо за понимание. Таким образом, тип/film/actor имеет свойство/фильм/актер/фильм, и у этого есть ожидаемый тип/фильм/исполнение. Я пытаюсь выяснить, какое свойство в/film/performance type я должен посмотреть, чтобы получить читаемое имя. В этом случае совпадение заключается в том, что свойство on/film/actor является «фильмом», и это, по-видимому, название свойства on/film/performance, которое я хочу. Но это не всегда так, как вы упомянули. Основное свойство свойства/film/actor/film -/film/performance/actor, что в этом случае мало помогает. – user2373544

+0

Мое главное состоит в том, что тип медиатора или CVT/фильм/производительность не имеет имени. Вы можете создать эффективное имя, пройдя один прыжок дальше, если вы знаете: а) направление, из которого вы направляетесь, и b) наиболее желательное место назначения, если его несколько. Некоторые приложения думали бы, если бы вы начали с актера, что «правильный» ответ «фильм», в то время как другие могут быть «персонажем». Это неотъемлемый характер недвоичных отношений, с которыми вам придется иметь дело в зависимости от приложения. –