rdf-reasoner 0.4.0.beta1 → 0.4.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 +4 -4
- data/README.md +2 -1
- data/VERSION +1 -1
- data/lib/rdf/reasoner.rb +2 -0
- data/lib/rdf/reasoner/format.rb +49 -0
- metadata +43 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f519d63f62d46294c8c459b62ffa5cc0ec678f2c
|
4
|
+
data.tar.gz: 8987fe2050be4cf328b5749df311f15e514fba2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fbea5eecc04728ae65f46d9aca05dd5abb1324cc9296bc1e173c3f65dd4f227486ce4664a0bfdd0a8b35fcc3d334f154e87603cd2a1a200f325bf428196d877
|
7
|
+
data.tar.gz: 92ba7bd1e699fe8b1c97d1c835c9b4f37667621abfb937be6aac2274c6721a77a086b5a6d692f86dc3c744bce64aee40fc247c0ea5cdee6164fb452929d1db46
|
data/README.md
CHANGED
@@ -12,6 +12,7 @@ Reasons over RDFS/OWL vocabularies and schema.org to generate statements which a
|
|
12
12
|
* Entail `owl:equivalentProperty` generating an array of terms equivalent to the subject.
|
13
13
|
* `domainCompatible?` determines if a particular resource is compatible with the domain definition of a given predicate, based on the intersection of entailed subclasses with the property domain.
|
14
14
|
* `rangeCompatible?` determines if a particular resource is compatible with the range definition of a given predicate, based on the intersection of entailed subclasses or literal types with the property domain.
|
15
|
+
* adds `entail` and `lint` commands to the `rdf` command line interface
|
15
16
|
|
16
17
|
Domain and Range entailment include specific rules for schema.org vocabularies.
|
17
18
|
|
@@ -68,7 +69,7 @@ Domain and Range entailment include specific rules for schema.org vocabularies.
|
|
68
69
|
require 'rdf/reasoner'
|
69
70
|
require 'rdf/turtle'
|
70
71
|
|
71
|
-
RDF::Reasoner.apply(
|
72
|
+
RDF::Reasoner.apply(:owl)
|
72
73
|
graph = RDF::Graph.load("etc/doap.ttl")
|
73
74
|
graph.entail!(:equivalentClass)
|
74
75
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.0
|
1
|
+
0.4.0
|
data/lib/rdf/reasoner.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rdf'
|
2
2
|
require 'rdf/reasoner/extensions'
|
3
|
+
require 'rdf/vocab'
|
3
4
|
|
4
5
|
module RDF
|
5
6
|
##
|
@@ -8,6 +9,7 @@ module RDF
|
|
8
9
|
# @see http://www.w3.org/TR/2013/REC-sparql11-entailment-20130321/
|
9
10
|
# @author [Gregg Kellogg](http://greggkellogg.net/)
|
10
11
|
module Reasoner
|
12
|
+
require 'rdf/reasoner/format'
|
11
13
|
autoload :OWL, 'rdf/reasoner/owl'
|
12
14
|
autoload :RDFS, 'rdf/reasoner/rdfs'
|
13
15
|
autoload :Schema, 'rdf/reasoner/schema'
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module RDF::Reasoner
|
2
|
+
##
|
3
|
+
# LD::Patch format specification. Note that this format does not define any readers or writers.
|
4
|
+
#
|
5
|
+
# @example Obtaining an LD Patch format class
|
6
|
+
# RDF::Format.for(:reasoner) #=> RDF::Reasoner::Format
|
7
|
+
#
|
8
|
+
# @see http://www.w3.org/TR/ldpatch/
|
9
|
+
class Format < RDF::Format
|
10
|
+
|
11
|
+
##
|
12
|
+
# Hash of CLI commands appropriate for this format
|
13
|
+
# @return [Hash{Symbol => Lambda(Array, Hash)}]
|
14
|
+
def self.cli_commands
|
15
|
+
{
|
16
|
+
entail: {
|
17
|
+
description: "Perform RDFS entailment to expand the repository based on referenced built-in vocabuaries",
|
18
|
+
help: "entail",
|
19
|
+
parse: true,
|
20
|
+
lambda: ->(argv, opts) do
|
21
|
+
RDF::Reasoner.apply(:rdfs, :owl, :schema)
|
22
|
+
start, stmt_cnt = Time.now, RDF::CLI.repository.count
|
23
|
+
RDF::CLI.repository.entail!
|
24
|
+
secs, new_cnt = (Time.new - start), (RDF::CLI.repository.count - stmt_cnt)
|
25
|
+
$stdout.puts "\nEntailed #{new_cnt} new statements in #{secs} seconds."
|
26
|
+
end
|
27
|
+
},
|
28
|
+
lint: {
|
29
|
+
description: "Lint the repository using built-in vocabularies",
|
30
|
+
help: "lint",
|
31
|
+
parse: true,
|
32
|
+
lambda: ->(argv, opts) do
|
33
|
+
RDF::Reasoner.apply(:rdfs, :owl, :schema)
|
34
|
+
start = Time.now
|
35
|
+
messages = RDF::CLI.repository.lint
|
36
|
+
secs = Time.new - start
|
37
|
+
messages.each do |kind, term_messages|
|
38
|
+
term_messages.each do |term, messages|
|
39
|
+
$stdout.puts "#{kind} #{term}"
|
40
|
+
messages.each {|m| $stdout.puts " #{m}"}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
$stdout.puts "\nLinted in #{secs} seconds."
|
44
|
+
end
|
45
|
+
}
|
46
|
+
}
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,115 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-reasoner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.0
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg Kellogg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdf
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0.0.beta
|
20
|
-
- - "<"
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
19
|
+
version: '2.0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.0
|
30
|
-
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rdf-vocab
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
+
version: '2.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
33
41
|
- !ruby/object:Gem::Dependency
|
34
42
|
name: rdf-xsd
|
35
43
|
requirement: !ruby/object:Gem::Requirement
|
36
44
|
requirements:
|
37
|
-
- - "
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 2.0.0.beta
|
40
|
-
- - "<"
|
45
|
+
- - "~>"
|
41
46
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
47
|
+
version: '2.0'
|
43
48
|
type: :runtime
|
44
49
|
prerelease: false
|
45
50
|
version_requirements: !ruby/object:Gem::Requirement
|
46
51
|
requirements:
|
47
|
-
- - "
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: 2.0.0.beta
|
50
|
-
- - "<"
|
52
|
+
- - "~>"
|
51
53
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
54
|
+
version: '2.0'
|
53
55
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
56
|
+
name: rdf-spec
|
55
57
|
requirement: !ruby/object:Gem::Requirement
|
56
58
|
requirements:
|
57
|
-
- - "
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: 2.0.0.beta
|
60
|
-
- - "<"
|
59
|
+
- - "~>"
|
61
60
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
63
|
-
type: :
|
61
|
+
version: '2.0'
|
62
|
+
type: :runtime
|
64
63
|
prerelease: false
|
65
64
|
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
|
-
- - "
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 2.0.0.beta
|
70
|
-
- - "<"
|
66
|
+
- - "~>"
|
71
67
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
68
|
+
version: '2.0'
|
73
69
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
70
|
+
name: json-ld
|
75
71
|
requirement: !ruby/object:Gem::Requirement
|
76
72
|
requirements:
|
77
|
-
- - "
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: 2.0.0.beta
|
80
|
-
- - "<"
|
73
|
+
- - "~>"
|
81
74
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
75
|
+
version: '2.0'
|
83
76
|
type: :development
|
84
77
|
prerelease: false
|
85
78
|
version_requirements: !ruby/object:Gem::Requirement
|
86
79
|
requirements:
|
87
|
-
- - "
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 2.0.0.beta
|
90
|
-
- - "<"
|
80
|
+
- - "~>"
|
91
81
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
82
|
+
version: '2.0'
|
93
83
|
- !ruby/object:Gem::Dependency
|
94
|
-
name: rdf-
|
84
|
+
name: rdf-turtle
|
95
85
|
requirement: !ruby/object:Gem::Requirement
|
96
86
|
requirements:
|
97
|
-
- - "
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: 2.0.0.beta
|
100
|
-
- - "<"
|
87
|
+
- - "~>"
|
101
88
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
89
|
+
version: '2.0'
|
103
90
|
type: :development
|
104
91
|
prerelease: false
|
105
92
|
version_requirements: !ruby/object:Gem::Requirement
|
106
93
|
requirements:
|
107
|
-
- - "
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 2.0.0.beta
|
110
|
-
- - "<"
|
94
|
+
- - "~>"
|
111
95
|
- !ruby/object:Gem::Version
|
112
|
-
version: '
|
96
|
+
version: '2.0'
|
113
97
|
- !ruby/object:Gem::Dependency
|
114
98
|
name: equivalent-xml
|
115
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,6 +151,7 @@ files:
|
|
167
151
|
- VERSION
|
168
152
|
- lib/rdf/reasoner.rb
|
169
153
|
- lib/rdf/reasoner/extensions.rb
|
154
|
+
- lib/rdf/reasoner/format.rb
|
170
155
|
- lib/rdf/reasoner/owl.rb
|
171
156
|
- lib/rdf/reasoner/rdfs.rb
|
172
157
|
- lib/rdf/reasoner/schema.rb
|
@@ -186,12 +171,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
171
|
version: '2.0'
|
187
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
173
|
requirements:
|
189
|
-
- - "
|
174
|
+
- - ">="
|
190
175
|
- !ruby/object:Gem::Version
|
191
|
-
version:
|
176
|
+
version: '0'
|
192
177
|
requirements: []
|
193
178
|
rubyforge_project:
|
194
|
-
rubygems_version: 2.
|
179
|
+
rubygems_version: 2.4.8
|
195
180
|
signing_key:
|
196
181
|
specification_version: 4
|
197
182
|
summary: RDFS/OWL Reasoner for RDF.rb
|