Class: ActiveSesame::RDFClass

Inherits:
Object
  • Object
show all
Defined in:
lib/active_sesame/rdf_class.rb

Overview

The represenation and means of exploring RDF Classes

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ RDFClass

Returns a new instance of RDFClass.



18
19
20
21
22
23
# File 'lib/active_sesame/rdf_class.rb', line 18

def initialize(name)
  self.name = name
  self.properties = find_properties
  self.sublcasses = find_subclasses
  self.superclass = find_superclass
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/active_sesame/rdf_class.rb', line 7

def name
  @name
end

#propertiesObject (readonly)

Returns the value of attribute properties.



7
8
9
# File 'lib/active_sesame/rdf_class.rb', line 7

def properties
  @properties
end

#subclassesObject (readonly)

Returns the value of attribute subclasses.



7
8
9
# File 'lib/active_sesame/rdf_class.rb', line 7

def subclasses
  @subclasses
end

#superclassObject (readonly)

Returns the value of attribute superclass.



7
8
9
# File 'lib/active_sesame/rdf_class.rb', line 7

def superclass
  @superclass
end

Class Method Details

.class_typesObject



14
15
16
# File 'lib/active_sesame/rdf_class.rb', line 14

def self.class_types
  ["rdf:Class", "owl:Class", "owl:Thing"]
end

.find(klass, options = {}) ⇒ Object



9
10
11
12
# File 'lib/active_sesame/rdf_class.rb', line 9

def self.find(klass, options={})
  @@connection ||= Repository.new
  class_types.inject([]) {|memo, type| ResultParser.singular_values(@@connection.find_by_sparql("SELECT ?klass WHERE { ?klass rdf:type #{type} }")) }
end

Instance Method Details

#add_triple(*args) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/active_sesame/rdf_class.rb', line 37

def add_triple(*args)
  if args.size == 3
    Repository.save_triple(args[0], args[1], args[3])
  elsif args.size == 1 and (args[0].class == Triple or args[0].class == Hash)
    Repository.save_triple(args[0][:subject], args[0][:predicate], args[0][:object])
  end
end

#find_propertiesObject



25
26
27
# File 'lib/active_sesame/rdf_class.rb', line 25

def find_properties
  ResultParser.singular_values(@@connection.find_by_sparql("SELECT ?property WHERE { #{self.name} rdf:property ?property }"))
end

#find_subclassesObject



29
30
31
# File 'lib/active_sesame/rdf_class.rb', line 29

def find_subclasses
  ResultParser.singular_values(@@connection.find_by_sparql("SELECT ?subClasses WHERE { #{self.name} rdf:subClassOf ?subClasses }"))
end

#find_superclassObject



33
34
35
# File 'lib/active_sesame/rdf_class.rb', line 33

def find_superclass
  ResultParser.singular_values(@@connection.find_by_sparql("SELECT ?super WHERE { ?super rdfs:subClassOf #{self.name} }"))
end