A football tournament -- participation, historical dependence, parthood, creation, termination, manifestation
Everything in example 1 through
example 4 endures: it persists through time and can change while
remaining the same thing. gUFO's other basic category of concrete individual, gufo:Event,
does not endure at all: an event is always something that has already occurred, with its beginning and end
fixed once and for all -- there is no sense in which it is still unfolding or yet to happen. This example
shows how such (already past) events relate back to the
endurants (objects, aspects) they involve: who participated, what was created or destroyed, what aspect
showed itself, and how events relate to each other in time and part-whole structure.
A football tournament: two semi-finals feeding into a final, an opening ceremony, three players, and a club that gets rebranded along the way. (Player and club names are fictional.)
The semi-finals, the final and the opening ceremony are all sub-events of the tournament, related via
gufo:isEventProperPartOf -- the event-side counterpart to
gufo:isObjectProperPartOf from example 2, both
sub-properties of the common gufo:isProperPartOf:
:SemiFinal1 a :SemiFinal ;
gufo:isEventProperPartOf :WorldChampionship2026 .
:Final2026 a :Final ;
gufo:isEventProperPartOf :WorldChampionship2026 .
The final would not have happened, with these two finalists, without the semi-finals having taken place
first -- but it is not part of them, nor they part of it (they are siblings under the tournament).
gufo:historicallyDependsOn captures exactly this "could not have been without" relation,
independent of parthood:
:Final2026 gufo:historicallyDependsOn :SemiFinal1 , :SemiFinal2 .
gUFO documents this property as covering causation but also weaker forms of dependence -- cases where an
earlier event brings about a situation that contributes to, without being sufficient by itself to guarantee,
a later event. (See example 6 for
gufo:contributedToTrigger, which makes that weaker link explicit at the situation level.)
The direct way to say that a player took part in a match is a sub-property of
gufo:participatedIn:
:participatedInMatch rdfs:subPropertyOf gufo:participatedIn ;
rdfs:domain :Player ; rdfs:range :Match .
:AlexRivera :participatedInMatch :SemiFinal1 , :Final2026 .
This treats the participation as a bare fact about the player and the match, with no existence or
properties of its own. But a participation can be more than that: it can itself have a beginning and an end
narrower than the match's (a substitution), or bear its own qualities (minutes played). Whenever that is true
of the domain being modeled, the participation is not just a fact to assert but an event in its own right,
and gUFO offers gufo:Participation for it: a sub-class of gufo:Event (restricted to
have exactly one object standing in gufo:participatedIn to it) that can be declared a part of
the larger event:
:JordanLeeParticipationInFinal a gufo:Participation ;
gufo:isEventProperPartOf :Final2026 .
:JordanLee :participatedInMatch :JordanLeeParticipationInFinal .
Both patterns are legitimate, and the choice is not arbitrary: use the direct property when the
participation has no further properties or parts of its own worth representing; reify it as a
gufo:Participation when it does. This example uses the direct pattern for Alex Rivera and Sam
Okafor, and the reified pattern for Jordan Lee, purely to show both side by side.
Jordan Lee has a standing knee injury -- an intrinsic mode, in the sense of example 1's sibling example on aspects (see also example 3 for the related notion of quality). The injury exists independently of any one match, but it flares up -- manifests -- specifically during the first semi-final:
:KneeInjury rdfs:subClassOf gufo:IntrinsicMode .
:JordanLeeKneeInjury a :KneeInjury ;
:hadKneeInjury :JordanLee ;
gufo:manifestedIn :SemiFinal1 .
gufo:manifestedIn is what lets the ontology say "this aspect showed itself here" without
conflating the aspect (which persists) with its manifestation (which is an event, and is over once the match
ends).
An endurant can come into existence, or cease to, in the course of an event -- and gUFO does not require the two to be different endurants or different events. Here, the host club is rebranded at the opening ceremony: the old organization is terminated and a new one created, in that very same event:
:RiverportUnitedFC a :Club ;
gufo:wasTerminatedIn :OpeningCeremony2026 .
:RiverportCityFC a :Club ;
gufo:wasCreatedIn :OpeningCeremony2026 .
Note that gufo:wasCreatedIn and gufo:wasTerminatedIn both take
gufo:Endurant in their domain, not just gufo:Object: a relator (a marriage, an
employment) can just as well be created or terminated in an event, as shown by the wedding example in the
gUFO usage guide.
Going further: gUFO itself leaves wasCreatedIn/
wasTerminatedIn as bare assertions, with no further structure to the event beyond that. The
gufoevents extension accounts for this in more detail:
gufoevents:EndurantCreation and
gufoevents:EndurantTermination are dedicated event subclasses whose axioms entail
gufo:wasCreatedIn/gufo:wasTerminatedIn rather than requiring them to be asserted
directly, and a same-event creation-plus-termination like the club rebranding above is exactly what
gufoevents:Transmutation formalizes as a single complex event.
See ontology.ttl for the complete file.
gufo.ttl + ontology.ttl is
consistent, including gufo:Participation's built-in "exactly one participating object"
restriction for :JordanLeeParticipationInFinal.cd examples/tests
.venv/bin/pytest -v -k 05-events