diff --git a/doc/AboutEachException.html b/doc/AboutEachException.html deleted file mode 100644 index 434d584..0000000 --- a/doc/AboutEachException.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - Class: AboutEachException - - -
-
-

Class: AboutEachException

-
- -
-
-
- - \ No newline at end of file diff --git a/doc/BNode.html b/doc/BNode.html deleted file mode 100644 index b61c451..0000000 --- a/doc/BNode.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - - - - - Class: BNode - - -
-
-

Class: BNode

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - -
identifier - - [RW] - - public - -

-Sets the attribute identifier. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(identifier = nil) - - -
- -
- [View source] -
- - - - - -
-
-
-
-3
-4
-5
-6
-7
-8
-9
-
-
# File 'lib/rena/bnode.rb', line 3
-
-def initialize(identifier = nil)
-  if identifier != nil && self.valid_id?(identifier) != false
-    @identifier = identifier
-  else
-    @identifier = "bn" + self.hash.to_s
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - -
- #eql?(eql) - - - - - -
- #to_n3 - - - -

-Exports the BNode in N-Triples form. -

- - -

- Returns: - - String - -

- -
- #to_ntriples - - - -

-Exports the BNode in N-Triples form. -

- - -

- Returns: - - String - -

- -
- #to_s - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

eql?

-
-
-
- - public - - eql?(eql) - - -
- -
- [View source] -
- - - - - -
-
-
-
-11
-12
-13
-14
-15
-16
-17
-
-
# File 'lib/rena/bnode.rb', line 11
-
-def eql? (eql)
-  if self.identifier == eql.identifier
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

to_n3

-
-
-
- - public - String - to_n3 - - -
- -
-

-Exports the BNode in N-Triples form. -

-

Example

-
-  b = BNode.new; b.to_n3  # => returns a string of the BNode in n3 form
-
-

Returns

- -
-

Meta Tags

-
-

Returns:

-
- -
- - [String] - - - - -
-
-

-The BNode in n3. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-30
-31
-32
-
-
# File 'lib/rena/bnode.rb', line 30
-
-def to_n3
-  "_:" + @identifier
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - String - to_ntriples - - -
- -
-

-Exports the BNode in N-Triples form. -

-

Example

-
-  b = BNode.new; b.to_ntriples  # => returns a string of the BNode in N-Triples form
-
-

Returns

- -
-

Meta Tags

-
-

Returns:

-
- -
- - [String] - - - - -
-
-

-The BNode in N-Triples. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-46
-47
-48
-
-
# File 'lib/rena/bnode.rb', line 46
-
-def to_ntriples
-  self.to_n3
-end
-
-
-
-
-
-
- -
-
-

to_s

-
-
-
- - public - - to_s - - -
- -
- [View source] -
- - - - - -
-
-
-
-50
-51
-52
-
-
# File 'lib/rena/bnode.rb', line 50
-
-def to_s
-  @identifier
-end  
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Graph.html b/doc/Graph.html deleted file mode 100644 index 710a0ed..0000000 --- a/doc/Graph.html +++ /dev/null @@ -1,1143 +0,0 @@ - - - - - - - - - - Class: Graph - - -
-
-

Class: Graph

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
nsbinding - - [RW] - - public - -

-Sets the attribute nsbinding. -

- - -
triples - - [RW] - - public - -

-Sets the attribute triples. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize - - -
- -
- [View source] -
- - - - - -
-
-
-
-10
-11
-12
-13
-
-
# File 'lib/rena/graph.rb', line 10
-
-def initialize
-  @triples = []
-  @nsbinding = {}
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- #<<(triple) - - - -

-Adds an extant triple to a graph. -

- - -

- Returns: - - Array - -

- -
- #add_triple(s, p, o) - - - -

-Adds a triple to a graph directly from the intended subject, predicate, and -object. -

- - -

- Returns: - - Array - -

- -
- #bind(namespace) - - - - - -
- #each - - - - - -
- #each_with_subject(subject) - - - - - -
- #get_bnode_by_identifier(bnodeid) - - - - - -
- #has_bnode_identifier?(bnodeid) - - - - - -
- #namespace(uri, short) - - - -

-Creates a new namespace given a URI and the short name and binds it to the -graph. -

- - -

- Returns: - - Namespace - -

- -
- #size - - - - - -
- #to_ntriples - - - -

-Exports the graph to RDF in N-Triples form. -

- - -

- Returns: - - String - -

- -
-
-
-

Public Instance Method Details

- -
-
-

<<

-
-
-
- - public - Array - <<(triple) - - -
- -
-

-Adds an extant triple to a graph -

-

Example

-
-  g = Graph.new; t = Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new); g << t) # => results in the triple being added to g; returns an array of g's triples
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [Triple] - - - t - -
-
-

-the triple to be added to the graph -

-
-
- -
-
-
-

Returns:

-
- -
- - [Array] - - - - -
-
-

-An array of the triples (leaky abstraction? consider returning the graph -instead) -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-65
-66
-67
-68
-
-
# File 'lib/rena/graph.rb', line 65
-
-def << (triple)
-#    self.add_triple(s, p, o)
-  @triples += [ triple ]
-end
-
-
-
-
-
-
- -
-
-

add_triple

-
-
-
- - public - Array - add_triple(s, p, o) - - -
- -
-

-Adds a triple to a graph directly from the intended subject, predicate, and -object. -

-

Example

-
-  g = Graph.new; g.add_triple(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new) # => results in the triple being added to g; returns an array of g's triples
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [URIRef, BNode] - - - s - -
-
-

-the subject of the triple -

-
-
- -
- - [URIRef] - - - p - -
-
-

-the predicate of the triple -

-
-
- -
- - [URIRef, BNode, Literal, TypedLiteral] - - - o - -
-
-

-the object of the triple -

-
-
- -
-
-
-

Returns:

-
- -
- - [Array] - - - - -
-
-

-An array of the triples (leaky abstraction? consider returning the graph -instead) -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks parameter types and raises if they are incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-47
-48
-49
-
-
# File 'lib/rena/graph.rb', line 47
-
-def add_triple(s, p, o)
-  @triples += [ Triple.new(s, p, o) ]
-end
-
-
-
-
-
-
- -
-
-

bind

-
-
-
- - public - - bind(namespace) - - -
- -
- [View source] -
- - - - - -
-
-
-
-109
-110
-111
-112
-113
-114
-115
-
-
# File 'lib/rena/graph.rb', line 109
-
-def bind(namespace)
-  if namespace.class == Namespace
-    @nsbinding["#{namespace.short}"] = namespace
-  else
-    raise
-  end
-end
-
-
-
-
-
-
- -
-
-

each

-
-
-
- - public - - each - - -
- -
- [View source] -
- - - - - -
-
-
-
-19
-20
-21
-
-
# File 'lib/rena/graph.rb', line 19
-
-def each
-  @triples.each { |value| yield value }
-end
-
-
-
-
-
-
- -
-
-

each_with_subject

-
-
-
- - public - - each_with_subject(subject) - - -
- -
- [View source] -
- - - - - -
-
-
-
-23
-24
-25
-26
-27
-28
-29
-
-
# File 'lib/rena/graph.rb', line 23
-
-def each_with_subject(subject)
-  @triples.each {|value|
-    if value.subject == subject
-      yield value
-    end
-  }
-end
-
-
-
-
-
-
- -
-
-

get_bnode_by_identifier

-
-
-
- - public - - get_bnode_by_identifier(bnodeid) - - -
- -
- [View source] -
- - - - - -
-
-
-
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-
-
# File 'lib/rena/graph.rb', line 133
-
-def get_bnode_by_identifier(bnodeid)
-  temp_bnode = BNode.new(bnodeid)
-  returnval = false
-  @triples.each { |triple|
-    if triple.subject.eql?(temp_bnode)
-      returnval = triple.subject
-      break
-    end
-    if triple.object.eql?(temp_bnode)
-      returnval = triple.object
-      break
-    end
-  }
-  return returnval
-end
-
-
-
-
-
-
- -
-
-

has_bnode_identifier?

-
-
-
- - public - - has_bnode_identifier?(bnodeid) - - -
- -
- [View source] -
- - - - - -
-
-
-
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-
-
# File 'lib/rena/graph.rb', line 117
-
-def has_bnode_identifier?(bnodeid)
-  temp_bnode = BNode.new(bnodeid)
-  returnval = false
-  @triples.each { |triple|
-    if triple.subject.eql?(temp_bnode)
-      returnval = true
-      break
-    end
-    if triple.object.eql?(temp_bnode)
-      returnval = true
-      break
-    end
-  }
-  return returnval
-end
-
-
-
-
-
-
- -
-
-

namespace

-
-
-
- - public - Namespace - namespace(uri, short) - - -
- -
-

-Creates a new namespace given a URI and the short name and binds it to the -graph. -

-

Example

-
-  g = Graph.new; g.namespace("http://xmlns.com/foaf/0.1/", "foaf") # => binds the Foaf namespace to g
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [String] - - - uri - -
-
-

-the URI of the namespace -

-
-
- -
- - [String] - - - short - -
-
-

-the short name of the namespace -

-
-
- -
-
-
-

Returns:

-
- -
- - [Namespace] - - - - -
-
-

-The newly created namespace. -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks validity of the desired shortname and raises if it is incorrect. -

-
-
- -
- - [Error] - - -
-
-

-Checks that the newly created Namespace is of type Namespace and raises if -it is incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-105
-106
-107
-
-
# File 'lib/rena/graph.rb', line 105
-
-def namespace(uri, short)
-  self.bind Namespace.new(uri, short)
-end
-
-
-
-
-
-
- -
-
-

size

-
-
-
- - public - - size - - -
- -
- [View source] -
- - - - - -
-
-
-
-15
-16
-17
-
-
# File 'lib/rena/graph.rb', line 15
-
-def size
-  @triples.size
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - String - to_ntriples - - -
- -
-

-Exports the graph to RDF in N-Triples form. -

-

Example

-
-  g = Graph.new; g.add_triple(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new); g.to_ntriples  # => returns a string of the graph in N-Triples form
-
-

Returns

- -
-

Meta Tags

-
-

Returns:

-
- -
- - [String] - - - - -
-
-

-The graph in N-Triples. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-81
-82
-83
-84
-85
-86
-87
-
-
# File 'lib/rena/graph.rb', line 81
-
-def to_ntriples
-  str = ""
-  @triples.each do |t|
-    str << t.to_ntriples + "\n"
-  end
-  return str
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Literal.html b/doc/Literal.html deleted file mode 100644 index 641d605..0000000 --- a/doc/Literal.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - Class: Literal - - -
-
-

Class: Literal

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
contents - - [RW] - - public - -

-Sets the attribute contents. -

- - -
lang - - [RW] - - public - -

-Sets the attribute lang. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(contents, lang = nil) - - -
- -
- [View source] -
- - - - - -
-
-
-
-3
-4
-5
-6
-7
-8
-
-
# File 'lib/rena/literal.rb', line 3
-
-def initialize(contents, lang = nil)
-  @contents = contents
-  if lang != nil && lang != false
-    @lang = lang.downcase
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - -
- #==(obj) - - - - - -
- #to_n3 - - - - - -
- #to_ntriples - - - - - -
- #to_trix - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

==

-
-
-
- - public - - ==(obj) - - -
- -
- [View source] -
- - - - - -
-
-
-
-10
-11
-12
-13
-14
-15
-16
-
-
# File 'lib/rena/literal.rb', line 10
-
-def == (obj)
-  if obj.class == Literal && obj.contents == @contents && (obj.lang == @lang || (obj.lang == nil && @lang == nil))
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

to_n3

-
-
-
- - public - - to_n3 - - -
- -
- [View source] -
- - - - - -
-
-
-
-18
-19
-20
-21
-22
-23
-
-
# File 'lib/rena/literal.rb', line 18
-
-def to_n3
-  out = "\"" + @contents + "\""
-  out += "@" + @lang if @lang != nil
-  out += "^^" + @encoding if @encoding != nil
-  return out
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - - to_ntriples - - -
- -
- [View source] -
- - - - - -
-
-
-
-25
-26
-27
-
-
# File 'lib/rena/literal.rb', line 25
-
-def to_ntriples
-  return self.to_n3
-end
-
-
-
-
-
-
- -
-
-

to_trix

-
-
-
- - public - - to_trix - - -
- -
- [View source] -
- - - - - -
-
-
-
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-
-
# File 'lib/rena/literal.rb', line 29
-
-def to_trix
-  if @lang != nil && @lang != false
-    out = "<plainLiteral xml:lang=\"" + @lang + "\">"
-  else
-    out = "<plainLiteral>"
-  end
-  out += @contents
-  out += "</plainLiteral>"
-  return out
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Namespace.html b/doc/Namespace.html deleted file mode 100644 index bc9e776..0000000 --- a/doc/Namespace.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - - - - - - Class: Namespace - - -
-
-

Class: Namespace

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - - - - - - - -
fragment - - [RW] - - public - -

-Sets the attribute fragment. -

- - -
short - - [RW] - - public - -

-Sets the attribute short. -

- - -
uri - - [RW] - - public - -

-Sets the attribute uri. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - Namespace - initialize(uri, short, fragment = false) - - -
- -
-

-Creates a new namespace given a URI and the short name. -

-

Example

-
-  Namespace.new("http://xmlns.com/foaf/0.1/", "foaf") # => returns a new Foaf namespace
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [String] - - - uri - -
-
-

-the URI of the namespace -

-
-
- -
- - [String] - - - short - -
-
-

-the short name of the namespace -

-
-
- -
- - [Boolean] - - - fragment - -
-
-

-are the identifiers on this resource fragment identifiers? (e.g. -’#’) Defaults to false. -

-
-
- -
-
-
-

Returns:

-
- -
- - [Namespace] - - - - -
-
-

-The newly created namespace. -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks validity of the desired shortname and raises if it is incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris, Pius Uzamere -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-23
-24
-25
-26
-27
-28
-29
-30
-31
-
-
# File 'lib/rena/namespace.rb', line 23
-
-def initialize(uri, short, fragment = false)
-  @uri = uri
-  @fragment = fragment
-  if shortname_valid?(short)
-    @short = short
-  else
-    raise
-  end
-end
-
-
-
-
-
-
-

Dynamic Method Handling

- -

- This class handles dynamic methods through the method_missing method - -

- -
-
-
- - public - URIRef - method_missing(methodname, *args) - - -
- -
-

-Allows the construction of arbitrary URIs on the namespace. -

-

Example

-
-  foaf = Namespace.new("http://xmlns.com/foaf/0.1/", "foaf"); foaf.knows # => returns a new URIRef with URI "http://xmlns.com/foaf/0.1/knows"
-  foaf = Namespace.new("http://xmlns.com/foaf/0.1/", "foaf", true); foaf.knows # => returns a new URIRef with URI "http://xmlns.com/foaf/0.1/#knows"
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [String] - - - uri - -
-
-

-the URI of the namespace -

-
-
- -
- - [String] - - - short - -
-
-

-the short name of the namespace -

-
-
- -
- - [Boolean] - - - fragment - -
-
-

-are the identifiers on this resource fragment identifiers? (e.g. -’#’) Defaults to false. -

-
-
- -
-
-
-

Returns:

-
- -
- - [URIRef] - - - - -
-
-

-The newly created URIRegerence. -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks validity of the desired shortname and raises if it is incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris, Pius Uzamere -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-50
-51
-52
-53
-54
-55
-56
-
-
# File 'lib/rena/namespace.rb', line 50
-
-def method_missing(methodname, *args)
-  unless fragment
-    URIRef.new(@uri + methodname.to_s)
-  else
-    URIRef.new(@uri + '#' + methodname.to_s)
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - -
- #bind(graph) - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

bind

-
-
-
- - public - - bind(graph) - - -
- -
- [View source] -
- - - - - -
-
-
-
-58
-59
-60
-61
-62
-63
-64
-
-
# File 'lib/rena/namespace.rb', line 58
-
-def bind(graph)
-  if graph.class == Graph
-    graph.bind(self)
-  else
-    raise
-  end
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/REXML/Element.html b/doc/REXML/Element.html deleted file mode 100644 index b79ae3d..0000000 --- a/doc/REXML/Element.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - Class: REXML::Element - - -
-
-

Class: REXML::Element

-
-

-def subdocument_writer(el) -

-
-  el.prefixes.each { |ns|
-    el.add_attribute('xmlns:' + ns, el.namespaces[ns].to_s)
-  }
-  return el.to_s
-
-

-end -

- -
- -
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- #base - - - - - -
- #base? - - - - - -
- #lang - - - - - -
- #lang? - - - - - -
- #write(excl=[]) - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

base

-
-
-
- - public - - base - - -
- -
- [View source] -
- - - - - -
-
-
-
-37
-38
-39
-40
-41
-42
-43
-44
-45
-
-
# File 'lib/rena/rexml_hacks.rb', line 37
-
-def base
-  if self.attributes['xml:base']
-    return self.attributes['xml:base'].to_s
-  elsif self.parent != nil
-    return self.parent.base
-  else
-    return nil
-  end
-end
-
-
-
-
-
-
- -
-
-

base?

-
-
-
- - public - - base? - - -
- -
- [View source] -
- - - - - -
-
-
-
-29
-30
-31
-32
-33
-34
-35
-
-
# File 'lib/rena/rexml_hacks.rb', line 29
-
-def base?
-  if self.base != nil
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

lang

-
-
-
- - public - - lang - - -
- -
- [View source] -
- - - - - -
-
-
-
-19
-20
-21
-22
-23
-24
-25
-26
-27
-
-
# File 'lib/rena/rexml_hacks.rb', line 19
-
-def lang
-  if self.attributes['xml:lang']
-    return self.attributes['xml:lang'].to_s
-  elsif self.parent != nil
-    return self.parent.lang
-  else
-    return nil
-  end
-end
-
-
-
-
-
-
- -
-
-

lang?

-
-
-
- - public - - lang? - - -
- -
- [View source] -
- - - - - -
-
-
-
-12
-13
-14
-15
-16
-17
-18
-
-
# File 'lib/rena/rexml_hacks.rb', line 12
-
-def lang?
-  if self.lang != nil
-    true
-  else
-    false
-  end
-end
-
-
-
-
-
-
- -
-
-

write

-
-
-
- - public - - write(excl=[]) - - -
- -
- [View source] -
- - - - - -
-
-
-
-47
-48
-49
-50
-51
-52
-53
-54
-
-
# File 'lib/rena/rexml_hacks.rb', line 47
-
-def write(excl=[])
-  # TODO: add optional list argument of excluded namespaces
-  self.prefixes.each { |ns|
-    self.add_attribute('xmlns:' + ns, self.namespaces[ns].to_s) unless excl.include? self.namespaces[ns]
-  }
-  self.support_write_recursive(self.namespaces, self)
-  return self.to_s
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/RdfXmlParser.html b/doc/RdfXmlParser.html deleted file mode 100644 index 8425e23..0000000 --- a/doc/RdfXmlParser.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - Class: RdfXmlParser - - -
-
-

Class: RdfXmlParser

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
graph - - [RW] - - public - -

-Sets the attribute graph. -

- - -
xml - - [RW] - - public - -

-Sets the attribute xml. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(xml_str, uri = nil) - - -
- -
- [View source] -
- - - - - -
-
-
-
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-
-
# File 'lib/rena/rdfxmlparser.rb', line 10
-
-def initialize (xml_str, uri = nil)
-  @excl = ["http://www.w3.org/1999/02/22-rdf-syntax-ns#resource", "http://www.w3.org/1999/02/22-rdf-syntax-ns#nodeID", "http://www.w3.org/1999/02/22-rdf-syntax-ns#about", "http://www.w3.org/1999/02/22-rdf-syntax-ns#ID"]
-  if uri != nil
-    @uri = Addressable::URI.parse(uri)
-  end
-  @xml = REXML::Document.new(xml_str)
-#    self.iterator @xml.root.children
-  if self.is_rdf?
-    @graph = Graph.new
-    @xml.root.each_element { |e|
-      self.parse_element e
-    }
-#      puts @graph.size
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - -
- #is_rdf? - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

is_rdf?

-
-
-
- - public - - is_rdf? - - -
- -
- [View source] -
- - - - - -
-
-
-
-26
-27
-28
-29
-30
-31
-32
-33
-34
-
-
# File 'lib/rena/rdfxmlparser.rb', line 26
-
-def is_rdf?
-  trigger = false
-  @xml.each_element do |e|
-    if e.namespaces.has_value? "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-      trigger = true
-    end
-  end
-  return trigger
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/RdfaParser.html b/doc/RdfaParser.html deleted file mode 100644 index d51a20e..0000000 --- a/doc/RdfaParser.html +++ /dev/null @@ -1,340 +0,0 @@ - - - - - - - - - - Class: RdfaParser - - -
-
-

Class: RdfaParser

-
-

-require ‘lib/rena’ -

- -
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - - - - - - - -
graph - - [RW] - - public - -

-Sets the attribute graph. -

- - -
uri - - [RW] - - public - -

-Sets the attribute uri. -

- - -
xml - - [RW] - - public - -

-Sets the attribute xml. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(str, uri) - - -
- -
- [View source] -
- - - - - -
-
-
-
-6
-7
-8
-9
-10
-11
-12
-
-
# File 'lib/rena/rdfaparser.rb', line 6
-
-def initialize (str, uri)
-  @doc_string = str
-  @xml = REXML::Document.new(str)
-  @uri = uri
-  @graph = Graph.new
-  self.iterate(@xml.root.elements[2].elements[1].elements[1])
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - -
- #iterate(el) - - - - - -
- #parse_ns_curie(el, attname) - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

iterate

-
-
-
- - public - - iterate(el) - - -
- -
- [View source] -
- - - - - -
-
-
-
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-
-
# File 'lib/rena/rdfaparser.rb', line 25
-
-def iterate (el)
-
-  if el.attributes['about']
-    if el.attributes['about'] =~ /^http/
-      # deal with as absolute
-      subject = el.attributes['about'].to_s
-    else
-      # time to go xml:base sneakin'
-      if xml.base?
-        subject = Addressable::URI.parse(xml.base)
-        subject = subject + el.attributes['about']
-      else
-        subject = Addressable::URI.parse(@uri)
-        subject = subject + el.attributes['about']
-      end
-    end
-  else
-    subject = @uri
-  end
-  
-  if el.attributes['property']
-    if el.attributes['property'] =~ /^http/
-      property = el.attributes['property']
-    else
-      # curie hunt!
-    property = self.parse_ns_curie(el, "property")
-    end
-  end
-  
-  if el.attributes['content']
-    value = el.attributes['content']
-  else
-    value = el.text
-  end
-
-  @graph.add_triple subject.to_s, URIRef.new(property), value
-end
-
-
-
-
-
-
- -
-
-

parse_ns_curie

-
-
-
- - public - - parse_ns_curie(el, attname) - - -
- -
- [View source] -
- - - - - -
-
-
-
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-
-
# File 'lib/rena/rdfaparser.rb', line 14
-
-def parse_ns_curie(el, attname)
-  attstring = el.attributes[attname]
-  prefix = attstring.scan(/(.+):.+/).to_s
-  if el.namespaces[prefix]
-    namespace = el.namespaces[prefix]
-  else
-    raise "Namespace used in CURIE but not declared"
-  end
-  return namespace + attstring.scan(/.+:(.+)/).to_s
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/Rena.html b/doc/Rena.html deleted file mode 100644 index c1bb9b3..0000000 --- a/doc/Rena.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - Module: Rena - - -
-
-

Module: Rena

-
- -
-
-
- - \ No newline at end of file diff --git a/doc/Triple.html b/doc/Triple.html deleted file mode 100644 index 329b584..0000000 --- a/doc/Triple.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - - - - Class: Triple - - -
-
-

Class: Triple

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - - - - - - - -
object - - [RW] - - public - -

-Sets the attribute object. -

- - -
predicate - - [RW] - - public - -

-Sets the attribute predicate. -

- - -
subject - - [RW] - - public - -

-Sets the attribute subject. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - Triple - initialize(subject, predicate, object) - - -
- -
-

-Creates a new triple directly from the intended subject, predicate, and -object. -

-

Example

-
-  Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new) # => results in the creation of a new triple and returns it
-
- -
-

Meta Tags

-
-

Parameters:

-
- -
- - [URIRef, BNode] - - - s - -
-
-

-the subject of the triple -

-
-
- -
- - [URIRef] - - - p - -
-
-

-the predicate of the triple -

-
-
- -
- - [URIRef, BNode, Literal, TypedLiteral] - - - o - -
-
-

-the object of the triple -

-
-
- -
-
-
-

Returns:

-
- -
- - [Triple] - - - - -
-
-

-An array of the triples (leaky abstraction? consider returning the graph -instead) -

-
-
- -
-
-
-

Raises:

-
- -
- - [Error] - - -
-
-

-Checks parameter types and raises if they are incorrect. -

-
-
- -
-
-
-

Author:

-
- -
- - -
-
-

-Tom Morris -

-
-
- -
-
- -
- [View source] -
- - - - - -
-
-
-
-20
-21
-22
-23
-24
-
-
# File 'lib/rena/triple.rb', line 20
-
-def initialize (subject, predicate, object)
-  self.check_subject(subject)
-  self.check_predicate(predicate)
-  self.check_object(object)
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - -
- #to_ntriples - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

to_ntriples

-
-
-
- - public - - to_ntriples - - -
- -
- [View source] -
- - - - - -
-
-
-
-26
-27
-28
-
-
# File 'lib/rena/triple.rb', line 26
-
-def to_ntriples
-  @subject.to_ntriples + " " + @predicate.to_ntriples + " " + @object.to_ntriples + " ."
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/TypedLiteral.html b/doc/TypedLiteral.html deleted file mode 100644 index 7bec100..0000000 --- a/doc/TypedLiteral.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - - - - - Class: TypedLiteral - - -
-
-

Class: TypedLiteral

-
- -
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - - - - - - - -
contents - - [RW] - - public - -

-Sets the attribute contents. -

- - -
encoding - - [RW] - - public - -

-Sets the attribute encoding. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(contents, encoding) - - -
- -
- [View source] -
- - - - - -
-
-
-
-44
-45
-46
-47
-48
-49
-50
-51
-52
-
-
# File 'lib/rena/literal.rb', line 44
-
-def initialize(contents, encoding)
-  @contents = contents
-  @encoding = encoding
-  if @encoding == "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"
-    @xmlliteral = true
-  else
-    @xmlliteral = false
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- #==(obj) - - - - - -
- #infer! - - - - - -
- #to_n3 - - - - - -
- #to_trix - - - - - -
- #xmlliteral? - - - - - -
- -
-

Public Instance Methods Inherited from Literal

-

to_ntriples

-
- -
-
-
-
-

Public Instance Method Details

- -
-
-

==

-
-
-
- - public - - ==(obj) - - -
- -
- [View source] -
- - - - - -
-
-
-
-54
-55
-56
-57
-58
-59
-60
-
-
# File 'lib/rena/literal.rb', line 54
-
-def == (obj)
-  if obj.class == TypedLiteral && obj.contents == @contents && obj.encoding == @encoding
-    return true
-  else
-    return false
-  end
-end
-
-
-
-
-
-
- -
-
-

infer!

-
-
-
- - public - - infer! - - -
- -
- [View source] -
- - - - - -
-
-
-
-80
-81
-82
-83
-84
-85
-86
-87
-88
-
-
# File 'lib/rena/literal.rb', line 80
-
-def infer!
-  if @contents.class == Fixnum
-    @encoding = "http://www.w3.org/2001/XMLSchema#int"
-  elsif @contents.class == Float 
-    @encoding = "http://www.w3.org/2001/XMLSchema#float"
-  else
-    @encoding = "http://www.w3.org/2001/XMLSchema#string"
-  end
-end
-
-
-
-
-
-
- -
-
-

to_n3

-
-
-
- - public - - to_n3 - - -
- -
- [View source] -
- - - - - -
-
-
-
-62
-63
-64
-65
-66
-67
-68
-69
-70
-
-
# File 'lib/rena/literal.rb', line 62
-
-def to_n3
-  if @encoding == "http://www.w3.org/2001/XMLSchema#int"
-    out = @contents.to_s
-  else
-    out = "\"" + @contents.to_s + "\""
-  end
-  out += "^^<" + @encoding + ">" if @encoding != nil
-  return out
-end
-
-
-
-
-
-
- -
-
-

to_trix

-
-
-
- - public - - to_trix - - -
- -
- [View source] -
- - - - - -
-
-
-
-72
-73
-74
-
-
# File 'lib/rena/literal.rb', line 72
-
-def to_trix
-  "<typedLiteral datatype=\"" + @encoding + "\">" + @contents + "</typedLiteral>"
-end
-
-
-
-
-
-
- -
-
-

xmlliteral?

-
-
-
- - public - - xmlliteral? - - -
- -
- [View source] -
- - - - - -
-
-
-
-76
-77
-78
-
-
# File 'lib/rena/literal.rb', line 76
-
-def xmlliteral?
-  @xmlliteral
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/URIRef.html b/doc/URIRef.html deleted file mode 100644 index 7f01dd6..0000000 --- a/doc/URIRef.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - Class: URIRef - - -
-
-

Class: URIRef

-
-

Attributes

- - -
-

Instance Attributes

- - - - - - - - -
uri - - [RW] - - public - -

-Sets the attribute uri. -

- - -
-
- -
- -
-

Constructor Summary

-
-
-
- - public - - initialize(string) - - -
- -
- [View source] -
- - - - - -
-
-
-
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-
-
# File 'lib/rena/uriref.rb', line 7
-
-def initialize (string)
-  self.test_string(string)
-  @uri = Addressable::URI.parse(string)
-  if @uri.relative?
-    raise UriRelativeException, "<" + @uri.to_s + ">"
-  end
-  if !@uri.to_s.match(/^javascript/).nil?
-    raise "Javascript pseudo-URIs are not acceptable"
-  end
-end
-
-
-
-
-
-
-

Public Visibility

-
-

Public Instance Method Summary

- - - - - - - - - - - - - - - - - - - - - - -
- #==(other) - - - - - -
- #test_string(string) - - - - - -
- #to_ntriples - - - - - -
- #to_s - - - - - -
-
-
-

Public Instance Method Details

- -
-
-

==

-
-
-
- - public - - ==(other) - - -
- -
- [View source] -
- - - - - -
-
-
-
-18
-19
-20
-
-
# File 'lib/rena/uriref.rb', line 18
-
-def == (other)
-  return true if @uri == other.uri
-end
-
-
-
-
-
-
- -
-
-

test_string

-
-
-
- - public - - test_string(string) - - -
- -
- [View source] -
- - - - - -
-
-
-
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-
-
# File 'lib/rena/uriref.rb', line 30
-
-def test_string (string)
-  if string.class != String
-    string = string.to_s
-  end
-  
-  string.each_byte do |b|
-    if b >= 0 and b <= 31
-      raise "URI must not contain control characters"
-    end
-  end
-end
-
-
-
-
-
-
- -
-
-

to_ntriples

-
-
-
- - public - - to_ntriples - - -
- -
- [View source] -
- - - - - -
-
-
-
-26
-27
-28
-
-
# File 'lib/rena/uriref.rb', line 26
-
-def to_ntriples
-  "<" + @uri.to_s + ">"
-end
-
-
-
-
-
-
- -
-
-

to_s

-
-
-
- - public - - to_s - - -
- -
- [View source] -
- - - - - -
-
-
-
-22
-23
-24
-
-
# File 'lib/rena/uriref.rb', line 22
-
-def to_s
-  @uri.to_s
-end
-
-
-
-
-
-
- -
-
- -
-
- - \ No newline at end of file diff --git a/doc/UriRelativeException.html b/doc/UriRelativeException.html deleted file mode 100644 index e6dd9bf..0000000 --- a/doc/UriRelativeException.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - Exception: UriRelativeException - - -
-
-

Exception: UriRelativeException

-
-
    -
  • RuntimeError
    • UriRelativeException
    • -
-
- -
-
-
- - \ No newline at end of file diff --git a/doc/all-methods.html b/doc/all-methods.html deleted file mode 100644 index 6ddb0e3..0000000 --- a/doc/all-methods.html +++ /dev/null @@ -1,772 +0,0 @@ - - - - - - - - All Modules / Classes - - - - - - \ No newline at end of file diff --git a/doc/all-namespaces.html b/doc/all-namespaces.html deleted file mode 100644 index eb06db2..0000000 --- a/doc/all-namespaces.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - All Modules / Classes - - - - - - diff --git a/doc/app.js b/doc/app.js deleted file mode 100644 index 02c311e..0000000 --- a/doc/app.js +++ /dev/null @@ -1,18 +0,0 @@ -$(document).ready(function() { - // Set the title of this page as the index title - if (parent && parent.document) { - $('html head title', parent.document).text($('html head title').text()); - } - - // Setup the view source links - $(".section.source a.source_link").toggle( - function() { - $(this).text('Hide source'); - $(this).parent().next().show(); - }, - function() { - $(this).text('View source'); - $(this).parent().next().hide(); - } - ); -}); \ No newline at end of file diff --git a/doc/index.html b/doc/index.html deleted file mode 100644 index c7e7420..0000000 --- a/doc/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - YARD Documentation - - - - - - - - - <p><a href="readme.html">Click here to go to the title page</a>.</p> - - - \ No newline at end of file diff --git a/doc/jquery.js b/doc/jquery.js deleted file mode 100644 index 95dd013..0000000 --- a/doc/jquery.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * jQuery 1.2.6 - New Wave Javascript - * - * Copyright (c) 2008 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ - * $Rev: 5685 $ - */ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(H(){J w=1b.4M,3m$=1b.$;J D=1b.4M=1b.$=H(a,b){I 2B D.17.5j(a,b)};J u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/,62=/^.[^:#\\[\\.]*$/,12;D.17=D.44={5j:H(d,b){d=d||S;G(d.16){7[0]=d;7.K=1;I 7}G(1j d=="23"){J c=u.2D(d);G(c&&(c[1]||!b)){G(c[1])d=D.4h([c[1]],b);N{J a=S.61(c[3]);G(a){G(a.2v!=c[3])I D().2q(d);I D(a)}d=[]}}N I D(b).2q(d)}N G(D.1D(d))I D(S)[D.17.27?"27":"43"](d);I 7.6Y(D.2d(d))},5w:"1.2.6",8G:H(){I 7.K},K:0,3p:H(a){I a==12?D.2d(7):7[a]},2I:H(b){J a=D(b);a.5n=7;I a},6Y:H(a){7.K=0;2p.44.1p.1w(7,a);I 7},P:H(a,b){I D.P(7,a,b)},5i:H(b){J a=-1;I D.2L(b&&b.5w?b[0]:b,7)},1K:H(c,a,b){J d=c;G(c.1q==56)G(a===12)I 7[0]&&D[b||"1K"](7[0],c);N{d={};d[c]=a}I 7.P(H(i){R(c 1n d)D.1K(b?7.V:7,c,D.1i(7,d[c],b,i,c))})},1g:H(b,a){G((b==\'2h\'||b==\'1Z\')&&3d(a)<0)a=12;I 7.1K(b,a,"2a")},1r:H(b){G(1j b!="49"&&b!=U)I 7.4E().3v((7[0]&&7[0].2z||S).5F(b));J a="";D.P(b||7,H(){D.P(7.3t,H(){G(7.16!=8)a+=7.16!=1?7.76:D.17.1r([7])})});I a},5z:H(b){G(7[0])D(b,7[0].2z).5y().39(7[0]).2l(H(){J a=7;1B(a.1x)a=a.1x;I a}).3v(7);I 7},8Y:H(a){I 7.P(H(){D(7).6Q().5z(a)})},8R:H(a){I 7.P(H(){D(7).5z(a)})},3v:H(){I 7.3W(19,M,Q,H(a){G(7.16==1)7.3U(a)})},6F:H(){I 7.3W(19,M,M,H(a){G(7.16==1)7.39(a,7.1x)})},6E:H(){I 7.3W(19,Q,Q,H(a){7.1d.39(a,7)})},5q:H(){I 7.3W(19,Q,M,H(a){7.1d.39(a,7.2H)})},3l:H(){I 7.5n||D([])},2q:H(b){J c=D.2l(7,H(a){I D.2q(b,a)});I 7.2I(/[^+>] [^+>]/.11(b)||b.1h("..")>-1?D.4r(c):c)},5y:H(e){J f=7.2l(H(){G(D.14.1f&&!D.4n(7)){J a=7.6o(M),5h=S.3h("1v");5h.3U(a);I D.4h([5h.4H])[0]}N I 7.6o(M)});J d=f.2q("*").5c().P(H(){G(7[E]!=12)7[E]=U});G(e===M)7.2q("*").5c().P(H(i){G(7.16==3)I;J c=D.L(7,"3w");R(J a 1n c)R(J b 1n c[a])D.W.1e(d[i],a,c[a][b],c[a][b].L)});I f},1E:H(b){I 7.2I(D.1D(b)&&D.3C(7,H(a,i){I b.1k(a,i)})||D.3g(b,7))},4Y:H(b){G(b.1q==56)G(62.11(b))I 7.2I(D.3g(b,7,M));N b=D.3g(b,7);J a=b.K&&b[b.K-1]!==12&&!b.16;I 7.1E(H(){I a?D.2L(7,b)<0:7!=b})},1e:H(a){I 7.2I(D.4r(D.2R(7.3p(),1j a==\'23\'?D(a):D.2d(a))))},3F:H(a){I!!a&&D.3g(a,7).K>0},7T:H(a){I 7.3F("."+a)},6e:H(b){G(b==12){G(7.K){J c=7[0];G(D.Y(c,"2A")){J e=c.64,63=[],15=c.15,2V=c.O=="2A-2V";G(e<0)I U;R(J i=2V?e:0,2f=2V?e+1:15.K;i<2f;i++){J d=15[i];G(d.2W){b=D.14.1f&&!d.at.2x.an?d.1r:d.2x;G(2V)I b;63.1p(b)}}I 63}N I(7[0].2x||"").1o(/\\r/g,"")}I 12}G(b.1q==4L)b+=\'\';I 7.P(H(){G(7.16!=1)I;G(b.1q==2p&&/5O|5L/.11(7.O))7.4J=(D.2L(7.2x,b)>=0||D.2L(7.34,b)>=0);N G(D.Y(7,"2A")){J a=D.2d(b);D("9R",7).P(H(){7.2W=(D.2L(7.2x,a)>=0||D.2L(7.1r,a)>=0)});G(!a.K)7.64=-1}N 7.2x=b})},2K:H(a){I a==12?(7[0]?7[0].4H:U):7.4E().3v(a)},7b:H(a){I 7.5q(a).21()},79:H(i){I 7.3s(i,i+1)},3s:H(){I 7.2I(2p.44.3s.1w(7,19))},2l:H(b){I 7.2I(D.2l(7,H(a,i){I b.1k(a,i,a)}))},5c:H(){I 7.1e(7.5n)},L:H(d,b){J a=d.1R(".");a[1]=a[1]?"."+a[1]:"";G(b===12){J c=7.5C("9z"+a[1]+"!",[a[0]]);G(c===12&&7.K)c=D.L(7[0],d);I c===12&&a[1]?7.L(a[0]):c}N I 7.1P("9u"+a[1]+"!",[a[0],b]).P(H(){D.L(7,d,b)})},3b:H(a){I 7.P(H(){D.3b(7,a)})},3W:H(g,f,h,d){J e=7.K>1,3x;I 7.P(H(){G(!3x){3x=D.4h(g,7.2z);G(h)3x.9o()}J b=7;G(f&&D.Y(7,"1T")&&D.Y(3x[0],"4F"))b=7.3H("22")[0]||7.3U(7.2z.3h("22"));J c=D([]);D.P(3x,H(){J a=e?D(7).5y(M)[0]:7;G(D.Y(a,"1m"))c=c.1e(a);N{G(a.16==1)c=c.1e(D("1m",a).21());d.1k(b,a)}});c.P(6T)})}};D.17.5j.44=D.17;H 6T(i,a){G(a.4d)D.3Y({1a:a.4d,31:Q,1O:"1m"});N D.5u(a.1r||a.6O||a.4H||"");G(a.1d)a.1d.37(a)}H 1z(){I+2B 8J}D.1l=D.17.1l=H(){J b=19[0]||{},i=1,K=19.K,4x=Q,15;G(b.1q==8I){4x=b;b=19[1]||{};i=2}G(1j b!="49"&&1j b!="H")b={};G(K==i){b=7;--i}R(;i-1}},6q:H(b,c,a){J e={};R(J d 1n c){e[d]=b.V[d];b.V[d]=c[d]}a.1k(b);R(J d 1n c)b.V[d]=e[d]},1g:H(d,e,c){G(e=="2h"||e=="1Z"){J b,3X={30:"5x",5g:"1G",18:"3I"},35=e=="2h"?["5e","6k"]:["5G","6i"];H 5b(){b=e=="2h"?d.8f:d.8c;J a=0,2C=0;D.P(35,H(){a+=3d(D.2a(d,"57"+7,M))||0;2C+=3d(D.2a(d,"2C"+7+"4b",M))||0});b-=29.83(a+2C)}G(D(d).3F(":4j"))5b();N D.6q(d,3X,5b);I 29.2f(0,b)}I D.2a(d,e,c)},2a:H(f,l,k){J e,V=f.V;H 3E(b){G(!D.14.2k)I Q;J a=3P.54(b,U);I!a||a.52("3E")==""}G(l=="1y"&&D.14.1f){e=D.1K(V,"1y");I e==""?"1":e}G(D.14.2G&&l=="18"){J d=V.50;V.50="0 7Y 7W";V.50=d}G(l.1I(/4i/i))l=y;G(!k&&V&&V[l])e=V[l];N G(3P.54){G(l.1I(/4i/i))l="4i";l=l.1o(/([A-Z])/g,"-$1").3y();J c=3P.54(f,U);G(c&&!3E(f))e=c.52(l);N{J g=[],2E=[],a=f,i=0;R(;a&&3E(a);a=a.1d)2E.6h(a);R(;i<2E.K;i++)G(3E(2E[i])){g[i]=2E[i].V.18;2E[i].V.18="3I"}e=l=="18"&&g[2E.K-1]!=U?"2F":(c&&c.52(l))||"";R(i=0;i]*?)\\/>/g,H(b,a,c){I c.1I(/^(aK|4f|7E|aG|4T|7A|aB|3n|az|ay|av)$/i)?b:a+">"});J f=D.3k(d).3y(),1v=h.3h("1v");J e=!f.1h("",""]||!f.1h("",""]||f.1I(/^<(aq|22|am|ak|ai)/)&&[1,"<1T>",""]||!f.1h("<4F")&&[2,"<1T><22>",""]||(!f.1h("<22><4F>",""]||!f.1h("<7E")&&[2,"<1T><22><7q>",""]||D.14.1f&&[1,"1v<1v>",""]||[0,"",""];1v.4H=e[1]+d+e[2];1B(e[0]--)1v=1v.5T;G(D.14.1f){J g=!f.1h("<1T")&&f.1h("<22")<0?1v.1x&&1v.1x.3t:e[1]=="<1T>"&&f.1h("<22")<0?1v.3t:[];R(J j=g.K-1;j>=0;--j)G(D.Y(g[j],"22")&&!g[j].3t.K)g[j].1d.37(g[j]);G(/^\\s/.11(d))1v.39(h.5F(d.1I(/^\\s*/)[0]),1v.1x)}d=D.2d(1v.3t)}G(d.K===0&&(!D.Y(d,"3V")&&!D.Y(d,"2A")))I;G(d[0]==12||D.Y(d,"3V")||d.15)k.1p(d);N k=D.2R(k,d)});I k},1K:H(d,f,c){G(!d||d.16==3||d.16==8)I 12;J e=!D.4n(d),40=c!==12,1f=D.14.1f;f=e&&D.3X[f]||f;G(d.2j){J g=/5Q|4d|V/.11(f);G(f=="2W"&&D.14.2k)d.1d.64;G(f 1n d&&e&&!g){G(40){G(f=="O"&&D.Y(d,"4T")&&d.1d)7p"O a3 a1\'t 9V 9U";d[f]=c}G(D.Y(d,"3V")&&d.7i(f))I d.7i(f).76;I d[f]}G(1f&&e&&f=="V")I D.1K(d.V,"9T",c);G(40)d.9Q(f,""+c);J h=1f&&e&&g?d.4G(f,2):d.4G(f);I h===U?12:h}G(1f&&f=="1y"){G(40){d.6B=1;d.1E=(d.1E||"").1o(/7f\\([^)]*\\)/,"")+(3r(c)+\'\'=="9L"?"":"7f(1y="+c*7a+")")}I d.1E&&d.1E.1h("1y=")>=0?(3d(d.1E.1I(/1y=([^)]*)/)[1])/7a)+\'\':""}f=f.1o(/-([a-z])/9H,H(a,b){I b.2r()});G(40)d[f]=c;I d[f]},3k:H(a){I(a||"").1o(/^\\s+|\\s+$/g,"")},2d:H(b){J a=[];G(b!=U){J i=b.K;G(i==U||b.1R||b.4I||b.1k)a[0]=b;N 1B(i)a[--i]=b[i]}I a},2L:H(b,a){R(J i=0,K=a.K;i*",7).21();1B(7.1x)7.37(7.1x)}},H(a,b){D.17[a]=H(){I 7.P(b,19)}});D.P(["6N","4b"],H(i,c){J b=c.3y();D.17[b]=H(a){I 7[0]==1b?D.14.2G&&S.1c["5t"+c]||D.14.2k&&1b["5s"+c]||S.70=="6Z"&&S.1C["5t"+c]||S.1c["5t"+c]:7[0]==S?29.2f(29.2f(S.1c["4y"+c],S.1C["4y"+c]),29.2f(S.1c["2i"+c],S.1C["2i"+c])):a==12?(7.K?D.1g(7[0],b):U):7.1g(b,a.1q==56?a:a+"2X")}});H 25(a,b){I a[0]&&3r(D.2a(a[0],b,M),10)||0}J C=D.14.2k&&3r(D.14.5B)<8H?"(?:[\\\\w*3m-]|\\\\\\\\.)":"(?:[\\\\w\\8F-\\8E*3m-]|\\\\\\\\.)",6L=2B 4v("^>\\\\s*("+C+"+)"),6J=2B 4v("^("+C+"+)(#)("+C+"+)"),6I=2B 4v("^([#.]?)("+C+"*)");D.1l({6H:{"":H(a,i,m){I m[2]=="*"||D.Y(a,m[2])},"#":H(a,i,m){I a.4G("2v")==m[2]},":":{8D:H(a,i,m){I im[3]-0},3a:H(a,i,m){I m[3]-0==i},79:H(a,i,m){I m[3]-0==i},3o:H(a,i){I i==0},3S:H(a,i,m,r){I i==r.K-1},6D:H(a,i){I i%2==0},6C:H(a,i){I i%2},"3o-4u":H(a){I a.1d.3H("*")[0]==a},"3S-4u":H(a){I D.3a(a.1d.5T,1,"4l")==a},"8z-4u":H(a){I!D.3a(a.1d.5T,2,"4l")},6W:H(a){I a.1x},4E:H(a){I!a.1x},8y:H(a,i,m){I(a.6O||a.8x||D(a).1r()||"").1h(m[3])>=0},4j:H(a){I"1G"!=a.O&&D.1g(a,"18")!="2F"&&D.1g(a,"5g")!="1G"},1G:H(a){I"1G"==a.O||D.1g(a,"18")=="2F"||D.1g(a,"5g")=="1G"},8w:H(a){I!a.3R},3R:H(a){I a.3R},4J:H(a){I a.4J},2W:H(a){I a.2W||D.1K(a,"2W")},1r:H(a){I"1r"==a.O},5O:H(a){I"5O"==a.O},5L:H(a){I"5L"==a.O},5p:H(a){I"5p"==a.O},3Q:H(a){I"3Q"==a.O},5o:H(a){I"5o"==a.O},6A:H(a){I"6A"==a.O},6z:H(a){I"6z"==a.O},2s:H(a){I"2s"==a.O||D.Y(a,"2s")},4T:H(a){I/4T|2A|6y|2s/i.11(a.Y)},3T:H(a,i,m){I D.2q(m[3],a).K},8t:H(a){I/h\\d/i.11(a.Y)},8s:H(a){I D.3C(D.3O,H(b){I a==b.T}).K}}},6x:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,2B 4v("^([:.#]*)("+C+"+)")],3g:H(a,c,b){J d,1t=[];1B(a&&a!=d){d=a;J f=D.1E(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1t=b?c=f.r:D.2R(1t,f.r)}I 1t},2q:H(t,o){G(1j t!="23")I[t];G(o&&o.16!=1&&o.16!=9)I[];o=o||S;J d=[o],2o=[],3S,Y;1B(t&&3S!=t){J r=[];3S=t;t=D.3k(t);J l=Q,3j=6L,m=3j.2D(t);G(m){Y=m[1].2r();R(J i=0;d[i];i++)R(J c=d[i].1x;c;c=c.2H)G(c.16==1&&(Y=="*"||c.Y.2r()==Y))r.1p(c);d=r;t=t.1o(3j,"");G(t.1h(" ")==0)6M;l=M}N{3j=/^([>+~])\\s*(\\w*)/i;G((m=3j.2D(t))!=U){r=[];J k={};Y=m[2].2r();m=m[1];R(J j=0,3i=d.K;j<3i;j++){J n=m=="~"||m=="+"?d[j].2H:d[j].1x;R(;n;n=n.2H)G(n.16==1){J g=D.L(n);G(m=="~"&&k[g])1X;G(!Y||n.Y.2r()==Y){G(m=="~")k[g]=M;r.1p(n)}G(m=="+")1X}}d=r;t=D.3k(t.1o(3j,""));l=M}}G(t&&!l){G(!t.1h(",")){G(o==d[0])d.4s();2o=D.2R(2o,d);r=d=[o];t=" "+t.6v(1,t.K)}N{J h=6J;J m=h.2D(t);G(m){m=[0,m[2],m[3],m[1]]}N{h=6I;m=h.2D(t)}m[2]=m[2].1o(/\\\\/g,"");J f=d[d.K-1];G(m[1]=="#"&&f&&f.61&&!D.4n(f)){J p=f.61(m[2]);G((D.14.1f||D.14.2G)&&p&&1j p.2v=="23"&&p.2v!=m[2])p=D(\'[@2v="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||D.Y(p,m[3]))?[p]:[]}N{R(J i=0;d[i];i++){J a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];G(a=="*"&&d[i].Y.3y()=="49")a="3n";r=D.2R(r,d[i].3H(a))}G(m[1]==".")r=D.5m(r,m[2]);G(m[1]=="#"){J e=[];R(J i=0;r[i];i++)G(r[i].4G("2v")==m[2]){e=[r[i]];1X}r=e}d=r}t=t.1o(h,"")}}G(t){J b=D.1E(t,r);d=r=b.r;t=D.3k(b.t)}}G(t)d=[];G(d&&o==d[0])d.4s();2o=D.2R(2o,d);I 2o},5m:H(r,m,a){m=" "+m+" ";J c=[];R(J i=0;r[i];i++){J b=(" "+r[i].1F+" ").1h(m)>=0;G(!a&&b||a&&!b)c.1p(r[i])}I c},1E:H(t,r,h){J d;1B(t&&t!=d){d=t;J p=D.6x,m;R(J i=0;p[i];i++){m=p[i].2D(t);G(m){t=t.8r(m[0].K);m[2]=m[2].1o(/\\\\/g,"");1X}}G(!m)1X;G(m[1]==":"&&m[2]=="4Y")r=62.11(m[3])?D.1E(m[3],r,M).r:D(r).4Y(m[3]);N G(m[1]==".")r=D.5m(r,m[2],h);N G(m[1]=="["){J g=[],O=m[3];R(J i=0,3i=r.K;i<3i;i++){J a=r[i],z=a[D.3X[m[2]]||m[2]];G(z==U||/5Q|4d|2W/.11(m[2]))z=D.1K(a,m[2])||\'\';G((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1h(m[5])||O=="$="&&z.6v(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1h(m[5])>=0)^h)g.1p(a)}r=g}N G(m[1]==":"&&m[2]=="3a-4u"){J e={},g=[],11=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2D(m[3]=="6D"&&"2n"||m[3]=="6C"&&"2n+1"||!/\\D/.11(m[3])&&"8q+"+m[3]||m[3]),3o=(11[1]+(11[2]||1))-0,d=11[3]-0;R(J i=0,3i=r.K;i<3i;i++){J j=r[i],1d=j.1d,2v=D.L(1d);G(!e[2v]){J c=1;R(J n=1d.1x;n;n=n.2H)G(n.16==1)n.4q=c++;e[2v]=M}J b=Q;G(3o==0){G(j.4q==d)b=M}N G((j.4q-d)%3o==0&&(j.4q-d)/3o>=0)b=M;G(b^h)g.1p(j)}r=g}N{J f=D.6H[m[1]];G(1j f=="49")f=f[m[2]];G(1j f=="23")f=6u("Q||H(a,i){I "+f+";}");r=D.3C(r,H(a,i){I f(a,i,m,r)},h)}}I{r:r,t:t}},4S:H(b,c){J a=[],1t=b[c];1B(1t&&1t!=S){G(1t.16==1)a.1p(1t);1t=1t[c]}I a},3a:H(a,e,c,b){e=e||1;J d=0;R(;a;a=a[c])G(a.16==1&&++d==e)1X;I a},5v:H(n,a){J r=[];R(;n;n=n.2H){G(n.16==1&&n!=a)r.1p(n)}I r}});D.W={1e:H(f,i,g,e){G(f.16==3||f.16==8)I;G(D.14.1f&&f.4I)f=1b;G(!g.24)g.24=7.24++;G(e!=12){J h=g;g=7.3M(h,H(){I h.1w(7,19)});g.L=e}J j=D.L(f,"3w")||D.L(f,"3w",{}),1H=D.L(f,"1H")||D.L(f,"1H",H(){G(1j D!="12"&&!D.W.5k)I D.W.1H.1w(19.3L.T,19)});1H.T=f;D.P(i.1R(/\\s+/),H(c,b){J a=b.1R(".");b=a[0];g.O=a[1];J d=j[b];G(!d){d=j[b]={};G(!D.W.2t[b]||D.W.2t[b].4p.1k(f)===Q){G(f.3K)f.3K(b,1H,Q);N G(f.6t)f.6t("4o"+b,1H)}}d[g.24]=g;D.W.26[b]=M});f=U},24:1,26:{},21:H(e,h,f){G(e.16==3||e.16==8)I;J i=D.L(e,"3w"),1L,5i;G(i){G(h==12||(1j h=="23"&&h.8p(0)=="."))R(J g 1n i)7.21(e,g+(h||""));N{G(h.O){f=h.2y;h=h.O}D.P(h.1R(/\\s+/),H(b,a){J c=a.1R(".");a=c[0];G(i[a]){G(f)2U i[a][f.24];N R(f 1n i[a])G(!c[1]||i[a][f].O==c[1])2U i[a][f];R(1L 1n i[a])1X;G(!1L){G(!D.W.2t[a]||D.W.2t[a].4A.1k(e)===Q){G(e.6p)e.6p(a,D.L(e,"1H"),Q);N G(e.6n)e.6n("4o"+a,D.L(e,"1H"))}1L=U;2U i[a]}}})}R(1L 1n i)1X;G(!1L){J d=D.L(e,"1H");G(d)d.T=U;D.3b(e,"3w");D.3b(e,"1H")}}},1P:H(h,c,f,g,i){c=D.2d(c);G(h.1h("!")>=0){h=h.3s(0,-1);J a=M}G(!f){G(7.26[h])D("*").1e([1b,S]).1P(h,c)}N{G(f.16==3||f.16==8)I 12;J b,1L,17=D.1D(f[h]||U),W=!c[0]||!c[0].32;G(W){c.6h({O:h,2J:f,32:H(){},3J:H(){},4C:1z()});c[0][E]=M}c[0].O=h;G(a)c[0].6m=M;J d=D.L(f,"1H");G(d)b=d.1w(f,c);G((!17||(D.Y(f,\'a\')&&h=="4V"))&&f["4o"+h]&&f["4o"+h].1w(f,c)===Q)b=Q;G(W)c.4s();G(i&&D.1D(i)){1L=i.1w(f,b==U?c:c.7d(b));G(1L!==12)b=1L}G(17&&g!==Q&&b!==Q&&!(D.Y(f,\'a\')&&h=="4V")){7.5k=M;1U{f[h]()}1V(e){}}7.5k=Q}I b},1H:H(b){J a,1L,38,5f,4m;b=19[0]=D.W.6l(b||1b.W);38=b.O.1R(".");b.O=38[0];38=38[1];5f=!38&&!b.6m;4m=(D.L(7,"3w")||{})[b.O];R(J j 1n 4m){J c=4m[j];G(5f||c.O==38){b.2y=c;b.L=c.L;1L=c.1w(7,19);G(a!==Q)a=1L;G(1L===Q){b.32();b.3J()}}}I a},6l:H(b){G(b[E]==M)I b;J d=b;b={8o:d};J c="8n 8m 8l 8k 2s 8j 47 5d 6j 5E 8i L 8h 8g 4K 2y 5a 59 8e 8b 58 6f 8a 88 4k 87 86 84 6d 2J 4C 6c O 82 81 35".1R(" ");R(J i=c.K;i;i--)b[c[i]]=d[c[i]];b[E]=M;b.32=H(){G(d.32)d.32();d.80=Q};b.3J=H(){G(d.3J)d.3J();d.7Z=M};b.4C=b.4C||1z();G(!b.2J)b.2J=b.6d||S;G(b.2J.16==3)b.2J=b.2J.1d;G(!b.4k&&b.4K)b.4k=b.4K==b.2J?b.6c:b.4K;G(b.58==U&&b.5d!=U){J a=S.1C,1c=S.1c;b.58=b.5d+(a&&a.2e||1c&&1c.2e||0)-(a.6b||0);b.6f=b.6j+(a&&a.2c||1c&&1c.2c||0)-(a.6a||0)}G(!b.35&&((b.47||b.47===0)?b.47:b.5a))b.35=b.47||b.5a;G(!b.59&&b.5E)b.59=b.5E;G(!b.35&&b.2s)b.35=(b.2s&1?1:(b.2s&2?3:(b.2s&4?2:0)));I b},3M:H(a,b){b.24=a.24=a.24||b.24||7.24++;I b},2t:{27:{4p:H(){55();I},4A:H(){I}},3D:{4p:H(){G(D.14.1f)I Q;D(7).2O("53",D.W.2t.3D.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("53",D.W.2t.3D.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3D";I D.W.1H.1w(7,19)}},3N:{4p:H(){G(D.14.1f)I Q;D(7).2O("51",D.W.2t.3N.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("51",D.W.2t.3N.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3N";I D.W.1H.1w(7,19)}}}};D.17.1l({2O:H(c,a,b){I c=="4X"?7.2V(c,a,b):7.P(H(){D.W.1e(7,c,b||a,b&&a)})},2V:H(d,b,c){J e=D.W.3M(c||b,H(a){D(7).4e(a,e);I(c||b).1w(7,19)});I 7.P(H(){D.W.1e(7,d,e,c&&b)})},4e:H(a,b){I 7.P(H(){D.W.21(7,a,b)})},1P:H(c,a,b){I 7.P(H(){D.W.1P(c,a,7,M,b)})},5C:H(c,a,b){I 7[0]&&D.W.1P(c,a,7[0],Q,b)},2m:H(b){J c=19,i=1;1B(i=0){J i=g.3s(e,g.K);g=g.3s(0,e)}c=c||H(){};J f="2P";G(d)G(D.1D(d)){c=d;d=U}N{d=D.3n(d);f="6g"}J h=7;D.3Y({1a:g,O:f,1O:"2K",L:d,1J:H(a,b){G(b=="1W"||b=="7J")h.2K(i?D("<1v/>").3v(a.4U.1o(/<1m(.|\\s)*?\\/1m>/g,"")).2q(i):a.4U);h.P(c,[a.4U,b,a])}});I 7},aL:H(){I D.3n(7.7I())},7I:H(){I 7.2l(H(){I D.Y(7,"3V")?D.2d(7.aH):7}).1E(H(){I 7.34&&!7.3R&&(7.4J||/2A|6y/i.11(7.Y)||/1r|1G|3Q/i.11(7.O))}).2l(H(i,c){J b=D(7).6e();I b==U?U:b.1q==2p?D.2l(b,H(a,i){I{34:c.34,2x:a}}):{34:c.34,2x:b}}).3p()}});D.P("7H,7G,7F,7D,7C,7B".1R(","),H(i,o){D.17[o]=H(f){I 7.2O(o,f)}});J B=1z();D.1l({3p:H(d,b,a,c){G(D.1D(b)){a=b;b=U}I D.3Y({O:"2P",1a:d,L:b,1W:a,1O:c})},aE:H(b,a){I D.3p(b,U,a,"1m")},aD:H(c,b,a){I D.3p(c,b,a,"3z")},aC:H(d,b,a,c){G(D.1D(b)){a=b;b={}}I D.3Y({O:"6g",1a:d,L:b,1W:a,1O:c})},aA:H(a){D.1l(D.60,a)},60:{1a:5Z.5Q,26:M,O:"2P",2T:0,7z:"4R/x-ax-3V-aw",7x:M,31:M,L:U,5Y:U,3Q:U,4Q:{2N:"4R/2N, 1r/2N",2K:"1r/2K",1m:"1r/4t, 4R/4t",3z:"4R/3z, 1r/4t",1r:"1r/as",4w:"*/*"}},4z:{},3Y:H(s){s=D.1l(M,s,D.1l(M,{},D.60,s));J g,2Z=/=\\?(&|$)/g,1u,L,O=s.O.2r();G(s.L&&s.7x&&1j s.L!="23")s.L=D.3n(s.L);G(s.1O=="4P"){G(O=="2P"){G(!s.1a.1I(2Z))s.1a+=(s.1a.1I(/\\?/)?"&":"?")+(s.4P||"7u")+"=?"}N G(!s.L||!s.L.1I(2Z))s.L=(s.L?s.L+"&":"")+(s.4P||"7u")+"=?";s.1O="3z"}G(s.1O=="3z"&&(s.L&&s.L.1I(2Z)||s.1a.1I(2Z))){g="4P"+B++;G(s.L)s.L=(s.L+"").1o(2Z,"="+g+"$1");s.1a=s.1a.1o(2Z,"="+g+"$1");s.1O="1m";1b[g]=H(a){L=a;1W();1J();1b[g]=12;1U{2U 1b[g]}1V(e){}G(i)i.37(h)}}G(s.1O=="1m"&&s.1Y==U)s.1Y=Q;G(s.1Y===Q&&O=="2P"){J j=1z();J k=s.1a.1o(/(\\?|&)3m=.*?(&|$)/,"$ap="+j+"$2");s.1a=k+((k==s.1a)?(s.1a.1I(/\\?/)?"&":"?")+"3m="+j:"")}G(s.L&&O=="2P"){s.1a+=(s.1a.1I(/\\?/)?"&":"?")+s.L;s.L=U}G(s.26&&!D.4O++)D.W.1P("7H");J n=/^(?:\\w+:)?\\/\\/([^\\/?#]+)/;G(s.1O=="1m"&&O=="2P"&&n.11(s.1a)&&n.2D(s.1a)[1]!=5Z.al){J i=S.3H("6w")[0];J h=S.3h("1m");h.4d=s.1a;G(s.7t)h.aj=s.7t;G(!g){J l=Q;h.ah=h.ag=H(){G(!l&&(!7.3f||7.3f=="68"||7.3f=="1J")){l=M;1W();1J();i.37(h)}}}i.3U(h);I 12}J m=Q;J c=1b.7s?2B 7s("ae.ac"):2B 7r();G(s.5Y)c.6R(O,s.1a,s.31,s.5Y,s.3Q);N c.6R(O,s.1a,s.31);1U{G(s.L)c.4B("ab-aa",s.7z);G(s.5S)c.4B("a9-5R-a8",D.4z[s.1a]||"a7, a6 a5 a4 5N:5N:5N a2");c.4B("X-9Z-9Y","7r");c.4B("9W",s.1O&&s.4Q[s.1O]?s.4Q[s.1O]+", */*":s.4Q.4w)}1V(e){}G(s.7m&&s.7m(c,s)===Q){s.26&&D.4O--;c.7l();I Q}G(s.26)D.W.1P("7B",[c,s]);J d=H(a){G(!m&&c&&(c.3f==4||a=="2T")){m=M;G(f){7k(f);f=U}1u=a=="2T"&&"2T"||!D.7j(c)&&"3e"||s.5S&&D.7h(c,s.1a)&&"7J"||"1W";G(1u=="1W"){1U{L=D.6X(c,s.1O,s.9S)}1V(e){1u="5J"}}G(1u=="1W"){J b;1U{b=c.5I("7g-5R")}1V(e){}G(s.5S&&b)D.4z[s.1a]=b;G(!g)1W()}N D.5H(s,c,1u);1J();G(s.31)c=U}};G(s.31){J f=4I(d,13);G(s.2T>0)3B(H(){G(c){c.7l();G(!m)d("2T")}},s.2T)}1U{c.9P(s.L)}1V(e){D.5H(s,c,U,e)}G(!s.31)d();H 1W(){G(s.1W)s.1W(L,1u);G(s.26)D.W.1P("7C",[c,s])}H 1J(){G(s.1J)s.1J(c,1u);G(s.26)D.W.1P("7F",[c,s]);G(s.26&&!--D.4O)D.W.1P("7G")}I c},5H:H(s,a,b,e){G(s.3e)s.3e(a,b,e);G(s.26)D.W.1P("7D",[a,s,e])},4O:0,7j:H(a){1U{I!a.1u&&5Z.9O=="5p:"||(a.1u>=7e&&a.1u<9N)||a.1u==7c||a.1u==9K||D.14.2k&&a.1u==12}1V(e){}I Q},7h:H(a,c){1U{J b=a.5I("7g-5R");I a.1u==7c||b==D.4z[c]||D.14.2k&&a.1u==12}1V(e){}I Q},6X:H(a,c,b){J d=a.5I("9J-O"),2N=c=="2N"||!c&&d&&d.1h("2N")>=0,L=2N?a.9I:a.4U;G(2N&&L.1C.2j=="5J")7p"5J";G(b)L=b(L,c);G(c=="1m")D.5u(L);G(c=="3z")L=6u("("+L+")");I L},3n:H(a){J s=[];G(a.1q==2p||a.5w)D.P(a,H(){s.1p(3u(7.34)+"="+3u(7.2x))});N R(J j 1n a)G(a[j]&&a[j].1q==2p)D.P(a[j],H(){s.1p(3u(j)+"="+3u(7))});N s.1p(3u(j)+"="+3u(D.1D(a[j])?a[j]():a[j]));I s.6s("&").1o(/%20/g,"+")}});D.17.1l({1N:H(c,b){I c?7.2g({1Z:"1N",2h:"1N",1y:"1N"},c,b):7.1E(":1G").P(H(){7.V.18=7.5D||"";G(D.1g(7,"18")=="2F"){J a=D("<"+7.2j+" />").6P("1c");7.V.18=a.1g("18");G(7.V.18=="2F")7.V.18="3I";a.21()}}).3l()},1M:H(b,a){I b?7.2g({1Z:"1M",2h:"1M",1y:"1M"},b,a):7.1E(":4j").P(H(){7.5D=7.5D||D.1g(7,"18");7.V.18="2F"}).3l()},78:D.17.2m,2m:H(a,b){I D.1D(a)&&D.1D(b)?7.78.1w(7,19):a?7.2g({1Z:"2m",2h:"2m",1y:"2m"},a,b):7.P(H(){D(7)[D(7).3F(":1G")?"1N":"1M"]()})},9G:H(b,a){I 7.2g({1Z:"1N"},b,a)},9F:H(b,a){I 7.2g({1Z:"1M"},b,a)},9E:H(b,a){I 7.2g({1Z:"2m"},b,a)},9D:H(b,a){I 7.2g({1y:"1N"},b,a)},9M:H(b,a){I 7.2g({1y:"1M"},b,a)},9C:H(c,a,b){I 7.2g({1y:a},c,b)},2g:H(k,j,i,g){J h=D.77(j,i,g);I 7[h.36===Q?"P":"36"](H(){G(7.16!=1)I Q;J f=D.1l({},h),p,1G=D(7).3F(":1G"),46=7;R(p 1n k){G(k[p]=="1M"&&1G||k[p]=="1N"&&!1G)I f.1J.1k(7);G(p=="1Z"||p=="2h"){f.18=D.1g(7,"18");f.33=7.V.33}}G(f.33!=U)7.V.33="1G";f.45=D.1l({},k);D.P(k,H(c,a){J e=2B D.28(46,f,c);G(/2m|1N|1M/.11(a))e[a=="2m"?1G?"1N":"1M":a](k);N{J b=a.6r().1I(/^([+-]=)?([\\d+-.]+)(.*)$/),2b=e.1t(M)||0;G(b){J d=3d(b[2]),2M=b[3]||"2X";G(2M!="2X"){46.V[c]=(d||1)+2M;2b=((d||1)/e.1t(M))*2b;46.V[c]=2b+2M}G(b[1])d=((b[1]=="-="?-1:1)*d)+2b;e.3G(2b,d,2M)}N e.3G(2b,a,"")}});I M})},36:H(a,b){G(D.1D(a)||(a&&a.1q==2p)){b=a;a="28"}G(!a||(1j a=="23"&&!b))I A(7[0],a);I 7.P(H(){G(b.1q==2p)A(7,a,b);N{A(7,a).1p(b);G(A(7,a).K==1)b.1k(7)}})},9X:H(b,c){J a=D.3O;G(b)7.36([]);7.P(H(){R(J i=a.K-1;i>=0;i--)G(a[i].T==7){G(c)a[i](M);a.7n(i,1)}});G(!c)7.5A();I 7}});J A=H(b,c,a){G(b){c=c||"28";J q=D.L(b,c+"36");G(!q||a)q=D.L(b,c+"36",D.2d(a))}I q};D.17.5A=H(a){a=a||"28";I 7.P(H(){J q=A(7,a);q.4s();G(q.K)q[0].1k(7)})};D.1l({77:H(b,a,c){J d=b&&b.1q==a0?b:{1J:c||!c&&a||D.1D(b)&&b,2u:b,41:c&&a||a&&a.1q!=9t&&a};d.2u=(d.2u&&d.2u.1q==4L?d.2u:D.28.5K[d.2u])||D.28.5K.74;d.5M=d.1J;d.1J=H(){G(d.36!==Q)D(7).5A();G(D.1D(d.5M))d.5M.1k(7)};I d},41:{73:H(p,n,b,a){I b+a*p},5P:H(p,n,b,a){I((-29.9r(p*29.9q)/2)+0.5)*a+b}},3O:[],48:U,28:H(b,c,a){7.15=c;7.T=b;7.1i=a;G(!c.3Z)c.3Z={}}});D.28.44={4D:H(){G(7.15.2Y)7.15.2Y.1k(7.T,7.1z,7);(D.28.2Y[7.1i]||D.28.2Y.4w)(7);G(7.1i=="1Z"||7.1i=="2h")7.T.V.18="3I"},1t:H(a){G(7.T[7.1i]!=U&&7.T.V[7.1i]==U)I 7.T[7.1i];J r=3d(D.1g(7.T,7.1i,a));I r&&r>-9p?r:3d(D.2a(7.T,7.1i))||0},3G:H(c,b,d){7.5V=1z();7.2b=c;7.3l=b;7.2M=d||7.2M||"2X";7.1z=7.2b;7.2S=7.4N=0;7.4D();J e=7;H t(a){I e.2Y(a)}t.T=7.T;D.3O.1p(t);G(D.48==U){D.48=4I(H(){J a=D.3O;R(J i=0;i7.15.2u+7.5V){7.1z=7.3l;7.2S=7.4N=1;7.4D();7.15.45[7.1i]=M;J b=M;R(J i 1n 7.15.45)G(7.15.45[i]!==M)b=Q;G(b){G(7.15.18!=U){7.T.V.33=7.15.33;7.T.V.18=7.15.18;G(D.1g(7.T,"18")=="2F")7.T.V.18="3I"}G(7.15.1M)7.T.V.18="2F";G(7.15.1M||7.15.1N)R(J p 1n 7.15.45)D.1K(7.T.V,p,7.15.3Z[p])}G(b)7.15.1J.1k(7.T);I Q}N{J n=t-7.5V;7.4N=n/7.15.2u;7.2S=D.41[7.15.41||(D.41.5P?"5P":"73")](7.4N,n,0,1,7.15.2u);7.1z=7.2b+((7.3l-7.2b)*7.2S);7.4D()}I M}};D.1l(D.28,{5K:{9l:9j,9i:7e,74:9g},2Y:{2e:H(a){a.T.2e=a.1z},2c:H(a){a.T.2c=a.1z},1y:H(a){D.1K(a.T.V,"1y",a.1z)},4w:H(a){a.T.V[a.1i]=a.1z+a.2M}}});D.17.2i=H(){J b=0,1S=0,T=7[0],3q;G(T)ao(D.14){J d=T.1d,4a=T,1s=T.1s,1Q=T.2z,5U=2k&&3r(5B)<9c&&!/9a/i.11(v),1g=D.2a,3c=1g(T,"30")=="3c";G(T.7y){J c=T.7y();1e(c.1A+29.2f(1Q.1C.2e,1Q.1c.2e),c.1S+29.2f(1Q.1C.2c,1Q.1c.2c));1e(-1Q.1C.6b,-1Q.1C.6a)}N{1e(T.5X,T.5W);1B(1s){1e(1s.5X,1s.5W);G(42&&!/^t(98|d|h)$/i.11(1s.2j)||2k&&!5U)2C(1s);G(!3c&&1g(1s,"30")=="3c")3c=M;4a=/^1c$/i.11(1s.2j)?4a:1s;1s=1s.1s}1B(d&&d.2j&&!/^1c|2K$/i.11(d.2j)){G(!/^96|1T.*$/i.11(1g(d,"18")))1e(-d.2e,-d.2c);G(42&&1g(d,"33")!="4j")2C(d);d=d.1d}G((5U&&(3c||1g(4a,"30")=="5x"))||(42&&1g(4a,"30")!="5x"))1e(-1Q.1c.5X,-1Q.1c.5W);G(3c)1e(29.2f(1Q.1C.2e,1Q.1c.2e),29.2f(1Q.1C.2c,1Q.1c.2c))}3q={1S:1S,1A:b}}H 2C(a){1e(D.2a(a,"6V",M),D.2a(a,"6U",M))}H 1e(l,t){b+=3r(l,10)||0;1S+=3r(t,10)||0}I 3q};D.17.1l({30:H(){J a=0,1S=0,3q;G(7[0]){J b=7.1s(),2i=7.2i(),4c=/^1c|2K$/i.11(b[0].2j)?{1S:0,1A:0}:b.2i();2i.1S-=25(7,\'94\');2i.1A-=25(7,\'aF\');4c.1S+=25(b,\'6U\');4c.1A+=25(b,\'6V\');3q={1S:2i.1S-4c.1S,1A:2i.1A-4c.1A}}I 3q},1s:H(){J a=7[0].1s;1B(a&&(!/^1c|2K$/i.11(a.2j)&&D.1g(a,\'30\')==\'93\'))a=a.1s;I D(a)}});D.P([\'5e\',\'5G\'],H(i,b){J c=\'4y\'+b;D.17[c]=H(a){G(!7[0])I;I a!=12?7.P(H(){7==1b||7==S?1b.92(!i?a:D(1b).2e(),i?a:D(1b).2c()):7[c]=a}):7[0]==1b||7[0]==S?46[i?\'aI\':\'aJ\']||D.71&&S.1C[c]||S.1c[c]:7[0][c]}});D.P(["6N","4b"],H(i,b){J c=i?"5e":"5G",4f=i?"6k":"6i";D.17["5s"+b]=H(){I 7[b.3y()]()+25(7,"57"+c)+25(7,"57"+4f)};D.17["90"+b]=H(a){I 7["5s"+b]()+25(7,"2C"+c+"4b")+25(7,"2C"+4f+"4b")+(a?25(7,"6S"+c)+25(7,"6S"+4f):0)}})})();',62,669,'|||||||this|||||||||||||||||||||||||||||||||||if|function|return|var|length|data|true|else|type|each|false|for|document|elem|null|style|event||nodeName|||test|undefined||browser|options|nodeType|fn|display|arguments|url|window|body|parentNode|add|msie|css|indexOf|prop|typeof|call|extend|script|in|replace|push|constructor|text|offsetParent|cur|status|div|apply|firstChild|opacity|now|left|while|documentElement|isFunction|filter|className|hidden|handle|match|complete|attr|ret|hide|show|dataType|trigger|doc|split|top|table|try|catch|success|break|cache|height||remove|tbody|string|guid|num|global|ready|fx|Math|curCSS|start|scrollTop|makeArray|scrollLeft|max|animate|width|offset|tagName|safari|map|toggle||done|Array|find|toUpperCase|button|special|duration|id|copy|value|handler|ownerDocument|select|new|border|exec|stack|none|opera|nextSibling|pushStack|target|html|inArray|unit|xml|bind|GET|isReady|merge|pos|timeout|delete|one|selected|px|step|jsre|position|async|preventDefault|overflow|name|which|queue|removeChild|namespace|insertBefore|nth|removeData|fixed|parseFloat|error|readyState|multiFilter|createElement|rl|re|trim|end|_|param|first|get|results|parseInt|slice|childNodes|encodeURIComponent|append|events|elems|toLowerCase|json|readyList|setTimeout|grep|mouseenter|color|is|custom|getElementsByTagName|block|stopPropagation|addEventListener|callee|proxy|mouseleave|timers|defaultView|password|disabled|last|has|appendChild|form|domManip|props|ajax|orig|set|easing|mozilla|load|prototype|curAnim|self|charCode|timerId|object|offsetChild|Width|parentOffset|src|unbind|br|currentStyle|clean|float|visible|relatedTarget|previousSibling|handlers|isXMLDoc|on|setup|nodeIndex|unique|shift|javascript|child|RegExp|_default|deep|scroll|lastModified|teardown|setRequestHeader|timeStamp|update|empty|tr|getAttribute|innerHTML|setInterval|checked|fromElement|Number|jQuery|state|active|jsonp|accepts|application|dir|input|responseText|click|styleSheets|unload|not|lastToggle|outline|mouseout|getPropertyValue|mouseover|getComputedStyle|bindReady|String|padding|pageX|metaKey|keyCode|getWH|andSelf|clientX|Left|all|visibility|container|index|init|triggered|removeAttribute|classFilter|prevObject|submit|file|after|windowData|inner|client|globalEval|sibling|jquery|absolute|clone|wrapAll|dequeue|version|triggerHandler|oldblock|ctrlKey|createTextNode|Top|handleError|getResponseHeader|parsererror|speeds|checkbox|old|00|radio|swing|href|Modified|ifModified|lastChild|safari2|startTime|offsetTop|offsetLeft|username|location|ajaxSettings|getElementById|isSimple|values|selectedIndex|runtimeStyle|rsLeft|_load|loaded|DOMContentLoaded|clientTop|clientLeft|toElement|srcElement|val|pageY|POST|unshift|Bottom|clientY|Right|fix|exclusive|detachEvent|cloneNode|removeEventListener|swap|toString|join|attachEvent|eval|substr|head|parse|textarea|reset|image|zoom|odd|even|before|prepend|exclude|expr|quickClass|quickID|uuid|quickChild|continue|Height|textContent|appendTo|contents|open|margin|evalScript|borderTopWidth|borderLeftWidth|parent|httpData|setArray|CSS1Compat|compatMode|boxModel|cssFloat|linear|def|webkit|nodeValue|speed|_toggle|eq|100|replaceWith|304|concat|200|alpha|Last|httpNotModified|getAttributeNode|httpSuccess|clearInterval|abort|beforeSend|splice|styleFloat|throw|colgroup|XMLHttpRequest|ActiveXObject|scriptCharset|callback|fieldset|multiple|processData|getBoundingClientRect|contentType|link|ajaxSend|ajaxSuccess|ajaxError|col|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|keypress|keydown|change|mouseup|mousedown|dblclick|focus|blur|stylesheet|hasClass|rel|doScroll|black|hover|solid|cancelBubble|returnValue|wheelDelta|view|round|shiftKey|resize|screenY|screenX|relatedNode|mousemove|prevValue|originalTarget|offsetHeight|keyup|newValue|offsetWidth|eventPhase|detail|currentTarget|cancelable|bubbles|attrName|attrChange|altKey|originalEvent|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|font|gt|lt|uFFFF|u0128|size|417|Boolean|Date|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|wrap|contentWindow|contentDocument|iframe|children|siblings|prevAll|wrapInner|nextAll|outer|prev|scrollTo|static|marginTop|next|inline|parents|able|cellSpacing|adobeair|cellspacing|522|maxLength|maxlength|readOnly|400|readonly|fast|600|class|slow|1px|htmlFor|reverse|10000|PI|cos|compatible|Function|setData|ie|ra|it|rv|getData|userAgent|navigator|fadeTo|fadeIn|slideToggle|slideUp|slideDown|ig|responseXML|content|1223|NaN|fadeOut|300|protocol|send|setAttribute|option|dataFilter|cssText|changed|be|Accept|stop|With|Requested|Object|can|GMT|property|1970|Jan|01|Thu|Since|If|Type|Content|XMLHTTP|th|Microsoft|td|onreadystatechange|onload|cap|charset|colg|host|tfoot|specified|with|1_|thead|leg|plain|attributes|opt|embed|urlencoded|www|area|hr|ajaxSetup|meta|post|getJSON|getScript|marginLeft|img|elements|pageYOffset|pageXOffset|abbr|serialize|pixelLeft'.split('|'),0,{})) \ No newline at end of file diff --git a/doc/readme.html b/doc/readme.html deleted file mode 100644 index e38d071..0000000 --- a/doc/readme.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - README - - -
-
-

rena

-
    -
  • http://github.com/tommorris/rena - -
  • -
-

DESCRIPTION:

-

-Rena is an RDF library for Ruby. -

-

FEATURES/PROBLEMS:

-
    -
  • Features - -
  • -
-

SYNOPSIS:

-
-  Synopsis
-
-

REQUIREMENTS:

-
    -
  • Addressable gem - -
  • -
-

INSTALL:

-
    -
  • (sudo gem install rena) - -
  • -
-

LICENSE:

-

-(The MIT License) -

-

-Copyright © 2008 Tom Morris -

-

-Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -‘Software’), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to the -following conditions: -

-

-The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -

-

-THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. -

- -
-
- - \ No newline at end of file diff --git a/doc/style.css b/doc/style.css deleted file mode 100644 index a13d216..0000000 --- a/doc/style.css +++ /dev/null @@ -1,65 +0,0 @@ -body { font-family: Myriad, Helvetica, Arial, Verdana, sans-serif; font-size: 10pt; } -#nav ul { list-style: none; padding: 0; margin: 0; } -#nav ul li { white-space: nowrap; } -#nav li em { font-size: 0.9em; color: #999; } -#nav h1 { font-size: 1.2em; } -h1 { font-size: 1.5em; background: #eee; color: #000; padding: 3px; text-decoration: none; } -h2 { font-size: 1.2em; background: #eef; color: #000; padding: 3px; text-decoration: none; } -h3 { font-size: 1.0em; } -.clear { clear: both; } -.section.module h1.title, .section.class h1.title, .section.readme h1 { color: #000; background: #ddd; border: 1px solid #ccc; padding: 7px; margin: 0; margin-bottom: 7px; } -.section.class h1.title { border-bottom: 0; margin-bottom: 0; } -.section.class > .section.docstring, .section.module > .section.docstring { padding: 0; } -#initialize-instance_method .methodsignature .return_types { display: none; } -.methodsignature .visibility { display: none; } -.methodsignature .name { font-weight: bold; } -.methoddetails .method_header h3 { display: none; } -.section.method { background: #eee; margin-bottom: 0.8em; } -.section.tags,.section.docstring,.section.source { padding: 5px 12px; } -.section.method .details_title { font-size: 1.1em; background: #dde; padding: 7px; } -.section.method .details_title p.aliases { padding: 0; margin: 0; font-style: italic; font-size: 0.9em; } -.section.method .details_title p.aliases tt { font-weight: bold; font-style: normal; font-size: 1.1em; } -.section.constants dl { font-family: monospace; } -.section.constants dt { font-weight: bold; font-size: 1.1em; } -.section.constants dt:after { content: " = "; } -.section.constants dd { margin-bottom: 1em; } -.section.source .source_link { font-size: 0.9em; } -.section.source .source_code { display: none; } -/*.section.source .source_code pre { float: left; }*/ -.section.attributes table { padding: 0; width: 100%; } -.section.attributes .readwrite { width: 5%; } -.section.attributes .name { font-weight: bold; width: 10%; } -.section.attributes .visibility { font-style: italic; color: #666; width: 5%; } -.section.attributes td, .section.attributes th { vertical-align: top; padding: 5px; } -.section.attributes th { padding-left: 0; text-align: left; } -.section.attributes .docstring p.returns { color: #555; font-style: italic; } -.section.attributes .docstring .return_types { font-style: normal; } -.section.attributes .docstring { width: 80%; } -.section.attributes .docstring * { display: inline; } -.section.inheritance { background: #ddd; padding: 5px; border: 1px solid #ccc; border-top: 0; } -.section.inheritance ul { list-style: none; padding-left: 2.2em; margin: 0; } -.section.inheritance ul li { line-height: 1.2em; } -.section.inheritance ul li:before { content: "↳ "; } -.section.inheritance > ul { padding-left: 5px; } -.section.inheritance > ul > li:before { content: ""; } -.section.inheritance > ul > ul { padding-left: 1em; } -.section.methodsummary table { width: 100%; } -.section.methodsummary td, .section.methodsummary th { background: #eee; vertical-align: top; padding: 5px; } -.section.methodsummary th { background: #dde; text-align: left; white-space: nowrap; padding-right: 12px; } -.section.methodsummary .signature { font-family: monospace; font-weight: normal; } -.section.methodsummary .signature .name { font-weight: bold; } -.section.methodsummary .signature .alias { display: block; } -.section.methodsummary .docstring { width: 80%; } -.section.methodsummary .docstring * { display: inline; } -.section.methodsummary .docstring p.returns { color: #555; font-style: italic; } -.section.methodsummary .docstring .return_types { font-style: normal; } -.section.tags div { clear: both; } -.section.tags h2 { display: none; } -.section.tags h3 { font-size: 1.0em; margin-top: 3px; } -.section.tags dl { margin-left: 2em; } -.section.methodmissing p.note { font-style: italic; } -.section.constructor p.inherited_msg { font-style: italic; } -.included h1, .inherited h1 { font-size: 1em !important; border: 0; margin: 0; padding: 5px; border-bottom: 1px solid #ccc; } -.included div, .inherited div { color: #444; margin: 1.5em 0; width: 47%; border: 1px solid #ccc; float: left; margin-right: 12px; } -.included p .name, .inherited p .name { font-family: monospace; } -.included p, .inherited p { margin: 5px; } diff --git a/doc/syntax_highlight.css b/doc/syntax_highlight.css deleted file mode 100644 index 22f9e1d..0000000 --- a/doc/syntax_highlight.css +++ /dev/null @@ -1,21 +0,0 @@ -/* Canvas */ -.docstring pre, .source_code { background: #222; padding: 0 12px; margin-top: 8px; border: 1px dashed #ccc; font-size: 0.9em; overflow-x: auto; } -.source_code pre.lines { margin-right: 20px; text-align: right; color: #888; } -.docstring pre { padding: 12px; padding-left: 0; } - -/* Token colours. Borrowed from pastie.org's "Blackboard" theme */ -pre.code, pre.lines { font-family: Monaco, Courier, monospace; } -pre.code { color: #fff; } -pre.code .info.file { color: #888; } -pre.code .val { color: #61CE3C; } -pre.code .dstring { color: #61DE3C; } -pre.code .fid, pre.code .id.new, pre.code .id.to_s, -pre.code .id.to_sym, pre.code .id.to_f, -pre.code .dot + pre.code .id, -pre.code .id.to_i pre.code .id.each { color: #FF6400; } -pre.code .comment { color: #AEAEAE; } -pre.code .constant, pre.code .symbol { color: #D8FA3C; } -pre.code .kw { color: #FBDE2D; } -pre.code .ivar { color: #AACEFB; } -pre.code .gvar, pre.code .id.nth_ref { color: #BADEFF; } -pre.code .regexp, .dregexp { color: #EA5EFB; } \ No newline at end of file diff --git a/lib/rena.rb b/lib/rena.rb deleted file mode 100644 index 9f945e9..0000000 --- a/lib/rena.rb +++ /dev/null @@ -1,5 +0,0 @@ -$:.unshift File.dirname(__FILE__) -Dir.glob(File.join(File.dirname(__FILE__), 'rena/**.rb')).each { |f| require f } - -module Rena -end diff --git a/lib/rena/bnode.rb b/lib/rena/bnode.rb deleted file mode 100644 index f4804e8..0000000 --- a/lib/rena/bnode.rb +++ /dev/null @@ -1,69 +0,0 @@ -module Rena - class BNode - attr_accessor :identifier - def initialize(identifier = nil) - if identifier != nil && self.valid_id?(identifier) != false - @identifier = identifier - else - @identifier = "bn" + self.hash.to_s - end - end - - def eql? (other) - other.is_a?(self.class) && other.identifier == self.identifier - end - - alias_method :==, :eql? - - ## - # Exports the BNode in N-Triples form. - # - # ==== Example - # b = BNode.new; b.to_n3 # => returns a string of the BNode in n3 form - # - # ==== Returns - # @return [String] The BNode in n3. - # - # @author Tom Morris - - def to_n3 - "_:" + @identifier - end - - - ## - # Exports the BNode in N-Triples form. - # - # ==== Example - # b = BNode.new; b.to_ntriples # => returns a string of the BNode in N-Triples form - # - # ==== Returns - # @return [String] The BNode in N-Triples. - # - # @author Tom Morris - - def to_ntriples - self.to_n3 - end - - ## - # Returns the identifier as a string. - # - # === Returns - # @return [String] Blank node identifier. - # - # @author Tom Morris - def to_s - @identifier - end - - protected - def valid_id? name - if name =~ /^[a-zA-Z_][a-zA-Z0-9]*$/ - true - else - false - end - end - end -end diff --git a/lib/rena/exceptions/about_each_exception.rb b/lib/rena/exceptions/about_each_exception.rb deleted file mode 100644 index 5291373..0000000 --- a/lib/rena/exceptions/about_each_exception.rb +++ /dev/null @@ -1,2 +0,0 @@ -class AboutEachException -end \ No newline at end of file diff --git a/lib/rena/exceptions/uri_relative_exception.rb b/lib/rena/exceptions/uri_relative_exception.rb deleted file mode 100644 index 239632b..0000000 --- a/lib/rena/exceptions/uri_relative_exception.rb +++ /dev/null @@ -1,2 +0,0 @@ -class UriRelativeException < RuntimeError -end \ No newline at end of file diff --git a/lib/rena/graph.rb b/lib/rena/graph.rb deleted file mode 100644 index e24ee75..0000000 --- a/lib/rena/graph.rb +++ /dev/null @@ -1,188 +0,0 @@ -require 'rena/namespace' -require 'rena/bnode' -require 'rena/uriref' -require 'rena/literal' -require 'rena/triple' - -module Rena - class Graph - attr_accessor :triples, :nsbinding - - def initialize - @triples = [] - @nsbinding = {} - end - - def size - @triples.size - end - - def each - @triples.each { |value| yield value } - end - - def [] (item) - @triples[item] - end - - def each_with_subject(subject) - @triples.each do |value| - yield value if value.subject == subject - end - end - - def get_resource(subject) - temp = [] - each_with_subject(subject) do |value| - temp << subject - end - if temp.any? - Resource.new(temp) - end - end - - ## - # Adds a triple to a graph directly from the intended subject, predicate, and object. - # - # ==== Example - # g = Graph.new; g.add_triple(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new) # => results in the triple being added to g; returns an array of g's triples - # - # @param [URIRef, BNode] s the subject of the triple - # @param [URIRef] p the predicate of the triple - # @param [URIRef, BNode, Literal, TypedLiteral] o the object of the triple - # - # ==== Returns - # @return [Array] An array of the triples (leaky abstraction? consider returning the graph instead) - # - # @raise [Error] Checks parameter types and raises if they are incorrect. - # @author Tom Morris - - def add_triple(s, p, o) - @triples += [ Triple.new(s, p, o) ] - end - - ## - # Adds an extant triple to a graph - # - # ==== Example - # g = Graph.new; t = Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new); g << t) # => results in the triple being added to g; returns an array of g's triples - # - # @param [Triple] t the triple to be added to the graph - # - # ==== Returns - # @return [Array] An array of the triples (leaky abstraction? consider returning the graph instead) - # - # @author Tom Morris - - - def << (triple) - # self.add_triple(s, p, o) - @triples += [ triple ] - end - - ## - # Exports the graph to RDF in N-Triples form. - # - # ==== Example - # g = Graph.new; g.add_triple(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new); g.to_ntriples # => returns a string of the graph in N-Triples form - # - # ==== Returns - # @return [String] The graph in N-Triples. - # - # @author Tom Morris - - def to_ntriples - @triples.collect do |t| - t.to_ntriples - end * "\n" - end - - ## - # Creates a new namespace given a URI and the short name and binds it to the graph. - # - # ==== Example - # g = Graph.new; g.namespace("http://xmlns.com/foaf/0.1/", "foaf") # => binds the Foaf namespace to g - # - # @param [String] uri the URI of the namespace - # @param [String] short the short name of the namespace - # - # ==== Returns - # @return [Namespace] The newly created namespace. - # - # @raise [Error] Checks validity of the desired shortname and raises if it is incorrect. - # @raise [Error] Checks that the newly created Namespace is of type Namespace and raises if it is incorrect. - # @author Tom Morris - - def namespace(uri, short) - self.bind Namespace.new(uri, short) - end - - def bind(namespace) - if namespace.class == Namespace - @nsbinding["#{namespace.short}"] = namespace - else - raise - end - end - - def has_bnode_identifier?(bnodeid) - temp_bnode = BNode.new(bnodeid) - returnval = false - @triples.each { |triple| - if triple.subject.eql?(temp_bnode) - returnval = true - break - end - if triple.object.eql?(temp_bnode) - returnval = true - break - end - } - return returnval - end - - def get_bnode_by_identifier(bnodeid) - temp_bnode = BNode.new(bnodeid) - each do |triple| - if triple.subject == temp_bnode - return triple.subject - end - if triple.object == temp_bnode - return triple.object - end - end - return false - end - - def get_by_type(object) - out = [] - each do |t| - next unless t.is_type? - next unless case object - when String - object == t.object.to_s - when Regexp - object.match(t.object.to_s) - else - object == t.object - end - out << t.subject - end - return out - end - - def join(graph) - if graph.class == Graph - graph.each { |t| - self << t - } - else - raise "join requires you provide a graph object" - end - end - # alias :add, :add_triple - # alias (=+, add_triple) - private - - end -end diff --git a/lib/rena/literal.rb b/lib/rena/literal.rb deleted file mode 100644 index 92e8c06..0000000 --- a/lib/rena/literal.rb +++ /dev/null @@ -1,207 +0,0 @@ -module Rena - class Literal - class Encoding - def self.integer - @integer ||= coerce "http://www.w3.org/2001/XMLSchema#int" - end - - def self.float - @float ||= coerce "http://www.w3.org/2001/XMLSchema#float" - end - - def self.string - @string ||= coerce "http://www.w3.org/2001/XMLSchema#string" - end - - def self.coerce(string_or_nil) - if string_or_nil.nil? || string_or_nil == '' - the_null_encoding - else - new string_or_nil - end - end - - class Null - def to_s - '' - end - - def format_as_n3(content) - "\"#{content}\"" - end - - def format_as_trix(content) - "#{content}" - end - - def inspect - "" - end - - def xmlliteral? - false - end - end - - def self.the_null_encoding - @the_null_encoding ||= Null.new - end - - attr_reader :value - def initialize(value) - @value = value - end - - def should_quote? - @value != self.class.integer.to_s - end - - def ==(other) - case other - when String - other == @value - when self.class - other.value == @value - else - false - end - end - - def hash - @value.hash - end - - def to_s - @value - end - - def format_as_n3(content) - quoted_content = should_quote? ? "\"#{content}\"" : content - "#{quoted_content}^^<#{value}>" - end - - def format_as_trix(value) - "#{value}" - end - - def xmlliteral? - @value == "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" - end - end - - class Language < Encoding - def initialize(string) - @value = string.downcase - end - - def clean(string) - case string - when "eng"; "en" - else string - end - end - - def format_as_n3(contents) - "\"#{contents}\"@#{@value}" - end - - def format_as_trix(contents) - "#{contents}" - end - - def == (other) - case other - when String - other == @value - when self.class - other.value == @value - end - end - end - - attr_accessor :contents, :encoding - def initialize(contents, encoding) - @contents = contents.to_s - unless encoding.is_a?(Encoding) || encoding.is_a?(Encoding::Null) - raise TypeError, "#{encoding.inspect} should be an instance of Encoding" - end - @encoding = encoding - end - - def self.untyped(contents, language = nil) - new(contents, Language.coerce(language)) - end - - def self.typed(contents, encoding) - new(contents, Encoding.coerce(encoding)) - end - - def self.build_from(object) - new(object.to_s, infer_encoding_for(object)) - end - - def self.infer_encoding_for(object) - case object - when Integer; Encoding.integer - when Float; Encoding.float - else Encoding.string - end - end - - require 'whatlanguage' - unless WhatLanguage.nil? - def self.infer_language_for(object) - inferred_lang = object.language - case inferred_lang - when :dutch; Language.new("nl") - when :english; Language.new("en") - when :farsi; Langauge.new("fa") - when :french; Language.new("fr") - when :german; Language.new("de") - when :pinyin; Language.new("zh-CN") - when :portugese; Language.new("pt") - when :russian; Language.new("ru") - when :spanish; Language.new("es") - when :swedish; Language.new("sv") - end - end - - def self.build_from_language(object) - new(object.to_s, infer_language_for(object)) - end - end - - class << self - protected :new - end - - def == (obj) - obj.is_a?(self.class) && obj.contents == @contents && obj.encoding == @encoding - end - - def to_n3 - encoding.format_as_n3(@contents) - end - - ## alias_method breaks subclasses! Beware! Here be dragons! - def to_ntriples - to_n3 - end - - def to_trix - encoding.format_as_trix(@contents) - end - - def xmlliteral? - encoding.xmlliteral? - end - - def to_s - @contents.to_s - end - - def lang - encoding.is_a?(Language) ? encoding : nil - end - end -end diff --git a/lib/rena/n3_grammar.treetop b/lib/rena/n3_grammar.treetop deleted file mode 100644 index dabc2e6..0000000 --- a/lib/rena/n3_grammar.treetop +++ /dev/null @@ -1,129 +0,0 @@ -grammar N3Grammer - rule document - statements - end - - rule statements - (space / (statement / directive) space* ('.' space*)? )* - end - - rule statement - subject space+ property_list - end - - rule subject - node - end - - rule verb - ">-" prop "->" # has xxx of - / "<-" prop "<-" # is xxx of - # / # / operator # has operator:xxx of??? NOT IMPLMENTED - / prop # has xxx of -- shorthand - # / "has" prop # has xxx of - # / "is" prop "of" # is xxx of - / "a" # has rdf:type of - # / "=" # has daml:equivaent of - end - - rule prop - node - end - - rule node - uri_ref2 / anonnode / 'this' - end - - rule anonnode - "[" space* property_list space* "]" # something which ... - / "{" statementlist "}" # the statementlist itself as a resource - / "(" nodelist ")" { - def anonnode; true; end - } - end - - rule property_list - verb space+ object_list space* ";" space+ property_list - / verb space+ object_list - / ":-" anonnode #to allow two anonymous forms to be given eg [ a :Truth; :- { :sky :color :blue } ] ) - / ":-" anonnode ";" property_list - / '.' - end - - rule object_list - object "," space* object_list / object - end - - rule directive - '@prefix' space+ nprefix:nprefix? ':' space+ uri_ref2:uri_ref2 { - def directive; true; end - } - end - - rule uri_ref2 - qname / "<" uri:URI_Reference ">" - end - - rule qname - nprefix ":" localname / ':' localname - end - - rule object - subject / literal - end - - rule literal - (string1 / string2) ("^^<" uri:URI_Reference ">" / "@" [a-z]+ )? - end - - rule localname - fragid - end - - rule URI_Reference - [^{}<>]* - end - - rule nprefix - ((alpha / "_") alphanumeric*) - end - - rule fragid - alpha alphanumeric* - end - - rule alpha - [a-zA-Z] - end - - rule alphanumeric - alpha / [0-9] / "_" - end - - rule space - [ \t\n\r]+ / comment - end - - rule comment - '#' (![\n\r] .)* - end - - # " constant-value-with-escaping " - rule string1 - '"' string1_char+ '"' - end - - rule string1_char - !["] . - end - - # """ constant value with escaping including single or double occurences of quotes and/or newlines """ - rule string2 - '"""' string2_char* '"""' - end - - rule string2_char - !'"""' . # something like this; need to think about it some more - end - -end diff --git a/lib/rena/n3parser.rb b/lib/rena/n3parser.rb deleted file mode 100644 index 533f5e6..0000000 --- a/lib/rena/n3parser.rb +++ /dev/null @@ -1,145 +0,0 @@ -require 'rena/graph' -require 'treetop' - -Treetop.load(File.join(File.dirname(__FILE__), "n3_grammar")) - -module Rena - class N3Parser - attr_accessor :graph - - ## - # Creates a new parser for N3 (or Turtle). - # - # @param [String] n3_str the Notation3/Turtle string - # @param [String] uri the URI of the document - # - # @author Patrick Sinclair (metade) - def initialize(n3_str, uri=nil) - @uri = Addressable::URI.parse(uri) unless uri.nil? - parser = N3GrammerParser.new - document = parser.parse(n3_str) - if document - @graph = Graph.new - process_directives(document) - process_statements(document) - else - parser.terminal_failures.each do |tf| - puts "Expected #{tf.expected_string.inspect} (#{tf.index})- '#{n3_str[tf.index,10].inspect}'" - end - end - end - - protected - - def process_directives(document) - directives = document.elements.find_all { |e| e.elements.first.respond_to? :directive } - directives.map! { |d| d.elements.first } - directives.each { |d| namespace(d.uri_ref2.uri.text_value, d.nprefix.text_value) } - end - - def namespace(uri, short) - short = '__local__' if short == '' - @graph.namespace(uri, short) - end - - def process_statements(document) - subjects = document.elements.find_all { |e| e.elements.first.respond_to? :subject } - subjects.map! { |s| s.elements.first } - subjects.each do |s| - subject = process_node(s.subject) - properties = process_properties(s.property_list) - properties.each do |p| - predicate = process_verb(p.verb) - objects = process_objects(p.object_list) - objects.each { |object| triple(subject, predicate, object) } - end - end - end - - def triple(subject, predicate, object) - @graph.add_triple(subject, predicate, object) - end - - def process_anonnode(anonnode) - bnode = BNode.new - properties = process_properties(anonnode.property_list) - properties.each do |p| - predicate = process_node(p.verb) - objects = process_objects(p.object_list) - objects.each { |object| triple(bnode, predicate, object) } - end - bnode - end - - def process_verb(verb) - return URIRef.new('http://www.w3.org/1999/02/22-rdf-syntax-ns#type') if (verb.text_value=='a') - return process_node(verb) - end - - def process_node(node) - if (node.respond_to? :uri) - URIRef.new(node.uri.text_value) - else - prefix = (node.respond_to? :nprefix) ? node.nprefix.text_value : nil - localname = node.localname.text_value - build_uri(prefix, localname) - end - end - - def process_properties(properties) - result = [] - result << properties if (properties.respond_to? :verb) - result << process_properties(properties.property_list) if (properties.respond_to? :property_list) - result.flatten - end - - def process_objects(objects) - result = [] - if (objects.respond_to? :object) - result << process_object(objects.object) - else - result << process_object(objects) - end - result << process_objects(objects.object_list) if (objects.respond_to? :object_list) - result.flatten - end - - def process_object(object) - if (object.respond_to? :localname or object.respond_to? :uri) - process_node(object) - elsif (object.respond_to? :property_list) - process_anonnode(object) - else - process_literal(object) - end - end - - def process_literal(object) - encoding, language = nil, nil - string, type = object.elements - - unless type.elements.nil? - if (type.elements[0].text_value=='@') - language = type.elements[1].text_value - else - encoding = type.elements[1].text_value - end - end - - if (encoding.nil?) - Literal.untyped(string.elements[1].text_value, language) - else - Literal.typed(string.elements[1].text_value, encoding) - end - end - - def build_uri(prefix, localname) - prefix = '__local__' if prefix.nil? - if (prefix=='_') - BNode.new(localname) - else - @graph.nsbinding[prefix].send(localname) - end - end - end -end diff --git a/lib/rena/namespace.rb b/lib/rena/namespace.rb deleted file mode 100644 index 36ede7f..0000000 --- a/lib/rena/namespace.rb +++ /dev/null @@ -1,76 +0,0 @@ -require 'rena/uriref' -require 'rena/graph' - -module Rena - class Namespace - attr_accessor :short, :uri, :fragment - - ## - # Creates a new namespace given a URI and the short name. - # - # ==== Example - # Namespace.new("http://xmlns.com/foaf/0.1/", "foaf") # => returns a new Foaf namespace - # - # @param [String] uri the URI of the namespace - # @param [String] short the short name of the namespace - # @param [Boolean] fragment are the identifiers on this resource fragment identifiers? (e.g. '#') Defaults to false. - # - # ==== Returns - # @return [Namespace] The newly created namespace. - # - # @raise [Error] Checks validity of the desired shortname and raises if it is incorrect. - # @author Tom Morris, Pius Uzamere - - def initialize(uri, short, fragment = false) - @uri = uri - @fragment = fragment - if shortname_valid?(short) - @short = short - else - raise - end - end - - ## - # Allows the construction of arbitrary URIs on the namespace. - # - # ==== Example - # foaf = Namespace.new("http://xmlns.com/foaf/0.1/", "foaf"); foaf.knows # => returns a new URIRef with URI "http://xmlns.com/foaf/0.1/knows" - # foaf = Namespace.new("http://xmlns.com/foaf/0.1/", "foaf", true); foaf.knows # => returns a new URIRef with URI "http://xmlns.com/foaf/0.1/#knows" - # - # @param [String] uri the URI of the namespace - # @param [String] short the short name of the namespace - # @param [Boolean] fragment are the identifiers on this resource fragment identifiers? (e.g. '#') Defaults to false. - # - # ==== Returns - # @return [URIRef] The newly created URIRegerence. - # - # @raise [Error] Checks validity of the desired shortname and raises if it is incorrect. - # @author Tom Morris, Pius Uzamere - - def method_missing(methodname, *args) - unless fragment - URIRef.new(@uri + methodname.to_s) - else - URIRef.new(@uri + '#' + methodname.to_s) - end - end - - def bind(graph) - if graph.class == Graph - graph.bind(self) - else - raise - end - end - - private - def shortname_valid?(shortname) - if shortname =~ /[a-zA-Z_][a-zA-Z0-9_]+/ - return true - else - return false - end - end - end -end \ No newline at end of file diff --git a/lib/rena/rdfaparser.rb b/lib/rena/rdfaparser.rb deleted file mode 100644 index 09686df..0000000 --- a/lib/rena/rdfaparser.rb +++ /dev/null @@ -1,65 +0,0 @@ -# require 'lib/rena' - -module Rena - class Rena::RdfaParser - attr_accessor :xml, :uri, :graph - - def initialize (str, uri) - @doc_string = str - @xml = REXML::Document.new(str) - @uri = uri - @graph = Graph.new - self.iterate(@xml.root.elements[2].elements[1].elements[1]) - end - - def parse_ns_curie(el, attname) - attstring = el.attributes[attname] - prefix = attstring.scan(/(.+):.+/).to_s - if el.namespaces[prefix] - namespace = el.namespaces[prefix] - else - raise "Namespace used in CURIE but not declared" - end - return namespace + attstring.scan(/.+:(.+)/).to_s - end - - def iterate (el) - - if el.attributes['about'] - if el.attributes['about'] =~ /^http/ - # deal with as absolute - subject = el.attributes['about'].to_s - else - # time to go xml:base sneakin' - if xml.base? - subject = Addressable::URI.parse(xml.base) - subject = subject + el.attributes['about'] - else - subject = Addressable::URI.parse(@uri) - subject = subject + el.attributes['about'] - end - end - else - subject = @uri - end - - if el.attributes['property'] - if el.attributes['property'] =~ /^http/ - property = el.attributes['property'] - else - # curie hunt! - property = self.parse_ns_curie(el, "property") - end - end - - if el.attributes['content'] - value = el.attributes['content'] - else - value = el.text - end - - @graph.add_triple subject.to_s, URIRef.new(property), value - end - - end -end \ No newline at end of file diff --git a/lib/rena/rdfxmlparser.rb b/lib/rena/rdfxmlparser.rb deleted file mode 100644 index 2298f00..0000000 --- a/lib/rena/rdfxmlparser.rb +++ /dev/null @@ -1,188 +0,0 @@ -require 'rena/uriref' -require 'rena/graph' -require 'rena/literal' -require 'rena/exceptions/uri_relative_exception' -require 'rena/exceptions/about_each_exception' -require 'rena/rexml_hacks' - - -module Rena - class RdfXmlParser - SYNTAX_BASE = "http://www.w3.org/1999/02/22-rdf-syntax-ns" - RDF_TYPE = SYNTAX_BASE + "#type" - RDF_DESCRIPTION = SYNTAX_BASE + "#Description" - - attr_accessor :xml, :graph - def initialize(xml_str, uri = nil) - @excl = ["http://www.w3.org/1999/02/22-rdf-syntax-ns#resource", - "http://www.w3.org/1999/02/22-rdf-syntax-ns#nodeID", - "http://www.w3.org/1999/02/22-rdf-syntax-ns#about", - "http://www.w3.org/1999/02/22-rdf-syntax-ns#ID"] - if uri != nil - @uri = Addressable::URI.parse(uri) - end - @xml = REXML::Document.new(xml_str) - # self.iterator @xml.root.children - if self.is_rdf? - @graph = Graph.new - - @xml.root.each_element { |e| - self.parse_element e - } - # puts @graph.size - end - end - - def is_rdf? - @xml.each_element do |e| - if e.namespaces.has_value? "http://www.w3.org/1999/02/22-rdf-syntax-ns#" - return true - end - end - return false - end - - protected - def get_uri_from_atts (element, aboutmode = false) - if aboutmode == false - resourceuri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#resource" - else - resourceuri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#about" - end - - subject = nil - element.attributes.each_attribute { |att| - uri = att.namespace + att.name - value = att.to_s - if uri == "http://www.w3.org/1999/02/22-rdf-syntax-ns#aboutEach" - raise AboutEachException, "Failed as per RDFMS-AboutEach-Error001.rdf test from 2004 test suite" - end - if uri == "http://www.w3.org/1999/02/22-rdf-syntax-ns#aboutEachPrefix" - raise AboutEachException, "Failed as per RDFMS-AboutEach-Error002.rdf test from 2004 test suite" - end - if uri == "http://www.w3.org/1999/02/22-rdf-syntax-ns#bagID" - raise - if name =~ /^[a-zA-Z_][a-zA-Z0-9]*$/ - # TODO: do something intelligent with the bagID - else - raise - end - end - - if uri == resourceuri #specified resource - element_uri = Addressable::URI.parse(value) - if (element_uri.relative?) - # we have an element with a relative URI - if (element.base?) - # the element has a base URI, use that to build the URI - value = "##{value}" if (value[0..0].to_s != "#") - value = "#{element.base}#{value}" - elsif (!@uri.nil?) - # we can use the document URI to build the URI for the element - value = @uri + element_uri - end - end - subject = URIRef.new(value) - end - - if uri == "http://www.w3.org/1999/02/22-rdf-syntax-ns#nodeID" #BNode with ID - # we have a BNode with an identifier. First, we need to do syntax checking. - if value =~ /^[a-zA-Z_][a-zA-Z0-9]*$/ - # now we check to see if the graph has the value - if @graph.has_bnode_identifier?(value) - # if so, pull it in - no need to recreate objects. - subject = @graph.get_bnode_by_identifier(value) - else - # if not, create a new one. - subject = BNode.new(value) - end - end - end - - if uri == "http://www.w3.org/1999/02/22-rdf-syntax-ns#ID" - begin - # check for base - if att.element.base? - subject = att.element.base.to_s + value - elsif @uri != nil - compound = @uri.to_s + "#" + value - subject = compound.to_s - else - raise "Needs to have an ID" - end - # rescue UriRelativeException - end - end - - # add other subject detection subroutines here - } - if subject.class == NilClass - subject = BNode.new - end - return subject - end - - protected - - def parse_element (element, subject = nil, resource = false) - if subject == nil - # figure out subject - subject = self.get_uri_from_atts(element, true) - end - - # type parsing - if (resource == true or element.attributes.has_key? 'about') - type = URIRef.new(element.namespace + element.name) - unless type.to_s == RDF_TYPE - @graph.add_triple(subject, RDF_DESCRIPTION, type) - end - end - - # attribute parsing - element.attributes.each_attribute { |att| - uri = att.namespace + att.name - value = att.to_s - - unless @excl.member? uri - @graph.add_triple(subject, uri, Literal.untyped(value)) - end - } - - # element parsing - element.each_element { |e| - self.parse_resource_element e, subject - } - end - - def parse_resource_element e, subject - uri = e.namespace + e.name - if e.attributes.get_attribute_ns("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "parseType").to_s == "Literal" - @graph.add_triple(subject, uri, Literal.typed(e.children.to_s.strip, "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral")) - elsif e.has_elements? - # subparsing - e.each_element { |se| #se = 'striped element' - if e.attributes.get_attribute_ns("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "parseType").to_s == "Resource" - object = BNode.new - else - object = self.get_uri_from_atts(se, true) - end - @graph.add_triple(subject, uri, object) - self.parse_element(se, object, true) - } - elsif e.attributes.get_attribute_ns("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "datatype") - @graph.add_triple(subject, uri, Literal.typed(e.text, e.attributes.get_attribute_ns("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "datatype").to_s.strip)) - elsif e.has_attributes? - # get object out - object = self.get_uri_from_atts(e) - @graph.add_triple(subject, uri, object) - elsif e.has_text? - if e.lang? - @graph.add_triple(subject, uri, Literal.untyped(e.text, e.lang)) - else - @graph.add_triple(subject, uri, Literal.untyped(e.text)) - end - end - end - - end -end diff --git a/lib/rena/rexml_hacks.rb b/lib/rena/rexml_hacks.rb deleted file mode 100644 index c65c098..0000000 --- a/lib/rena/rexml_hacks.rb +++ /dev/null @@ -1,97 +0,0 @@ -require 'rexml/document' - -# @ignore -# def subdocument_writer(el) -# el.prefixes.each { |ns| -# el.add_attribute('xmlns:' + ns, el.namespaces[ns].to_s) -# } -# return el.to_s -# end - -class REXML::Element - public - - ## - # Tells you whether or not an element has a set xml:lang. - # - # @author Tom Morris - def lang? - self.lang.nil? ? false : true - end - - ## - # Tells you what the set xml:lang is for an element. - # - # ==== Returns - # @return [String] The URI of the xml:lang. - # - # @author Tom Morris - def lang - if self.attributes['xml:lang'] - return self.attributes['xml:lang'].to_s - elsif self.parent != nil - return self.parent.lang - else - return nil - end - end - - ## - # Tells you whether or not an element has a set xml:base. - # - # @author Tom Morris - def base? - if self.base != nil - true - else - false - end - end - - ## - # Tells you what the set xml:lang is for an element. - # - # ==== Returns - # @return [String] The URI of the xml:base. - # - # @author Tom Morris - def base - if self.attributes['xml:base'] - return self.attributes['xml:base'].to_s - elsif self.parent != nil - return self.parent.base - else - return nil - end - end - - ## - # Allows you to write out an XML representation of a particular element and it's children, fixing namespace issues. - # - # ==== Returns - # @return [String] The XML of the element and it's children. - # - # @author Tom Morris - def write_rena(excl=[]) - # TODO: add optional list argument of excluded namespaces - self.prefixes.each { |ns| - self.add_attribute('xmlns:' + ns, self.namespaces[ns].to_s) unless excl.include? self.namespaces[ns] - } - self.support_write_recursive(self.namespaces, self) - return self.to_s - end - - protected - def support_write_recursive(array, el) - el.each_element { |e| - unless array.has_key?(e.prefix) && array.has_value?(e.namespace) - if e.prefix != "" - e.add_attribute('xmlns:' + e.prefix, e.namespace) - else - e.add_attribute('xmlns', e.namespace) - end - end - self.support_write_recursive(array, e) - } - end -end diff --git a/lib/rena/triple.rb b/lib/rena/triple.rb deleted file mode 100644 index 0f7ea2c..0000000 --- a/lib/rena/triple.rb +++ /dev/null @@ -1,89 +0,0 @@ -module Rena - class Triple - class InvalidPredicate < StandardError - end - - class InvalidSubject < StandardError - end - - class InvalidObject < StandardError - end - - attr_accessor :subject, :object, :predicate - - ## - # Creates a new triple directly from the intended subject, predicate, and object. - # - # ==== Example - # Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new) # => results in the creation of a new triple and returns it - # - # @param [URIRef, BNode] s the subject of the triple - # @param [URIRef] p the predicate of the triple - # @param [URIRef, BNode, Literal, TypedLiteral] o the object of the triple - # - # ==== Returns - # - # @return [Triple] An array of the triples (leaky abstraction? consider returning the graph instead) - # - # @raise [Error] Checks parameter types and raises if they are incorrect. - # @author Tom Morris - def initialize (subject, predicate, object) - @subject = self.class.coerce_subject(subject) - @predicate = self.class.coerce_predicate(predicate) - @object = self.class.coerce_object(object) - end - - def to_ntriples - @subject.to_ntriples + " " + @predicate.to_ntriples + " " + @object.to_ntriples + " ." - end - - def inspect - [@subject, @predicate, @object].inspect - end - - def is_type? - @predicate.to_s == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" - end - - protected - - def self.coerce_subject(subject) - case subject - when URIRef, BNode - subject - when String - if subject =~ /\S+\/\/\S+/ # does it smell like a URI? - URIRef.new(subject) - else - BNode.new(subject) - end - else - raise InvalidSubject, "Subject is not of a known class" - end - end - - def self.coerce_predicate(uri_or_string) - case uri_or_string - when URIRef - uri_or_string - when String - URIRef.new uri_or_string - else - raise InvalidPredicate, "Predicate should be a URI" - end - rescue UriRelativeException => e - raise InvalidPredicate, "Couldn't make a URIRef: #{e.message}" - end - - def self.coerce_object(object) - case object - when String, Integer, Float - Literal.build_from(object) - when URIRef, BNode, Literal - object - else - raise InvalidObject, "#{object.inspect} is not a valid object" - end - end - end -end diff --git a/lib/rena/uriref.rb b/lib/rena/uriref.rb deleted file mode 100644 index 2d24dda..0000000 --- a/lib/rena/uriref.rb +++ /dev/null @@ -1,55 +0,0 @@ -require 'rubygems' -require 'addressable/uri' -require 'rena/exceptions/uri_relative_exception' -require 'net/http' - -module Rena - class URIRef - attr_accessor :uri - def initialize (string) - self.test_string(string) - @uri = Addressable::URI.parse(string) - if @uri.relative? - raise UriRelativeException, "<" + @uri.to_s + ">" - end - if !@uri.to_s.match(/^javascript/).nil? - raise "Javascript pseudo-URIs are not acceptable" - end - end - - def short_name - if @uri.fragment() - return @uri.fragment() - elsif @uri.path.split("/").last.class == String and @uri.path.split("/").last.length > 0 - return @uri.path.split("/").last - else - return false - end - end - - def == (other) - return true if @uri == other.uri - end - - def to_s - @uri.to_s - end - - def to_ntriples - "<" + @uri.to_s + ">" - end - - def test_string (string) - string.to_s.each_byte do |b| - if b >= 0 and b <= 31 - raise "URI must not contain control characters" - end - end - end - - def load_graph - get = Net::HTTP.start(@uri.host, @uri.port) {|http| [:xml, http.get(@uri.path)] } - return Rena::RdfXmlParser.new(get[1].body, @uri.to_s).graph if get[0] == :xml - end - end -end diff --git a/reddy.gemspec b/reddy.gemspec deleted file mode 100644 index 94b7944..0000000 --- a/reddy.gemspec +++ /dev/null @@ -1,17 +0,0 @@ -Gem::Specification.new do |s| - s.name = "" - s.version = "0.0.2" - s.date = "2008-10-5" - s.summary = "Ruby RDF library." - s.email = "tom@tommorris.org" - s.homepage = "http://github.com/tommorris/" - s.description = "Reddy is a Ruby library for manipulating RDF files." - s.has_rdoc = true - s.authors = ['Tom Morris', 'Pius Uzamere', 'Patrick Sinclair'] - s.files = ["README.txt", "Rakefile", ".gemspec", "lib/.rb", "lib//bnode.rb", "lib//graph.rb", "lib//literal.rb", "lib//n3parser.rb", "lib//n3_grammar.treetop", "lib//namespace.rb", "lib//rdfxmlparser.rb", "lib//rexml_hacks.rb", "lib//triple.rb", "lib//uriref.rb", "lib//exceptions/about_each_exception.rb", "lib//exceptions/uri_relative_exception.rb"] - s.test_files = ["test/test_uris.rb", "test/xml.rdf", "spec/bnode_spec.rb", "spec/graph_spec.rb", "spec/literal_spec.rb", "spec/namespaces_spec.rb", "spec/parser_spec.rb", "spec/rexml_hacks_spec.rb", "spec/triple_spec.rb", "spec/uriref_spec.rb"] - #s.rdoc_options = ["--main", "README.txt"] - #s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"] - s.add_dependency("addressable", [">= 1.0.4"]) - s.add_dependency("treetop", [">= 1.2.4"]) -end diff --git a/rena.gemspec b/rena.gemspec deleted file mode 100644 index 1b4c338..0000000 --- a/rena.gemspec +++ /dev/null @@ -1,17 +0,0 @@ -Gem::Specification.new do |s| - s.name = "rena" - s.version = "0.0.2" - s.date = "2008-10-5" - s.summary = "Ruby RDF library." - s.email = "tom@tommorris.org" - s.homepage = "http://github.com/tommorris/rena" - s.description = "Rena is a Ruby library for manipulating RDF files." - s.has_rdoc = true - s.authors = ['Tom Morris', 'Pius Uzamere', 'Patrick Sinclair'] - s.files = ["README.txt", "Rakefile", "rena.gemspec", "lib/rena.rb", "lib/rena/bnode.rb", "lib/rena/graph.rb", "lib/rena/literal.rb", "lib/rena/n3parser.rb", "lib/rena/n3_grammar.treetop", "lib/rena/namespace.rb", "lib/rena/rdfxmlparser.rb", "lib/rena/rexml_hacks.rb", "lib/rena/triple.rb", "lib/rena/uriref.rb", "lib/rena/exceptions/about_each_exception.rb", "lib/rena/exceptions/uri_relative_exception.rb"] - s.test_files = ["test/test_uris.rb", "test/xml.rdf", "spec/bnode_spec.rb", "spec/graph_spec.rb", "spec/literal_spec.rb", "spec/namespaces_spec.rb", "spec/parser_spec.rb", "spec/rexml_hacks_spec.rb", "spec/triple_spec.rb", "spec/uriref_spec.rb"] - #s.rdoc_options = ["--main", "README.txt"] - #s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"] - s.add_dependency("addressable", [">= 1.0.4"]) - s.add_dependency("treetop", [">= 1.2.4"]) -end