@prefix rec:. @prefix contact:. @prefix dc:. @prefix doc:. @prefix trd:. @prefix mat:. @prefix rdf: . @prefix log: . @prefix mtm:. @prefix :<#>. <> dc:title "Filter to keep only the relevant data from the merging of tr.rdf and matrix-base.n3 done by merge-tr-matrix.n3". @forAll :WORK, :DOC, :STATUS, :P, :X, :P2, :Y. # For any work identified as being part of the matrix (in matrix-base.n3) # we keep only the interesting properties (as defined # in merge-tr-matrix.n3) { :WORK a mat:Work; :P :X. :P a mtm:Interesting. :X log:notEqualTo mat:Work. } log:implies { :WORK a mat:Work; :P :X. }. # RFC are special cases, since they don't appear in tr.rdf { :WORK a mat:Work; mat:status mat:RFC. } log:implies { :WORK a mat:Work; mat:status mat:RFC. }. # From tr.rdf, we keep only those that have a status making them # good for the Matrix (defined as mtm:Status in merge-tr-matrix) { :DOC doc:versionOf :WORK; a :STATUS; :P :X. :STATUS a mtm:Status. :WORK a mat:Work; doc:version :DOC. :P a mtm:Interesting. } log:implies { :WORK a mat:Work; :P :X; mat:status :STATUS. }. # We keep interesting properties of objects of interesting properties # not very elegant, but I don't know how to do better { :WORK :P :X. :X :P2 :Y. mtm:Interesting is rdf:type of :P,:P2. } log:implies{ :X :P2 :Y. }. # if a WD is in LC, we don't care to say it is a WD { :WORK mat:status rec:LC, rec:WD. } log:implies { :WORK mat:status rec:LC. }.