@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix swrl: <http://www.w3.org/2003/11/swrl#>.
@prefix : <foo:bla#>.
:XYThing owl:hasKey (:x :y).
:child rdfs:range :XYThing.
:xy10 a :XYThing; :x 10; :y 10; :text "free".
:TenThing rdfs:subClassOf [ a owl:Restriction;
   owl:onProperty :child; owl:onClass :XYTen; owl:qualifiedCardinality 1].
:XYTen owl:intersectionOf
  ([ a owl:Restriction; owl:onProperty :x; owl:hasValue 10]
   [ a owl:Restriction; owl:onProperty :y; owl:hasValue 10]
   [ a owl:Restriction; owl:onProperty :text; owl:hasValue "thechild"]).
:OneChildThing rdfs:subClassOf [ a owl:Restriction;
    owl:onProperty :child; owl:qualifiedCardinality 1].
:tenTen a :TenThing; a :OneChildThing.  # forces the implicit node
# make this implicit node named by forcing "another" child
# of :tenTen without any properties: via hasKey, xyxy = xy10
# :tenTen :child :xyxy.
