- From: Aidan Hogan <aidhog@gmail.com>
- Date: Wed, 22 Jan 2020 04:45:24 -0300
- To: Antoine Zimmermann <antoine.zimmermann@emse.fr>, Patrick J Hayes <phayes@ihmc.us>
- Cc: Henry Story <henry.story@bblfish.net>, Jos De Roo <jos.deroo@agfa.com>, semantic-web <semantic-web@w3.org>
off topic ... On 2020-01-21 5:48, Antoine Zimmermann wrote: [snip] > D-entailment can be horribly complicated. Consider this example: > > rdf:Property rdfs:subClassOf xsd:boolean . > > Is this RDFS-recognising {xsd:boolean}-consistent? No. (If I'm not mistaken.) First D-entailment (which must recognise xsd:string) will give us: xsd:string rdf:type rdfs:Datatype . #1 [rdfs1] "a" rdf:type xsd:string . #2 [semantic conditions] "b" rdf:type xsd:string . ... I will use generalised RDF to make (my) life easier. What we'll try to prove is that given: rdf:Property rdfs:subClassOf xsd:boolean . #AZ the following triple must hold: "a" rdf:type rdf:Property . #goal since when it is combined with #AZ and rdfs9, it gives: "a" rdf:type xsd:boolean . which should be D recognising-xsd:boolean-unsatisfiable. ================================================================ We'll need some RDFS axiomatic triples: rdfs:domain rdfs:domain rdf:Property . #A1 rdfs:range rdfs:domain rdf:Property . #A2 rdfs:subPropertyOf rdfs:domain rdf:Property . #A3 rdf:type rdfs:range rdfs:Class . #A4 rdf:type rdf:type rdf:Property . #A5 ================================================================ Given: rdf:Property rdfs:subClassOf xsd:boolean . We now have (at most) two possible "relations" in IP. Per the pigeonhole principle, at least one pair here must refer to the same property: rdf:type rdfs:domain rdfs:range This leaves the following three cases. ================================================================ Case 1: rdf:type and rdfs:domain refer to the same property. "a" rdfs:domain xsd:string . #3 [#2 and Case 1] "a" rdf:type rdf:Property . #goal [#3, #A1 and rdfs2] ================================================================ Case 2: rdf:type and rdfs:range refer to the same property. "a" rdfs:range xsd:string . #4 [#2 and Case 2] "a" rdf:type rdf:Property . #goal [#4, #A2 and rdfs2] ================================================================ Case 3: rdfs:domain and rdfs:range refer to the same property. rdf:type rdfs:domain rdfs:Class . #5 [#A4 and Case 3] "a" rdf:type rdf:Class . #6 [#2, #5 and rdfs2] "a" rdfs:subClassOf rdfs:Resource . #7 [#6 and rdfs8] I don't see a good way to make direct progress from here, but within Case 3, we can always invoke the pigeonhole principle again. At least one pair here must refer to the same property: rdfs:domain/rdfs:range (already equivalent under Case 3) rdfs:subClassOf rdfs:subPropertyOf This leaves three sub-cases. ---------------------------------------------------------------- Case 3.1: rdfs:domain, rdfs:range and rdfs:subClassOf all refer to the same property. "a" rdf:domain rdfs:Resource . #8 [#7 and Case 3.1] "a" rdf:type rdf:Property . #goal [#8, #A1 and rdfs2] ---------------------------------------------------------------- Case 3.2: rdfs:subClassOf and rdfs:subPropertyOf refer to the same property. "a" rdfs:subPropertyOf rdfs:Resource . #9 [#7 and Case 3.2] "a" rdf:type rdf:Property . #goal [#9, #A3 and rdfs2] ---------------------------------------------------------------- Case 3.3: rdfs:domain, rdfs:range and rdfs:subPropertyOf all refer to the same property. It will make (my) life easier to observe that within Case 3.3, either: - Case 3.3.1: rdfs:subClassOf refers to the same property as rdfs:domain, rdfs:range and rdfs:subPropertyOf, or - Case 3.3.2: rdfs:subClassOf refers to the same property as rdf:type. Since Case 3.3.1 is covered by Case 3.2, we assume Case 3.3.2. rdf:type rdfs:subClassOf rdf:Property . #10 [#A5 and Case 3.3.2] rdf:type rdfs:subPropertyOf rdf:type . #11 [#A5 and rdfs6] rdf:type rdfs:domain rdf:type . #12 [#11 and Case 3.3] "a" rdf:type rdf:type . #13 [#2, #12 and rdfs2] "a" rdf:type rdf:Property . #goal [#10, #13 and rdfs9] ================================================================ In all cases given to us by the pigeons we infer the goal: "a" rdf:type rdf:Property . Hence rdf:Property rdfs:subClassOf xsd:boolean . ... is not RDFS-recognising {xsd:boolean}-consistent. So what's horribly complicated about that? :) ================================================================ Disclaimer: Possibly I made a mistake somewhere. Possibly there is a much simpler argument. Fun question for an exam!
Received on Wednesday, 22 January 2020 07:45:30 UTC