Closed GeorgFerdinandSchneider closed 2 years ago
Needs to be checked whether this violates OWL DL as mentioned by @maximelefrancois86 https://github.com/w3c-lbd-cg/bot/issues/47#issuecomment-625315167
Is it correct to say that bot:hasSubElement is the transitive closure of bot:containsElement, which is its "step" property?
If so then the usual way is this rather than owl:propertyChainAxiom (eg see skos:broader and skos:broaderTransitive):
bot:containsElement rdfs:subPropertyOf bot:hasSubElement.
bot:hasSubElement owl:TransitiveProperty
However, you might also want to add this definition, because it can be implemented more efficiently, see why at http://rawgit2.com/VladimirAlexiev/my/master/pubs/extending-owl2/index.html#sec-3-1
bot:containsElement rdfs:subPropertyOf bot:hasSubElement.
bot:hasSubElement ptop:transitiveOver bot:containsElement.
bot:containsElement
is used between a bot:Zone
and a bot:Element
(both are disjoint), while bot:hasSubElement
is used between two instances of bot:Element
. Therefore, bot:containsElement
cannot be a subproperty of bot:hasSubElement
.
Or with some example data:
# asserted ABox triples (added classes for readability)
:space1 a bot:Space ;
bot:containsElement :column1 .
:column1 a bot:Element ;
bot:hasSubElement :column1-capital .
:column1-capital a bot:Element ;
bot:hasSubElement :column1-capital-acanthusLeaf3 .
:column1-capital-acanthusLeaf3 a bot:Element .
# should infer
:space1 bot:containsElement :column1-capital , :column1-capital-acanthusLeaf3 .
:column1 bot:hasSubElement :column1-capital-acanthusLeaf3 .
which requires two updates to BOT:
bot:hasSubElement a owl:TransitiveProperty
bot:containsElement owl:propertyChainAxiom ( bot:containsElement bot:hasSubElement )
Both regular OWL statements can be complemented/replaced by the following statements using terminology from Ontotext's Proton ontology:
bot:hasSubElement ptop:transitiveOver bot:hasSubElement
bot:hasSubElement ptop:transitiveOver bot:containsElement
There might be other property chain axioms in BOT that might be complemented by similar statements using the Proton ontology. Personally, I would have some reservations against it, as it is more specific/rich compared to the standardized OWL terminology and requires at least a rule engine. Having both OWL and Proton statements might also confuse users. In other words, this might work out-of-the-box in Ontotext GraphDB but will need some tweeking before it works in, let's say, Fuseki.
Instead of merging these Proton statements in the main BOT ontology document with "regular OWL statements", is it an option to create and publish a separate but synchronized version of BOT (automatically generated) where such OWL statements are replaced by Proton terminology? Any preferences to retrieve this separate RDF document (adjusted content negotation, ref. from main ontology to separate RDF doc, etc.)?
P.S. Is there a Turtle or RDF/XML serialization available of Proton? I can only retrieve the HTML with embedded RDFa from http://www.ontotext.com/proton/protontop#
Hi,
When playing around with transitivity and property chain axioms, keep in mind to check that the ontology remains in OWL 2 DL.
@mathib see http://www.ontotext.com/proton/protontop.ttl or http://www.ontotext.com/proton/protontop.rdf. Conneg doesn't work though, I'll raise an issue.
Yes, I think that having a separate "module" that uses the ptop way is the best approach. Thanks!
During the W3C-LBD-CG call of the 23rd of March, the group decided the following:
add to v0.4.0:
bot:hasSubElement a owl:TransitiveProperty .
will not be added:bot:containsElement owl:propertyChainAxiom (bot:containsElement bot:hasSubElement)
@VladimirAlexiev : feel free to add a separate module using ptop in the new v0.4.0 branch.
As of https://github.com/w3c-lbd-cg/bot/issues/47
with a comment by @mathib (https://github.com/w3c-lbd-cg/bot/issues/47#issuecomment-621215340):