Re: is rdf a regular logic? RIF? was: Coherent Logic (a.k.a Geometric Logic) and RDF?

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