Comparison of existing representation models

The knowledge bases in the LOD cloud use different models to represent n-ary relations, which leads to inconsistency and impossiblity to link knowledge by binary predicates such as owl:sameAs . The FrameBase model subsumes them, providing less overall overhead and a flexible two-layer model that combines the benefits of each of them.

Model using direct binary predicates alone, which are useful to query, but it fails to connect the pieces of knowledge related to the same event or situation. For instance, if John married twice we would not know when he married Mary.
Model using RDF reification, as in YAGO. It includes the direct binary predicates, and generates entities for situations or events, but it does so pairwise, so they have to be further connected. Therefore, it generates a big overhead (it suffers combinatorial explosion) when situations have many participants or data associated (the example only has 3 elements). Furthermore, it mixes information about the event with metadata about the statements, like for instance provenance.
Model using subproperties. Like the model based on RDF reification, it includes direct binary predicates, but it also generates event/situation entities pair-wise, and even though it does so with lower overhead, it still requires the mutual connections.
Model using so-called Neo-Davidsonian representation. Several knowledge bases such as Freebase or DBpedia use it, but in an ad-hoc way, with different coverage and different vocabulary. The FRED system also uses this model based on FrameNet, but without binary predicates. Furthermore, it does not offer direct binary predicates, producing overhead in the knowledge base and the queries when only two elements of the situation are required.
Model in FrameBase. It has a lower overhead for big numbers than models using subproperties or RDF reification , and it creates a unique "event/frame". Frames are clustered by nearly equivalent meanings, such those for "marriage (noun)", "marry (verb)" and "wedding (noun)". The green triples use direct binary predicates that can be inferred with special "ReDer" rules, only when needed. FrameBase offers a wide vocabulary with tens of thousands of frames such as "Marriage" with accompanying ReDer rules, and means to connect to natural language.

Integration rules

Knowledge from external sources is converted into FrameBase by means of integration rules. The sources can be other heterogeneous RDF knowledge bases, or any other kind of structured data. For the first case, we implement the integration rules as SPARQL CONSTRUCT queries.


These are example rules from DBpedia. (Note: These rules use the IRI format of FrameBase 1.0, which is slightly different)

				
CONSTRUCT {
  ?e a :frame-Event-event.n . 
  ?e :fe-Event-Time _:timePeriod .
  _:timePeriod a fbe:frame-Timespan-period.n ;
      fbe:fe-Timespan-Start ?o1 ; 
      fbe:fe-Timespan-End ?o2 .
  _:e2 a :frame-Relative_time-preceding.a ; 
    :fe-Relative_time-Landmark_occasion ?e ;
    :fe-Relative_time-Focal_occasion ?o3 .
  _:e3 a :frame-Relative_time-following.a ; 
    :fe-Relative_time-Landmark_occasion ?o3 ;
    :fe-Relative_time-Focal_occasion ?e .
  _:e4 a :frame-Relative_time-following.a ; 
    :fe-Relative_time-Landmark_occasion ?e ;
    :fe-Relative_time-Focal_occasion ?o4 .
  _:e5 a :frame-Relative_time-preceding.a ;
    :fe-Relative_time-Landmark_occasion ?o4 ; 
    :fe-Relative_time-Focal_occasion ?e .
  ?e :fe-Event-Reason ?o5 .
  ?e a :frame-Social_event-meeting.n ; 
    :fe-Social_event-Attendee ?o8 .
} WHERE {
  ?e a dbpedia-owl:Event .
  OPTIONAL{?e dbpedia-owl:startDate ?o1}
  OPTIONAL{?e dbpedia-owl:endDate ?o2}
  OPTIONAL{?e dbpedia-owl:previousEvent ?o3}
  OPTIONAL{?e dbpedia-owl:followingEvent|dbpedia-owl:nextEvent ?o4}
  OPTIONAL{?e dbpedia-owl:causedBy ?o5}
  OPTIONAL{?e dbpedia-owl:duration ?o6}
  OPTIONAL{?e dbpedia-owl:numberOfPeopleAttending ?o7} #Omitted
  OPTIONAL{?e dbpedia-owl:participant ?o8}  
}

# With inference on, would match dbpedia-owl:Event too
CONSTRUCT {
  ?e a :frame-Social_event-meeting.n .
} WHERE {
  ?e a dbpedia-owl:SocietalEvent
}


# With inference on, would match dbpedia-owl:SocietalEvent too
CONSTRUCT {
  ?e a :frame-Project-project.n .
  ?e :fe-Project-Activity dbpedia:Space_exploration .
} WHERE {
  ?e a dbpedia-owl:SpaceMission
}


# With inference on, would match dbpedia-owl:SocietalEvent too
CONSTRUCT {
  ?e a fbe:frame-Social_event-convention.n .
} WHERE {
  ?e a dbpedia-owl:Convention
}
			
			

This is an example rule from schema.org:

				
CONSTRUCT {
  ?e a :frame-Social_event-meeting.n .
  ?e :fe-Social_event-Time _:timePeriod .
    _:timePeriod a fbe:frame-Timespan-period.n ;
      fbe:fe-Timespan-Start ?Osta ; fbe:fe-Timespan-End ?Oend .
  ?e :fe-Social_event-Duration ?Odur . ?e :fe-Social_event-Place ?Oloc .
  ?e :fe-Social_event-Attendee ?Oatt . ?e :fe-Social_event-Host ?Oorg .
  ?e :fe-Social_event-Occasion ?Osup . ?Osub :fe-Social_event-Occasion ?e .
  ?Ooff a :frame-Offering-offer.v ;
    :fe-Offering-Theme ?e .
  ?e a :frame-Performing_arts-performance.n ;
    :fe-Performing_arts-Performer ?Oper ;
    :fe-Performing_arts-Performance ?Owor .
  _: a :frame-Recording-record.v ;
    :fe-Recording-Phenomenon ?e ;
    :fe-Recording-Medium ?Orec .
} WHERE {
  ?e a sch:Event .
  # Unambiguous translation
  OPTIONAL{?e sch:startDate ?Osta}     OPTIONAL{?e sch:endDate ?Oend}
  OPTIONAL{?e sch:duration ?Odur}      OPTIONAL{?e sch:location ?Oloc}
  OPTIONAL{?e sch:attendee ?Oatt}      OPTIONAL{?e sch:organizer ?Oorg}
  OPTIONAL{?e sch:superEvent ?Osup}    OPTIONAL{?e sch:subEvent ?Osub}
  OPTIONAL{?e sch:offers ?Ooff}        OPTIONAL{?e sch:performer ?Oper}
  OPTIONAL{?e sch:workPerformed ?Owor} OPTIONAL{?e sch:recordedIn ?Orec}
  # Ambiguous translation
  OPTIONAL{?e sch:doorTime ?Odoo}
  # No translation
  OPTIONAL{?e sch:eventStatus ?Oeve}
  OPTIONAL{?e sch:typicalAgeRange ?Otyp}
  OPTIONAL{?e sch:previousStartDate ?Opre} 
}
			
			

This is an example rule from Freebase:

				
CONSTRUCT {
  _:e a framebase:frame-People_by_jurisdiction-citizen.n .
  _:e framebase:fe-People_by_jurisdiction-Person       ?person .
  _:e framebase:fe-People_by_jurisdiction-Jurisdiction ?country .
} WHERE {
  ?person freebase:people.person.nationality ?country . 
}