Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagenone
titleTurtle
@prefix dc:         <http://purl.org/dc/elements/1.1/> .
@prefix dcterms:    <http://purl.org/dc/terms> .
 @prefix ore:        <http://www.openarchives.org/ore/terms/> .
  
<http://localhost:3000/individual/vc155> a ore:Aggregation ;
  dcterms:title        "Engineering Handbooks" ;
  dcterms:description  "TheseVirtual arecollection resourcesof Ireference amworks gathering together for personal useengineering." ;
  dc:creator           <http://vivo.cornell.edu/individual/individual24416> .

 

CHANGE DESCRIPTION OF ENGINEERING HANDBOOK

 

 

 

Code Block
languagenone
titleTurtle using ORE ontology's Aggregation class
@prefix ore:      ;
  ore:aggregates <http://www.openarchives.org/ore/terms/> .
@prefix iana:   da-rdf.library.cornell.edu/individual/b7141838> ;
  ore:aggregates <http://wwwda-rdf.iana.org/assignments/relation/> .
 
<http://localhost:3000/individual/vc155> a ore:Aggregation library.cornell.edu/individual/b4004406> ;
  ore:aggregates <http://da-rdf.library.cornell.edu/individual/b304862> .
Code Block
languagenone
titleTurtle using ORE ontology's Aggregation class
@prefixb7141838> ;
  ore:aggregates     <http://da-rdfwww.library.cornell.edu/individual/b4004406> ;
  ore:aggregatesopenarchives.org/ore/terms/> .
@prefix iana:    <http://da-rdfwww.library.cornell.edu/individual/b304862>iana.org/assignments/relation/> .
 
<http://localhost:3000/individual/vci162> a ore:Proxy ;
  ore:proxyFor <http://da-rdf.library.cornell.edu/individual/b7141838> ;
  ore:proxyIn <http://localhost:3000/individual/vc155> ;
  iana:next <http://localhost:3000/individual/vci163> .
 
<http://localhost:3000/individual/vci163> a ore:Proxy ;
  ore:proxyFor <http://da-rdf.library.cornell.edu/individual/b4004406> ;
  ore:proxyIn <http://localhost:3000/individual/vc155> ;
  iana:previous <http://localhost:3000/individual/vci162> ;
  iana:next <http://localhost:3000/individual/vci164> .
 
<http://localhost:3000/individual/vci164> a ore:Proxy ;
  ore:proxyFor <http://da-rdf.library.cornell.edu/individual/b304862> ;
  ore:proxyIn <http://localhost:3000/individual/vc155> ;
  iana:previous <http://localhost:3000/individual/vci163> .

...

Code Block
languagenone
Dir["lib/ld4l/virtual_collection_rdf/vocab/*.rb"].each {|file| require file[4,file.size-3] }
module LD4L
  module VirtualCollectionRDF
    class Item < LD4L::VirtualCollectionRDF::ResourceExtension
      @id_prefix="vci"

      configure :type => RDFVocabularies::ORE.Proxy, :base_uri => LD4L::VirtualCollectionRDF.configuration.base_uri, :repository => :default

      # common properties
      property :contributor,   :predicate => RDF::DC.contributor,            :class_name => LD4L::VirtualCollectionRDF::Person

      # properties from ORE.Proxy
      property :proxyFor,      :predicate => RDFVocabularies::ORE.proxyFor
      property :proxyIn,       :predicate => RDFVocabularies::ORE.proxyIn,   :class_name => LD4L::VirtualCollectionRDF::Collection
      property :next,          :predicate => RDFVocabularies::IANA.next,     :class_name => LD4L::VirtualCollectionRDF::Item
      property :previous,      :predicate => RDFVocabularies::IANA.previous, :class_name => LD4L::VirtualCollectionRDF::Item

      # ------------------------------- #
      #  Collection Maintenance Methods #
      # ------------------------------- #

      # Create a virtual collection item in one step passing in the required information.  ORE ontology only.
      #   options:
      #     id                 (optional) - used to assign RDFSubject
      #                - full URI   - use as passed in
      #                - partial id - uri generated from base_uri + id_prefix + id
      #                - nil        - uri generated from base_uri + id_prefix + random_number
      #     virtual_collection (required) - collection to which item is being added
      #     content            (required) - content for the item being added to the collection
      #     insert_position    (optional) - used for ordered lists to place an item at a specific location (default - appends)
      #     contributor        (optional) - assumed to be list owner if not specified
      def self.create( options = {} )
        # validate item was passed in
        content = options[:content] || nil
        raise ArgumentError, "content is required" if content.nil?

        # validate virtual_collection is of correct type
        virtual_collection = options[:virtual_collection] || nil
        raise ArgumentError, "virtual_collection is not LD4L::VirtualCollectionRDF::Collection" unless virtual_collection.kind_of?(LD4L::VirtualCollectionRDF::Collection)

        id  = options[:id] || generate_id
        vci = LD4L::VirtualCollectionRDF::Item.new(id)

        # set ORE ontology properties
        vci.proxyFor    = content
        vci.proxyIn     = virtual_collection.kind_of?(String) ? RDF::URI(virtual_collection) : virtual_collection

        vci.contributor = options[:contributor] || []   # TODO default to vc.owner
        vci.type = types
        vci
      end

      # Returns an array of the LD4L::VirtualCollectionRDF::Item instances for the items in the virtual collection
      def self.get_range( virtual_collection, start=0, limit=nil )
        r = ActiveTriples::Repositories.repositories[LD4L::VirtualCollectionRDF::Item.repository]
        vci_array = []
        r.query(:predicate => RDFVocabularies::ORE.proxyIn,
                :object => virtual_collection.rdf_subject).statements.each do |s|
          vci = LD4L::VirtualCollectionRDF::Item.new(s.subject)
          vci_array << vci
        end
        vci_array
      end
    end
  end
end

 

 

Code Block
languagenone
Dir["lib/ld4l/virtual_collection_rdf/vocab/*.rb"].each {|file| require file[4,file.size-3] }
module LD4L
  module VirtualCollectionRDF
    class Item < ActiveTriples:Resource
      @id_prefix="vci"

      configure :type => RDFVocabularies::ORE.Proxy, :base_uri => LD4L::VirtualCollectionRDF.configuration.base_uri, :repository => :default

      # common properties
      property :contributor,   :predicate => RDF::DC.contributor,            :class_name => LD4L::VirtualCollectionRDF::Person

      # properties from ORE.Proxy
      property :proxyFor,      :predicate => RDFVocabularies::ORE.proxyFor
      property :proxyIn,       :predicate => RDFVocabularies::ORE.proxyIn,   :class_name => LD4L::VirtualCollectionRDF::Collection
      property :next,          :predicate => RDFVocabularies::IANA.next,     :class_name => LD4L::VirtualCollectionRDF::Item
      property :previous,      :predicate => RDFVocabularies::IANA.previous, :class_name => LD4L::VirtualCollectionRDF::Item
    end
  end
end
Code Block
languagenone
Dir["lib/ld4l/virtual_collection_rdf/vocab/*.rb"].each {|file| require file[4,file.size-3] }
module LD4L
  module VirtualCollectionRDF
    class Collection < ActiveTriples::Resource
      @id_prefix="vc"

      configure :type => RDFVocabularies::ORE.Aggregation, :base_uri => LD4L::VirtualCollectionRDF.configuration.base_uri, :repository => :default

      # extended properties for LD4L implementation
      property :title,       :predicate => RDF::DC.title
      property :description, :predicate => RDF::DC.description
      property :owner,       :predicate => RDFVocabularies::DCTERMS.creator, :class_name => LD4L::VirtualCollectionRDF::Person

      # properties from ORE.Aggregation
      property :aggregates,   :predicate => RDFVocabularies::ORE.aggregates   # multiple values
    end
  end
end
Code Block
languagenone
module RDFTypes
  class OpenAnnotationRDF < ActiveTriples::Resource
    @id_prefix="oa"

    configure :type => RDFVocabularies::OA.Annotation, :base_uri => Rails.configuration.urigenerator.base_uri, :repository => :default

    # properties from OA.Annotation
    property :hasTarget,   :predicate => RDFVocabularies::OA.hasTarget    # :type => URI
    property :hasBody,     :predicate => RDFVocabularies::OA.hasBody,     :class_name => RDFTypes::OpenAnnotationBodyRDF
    property :annotatedBy, :predicate => RDFVocabularies::OA.annotatedBy, :class_name => RDFTypes::PersonRDF
    property :annotatedAt, :predicate => RDFVocabularies::OA.annotatedAt  # :type => xsd:dateTime    # the time Annotation was created
    property :motivatedBy, :predicate => RDFVocabularies::OA.motivatedBy  # comes from RDFVocabularies::OA ontology
  end
end

module RDFTypes
  class OpenAnnotationBodyRDF < ActiveTriples:Resource
    @id_prefix="oab"

    configure :base_uri => Rails.configuration.urigenerator.base_uri, :repository => :default

    property :type,    :predicate => RDF::type                   # :type => URI
    property :content, :predicate => RDFVocabularies::CNT.chars  # :type => XSD.string
    property :format,  :predicate => RDF::DC.format              # :type => XSD.string
  end
end

 

 

Code Block
languagenone
@prefix oa:       <http://www.w3.org/ns/oa> .
@prefix skos:     <http://www.w3.org/2008/05/skos> . 

<http://localhost:3000/individual/st93> a oa:SemanticTagging ;
  oa:hasTarget <http://localhost:3000/individual/vci162> ;
  oa:hasBody <http://localhost:3000/individual/srt25> ;
  oa:annotatedBy <http://vivo.cornell.edu/individual/individual24416> ;
  oa:annotatedAt "2014-09-21T12:00:00Z"^^xsd:dateTime
  oa:motivatedBy oa:tagging .

<http://localhost:3000/individual/cv3> a skos:Concept;
  skos:prefLabel "Sub-resource Type"@en ;
  skos:narrower <http://localhost:3000/individual/srt1> ;
  skos:narrower <http://localhost:3000/individual/srt2> ;
  skos:narrower <http://localhost:3000/individual/srt3> .

<http://localhost:3000/individual/srt1> a skos:Concept;
  skos:prefLabel "Standards"@en ;
  skos:broader <http://localhost:3000/individual/cv3> .

<http://localhost:3000/individual/srt2> a skos:Concept;
  skos:prefLabel "Handbooks"@en ;
  skos:broader <http://localhost:3000/individual/cv3> .

<http://localhost:3000/individual/srt3> a skos:Concept;
  skos:prefLabel "Dictionaries"@en ;
  skos:broader <http://localhost:3000/individual/cv3> .

<http://localhost:3000/individual/srt4> a skos:Concept;
  skos:prefLabel "Thesis"@en ;
  skos:broader <http://localhost:3000/individual/cv3> .