universal quantification ontology

I just devise an ontology this morning.. it is originated from the rule...

{ sig:connectSignalTo rdf:type rdf:Property ;
                      universal:domain sig:OutputSignal ;
                      universal:range sig:InputSignal ;
                      universal:subPropertyOf gom:connectTo .
  ?S gom:connectTo ?O ;
     rdf:type sig:OutputSignal .
  ?O rdf:type sig:InputSignal . }
=> { ?S sig:connectSignalTo ?O . } .

I wanted to express the rule purely using the vocabulary of RDF schema in fact. I fail to do so because the 3 vocabularies, rdfs:domain, rdfs:range and rdfs:subPropertyOf, are not functional. In this sense, the semantic inference of the above rule cannot be established..

Below is the schema and the semantics of the ontology..


--
## schema
universal:domain rdf:type owl:FunctionalProperty ;
                          rdfs:subPropertyOf rdfs:domain .
universal:range rdf:type owl:FunctionalProperty ;
                         rdfs:subPropertyOf rdfs:range .
universal:subPropertyOf rdf:type owl:FunctionalProperty ;
                                 rdfs:subPropertyOf rdfs:subProperty ..

## semantics
##

#uni0
{ ?P rdf:type rdf:Property ;
     universal:domain ?D0 ;
     universal:range ?R0 ;
     universal:subPropertyOf ?P0 .
  ?S ?P0 ?O ;
     rdf:type ?D0 .
  ?O rdf:type ?R0 .
}
=> { ?S ?P ?O . } .

#uni1
#
# CEXT(S(D0)) ⊆ CEXT(S(D1)) ∩ ... ∩ CEXT(S(Dn))
#
# CEXT(S(D0)) ⊆ CEXT(S(D1)) if there exists <P,D0> ∈ EXT(universal:domain) and <P,D1> ∈ EXT(rdfs:domain)
# <P,D0a> ∈ EXT(universal:domain) and <P,D0b> ∈ EXT(universal:domain) only if D0a = D0b
#
{ ?P universal:domain ?D0 ;
     rdfs:domain ?D1 . }
=> { ?D0 rdfs:subPropertyOf ?D1 . } .

#uni2
#
# CEXT(S(R0)) ⊆ CEXT(S(R1)) ∩ ... ∩ CEXT(S(Rn))
#
# CEXT(S(R0)) ⊆ CEXT(S(R1)) if there exists <P,R0> ∈ EXT(universal:range) and <P,R1> ∈ EXT(rdfs:range)
# <P,R0a> ∈ EXT(universal:range) and <P,R0b> ∈ EXT(universal:range) only if R0a = R0b
#
{ ?P universal:range ?R0 ;
     rdfs:range ?R1 . }
=> { ?R0 rdfs:subPropertyOf ?R1 . } .

#uni3
#
# CEXT(S(P0)) ⊆ CEXT(S(P1)) ∩ ... ∩ CEXT(S(Pn))
#
# CEXT(S(P0)) ⊆ CEXT(S(P1)) if there exists <P,P0> ∈ EXT(universal:subPropertyOf) and <P,D1> ∈ EXT(rdfs:subPropertyOf)
# <P,P0a> ∈ EXT(universal:subPropertyOf) and <P,P0b> ∈ EXT(universal:subPropertyOf) only if P0a = P0b
#
{ ?P universal:subPropertyOf ?P0 ;
     rdfs:subPropertyOf ?P1 . }
=> { ?P0 rdfs:subPropertyOf ?P1 . } .


--
Jeremy

Received on Sunday, 10 April 2005 04:34:00 UTC