def add_property_definition(self, concept: RF2Files.Concept, concept_uri: URIRef) -> None:
"""
Add a property definition
:param concept: Concept entry for the given property
:param concept_uri: Concept URI
:return:
"""
parents = [parent for parent in self._relationships.parents(concept.id)
if concept.id != Concept_model_attribute_sctid]
if len(parents) > 1 and concept.definitionStatusId == Defined_sctid:
target, collection = intersection(self)
[collection.append(as_uri(parent)) for parent in parents]
self.add_t((concept_uri, OWL.equivalentProperty, target), self._stats.num_properties)
else:
[self.add_t((concept_uri, RDFS.subPropertyOf, as_uri(parent)), self._stats.num_properties)
for parent in parents]
# add an owl:propertyChain assertion for $subject if is in the RIGHT_ID
if concept.id in self._context.RIGHT_ID:
node = BNode()
self.add_t((node, RDFS.subPropertyOf, concept_uri), None)
coll = BNode()
Collection(self, coll, [concept_uri, as_uri(self._context.RIGHT_ID[concept.id])])
self.add_t((node, OWL.propertyChain, coll), self._stats.num_propchains)
评论列表
文章目录