def _create_triples(self, ontology): ClassConstruct._create_triples(self, ontology) ontology.add_triple(self.storid, rdf_type, owl_restriction) ontology.add_triple(self.storid, owl_onproperty, self.property.storid) if (self.type == SOME) or (self.type == ONLY) or ( self.type == VALUE) or (self.type == HAS_SELF): value = _universal_datatype_2_abbrev.get( self.value) or ontology.world._to_rdf(self.value) ontology.add_triple(self.storid, self.type, value) else: if self.value is None: if not self.cardinality is None: ontology.add_triple( self.storid, _qualified_2_non_qualified[self.type], '"%s"%s' % (self.cardinality, _non_negative_integer)) else: if not self.cardinality is None: ontology.add_triple( self.storid, self.type, '"%s"%s' % (self.cardinality, _non_negative_integer)) value = _universal_datatype_2_abbrev.get(self.value) if value: ontology.add_triple(self.storid, owl_ondatarange, value) else: value = ontology.world._to_rdf(self.value) ontology.add_triple(self.storid, owl_onclass, value)
def _range_changed(Prop, old): new = frozenset(Prop.range) old = frozenset(old) for x in old - new: x2 = _universal_datatype_2_abbrev.get(x) or x.storid Prop.namespace.ontology.del_triple(Prop.storid, rdf_range, x2) if isinstance(x, ClassConstruct): x._set_ontology(None) for x in new - old: if isinstance(x, ClassConstruct): x._set_ontology(Prop.namespace.ontology) x2 = _universal_datatype_2_abbrev.get(x) or x.storid Prop.namespace.ontology.add_triple(Prop.storid, rdf_range, x2)
def _range_changed(Prop, old): new = frozenset(Prop.range) old = frozenset(old) for x in old - new: x2 = _universal_datatype_2_abbrev.get(x) or x.storid Prop.namespace.ontology._del_obj_triple_spo(Prop.storid, rdf_range, x2) if isinstance(x, Construct): x._set_ontology(None) for x in new - old: if isinstance(x, Construct): x = x._set_ontology_copy_if_needed(Prop.namespace.ontology, Prop.range) x2 = _universal_datatype_2_abbrev.get(x) or x.storid Prop.namespace.ontology._add_obj_triple_spo(Prop.storid, rdf_range, x2) if "_range_iri" in Prop.__dict__: del Prop._range_iri
def _set_list(self, bnode, l): if not l: self.add_triple(bnode, rdf_first, rdf_nil) self.add_triple(bnode, rdf_rest, rdf_nil) return for i in range(len(l)): self.add_triple( bnode, rdf_first, _universal_datatype_2_abbrev.get(l[i]) or self._to_rdf(l[i])) if i < len(l) - 1: bnode_next = self.world.new_blank_node() self.add_triple(bnode, rdf_rest, bnode_next) bnode = bnode_next else: self.add_triple(bnode, rdf_rest, rdf_nil)