"Could someone do a step by step guide on how to set up a CVT . The help given is too ambigious, i..."
Compound Value Types
Compound Value Types allow you to create a type that doesn't use a display name for its instances. For example, you may want to create a new type to store the details of a performance in a movie. The performance itself doesn't necessarily have a discrete topic or name that will be searched on, but you want to record the actor, the role and the film. A compound value type is useful for this.
Instances of a compound value type are typically input while viewing a topic of another type. For example, you might be looking at the topic for a film, The Player , and attempting to add someone to the cast (using the compound value type 'performance'). A compound value type displays a collection of values (in this case actor and role) - this becomes more apparent when you click 'add' and see multiple form fields appear. You would be prompted in this case to input the actor's name and role. The film's name isn't required because you're already viewing the film topic.
When you submit the entry, you'll have a new cast member listed with links to the actor's topic. Clicking through you will see that it displays the film name and role on the actor's page. There isn't, however, an obvious link to view the topic for the compound value type itself. This is because it isn't a topic itself and it has no display name. It is possible to view a compound value type by selecting 'view' from the menu when hovering over a list item.
Compound value types can be used to link two disparate types and to append additional information to the relationship (for instance a film and an actor are linked and share the role that the actor played in the film). A similar pattern can exist between two topics of the same type (for instance a marriage between two people which also captures the start date of that marriage). Finally, a link can terminate with a compound value type (for instance a birth type could contain both a birth date and place for a person).
Setting up a compound value type is currently a bit complicated. We're hoping to simplify this in a future release, but for now here are the steps required to successfully create a compound value type:
- Check the box for 'compound value type' at the top of schema editor
- All properties you want to have appear must be checked 'display as disambiguator'
- It is recommended that you also mark these properties as 'restrict to one value' - the UI currently requires this in order to allow a user to edit the details of an entry inline. If all the properties are not restricted to one value (requiring no more than one value to be input for that property), the user will need to go to the compound value type object in order to edit, which can be disorienting and confusing.
- Note that restricting to one value has an additional wrinkle, which is that you can only apply this to properties that point at other types, not those that have been reciprocated. For this reason, it will work best if the properties of the compound value type are all created within that type and point out at other types, not the other way around.
- Link back from the other types to the compound value type - by reciprocating these links, you are connecting the various types through this centralized object and the values within it can now be input inline.
See Film Performance for an example
Recent Discussions about Compound Value Types
Compound Types, Mediators and Recipricated links
"fyi, we're trying to move away from the use of the word 'mediator' and just use 'compound value..."
Compound Types, Mediators and Recipricated links
"The simplest way to do this is with the "suggested properties" feature on the type definition page. ..."
Changes in handling of Compound Value Types?
"When I first started using Compound Value Types, some 4 weeks ago, they were handled by Freebase as..."

