Source code for PyOpenWorm.relationship

from .dataObject import DataObject


[docs]class Relationship(DataObject): """ A Relationship is typically related to a property and is an object that one points to for talking about the property relationship. For SimpleProperty objects, this acts like a RDF Reified triple. """ class_context = 'http://openworm.org/schema' def __init__(self, s=None, p=None, o=None, **kwargs): super(Relationship, self).__init__(**kwargs) Relationship.ObjectProperty('subject', owner=self, multiple=False) Relationship.ObjectProperty('property', owner=self, multiple=False) Relationship.UnionProperty('object', owner=self, multiple=False) Relationship.DatatypeProperty('certainty', owner=self, multiple=False) if s is not None: self.subject(s) if p is not None: self.property(p) if o is not None: self.object(o)
[docs] def defined_augment(self): return (self.subject.has_defined_value() and self.property.has_defined_value() and self.object.has_defined_value())
[docs] def identifier_augment(self): data = (self.subject, self.property, self.object) data = "".join(x.defined_values[0].identifier.n3() for x in data) return self.make_identifier(data)
def __repr__(self): s = "Relationship(" flip = False for x in ('subject', 'property', 'object'): if getattr(self, x).has_defined_value(): if flip: s += ", " s += x[0] + "=" + repr(getattr(self, x).defined_values[0].idl) flip = True s += ")" return s
__yarom_mapped_classes__ = (Relationship,)