CONSTRUCT {?x ?r ?y . ?s ?r1 ?k} FROM WHERE { {?x rdfs:subClassOf dul:Process} UNION {?x rdfs:subClassOf invo:Process_Relation} UNION {?s rdfs:domain ?x . ?s ?r1 ?k} UNION {?s rdfs:range ?x . ?s ?r1 ?k} } SELECT ?x ?r FROM WHERE { ?x rdfs:subClassOf ?r . ?r rdf:type owl:Restriction } ;;;finds candidate frame-like classes: SELECT DISTINCT ?x WHERE { {{?r1 rdfs:domain ?x} UNION {?r1 rdfs:range ?x} UNION {?x rdfs:subClassOf ?restr1 . ?restr1 owl:onProperty ?r1}} . {{?r2 rdfs:domain ?x} UNION {?r2 rdfs:range ?x} UNION {?x rdfs:subClassOf ?restr2 . ?restr2 owl:onProperty ?r2}} . {{?r3 rdfs:domain ?x} UNION {?r3 rdfs:range ?x} UNION {?x rdfs:subClassOf ?restr3 . ?restr3 owl:onProperty ?r3}} FILTER (?r1 != ?r2) FILTER (?r2 != ?r3) FILTER (?r1 != ?r3) } CONSTRUCT { :Aggregate ?s ?x . ?r ?t ?y } WHERE { {{?r1 rdfs:domain :Aggregate} UNION {?r1 rdfs:range :Aggregate} UNION {:Aggregate rdfs:subClassOf ?restr1 . ?restr1 owl:onProperty ?r1}} . {{?r2 rdfs:domain :Aggregate} UNION {?r2 rdfs:range :Aggregate} UNION {:Aggregate rdfs:subClassOf ?restr2 . ?restr2 owl:onProperty ?r2}} . {{?r3 rdfs:domain :Aggregate} UNION {?r3 rdfs:range :Aggregate} UNION {:Aggregate rdfs:subClassOf ?restr3 . ?restr3 owl:onProperty ?r3}} . FILTER (?r1 != ?r2) . FILTER (?r2 != ?r3) . FILTER (?r1 != ?r3) . {{?r rdfs:domain :Aggregate . ?r rdfs:range ?range} UNION {:Aggregate rdfs:subClassOf ?restr . ?restr owl:onProperty ?r}} . :Aggregate ?s ?x . ?r ?t ?y } CONSTRUCT { :Consume ?s ?x . ?r ?t ?y } WHERE { {{?r1 rdfs:domain :Consume} UNION {?r1 rdfs:range :Consume} UNION {:Consume rdfs:subClassOf ?restr1 . ?restr1 owl:onProperty ?r1}} . {{?r2 rdfs:domain :Consume} UNION {?r2 rdfs:range :Consume} UNION {:Consume rdfs:subClassOf ?restr2 . ?restr2 owl:onProperty ?r2}} . {{?r3 rdfs:domain :Consume} UNION {?r3 rdfs:range :Consume} UNION {:Consume rdfs:subClassOf ?restr3 . ?restr3 owl:onProperty ?r3}} . FILTER (?r1 != ?r2) . FILTER (?r2 != ?r3) . FILTER (?r1 != ?r3) . {{?r rdfs:domain :Consume . ?r rdfs:range ?range} UNION {:Consume rdfs:subClassOf ?restr . ?restr owl:onProperty ?r}} . :Consume ?s ?x . ?r ?t ?y }