Metaschema

From Freebase

Jump to: navigation, search

Contents

Overview

Metaschema-map-schema.png

Metaschema is an effort to describe properties (or paths formed through the use of multiple properties) in terms of more general relationships.

For instance, Freebase provides the property /film/director/film that identifies what film's a Film Director has directed. But more generally a Film Director can be viewed as having "ContibutedTo" the film. In simple cases like this, Metaschema is similar in concept to "super-properties" used in other semantic systems. But Metaschema predicates can also represent the higher-order relationships that span multiple properties. For instance, while the a Film Actor's relationship to a Film is mediated by a Film Performance object, Metaschema recognizes that the path from an Actor using the property /film/actor/film to a Film Performance and the property /film/performance/film to a Film represents another form of "ContributedTo," similar to that of the director.

These higher-order relationships are viewed as directional. Just as a film director "ContributedTo" a film, a film "HasContributors" which include the director, actors and other crew members. However, some higher-order relationships are viewed as reflexive, meaning the relationship is the same in both directions as in peer like relationships. Tony Scott is the brother of Ridley Scott and are each a "PeerOf" the other.

Properties

Currently over 3500 properties in Freebase have been mapped to 46 higher-order Metaschema patterns. The relationships between Freebase Properties and Metaschema patterns are documented as data in Freebase itself at fbontology.freebase.com. The diagram on the right illustrates the form of the data model.


Search Filters

The Search service supports Metaschema as a way of filtering search results.

Female African American lawyers

 filter=(all category:female category:"african american" practitioner_of:lawyer)

Try it out

Retreating Swiss glaciers

 filter=(all type:glacier status:retreating part_of:switzerland)

Try it out

Google engineers

 filter=(all title:engineer member_of:google)

Try it out

MQL Queries

Using this model you can ask whether there is a Metaschema description for a specific propety using a query of the form:

[{
  "name": null,
  "type": "/base/fbontology/semantic_predicate",
  "paths": {
    "properties": "/film/director/film"
  }
}]

Note that because a property could participate in one or more multi-property path a more prudent query would be:

[{
  "name": null,
  "type": "/base/fbontology/semantic_predicate",
  "paths": {
    "a:properties": "/film/actor/film",
    "b:properties":[{"id":null}]
  }
}]

Which indicates that there are two paths which start with the property /film/actor/film - one representing the path for the actors ContributionTo films, the other which represents characters the actor has "Portrayed."

Learn More

Personal tools