solis 0.107.0 → 0.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ce95b73b7c870b2a744239d77e8a590c8793c0f59504c560af96013e82ff42e
4
- data.tar.gz: 669a40a5a83298d7ec3d46a77ee7c66b9b7075d1a6deca037d7b76ad60a2e18c
3
+ metadata.gz: 977072c184dcf472778863270bf8f4fd913db4980883e39ed9e33273d857cfbb
4
+ data.tar.gz: 377f468cddf67e8472aba17f0bca40c3a7c98a03e648da9b931cfc434de53efb
5
5
  SHA512:
6
- metadata.gz: 39bb7dcce2bc5112dac714a41ad2649267b37be1a5fb3a1c2baf01dcdc61ed919cff7f89422663b9c74e761f3a13e957e1dffd4af8460fbd967ffdc8e9897620
7
- data.tar.gz: '05931d4a566eb0e560da95d690804b87d51d0a34ce5677e370a775292100077caf1a7bda7237f52fb7dc337e2985d3dbbfffa9f27937ca6faab67d4df087b54d'
6
+ metadata.gz: '093ee81f1e9ea27941544ee43311ebe9a26bc89fc5194d7211355cdf1e2f8c296b29731f05308fb688d546317f45ae3fca8974396fc0e0ee77ec8445c5bfc1fa'
7
+ data.tar.gz: 4ab801e9a5b64b9ee826def3abf3a67b38438419fb3b205a4a15960c00a623678d5a2a9277badcb7a86a6e2fc19bcc097e9bb9252e1e0eee869a89ef79d253de
data/lib/solis/model.rb CHANGED
@@ -409,6 +409,7 @@ values ?s {<#{self.graph_id}>}
409
409
  self.metadata[:attributes].each do |attribute, attribute_metadata|
410
410
  is_array = ((attribute_metadata[:maxcount].nil? || (attribute_metadata[:maxcount].to_i > 1)) && !attribute_metadata[:datatype].eql?(:lang_string))
411
411
  attribute_name = is_array ? "#{attribute}[]" : attribute
412
+ attribute_name = attribute_metadata[:mincount].to_i > 0 ? "#{attribute_name}*" : attribute_name
412
413
  if attribute_metadata.key?(:class) && !attribute_metadata[:class].nil? && attribute_metadata[:class].value =~ /#{self.graph_name}/ && level == 0
413
414
  cm = self.graph.shape_as_model(self.metadata[:attributes][attribute][:datatype].to_s).model(level + 1)
414
415
  m[:attributes][attribute_name.to_sym] = cm[:attributes]
@@ -661,7 +662,9 @@ values ?s {<#{self.graph_id}>}
661
662
  else
662
663
  RDF::Literal.new(d, language: @language)
663
664
  end
664
- elsif metadata[:datatype_rdf].eql?('http://www.w3.org/2001/XMLSchema#anyURI') || metadata[:node].is_a?(RDF::URI)
665
+ elsif metadata[:datatype_rdf].eql?('http://www.w3.org/2001/XMLSchema#anyURI')
666
+ RDF::Literal.new(d.to_s, datatype: RDF::XSD.anyURI)
667
+ elsif metadata[:node].is_a?(RDF::URI)
665
668
  RDF::URI(d)
666
669
  elsif metadata[:datatype_rdf] =~ /datatypes\/edtf/ || metadata[:datatype_rdf] =~ /edtf$/i
667
670
  # Handle EDTF dates
@@ -776,7 +779,7 @@ values ?s {<#{self.graph_id}>}
776
779
  RDF::Literal.new(d, language: self.class.language)
777
780
  else
778
781
  if metadata[:datatype_rdf].eql?('http://www.w3.org/2001/XMLSchema#anyURI')
779
- RDF::URI(d)
782
+ RDF::Literal.new(d.to_s, datatype: RDF::XSD.anyURI)
780
783
  else
781
784
  RDF::Literal.new(d, datatype: datatype)
782
785
  end
@@ -123,8 +123,9 @@ module Solis
123
123
 
124
124
  search_for = normalize_string(search_for)
125
125
  filter += "FILTER(str(?__search#{i}) #{not_operator}#{value[:operator]} \"#{search_for}\"#{datatype}) .\n"
126
- elsif (metadata[:datatype_rdf].eql?('http://www.w3.org/2001/XMLSchema#anyURI') || !metadata[:node].nil?) && ["=", "!="].include?(value[:operator])
127
- # Special handling for anyURI references to other entities (only for equality/inequality)
126
+ elsif !metadata[:node].nil? && !metadata[:datatype_rdf].eql?('http://www.w3.org/2001/XMLSchema#anyURI') && ["=", "!="].include?(value[:operator])
127
+ # Special handling for URI references to other entities (object properties, only for equality/inequality)
128
+ # Note: xsd:anyURI literals are handled below with standard literal matching
128
129
  model_graph_name = Solis::Options.instance.get.key?(:graphs) ? Solis::Options.instance.get[:graphs].select{|s| s['type'].eql?(:main)}&.first['name'] : @model.class.graph_name
129
130
  if value[:is_not]
130
131
  #filter = "filter( !exists {?concept <#{metadata[:path]}> ?__search#{i} . ?__search#{i} <#{model_graph_name}id> \"#{v}\"})"
@@ -139,7 +140,8 @@ module Solis
139
140
  end
140
141
  end
141
142
  else # if "~" contains
142
- if metadata[:datatype_rdf].eql?( 'http://www.w3.org/2001/XMLSchema#anyURI') || !metadata[:node].nil?
143
+ if !metadata[:node].nil? && !metadata[:datatype_rdf].eql?('http://www.w3.org/2001/XMLSchema#anyURI')
144
+ # Special handling for URI references to other entities (object properties)
143
145
  model_graph_name = Solis::Options.instance.get.key?(:graphs) ? Solis::Options.instance.get[:graphs].select{|s| s['type'].eql?(:data)}&.first['name'] : @model.class.graph_name
144
146
  filter = "?concept <#{metadata[:path]}> ?__search#{i} . ?__search#{i} <#{model_graph_name}id> ?__search#{i}_#{i} filter(?__search#{i}_#{i} = \"#{value[:value].first}\")."
145
147
  else
data/lib/solis/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Solis
2
- VERSION = "0.107.0"
2
+ VERSION = "0.109.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.107.0
4
+ version: 0.109.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mehmet Celik