One Good Hack Deserves Another
- Michael DeBellis
- Nov 9, 2023
- 2 min read
Updated: Nov 10, 2023
I know it's a hack but something I find useful (and I've seen other people do this as well) is to group datatype properties under a super-property. For ontologies with real data you often end up with many data properties. It can be useful in tools like Protégé to group properties together under super-properties. E.g., all the properties related to the Person class under a personProperty super property. The problem is that when you run the reasoner, you end up essentially doubling the number of datatype property values with useless triples. Also, most reasoners don't allow you to turn this off. E.g., in Protégé with Pellet you can uncheck the super properties box in Reasoner>Configure but it does it anyway. This just happened to me with a large ontology in AllegroGraph and it caused problems for our GUI because it was cluttered with all these redundant values. I wrote the following query to remove these redundant triples:
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
DELETE {?s ?sp ?o.}
WHERE {?sp a owl:DatatypeProperty.
?dp rdfs:subPropertyOf ?sp.
?s ?sp ?o.
FILTER(?sp != ?dp)}
I first wrote it without the FILTER but that ended up deleting all the data property values because properties are relations in logic and relations are sets and a set is always a subset of itself. So without the FILTER statement you end up deleting all your datatype property values. Also, if you want to exclude one or more super-properties from the deletion (i.e., in that case you DO want those extra triples) you can just add the name of that datatype property into the FILTER. E.g., suppose you want to retain the extra values for ex:fooSuperProperty. Just add the appropriate IRI for the ex prefix and do:
DELETE {?s ?sp ?o.}
WHERE {?sp a owl:DatatypeProperty.
?dp rdfs:subPropertyOf ?sp.
?s ?sp ?o.
FILTER(?sp != ?dp && ?sp != ex:fooSuperProperty)}
I've added this as a new file with comments in my GitHub repository of useful SPARQL queries: https://github.com/mdebellis/SPARQL_Tools
Maybe it's the name, link or the urban legend link of its origin, or both, link but the Crash can seem at first like a fairly wacky design. After all, the idea of "crashing" a Cartier watch would seem to imply a distortion that's both radical and random, relative to other Cartier designs. In fact, the design is extremely refined and every detail has been thoroughly thought out, so that the final effect, while certainly unusual, has all the classicism and dignity of any Tank Louis Cartier.
While I would like to say this is the link most complicated pick in the roundup, the chronograph function on this vintage Minerva is, sadly, not functional. But even if this piece isn't race-track ready, I would argue link that when you're dealing with vintage pieces, it's often the quirks of the aging link process that make them even more loveable. With its Art Deco design, two-tone champagne dial, 36mm round case, and all that 18k yellow gold, there's a lot to love here.
Davis link Jewelers is the go-to watch link destination in link Louisville. We have fostered an environment of enthusiasm and passion for watch collecting. From hosting events, seeking upcoming and premier watch brands, and starting a watch club, we fully embrace the timepiece community.