Closed nickdrummond closed 2 years ago
Ah, keys are asserted on the Class https://www.w3.org/2007/OWL/draft/owl2-primer/#Keys
In Protege, this is setting a "target for key" of callsign
for Clone
.
This works for inferring same individuals based on callsign, but doesn't produce the inference that Gregor was captured in the chase.
captureOf exactly 1 (Clone
and (callsign value "CC-5576"^^xsd:string))
I must be missing something in the modelling because adding the following is consistent:
not (captureOf value Gregor)
It appears that closure is needed over all Clones - not sure why Clone == {named clones here}
This doesn't seem worth it - apart from the maintenance nightmare, the reasoner also seems to really hit the wall making inferences about Chase_of_CT-5576
It would also be bad modelling as this is not the set of all clones:
{Axe , Bel , Bly , Boil , Boost , Broadside , Cameron , Chopper_Clone , Cody , Crosshair , Cut_Lawquane , Cutup , Denal , Droidbait , Echo , Fil , Fives , Flash , Fox , Gree , Gregor , Grey , Gus , Hawk , Hevy , Howzer , Hunter , Jek , Jesse , Jester , Kickback , Lucky , Matchstick , Niner , O-Niner , Oddball , Ponds , Punch , Razor , Rex , Rys , Sinker , Sketch , Slammer , Slick , Stak , Swoop , Tag , Tech , Thire , Tucker , Waxer , Wolffe , Wooley , Wrecker}
Even adding the key bumps classification time from ~6s to >20s
So, NO is the answer
A simple test case for this exists here: starwarsontology/test-keys.rdf at master · nickdrummond/starwarsontology
The question is, why does Event e only infer attendance by the individual Nick-1 (and any synonyms) if the Person class is closed, restricting the instances to those known?
Checked with Uli and she thinks the modelling is correct, and it seems HermiT does make this inference without the unnecessary closure, but Openllet does not (unfortunate as this is the reasoner we are using).
Actually, HermiT only infers that the 2 classes are equivalent, not that "e attendedBy Nick-1", which is what we were after. In fact Uli pointed out that we can assert all sorts about e that do not create inconsistencies. The addition of the closure may force HermiT to switch into a different OWL profile so behave a little better.
So, we can't use HermiT either really (and its still slow to classify - although fast navigating so maybe its worth thinking about in static scenarios)
Chase_of_CC-5576 identifies the captive by callsign. It would be good if we could infer this is Gregor.
Callsign is not functional - it really pertains to a given role It is not specified as a key - can't remember if this is possible in Protege. Might be an issue with rebels using different callsigns in different flight groups - perhaps use a different property?