Utility templates
Dense property
@prefix : <http://odp.aspectowl.xyz/util/0.1#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ottr: <http://ns.ottr.xyz/0.4/> .
@prefix o-owl-re: <http://tpl.ottr.xyz/owl/restriction/0.1/> .
@prefix o-owl-ax: <http://tpl.ottr.xyz/owl/axiom/0.1/> .
@prefix o-rdf: <http://tpl.ottr.xyz/rdf/0.1/> .
:DenseProperty [ ! owl:ObjectProperty ?R ] :: {
# Property Chain
o-rdf:Type(?R, owl:ObjectProperty),
# o-owl-ax:SubObjectPropertyOfChain(?R, (?R, ?R)),
o-owl-ax:SubObjectPropertyOfChain(?R, (:r, :r)),
# owl:Thing SubClassOf: not (R some Self)
o-owl-ax:SubClassOf(owl:Thing, ?_b0),
o-rdf:Type(?_b0, owl:Class),
ottr:Triple(?_b0, owl:complementOf, ?_b1),
o-rdf:Type(?_b1, owl:Restriction),
ottr:Triple(?_b1, owl:onProperty, ?R),
ottr:Triple(?_b1, owl:hasSelf, true)
} .
Coming soon.
Euclidian property
@prefix : <http://odp.aspectowl.xyz/util/0.1#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix swrl: <http://www.w3.org/2003/11/swrl#> .
@prefix ottr: <http://ns.ottr.xyz/0.4/> .
@prefix o-owl-re: <http://tpl.ottr.xyz/owl/restriction/0.1/> .
@prefix o-owl-ax: <http://tpl.ottr.xyz/owl/axiom/0.1/> .
@prefix o-rdf: <http://tpl.ottr.xyz/rdf/0.1/> .
:EuclidianProperty [ ! owl:ObjectProperty ?R ] :: {
o-rdf:Type(?R, owl:ObjectProperty),
# Rule: R(?w, ?v), R(?w, ?u) -> R(?v, ?u)
o-rdf:Type(<urn:swrl#u>, swrl:Variable),
o-rdf:Type(<urn:swrl#v>, swrl:Variable),
o-rdf:Type(<urn:swrl#w>, swrl:Variable),
o-rdf:Type(?_rule, swrl:Imp),
ottr:Triple(?_rule, swrl:body, ?_body),
o-rdf:Type(?_body, swrl:AtomList),
ottr:Triple(?_body, rdf:first, ?_b0),
o-rdf:Type(?_b0, swrl:IndividualPropertyAtom),
ottr:Triple(?_b0, swrl:propertyPredicate, ?R),
ottr:Triple(?_b0, swrl:argument1, <urn:swrl#w>),
ottr:Triple(?_b0, swrl:argument2, <urn:swrl#v>),
ottr:Triple(?_body, rdf:rest, ?_b1),
o-rdf:Type(?_b1, swrl:AtomList),
ottr:Triple(?_b1, rdf:first, ?_b2),
o-rdf:Type(?_b2, swrl:IndividualPropertyAtom),
ottr:Triple(?_b2, swrl:propertyPredicate, ?R),
ottr:Triple(?_b2, swrl:argument1, <urn:swrl#w>),
ottr:Triple(?_b2, swrl:argument2, <urn:swrl#u>),
ottr:Triple(?_b2, rdf:rest, rdf:nil),
ottr:Triple(?_rule, swrl:head, ?_head),
o-rdf:Type(?_head, swrl:AtomList),
ottr:Triple(?_head, rdf:first, ?_b3),
o-rdf:Type(?_b3, swrl:IndividualPropertyAtom),
ottr:Triple(?_b3, swrl:propertyPredicate, ?R),
ottr:Triple(?_b3, swrl:argument1, <urn:swrl#v>),
ottr:Triple(?_b3, swrl:argument2, <urn:swrl#u>),
ottr:Triple(?_head, rdf:rest, rdf:nil)
} .
Coming soon.
Serial property
@prefix : <http://odp.aspectowl.xyz/util/0.1#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ottr: <http://ns.ottr.xyz/0.4/> .
@prefix o-owl-re: <http://tpl.ottr.xyz/owl/restriction/0.1/> .
@prefix o-owl-ax: <http://tpl.ottr.xyz/owl/axiom/0.1/> .
@prefix o-rdf: <http://tpl.ottr.xyz/rdf/0.1/> .
:SerialProperty [ ! owl:ObjectProperty ?R ] :: {
o-rdf:Type(?R, owl:ObjectProperty),
# owl:Thing SubClassOf: R some owl:Thing
o-owl-ax:SubClassOf(owl:Thing, ?_b0),
o-owl-re:ObjectSomeValuesFrom(?_b0, ?R, owl:Thing)
} .
Coming soon.
Shift-reflexive property
@prefix : <http://odp.aspectowl.xyz/util/0.1#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix swrl: <http://www.w3.org/2003/11/swrl#> .
@prefix ottr: <http://ns.ottr.xyz/0.4/> .
@prefix o-owl-re: <http://tpl.ottr.xyz/owl/restriction/0.1/> .
@prefix o-owl-ax: <http://tpl.ottr.xyz/owl/axiom/0.1/> .
@prefix o-rdf: <http://tpl.ottr.xyz/rdf/0.1/> .
:ShiftReflexiveProperty [ ! owl:ObjectProperty ?R ] :: {
o-rdf:Type(?R, owl:ObjectProperty),
o-rdf:Type(?_R1, owl:ObjectProperty),
ottr:Triple(?_R1, owl:inverseOf, ?R),
o-rdf:Type(?_b0, owl:Class),
o-owl-re:SomeValuesFrom(?_b0, ?_R1, owl:Thing),
o-rdf:Type(?_b1, owl:Restriction),
ottr:Triple(?_b1, owl:onProperty, ?R),
ottr:Triple(?_b1, owl:hasSelf, true),
o-owl-ax:SubClassOf(?_b0, ?_b1)
} .
Coming soon.
EquivUnionHasValueOneOf
@prefix : <http://odp.aspectowl.xyz/util/0.1#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ottr: <http://ns.ottr.xyz/0.4/> .
@prefix o-owl-re: <http://tpl.ottr.xyz/owl/restriction/0.1/> .
@prefix o-owl-ax: <http://tpl.ottr.xyz/owl/axiom/0.1/> .
@prefix o-rdf: <http://tpl.ottr.xyz/rdf/0.1/> .
:EquivUnionHasValueOneOf [ ! owl:Class ?C, ! owl:ObjectProperty ?R, ? owl:NamedIndividual ?I ] :: {
o-owl-re:HasValue(?_hv, ?R, ?I),
o-owl-re:ObjectOneOf(?_oo, (?I)),
o-owl-ax:EquivObjectUnionOf(?C, (?_hv, ?_oo))
} .
Coming soon.