ontomde-core 1.0.2 → 1.0.4
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.
- data/History.txt +10 -5
- data/Manifest.txt +1 -2
- data/Manual.txt +88 -0
- data/README.txt +79 -48
- data/Rakefile +4 -3
- data/lib/ontomde-core/bootstrap_rdfs.rb +36 -37
- data/lib/ontomde-core/clone.rb +72 -73
- data/lib/ontomde-core/context.rb +114 -115
- data/lib/ontomde-core/customERB.rb +72 -72
- data/lib/ontomde-core/custom_method_missing.rb +52 -53
- data/lib/ontomde-core/delayed.rb +9 -9
- data/lib/ontomde-core/demoInstaller.rb +25 -25
- data/lib/ontomde-core/exceptions.rb +27 -28
- data/lib/ontomde-core/fileLoader.rb +191 -163
- data/lib/ontomde-core/fileTypes.rb +145 -133
- data/lib/ontomde-core/helper.rb +547 -538
- data/lib/ontomde-core/log.rb +32 -32
- data/lib/ontomde-core/meta.rb +410 -316
- data/lib/ontomde-core/profil.rb +60 -62
- data/lib/ontomde-core/resource.rb +277 -272
- data/lib/ontomde-core/resourceSet.rb +185 -173
- data/lib/ontomde-core/triplet.rb +159 -161
- data/lib/ontomde-core/version.rb +5 -5
- data/lib/ontomde-core.rb +26 -35
- data/test/protege/etatCivil.pprj +779 -526
- data/test/protege/etatCivil.rdf +3 -1
- data/test/protege/etatCivil.rdfs +6 -0
- data/test/protege/test_demo.rb +68 -46
- data/test/test_context.rb +88 -88
- data/test/test_ontomde-core.rb +9 -9
- data/test/test_protected.rb +291 -238
- data/test/test_uri.rb +37 -37
- data/test/unit_test_crash.rb +22 -22
- metadata +66 -59
- data/bin/ontomde-core +0 -0
- data/lib/ontomde-core/loader.rb +0 -70
data/lib/ontomde-core/triplet.rb
CHANGED
@@ -1,161 +1,159 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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
|
-
|
62
|
-
|
63
|
-
**
|
64
|
-
** alias
|
65
|
-
**
|
66
|
-
**
|
67
|
-
**
|
68
|
-
**
|
69
|
-
**
|
70
|
-
**
|
71
|
-
**
|
72
|
-
**
|
73
|
-
**
|
74
|
-
**
|
75
|
-
**
|
76
|
-
**
|
77
|
-
**
|
78
|
-
**
|
79
|
-
**
|
80
|
-
**
|
81
|
-
**
|
82
|
-
**
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
end
|
1
|
+
require "singleton"
|
2
|
+
|
3
|
+
class UriNamespace
|
4
|
+
include Singleton
|
5
|
+
def initialize
|
6
|
+
# Les 1er sont prioritaire pour unalias ??
|
7
|
+
@urialiases=Hash.new(nil)
|
8
|
+
@urialiases["http:\/\/uml\/2"]="uml"
|
9
|
+
#@urialiases["http:\/\/uml\/1.4"]="uml"
|
10
|
+
@urialiases["http:\/\/www.w3.org\/2000\/01\/rdf-schema"]="rdfs"
|
11
|
+
@urialiases["http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns"]="rdf"
|
12
|
+
@urialiases["http:\/\/protege.stanford.edu\/system"]="sys"
|
13
|
+
@urialiases["http:\/\/protege.stanford.edu\/kb"]="kb"
|
14
|
+
@urialiases["http:\/\/ft\/uml\/2"]="umlx"
|
15
|
+
@urialiases["http:\/\/kb"]="ukb"
|
16
|
+
@urialiases["http:\/\/orange-ftgroup.com\/2007\/rd\/xmda\/bpm"]="bpm"
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns unaliases uri for uri
|
20
|
+
# Used by magic draw export plugin
|
21
|
+
# NOTE:
|
22
|
+
# raises an error if alias is unknown.
|
23
|
+
# Example:
|
24
|
+
# unalias("rdf_XYZ") return @urialises("rdf")+"#"+"XYZ"
|
25
|
+
def unalias(uri)
|
26
|
+
n=uri.split('_',2)
|
27
|
+
@urialiases.each {|k,v|
|
28
|
+
next if v!=n[0]
|
29
|
+
return k+"#"+n[1]
|
30
|
+
}
|
31
|
+
# no alias is ok
|
32
|
+
return uri
|
33
|
+
#raise "unalias failed for #{uri}"
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns the alias associated to ns.
|
37
|
+
# NOTE:
|
38
|
+
# uri of the form http://orange-ft.com/[0-9]+/XyZ are aliases xyz
|
39
|
+
def getNamespaceAlias(ns)
|
40
|
+
_alias=@urialiases[ns]
|
41
|
+
return _alias if _alias
|
42
|
+
|
43
|
+
md=/^http:\/\/orange-ft.com\/[0-9]+\/([a-z0-9A-Z]+)$/.match(ns)
|
44
|
+
if md.nil?
|
45
|
+
_alias="ns_#{@urialiases.length.to_s}"
|
46
|
+
else
|
47
|
+
# La première lettre doit être minuscule
|
48
|
+
_alias=md[1].downcase
|
49
|
+
end
|
50
|
+
addAliasHelp(_alias,ns)
|
51
|
+
addAlias(_alias,ns)
|
52
|
+
return _alias
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
def addAliasHelp(_alias,ns)
|
57
|
+
#return if context[:displayAddAliasHelp,true]
|
58
|
+
log.debug <<ENDMSG
|
59
|
+
|
60
|
+
**********************************************************
|
61
|
+
** An unknown rdf namespace has been found and a random
|
62
|
+
** alias has been generated for it : '#{_alias}'
|
63
|
+
**
|
64
|
+
** Using a random alias is OK if you do not need to
|
65
|
+
** reference a namespace somewhere in your code.
|
66
|
+
**
|
67
|
+
** If, for example, you need to declare methods
|
68
|
+
** for elements of this namespace
|
69
|
+
** (for generating code for example),
|
70
|
+
** you will need a fix namespace alias.
|
71
|
+
**
|
72
|
+
** Run the following ruby code once in your ruby
|
73
|
+
** program to declare a new alias:
|
74
|
+
**
|
75
|
+
** YourCode.rb
|
76
|
+
** require 'ontomde-core'
|
77
|
+
** (...)
|
78
|
+
** UriNamespace.instance.addAlias('yourAlias',
|
79
|
+
** '#{ns.gsub(/\//,'\\\/')}'
|
80
|
+
** )
|
81
|
+
**
|
82
|
+
** Note: beware of \\/ ruby string escaping)
|
83
|
+
**********************************************************
|
84
|
+
ENDMSG
|
85
|
+
end
|
86
|
+
|
87
|
+
#adds an alias to the predefined list of aliases.
|
88
|
+
def addAlias(_alias,ns)
|
89
|
+
log.debug { "Creation d'un alias de namespace xmlns:"+_alias+"=\""+ns+"#\"" }
|
90
|
+
@urialiases[ns]=_alias
|
91
|
+
return nil
|
92
|
+
end
|
93
|
+
|
94
|
+
#compute aliases name for given uri
|
95
|
+
#exemple alias('http://foo#bar') --> 'ns1:bar'
|
96
|
+
#Note:
|
97
|
+
# method added for uml2_kb which stores unaliased uri in kb text field for back reference to uml model.
|
98
|
+
def urialias(uri)
|
99
|
+
a=uri.split("#",2)
|
100
|
+
return uri if a[1].nil?
|
101
|
+
ns=getNamespaceAlias(a[0])
|
102
|
+
#puts "uri=#{ns}_#{a[1]}"
|
103
|
+
return "#{ns}_#{a[1]}"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
#RDF triplet handling.
|
108
|
+
class NTriple
|
109
|
+
attr_reader :about_uri, :predicat_uri, :value_uri, :value_litteral
|
110
|
+
def valueIsReference?
|
111
|
+
end
|
112
|
+
|
113
|
+
# Initialization of internal cache (performance enchancement)
|
114
|
+
def initialize
|
115
|
+
# Le cache est remis à zéro à chaque fichier.
|
116
|
+
# Les essais avec SID.nt montrent un gain de performance
|
117
|
+
# de 10% sur la méthode urialias, les fichiers étant largement disjoints.
|
118
|
+
#@@cacheUse=1
|
119
|
+
#@@cacheMiss=100
|
120
|
+
#log.debug "initialize triplet"
|
121
|
+
@uriMappingCache=Hash.new(nil)
|
122
|
+
end
|
123
|
+
|
124
|
+
# Returns an aliases uri
|
125
|
+
# uri is in ntriple format: '<http://foo#bar>'
|
126
|
+
# Optimize for ntriple file handling
|
127
|
+
def urialias(uri)
|
128
|
+
#log.debug "#{uri} ??"
|
129
|
+
#return nil if uri == nil
|
130
|
+
ret=@uriMappingCache[uri]
|
131
|
+
#log.debug "cache miss %=#{1.0*@@cacheMiss/@@cacheUse*100} cacheUse=#{@@cacheUse}"
|
132
|
+
#@@cacheUse=@@cacheUse+1
|
133
|
+
return ret unless ret.nil?
|
134
|
+
#log.debug "cache miss"
|
135
|
+
#@@cacheMiss=@@cacheMiss+1
|
136
|
+
@uriMappingCache[uri]=ret=compute_urialias(uri)
|
137
|
+
#log.debug "#{uri} -> #{ret}"
|
138
|
+
return ret
|
139
|
+
end
|
140
|
+
|
141
|
+
# Internal use
|
142
|
+
def compute_urialias(uri)
|
143
|
+
#renvoi une uri apres avoir remplacer le chemin par son alias
|
144
|
+
raise Warning.new,"Bad NT URI (#{uri})" if uri.nil? || (uri[0] != 60)
|
145
|
+
#uri=uri[1,uri.length-2]
|
146
|
+
#log.debug "uri[0,1] -> '#{uri[0,1]}'"
|
147
|
+
uri=uri[1,uri.length].split(">",2)[0]
|
148
|
+
#log.debug "uri-->#{uri}"
|
149
|
+
return ::UriNamespace.instance.urialias(uri)
|
150
|
+
|
151
|
+
#a=uri.split("#",2)
|
152
|
+
#return uri if a[1].nil?
|
153
|
+
#r=::UriNamespace.instance.getNamespaceAlias(a[0])
|
154
|
+
#log.debug "urialias="+r+"_"+a[1]
|
155
|
+
#return r+"_"+a[1]
|
156
|
+
#return "#{r}_#{a[1]}"
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
data/lib/ontomde-core/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
module Ontomde
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
end
|
1
|
+
module Ontomde
|
2
|
+
module Core
|
3
|
+
VERSION='1.0.4'
|
4
|
+
end
|
5
|
+
end
|
data/lib/ontomde-core.rb
CHANGED
@@ -1,35 +1,26 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
#
|
7
|
-
|
8
|
-
|
9
|
-
require "#{
|
10
|
-
|
11
|
-
require
|
12
|
-
require
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
require "#{here}/
|
17
|
-
require "#{here}/
|
18
|
-
require "#{here}/
|
19
|
-
require "#{here}/
|
20
|
-
require "#{here}/
|
21
|
-
require "#{here}/
|
22
|
-
|
23
|
-
|
24
|
-
require "#{here}/
|
25
|
-
require "#{here}/
|
26
|
-
|
27
|
-
require "#{here}/helper.rb"
|
28
|
-
require "#{here}/context.rb"
|
29
|
-
require "#{here}/delayed.rb"
|
30
|
-
|
31
|
-
#MTKRunner.rb
|
32
|
-
require "#{here}/loader.rb"
|
33
|
-
#require "#{here}/profil.rb"
|
34
|
-
require "#{here}/customERB.rb"
|
35
|
-
|
1
|
+
|
2
|
+
require "#{__FILE__[0..-4]}/version.rb"
|
3
|
+
require 'set'
|
4
|
+
require 'ontomde-redland-win'
|
5
|
+
|
6
|
+
here="#{File.dirname(__FILE__)}/ontomde-core"
|
7
|
+
|
8
|
+
require "#{here}/log.rb"
|
9
|
+
require "#{here}/fileLoader.rb"
|
10
|
+
require "#{here}/custom_method_missing"
|
11
|
+
require "#{here}/triplet.rb"
|
12
|
+
require "#{here}/exceptions.rb"
|
13
|
+
require "#{here}/meta.rb"
|
14
|
+
require "#{here}/resource.rb"
|
15
|
+
require "#{here}/resourceSet.rb"
|
16
|
+
require "#{here}/bootstrap_rdfs.rb"
|
17
|
+
require "#{here}/clone.rb"
|
18
|
+
require "#{here}/fileTypes.rb"
|
19
|
+
require "#{here}/helper.rb"
|
20
|
+
require "#{here}/context.rb"
|
21
|
+
require "#{here}/delayed.rb"
|
22
|
+
|
23
|
+
#MTKRunner.rb
|
24
|
+
#require "#{here}/profil.rb"
|
25
|
+
require "#{here}/customERB.rb"
|
26
|
+
|