This is a follow-on to PR 512, which, among other things, initiated a metaclass design pattern. I have no complaints about the pattern's design, but did come across an implementation detail that I think would be helpful to spell more explicitly.
The instances of metaclasses are currently subjects of rdfs:subClassOf, but are not themselves rdfs:Classes. There are a few benefits to being explicit that these nodes are rdfs:Classes:
- If they are classes, the OWL casting for Issue 246 can just look for instances of
rdfs:Class.
- Seeing the extra
rdf:type on a rdfs:Class emphasizes that these are intentionally members of meta-classes; and, likewise, there are meta-classes floating around somewhere.
- There is a reduced chance of confusion from seeing
rdfs:subClassOf on something that is not explicitly an rdfs:Class.
I came across the now-missing rdfs:Class statements because a prior state of Issue 246's PR had already done the casting of sh:SelectExpression and sh:SPARQLExprExpression, but post PR 512, it looked like they'd dropped, and I became curious if they'd migrated to shnex.ttl. They didn't; they'd just lost the a rdfs:Class triple I'd been relying on in my CONSTRUCT query.
I'll file a PR momentarily to add a rdfs:Class to all the subjects of rdfs:subClassOf.
This is a follow-on to PR 512, which, among other things, initiated a metaclass design pattern. I have no complaints about the pattern's design, but did come across an implementation detail that I think would be helpful to spell more explicitly.
The instances of metaclasses are currently subjects of
rdfs:subClassOf, but are not themselvesrdfs:Classes. There are a few benefits to being explicit that these nodes arerdfs:Classes:rdfs:Class.rdf:typeon ardfs:Classemphasizes that these are intentionally members of meta-classes; and, likewise, there are meta-classes floating around somewhere.rdfs:subClassOfon something that is not explicitly anrdfs:Class.I came across the now-missing
rdfs:Classstatements because a prior state of Issue 246's PR had already done the casting ofsh:SelectExpressionandsh:SPARQLExprExpression, but post PR 512, it looked like they'd dropped, and I became curious if they'd migrated toshnex.ttl. They didn't; they'd just lost thea rdfs:Classtriple I'd been relying on in myCONSTRUCTquery.I'll file a PR momentarily to add
a rdfs:Classto all the subjects ofrdfs:subClassOf.