getAllArtifacts

in app/models/provenance.rb [115:188]


  def getAllArtifacts
    
    sparql_query = SPARQL.parse("#{Provenance.prefixes}
      SELECT *
      WHERE
      {
        { 
          ?artifactURI  rdf:type  wfprov:Artifact  ;
                        wfprov:describedByParameter  ?describedByParameter  .
          ?describedByParameter  rdfs:comment  ?comment
          OPTIONAL
          {
            ?artifactURI  tavernaprov:content  ?filepath
          }
          OPTIONAL
          { 
            ?artifactURI  wfprov:wasOutputFrom  ?outputFromWorkflowRun .
            ?outputFromWorkflowRun  rdf:type  wfprov:WorkflowRun ;
                                    rdfs:label  ?outputFromWorkflowRunLabel .
            FILTER NOT EXISTS { ?something  foaf:primaryTopic  ?outputFromWorkflowRun }
          }
          OPTIONAL
          { 
            ?artifactURI  wfprov:wasOutputFrom  ?outputFromProcessRun .
            ?outputFromProcessRun  rdf:type  wfprov:ProcessRun  ;
                                   prov:startedAtTime  ?startedAtTime ;
                                   prov:endedAtTime    ?endedAtTime ;
                                   rdfs:label ?outputFromProcessRunLabel
          }
          FILTER NOT EXISTS { ?artifactURI  rdf:type  prov:Dictionary }
        }
        UNION
        { 
          ?dictionary  rdf:type  prov:Dictionary
          OPTIONAL
          {
            ?dictionary  tavernaprov:content  ?filepath
          }
          OPTIONAL
          { 
            {
              ?dictionary  prov:hadMember  ?hadMemberDictionary  .
              ?hadMemberDictionary  rdf:type  prov:Dictionary .
            }
            UNION
            {
              ?dictionary  prov:hadMember  ?hadMemberArtifact  .
              ?hadMemberArtifact wfprov:describedByParameter ?describedByParameter  .
              ?describedByParameter rdfs:comment ?comment  .
              FILTER NOT EXISTS { ?hadMemberArtifact  rdf:type  prov:Dictionary }
            }
          }
          OPTIONAL
          { 
            ?dictionary  wfprov:wasOutputFrom  ?outputFromWorkflowRun .
            ?outputFromWorkflowRun  rdf:type  wfprov:WorkflowRun ; 
                                    rdfs:label ?outputFromWorkflowRunLabel .
            FILTER NOT EXISTS { ?something  foaf:primaryTopic  ?outputFromWorkflowRun }
          }
          OPTIONAL
          { 
            ?dictionary  wfprov:wasOutputFrom  ?outputFromProcessRun .
            ?outputFromProcessRun  rdf:type  wfprov:ProcessRun  ;
                                   prov:startedAtTime  ?startedAtTime ;
                                   prov:endedAtTime    ?endedAtTime ;
                                   rdfs:label ?outputFromProcessRunLabel
          }
        }
      }")

    
    sparql_query.execute(graph)
  end