Sha256: dc3dea9e6e720f5a64aa5f8a5bdf7e060692ad4251ca8325f3ab02619fba7b5e

Contents?: true

Size: 1.52 KB

Versions: 8

Compression:

Stored size: 1.52 KB

Contents

module PubliSci
  class Prov
    class Entity
      include Prov::Element

      attr_accessor :derived_from
      attr_accessor :attributed_to

      class Derivations < Array
        include PubliSci::Prov::Dereferencable
        def method
          :entities
        end
      end


      def source(s=nil)
        if s
          (@sources ||= []) << s
        else
          @sources
        end
      end

      def generated_by(activity=nil)
        basic_keyword(:generated_by,:activities,activity)
      end

      def attributed_to(agent=nil)
        basic_keyword(:attributed_to,:agents,agent)
      end

      def derived_from(entity=nil,&block)
        block_list(:derived_from,:derivations,Derivation,Derivations,entity,&block)
      end

      def to_n3
        str = "<#{subject}> a prov:Entity ;\n"
        str << "\tprov:wasGeneratedBy <#{generated_by}> ;\n" if generated_by
        str << "\tprov:wasAttributedTo <#{attributed_to}> ;\n" if attributed_to
        if derived_from
          derived_from.size.times.each{|k|
            der = derived_from[k] # if der.is_a?(Symbol) && Prov.entities[der]

            if der.is_a? Derivation
              str << "\tprov:wasDerivedFrom <#{der.entity}> ;\n"
              str << "\tprov:qualifiedDerivation <#{der.subject}> ;\n"
            else
              str << "\tprov:wasDerivedFrom <#{der}> ;\n"
            end
          }
        end

        add_custom(str)

        str << %Q(\trdfs:label "#{__label}" .\n\n)
      end

      def to_s
        subject
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
publisci-0.1.6 lib/publisci/metadata/prov/entity.rb
publisci-0.1.5 lib/publisci/metadata/prov/entity.rb
publisci-0.1.4 lib/publisci/metadata/prov/entity.rb
publisci-0.1.3 lib/publisci/metadata/prov/entity.rb
publisci-0.1.2 lib/bio-publisci/metadata/prov/entity.rb
bio-publisci-0.1.0 lib/bio-publisci/metadata/prov/entity.rb
bio-publisci-0.0.8 lib/bio-publisci/metadata/prov/entity.rb
bio-publisci-0.0.7 lib/bio-publisci/metadata/prov/entity.rb