The EdgeChange class has an about_edge slot of range Edge, which itself has three slots subject, predicate, and object to represent a typical RDF triple / OWL axiom / graph edge, etc.
But several of the subclasses of EdgeChange have also their own subject, predicate, object fields, in addition to the about_edge that they inherit from EdgeChange. For example EdgeCreation, PlaceUnder, EdgeDeletion…
Why is that so, and what is the intended way of using those classes? For example, is the subject of the edge to be created in EdgeCreation intended to be stored in EdgeCreation.subject or in EdgeCreation.about_edge.subject?
Other subclasses of EdgeChange don’t have their own subject, predicate, object slots and have instead only the about_edge inherited from EdgeChange (for example NodeMove), suggesting that about_edge is the correct way to represent edges and that the “flattened” subject, predicate, and object slots in the other classes might be a mistake.
The
EdgeChange
class has anabout_edge
slot of rangeEdge
, which itself has three slotssubject
,predicate
, andobject
to represent a typical RDF triple / OWL axiom / graph edge, etc.But several of the subclasses of
EdgeChange
have also their ownsubject
,predicate
,object
fields, in addition to theabout_edge
that they inherit fromEdgeChange
. For exampleEdgeCreation
,PlaceUnder
,EdgeDeletion
…Why is that so, and what is the intended way of using those classes? For example, is the subject of the edge to be created in
EdgeCreation
intended to be stored inEdgeCreation.subject
or inEdgeCreation.about_edge.subject
?Other subclasses of
EdgeChange
don’t have their ownsubject
,predicate
,object
slots and have instead only theabout_edge
inherited fromEdgeChange
(for exampleNodeMove
), suggesting thatabout_edge
is the correct way to represent edges and that the “flattened”subject
,predicate
, andobject
slots in the other classes might be a mistake.