tao_rdfizer 0.9.13 → 0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '00759ca80638a1d6f0d730af7c919ccf51c1828a614158987ffe4f5d99ff9b9a'
4
- data.tar.gz: bfb0c62f1e6e39ec615323d67edc36b16fa41ce0d7cb440e25a7f3d10013573b
3
+ metadata.gz: a2f897b03c9e6856aaf752fd645808c47e6d52422ea1b6934b44b694d8d0d9a1
4
+ data.tar.gz: 8d9fb426258bf3fceabb6471a81fcaeb99cd18dcace251575a0f2f715fa4d787
5
5
  SHA512:
6
- metadata.gz: fe5fe5d6b21b68fe9a6e565641f8a9f1ed0c3ae10f714995a4a1f5282103246556b02570f5ac18d53d38d41f6dcbb04cb3c690382b2427f9b9e1d78f5055aacf
7
- data.tar.gz: 729279be8a26a908095195c90fb76900adc7f32b2cbbbd01ff7ef6e5115ec10c05c53fb8cd809dc7d3900d989c342301ddbdfea70eee6468fd8970f2aa69deca
6
+ metadata.gz: f0d230f25945bf45aed05f8f0cb3d46113d5eb4213b17ce4812cbfbcfa5636d540343b8ee8fe94cf1bbbc1a1eb4db35ac076bf1d7cd3cb7abdd92db446c94f41
7
+ data.tar.gz: 6f00c1aeb735b8e76da2e9185ad141c0c29c1d45d94faad1b3d89ec903a1c931e22957f4f356dce24ff6beadd53a77ac7fcd5aad2c17cb281a5d0128cd062b89
@@ -35,6 +35,7 @@ class TAO::RDFizer
35
35
  end
36
36
 
37
37
  denotations = []
38
+ attributes = []
38
39
  relations = []
39
40
  spans = []
40
41
 
@@ -47,25 +48,36 @@ class TAO::RDFizer
47
48
  end
48
49
 
49
50
  # denotations and relations
50
- _denotations = annotations[:denotations]
51
- _relations = annotations[:relations]
52
- _denotations = [] if _denotations.nil?
53
- _relations = [] if _relations.nil?
51
+ _denotations = annotations[:denotations] || []
52
+ _attributes = annotations[:attributes] || []
53
+ _relations = annotations[:relations] || []
54
54
  if @mode == :spans && annotations.has_key?(:tracks)
55
55
  annotations[:tracks].each do |track|
56
56
  _denotations += track[:denotations]
57
+ _attributes += track[:attributes]
57
58
  _relations += track[:relations]
58
59
  end
59
60
  end
60
61
 
61
62
  begin
62
63
  if @mode == :annotations
64
+ # index attributes
65
+ attributesh = _attributes.inject({}) do |h, a|
66
+ if a[:pred].end_with?('_id')
67
+ subj = a[:subj]
68
+ h[subj] = [] unless h.has_key? subj
69
+ h[subj] << a[:obj]
70
+ end
71
+ h
72
+ end
73
+
63
74
  # denotations preprocessing
64
75
  _denotations.each do |d|
65
76
  span_uri = "<#{text_uri}/spans/#{d[:span][:begin]}-#{d[:span][:end]}>"
66
77
  d[:span_uri] = span_uri
67
78
  d[:obj_uri] = "#{prefix_for_this}:#{text_id}-#{d[:id]}"
68
- d[:cls_uri] = find_uri(d[:obj], namespaces, prefix_for_this)
79
+ class_uris = attributesh[d[:id]].push(d[:obj])
80
+ d[:class_uris] = class_uris.map{|uri| find_uri(uri, namespaces, prefix_for_this)}
69
81
  rescue ArgumentError => e
70
82
  raise ArgumentError, "[#{sourcedb}-#{sourceid}-#{d[:id]}] " + e.message
71
83
  end
@@ -101,7 +113,7 @@ class TAO::RDFizer
101
113
  s[:text] = text[s[:begin] ... s[:end]]
102
114
  end
103
115
 
104
- # index
116
+ # index spans
105
117
  spanh = _spans.inject({}){|r, s| r[s[:span_uri]] = s; r}
106
118
 
107
119
  # add denotation information
@@ -194,7 +206,7 @@ class TAO::RDFizer
194
206
  ERB_ANNOTATIONS_TTL = <<~HEREDOC
195
207
  <% denotations.each do |d| -%>
196
208
  <%= d[:obj_uri] %> tao:denoted_by <%= d[:span_uri] %> ;
197
- rdf:type <%= d[:cls_uri] %> .
209
+ <%= d[:class_uris].map{|c| "\trdf:type " + c}.join(" ;\n") + " ." %>
198
210
  <% end -%>
199
211
  <%# relations -%>
200
212
  <% relations.each do |r| -%>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tao_rdfizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.13
4
+ version: '0.10'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jin-Dong Kim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-06 00:00:00.000000000 Z
11
+ date: 2020-12-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: It uses TAO (text annotation ontology) for representation of annotations
14
14
  to text.
@@ -40,8 +40,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  requirements: []
43
- rubyforge_project:
44
- rubygems_version: 2.7.9
43
+ rubygems_version: 3.0.8
45
44
  signing_key:
46
45
  specification_version: 4
47
46
  summary: A RDF statement generator for annotations in the PubAnnotation JSON format.