Class: BEL::Extension::Format::RDFReader::UnbufferedEvidenceYielder

Inherits:
Object
  • Object
show all
Includes:
EvidenceYielder
Defined in:
lib/bel/extensions/rdf/rdf.rb

Constant Summary

Constants included from EvidenceYielder

EvidenceYielder::BELV, EvidenceYielder::RDF, EvidenceYielder::RDFS

Constants included from Quoting

Quoting::KeywordMatcher, Quoting::NonWordMatcher

Instance Method Summary collapse

Methods included from EvidenceYielder

#describe, #evidence_yielder, #make_evidence, #resources_of_type

Methods included from Quoting

#always_quote, #ensure_quotes, #quotes_required?, #remove_quotes

Constructor Details

#initialize(data, format = :ntriples) ⇒ UnbufferedEvidenceYielder

Returns a new instance of UnbufferedEvidenceYielder.



491
492
493
494
# File 'lib/bel/extensions/rdf/rdf.rb', line 491

def initialize(data, format = :ntriples)
  @data   = data
  @format = format
end

Instance Method Details

#eachObject



496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
# File 'lib/bel/extensions/rdf/rdf.rb', line 496

def each
  if block_given?
    graph             = RUBYRDF::Graph.new
    evidence_resource = nil
    RUBYRDF::Reader.for(@format).new(@data) do |reader|
      reader.each_statement do |statement|
        case
        when statement.object == BELV.Evidence &&
             statement.predicate == RDF.type
          evidence_resource = statement.subject
        when evidence_resource &&
             statement.predicate != BELV.hasEvidence &&
             statement.subject != evidence_resource

          # yield current graph as evidence model
          yield make_evidence(
            describe(evidence_resource, graph),
            graph
          )

          # reset parse state
          graph.clear
          evidence_resource = nil

          # insert this RDF statement
          graph << statement
        else
          graph << statement
        end
      end
    end

    # yield last graph as evidence model
    yield make_evidence(
      describe(evidence_resource, graph),
      graph
    )
  else
    to_enum(:each)
  end
end