rdf_inference 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/rdf_inference.rb +133 -129
  3. metadata +4 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 239983473d074acf8b526992e54f4b530c7484f2
4
- data.tar.gz: 33ea2303945d88fd1948c9bfe49ff6dd0d91bee0
2
+ SHA256:
3
+ metadata.gz: d1b9d4ab1fc8b79bf3080e860fcb1451ec659e644268ab52db0e925e8dfb1fe2
4
+ data.tar.gz: a7f435e30e545dace7c972fc48b8fca0fdd74c55a6f92ab43d33c72d08dbda24
5
5
  SHA512:
6
- metadata.gz: 30d4db67fd254e6a117bfa2f083f07f2a42e4882d09a6a094ae5caf230fe3ed555fe7f6904ccbda93a2aed5b1b78c3b371538f4fae21d890c7eb62ce46e55096
7
- data.tar.gz: 1f4cc4e8d43653d887dc16b53b48c28ba346d5c30e1d24985a6236e7fbcb872e469a054173106610e36ab644cada74664ab6aff304032da6f276531a8b8c64e0
6
+ metadata.gz: 859982b971eb6037cf15147e2004a017a3532a1e6057d4012e0e084a12af7cb71b9b7ab7091f3c21a872a3ea12428ec5f4c7226707cabad22ee5a67bd566c0b3
7
+ data.tar.gz: d929a5817be9cc685a01273a526d89fece07ab05518d2d4ce7c124564937f643a04d4de573d6a41dbcf858b2c47357b8812c999693658afdd8abcfb528f63b53
@@ -1,129 +1,133 @@
1
- require 'linkeddata'
2
- require 'sparql'
3
-
4
- include RDF
5
-
6
- class RdfInference
7
-
8
- def initialize
9
- prefix = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
10
- PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
11
- PREFIX wdc: <http://vieslav.pl/csv/0.1/>
12
- PREFIX owl: <http://www.w3.org/2002/07/owl#> \n"
13
- @query_list = {}
14
-
15
- @query_list[:subClassOf] = prefix + "CONSTRUCT {?r rdf:type ?B .}
16
- WHERE { ?A rdfs:subClassOf ?B .
17
- ?r rdf:type ?A .
18
- FILTER NOT EXISTS {?r rdf:type ?B}
19
- }"
20
- @query_list[:subPropertyOf] = prefix + "CONSTRUCT {?x ?r ?y .
21
- [ rdf:subject ?x;
22
- rdf:predicate ?r;
23
- rdf:object ?y ] a wdc:DerivationRelationship .}
24
- WHERE { ?x ?q ?y .
25
- ?q rdfs:subPropertyOf ?r .
26
- FILTER NOT EXISTS {?x ?r ?y }
27
- }"
28
- @query_list[:RDFS_Plus_TransitiveProperty] = prefix + "CONSTRUCT {?x ?p ?z .
29
- [ rdf:subject ?x;
30
- rdf:predicate ?p;
31
- rdf:object ?z ] a wdc:DerivationRelationship .}
32
- WHERE { ?x ?p ?y .
33
- ?y ?p ?z .
34
- ?p rdf:type owl:TransitiveProperty .
35
- FILTER NOT EXISTS {?x ?p ?z }
36
- }"
37
-
38
- @query_list[:WIDU_shortCut] = prefix + "CONSTRUCT {?x ?p ?z .
39
- [ rdf:subject ?x;
40
- rdf:predicate ?r;
41
- rdf:object ?y ] a wdc:DerivationRelationship .}
42
- WHERE {
43
- ?x ?p ?y .
44
- ?y ?p ?z .
45
- ?class1 wdc:shortCut ?class3.
46
- ?x a ?class1 .
47
- ?y a ?class2 .
48
- ?z a ?class3 .
49
-
50
- FILTER NOT EXISTS { ?x ?p ?z }
51
- FILTER NOT EXISTS { ?y a ?class1 }
52
- FILTER NOT EXISTS { ?y a ?class3 }
53
- }"
54
-
55
- @query_list[:WIDU_isWeakerThan1] = prefix + "CONSTRUCT {?x ?p ?z .
56
- [ rdf:subject ?x;
57
- rdf:predicate ?p;
58
- rdf:object ?z ] a wdc:DerivationRelationship .}
59
- WHERE {
60
- ?x ?p ?y .
61
- ?y ?p2 ?z .
62
- ?p wdc:isWeakerThan ?p2 .
63
-
64
- FILTER NOT EXISTS { ?x ?p ?z }
65
-
66
- }"
67
-
68
-
69
- @query_list[:WIDU_isWeakerThan2] = prefix + "CONSTRUCT {?x ?p2 ?z .
70
- [ rdf:subject ?x;
71
- rdf:predicate ?p2;
72
- rdf:object ?z ] a wdc:DerivationRelationship .}
73
- WHERE {
74
- ?x ?p ?y .
75
- ?y ?p2 ?z .
76
- ?p2 wdc:isWeakerThan ?p .
77
-
78
- FILTER NOT EXISTS { ?x ?p2 ?z }
79
-
80
- }"
81
-
82
-
83
-
84
- @query_list[:RDFS_Plus_inverseOf9] = prefix + "CONSTRUCT {?y ?q ?x .
85
- [ rdf:subject ?x;
86
- rdf:predicate ?r;
87
- rdf:object ?y ] a wdc:DerivationRelationship .}
88
- WHERE {
89
- ?p owl:inverseOf ?q .
90
- ?x ?p ?y .
91
- FILTER (?p != owl:inverseOf)
92
- FILTER NOT EXISTS { ?y ?q ?x }
93
- }"
94
-
95
- @query_list[:RDFS_domain] = prefix + "CONSTRUCT {?x rdf:type ?D .}
96
- WHERE { ?P rdfs:domain ?D .
97
- ?x ?P ?y .
98
- FILTER NOT EXISTS { ?x rdf:type ?D }
99
- }"
100
-
101
- @query_list[:RDFS_range] = prefix + "CONSTRUCT {?y rdf:type ?D .}
102
- WHERE { ?P rdfs:range ?D .
103
- ?x ?P ?y .
104
- FILTER NOT EXISTS { ?y rdf:type ?D }
105
- }"
106
-
107
- end
108
-
109
- def inference(graph)
110
- @rdfs_inferred = RDF::Repository.new
111
- @rdfs_inferred_all = RDF::Repository.new
112
- begin
113
- @rdfs_inferred = RDF::Repository.new
114
- @query_list.each do |klucz, query|
115
- puts klucz
116
- @rdfs_inferred << SPARQL.execute(query, graph)
117
- end
118
- graph << @rdfs_inferred
119
- @rdfs_inferred_all << @rdfs_inferred
120
- puts "Inference count:"
121
- puts @rdfs_inferred.count
122
- end until @rdfs_inferred.count == 0
123
- puts "Inference count all:"
124
- puts @rdfs_inferred_all.count
125
- @rdfs_inferred_all
126
- end
127
-
128
-
129
- end
1
+ require 'linkeddata'
2
+ require 'sparql'
3
+
4
+ include RDF
5
+
6
+ class RdfInference
7
+
8
+ def initialize
9
+ prefix = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
10
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
11
+ PREFIX wdc: <http://vieslav.pl/csv/0.1/>
12
+ PREFIX owl: <http://www.w3.org/2002/07/owl#> \n"
13
+ @query_list = {}
14
+
15
+ @query_list[:subClassOf] = prefix + "CONSTRUCT {?r rdf:type ?B .}
16
+ WHERE { ?A rdfs:subClassOf ?B .
17
+ ?r rdf:type ?A .
18
+ FILTER NOT EXISTS {?r rdf:type ?B}
19
+ }"
20
+ @query_list[:subPropertyOf] = prefix + "CONSTRUCT {?x ?r ?y .
21
+ [ rdf:subject ?x;
22
+ rdf:predicate ?r;
23
+ rdf:object ?y ] a wdc:DerivationRelationship .}
24
+ WHERE {
25
+ ?q rdfs:subPropertyOf ?r .
26
+ ?x ?q ?y .
27
+
28
+ FILTER NOT EXISTS {?x ?r ?y }
29
+ }"
30
+ @query_list[:RDFS_Plus_TransitiveProperty] = prefix + "CONSTRUCT {?x ?p ?z .
31
+ [ rdf:subject ?x;
32
+ rdf:predicate ?p;
33
+ rdf:object ?z ] a wdc:DerivationRelationship .}
34
+ WHERE {
35
+ ?p rdf:type owl:TransitiveProperty .
36
+ ?x ?p ?y .
37
+ ?y ?p ?z .
38
+
39
+ FILTER NOT EXISTS {?x ?p ?z }
40
+ }"
41
+
42
+ @query_list[:WIDU_shortCut] = prefix + "CONSTRUCT {?x ?p ?z .
43
+ [ rdf:subject ?x;
44
+ rdf:predicate ?r;
45
+ rdf:object ?y ] a wdc:DerivationRelationship .}
46
+ WHERE {
47
+ ?class1 wdc:shortCut ?class3.
48
+ ?x a ?class1 .
49
+ ?y a ?class2 .
50
+ ?z a ?class3 .
51
+ ?x ?p ?y .
52
+ ?y ?p ?z .
53
+
54
+ FILTER NOT EXISTS { ?x ?p ?z }
55
+ FILTER NOT EXISTS { ?y a ?class1 }
56
+ FILTER NOT EXISTS { ?y a ?class3 }
57
+ }"
58
+
59
+ @query_list[:WIDU_isWeakerThan1] = prefix + "CONSTRUCT {?x ?p ?z .
60
+ [ rdf:subject ?x;
61
+ rdf:predicate ?p;
62
+ rdf:object ?z ] a wdc:DerivationRelationship .}
63
+ WHERE {
64
+ ?p wdc:isWeakerThan ?p2 .
65
+ ?x ?p ?y .
66
+ ?y ?p2 ?z .
67
+
68
+ FILTER NOT EXISTS { ?x ?p ?z }
69
+
70
+ }"
71
+
72
+
73
+ @query_list[:WIDU_isWeakerThan2] = prefix + "CONSTRUCT {?x ?p2 ?z .
74
+ [ rdf:subject ?x;
75
+ rdf:predicate ?p2;
76
+ rdf:object ?z ] a wdc:DerivationRelationship .}
77
+ WHERE {
78
+ ?p2 wdc:isWeakerThan ?p .
79
+ ?x ?p ?y .
80
+ ?y ?p2 ?z .
81
+
82
+ FILTER NOT EXISTS { ?x ?p2 ?z }
83
+
84
+ }"
85
+
86
+
87
+
88
+ @query_list[:RDFS_Plus_inverseOf9] = prefix + "CONSTRUCT {?y ?q ?x .
89
+ [ rdf:subject ?x;
90
+ rdf:predicate ?r;
91
+ rdf:object ?y ] a wdc:DerivationRelationship .}
92
+ WHERE {
93
+ ?p owl:inverseOf ?q .
94
+ ?x ?p ?y .
95
+ FILTER (?p != owl:inverseOf)
96
+ FILTER NOT EXISTS { ?y ?q ?x }
97
+ }"
98
+
99
+ @query_list[:RDFS_domain] = prefix + "CONSTRUCT {?x rdf:type ?D .}
100
+ WHERE { ?P rdfs:domain ?D .
101
+ ?x ?P ?y .
102
+ FILTER NOT EXISTS { ?x rdf:type ?D }
103
+ }"
104
+
105
+ @query_list[:RDFS_range] = prefix + "CONSTRUCT {?y rdf:type ?D .}
106
+ WHERE { ?P rdfs:range ?D .
107
+ ?x ?P ?y .
108
+ FILTER NOT EXISTS { ?y rdf:type ?D }
109
+ }"
110
+
111
+ end
112
+
113
+ def inference(graph)
114
+ @rdfs_inferred = RDF::Repository.new
115
+ @rdfs_inferred_all = RDF::Repository.new
116
+ begin
117
+ @rdfs_inferred = RDF::Repository.new
118
+ @query_list.each do |klucz, query|
119
+ puts klucz
120
+ @rdfs_inferred << SPARQL.execute(query, graph)
121
+ end
122
+ graph << @rdfs_inferred
123
+ @rdfs_inferred_all << @rdfs_inferred
124
+ puts "Inference count:"
125
+ puts @rdfs_inferred.count
126
+ end until @rdfs_inferred.count == 0
127
+ puts "Inference count all:"
128
+ puts @rdfs_inferred_all.count
129
+ @rdfs_inferred_all
130
+ end
131
+
132
+
133
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf_inference
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - WiDu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-03 00:00:00.000000000 Z
11
+ date: 2021-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkeddata
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: Inference engine v0.0.5
41
+ description: Inference engine v0.0.6 - performance update
42
42
  email: wdulek@gmail.com
43
43
  executables: []
44
44
  extensions: []
@@ -64,8 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0'
66
66
  requirements: []
67
- rubyforge_project:
68
- rubygems_version: 2.5.2
67
+ rubygems_version: 3.0.3
69
68
  signing_key:
70
69
  specification_version: 4
71
70
  summary: Inference engine