RDFS Plus in SPARQL

A set of OWL RL rules to formalize the semantics of RDFS Plus.

Contact: Holger Knublauch

This documentation has been automatically generated using SWP with TopBraid from the SPIN profile at http://topbraid.org/spin/rdfsplus.


Rules Index: cax-eqc1 cax-eqc2 cax-sco eq-rep-o eq-rep-p eq-rep-s eq-sym eq-trans prp-dom prp-eqp1 prp-eqp2 prp-fp prp-ifp prp-inv1 prp-inv2 prp-rng prp-spo1 prp-symp prp-trp scm-cls scm-dom1 scm-dom2 scm-dp scm-eqc1 scm-eqc2 scm-eqp1 scm-eqp2 scm-op scm-rng1 scm-rng2 scm-sco scm-spo

Rules

cax-eqc1

# cax-eqc1
CONSTRUCT {
    ?x a ?c2 .
}
WHERE {
    ?c1 owl:equivalentClass ?c2 .
    ?x a ?c1 .
}

cax-eqc2

# cax-eqc2
CONSTRUCT {
    ?x a ?c1 .
}
WHERE {
    ?c1 owl:equivalentClass ?c2 .
    ?x a ?c2 .
}

cax-sco

# cax-sco
CONSTRUCT {
    ?x a ?c2 .
}
WHERE {
    ?c1 rdfs:subClassOf ?c2 .
    ?x a ?c1 .
}

eq-rep-o

# eq-rep-o
CONSTRUCT {
    ?s ?p ?o2 .
}
WHERE {
    ?o owl:sameAs ?o2 .
    ?s ?p ?o .
}

eq-rep-p

# eq-rep-p
CONSTRUCT {
    ?s ?p2 ?o .
}
WHERE {
    ?p owl:sameAs ?p2 .
    ?s ?p ?o .
}

eq-rep-s

# eq-rep-s
CONSTRUCT {
    ?s2 ?p ?o .
}
WHERE {
    ?s owl:sameAs ?s2 .
    ?s ?p ?o .
}

eq-sym

# eq-sym
CONSTRUCT {
    ?y owl:sameAs ?x .
}
WHERE {
    ?x owl:sameAs ?y .
}

eq-trans

# eq-trans
CONSTRUCT {
    ?x owl:sameAs ?z .
}
WHERE {
    ?x owl:sameAs ?y .
    ?y owl:sameAs ?z .
}

prp-dom

# prp-dom
CONSTRUCT {
    ?x a ?c .
}
WHERE {
    ?p rdfs:domain ?c .
    ?x ?p ?y .
}

prp-eqp1

# prp-eqp1
CONSTRUCT {
    ?x ?p2 ?y .
}
WHERE {
    ?p1 owl:equivalentProperty ?p2 .
    ?x ?p1 ?y .
}

prp-eqp2

# prp-eqp2
CONSTRUCT {
    ?x ?p1 ?y .
}
WHERE {
    ?p1 owl:equivalentProperty ?p2 .
    ?x ?p2 ?y .
}

prp-fp

# prp-fp
CONSTRUCT {
    ?y1 owl:sameAs ?y2 .
}
WHERE {
    ?p a owl:FunctionalProperty .
    ?x ?p ?y1 .
    ?x ?p ?y2 .
    FILTER (?y1 != ?y2) .
}

prp-ifp

# prp-ifp
CONSTRUCT {
    ?x1 owl:sameAs ?x2 .
}
WHERE {
    ?p a owl:InverseFunctionalProperty .
    ?x1 ?p ?y .
    ?x2 ?p ?y .
    FILTER (?x1 != ?x2) .
}

prp-inv1

# prp-inv1
CONSTRUCT {
    ?y ?p2 ?x .
}
WHERE {
    ?p1 owl:inverseOf ?p2 .
    ?x ?p1 ?y .
}

prp-inv2

# prp-inv2
CONSTRUCT {
    ?y ?p1 ?x .
}
WHERE {
    ?p1 owl:inverseOf ?p2 .
    ?x ?p2 ?y .
}

prp-rng

# prp-rng
CONSTRUCT {
    ?y a ?c .
}
WHERE {
    ?p rdfs:range ?c .
    ?x ?p ?y .
}

prp-spo1

# prp-spo1
CONSTRUCT {
    ?x ?p2 ?y .
}
WHERE {
    ?p1 rdfs:subPropertyOf ?p2 .
    ?x ?p1 ?y .
}

prp-symp

# prp-symp
CONSTRUCT {
    ?y ?p ?x .
}
WHERE {
    ?p a owl:SymmetricProperty .
    ?x ?p ?y .
}

prp-trp

# prp-trp
CONSTRUCT {
    ?x ?p ?z .
}
WHERE {
    ?p a owl:TransitiveProperty .
    ?x ?p ?y .
    ?y ?p ?z .
}

scm-cls

# scm-cls
CONSTRUCT {
    ?c rdfs:subClassOf ?c .
    ?c owl:equivalentClass ?c .
    ?c rdfs:subClassOf owl:Thing .
    owl:Nothing rdfs:subClassOf ?c .
}
WHERE {
    ?c a owl:Class .
}

scm-dom1

# scm-dom1
CONSTRUCT {
    ?p rdfs:domain ?c2 .
}
WHERE {
    ?p rdfs:domain ?c1 .
    ?c1 rdfs:subClassOf ?c2 .
}

scm-dom2

# scm-dom2
CONSTRUCT {
    ?p1 rdfs:domain ?c .
}
WHERE {
    ?p2 rdfs:domain ?c .
    ?p1 rdfs:subPropertyOf ?p2 .
}

scm-dp

# scm-dp
CONSTRUCT {
    ?p rdfs:subPropertyOf ?p .
    ?p owl:equivalentProperty ?p .
}
WHERE {
    ?p a owl:DatatypeProperty .
}

scm-eqc1

# scm-eqc1
CONSTRUCT {
    ?c1 rdfs:subClassOf ?c2 .
    ?c2 rdfs:subClassOf ?c1 .
}
WHERE {
    ?c1 owl:equivalentClass ?c2 .
}

scm-eqc2

# scm-eqc2
CONSTRUCT {
    ?c1 owl:equivalentClass ?c2 .
}
WHERE {
    ?c1 rdfs:subClassOf ?c2 .
    ?c2 rdfs:subClassOf ?c1 .
}

scm-eqp1

# scm-eqp1
CONSTRUCT {
    ?p1 rdfs:subPropertyOf ?p2 .
    ?p2 rdfs:subPropertyOf ?p1 .
}
WHERE {
    ?p1 owl:equivalentProperty ?p2 .
}

scm-eqp2

# scm-eqp2
CONSTRUCT {
    ?p1 owl:equivalentProperty ?p2 .
}
WHERE {
    ?p1 rdfs:subPropertyOf ?p2 .
    ?p2 rdfs:subPropertyOf ?p1 .
}

scm-op

# scm-op
CONSTRUCT {
    ?p rdfs:subPropertyOf ?p .
    ?p owl:equivalentProperty ?p .
}
WHERE {
    ?p a owl:ObjectProperty .
}

scm-rng1

# scm-rng1
CONSTRUCT {
    ?p rdfs:range ?c2 .
}
WHERE {
    ?p rdfs:range ?c1 .
    ?c1 rdfs:subClassOf ?c2 .
}

scm-rng2

# scm-rng2
CONSTRUCT {
    ?p1 rdfs:range ?c .
}
WHERE {
    ?p2 rdfs:range ?c .
    ?p1 rdfs:subPropertyOf ?p2 .
}

scm-sco

# scm-sco
CONSTRUCT {
    ?c1 rdfs:subClassOf ?c3 .
}
WHERE {
    ?c1 rdfs:subClassOf ?c2 .
    ?c2 rdfs:subClassOf ?c3 .
}

scm-spo

# scm-spo
CONSTRUCT {
    ?p1 rdfs:subPropertyOf ?p3 .
}
WHERE {
    ?p1 rdfs:subPropertyOf ?p2 .
    ?p2 rdfs:subPropertyOf ?p3 .
}