rdf-n3 0.3.4.1 → 0.3.5
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.md → History.markdown} +0 -0
- data/{README → README.markdown} +13 -8
- data/VERSION +1 -1
- data/lib/rdf/n3.rb +1 -1
- data/lib/rdf/n3/format.rb +0 -35
- data/lib/rdf/n3/patches/list.rb +36 -0
- data/lib/rdf/n3/reader.rb +11 -26
- data/lib/rdf/n3/writer.rb +21 -40
- metadata +51 -71
- data/.yardopts +0 -12
- data/README.md +0 -149
- data/Rakefile +0 -45
- data/example-files/arnau-registered-vocab.rb +0 -21
- data/example-files/arnau-stack-overflow.ttl +0 -12
- data/example-files/best-buy.nt +0 -4
- data/example-files/dwbutler-mj.n3 +0 -10
- data/example-files/dwbutler-mj.ttl +0 -8
- data/example-files/lee-reilly-list.rb +0 -40
- data/example-files/recipe.ttl +0 -33
- data/example-files/sp2b.n3 +0 -50177
- data/example.rb +0 -45
- data/lib/rdf/n3/patches/graph_properties.rb +0 -34
- data/lib/rdf/n3/reader/bnf-rules.n3 +0 -134
- data/lib/rdf/n3/reader/n3-selectors.n3 +0 -0
- data/lib/rdf/n3/reader/n3.n3 +0 -261
- data/rdf-n3.gemspec +0 -111
- data/script/build_meta +0 -249
- data/script/console +0 -10
- data/script/parse +0 -103
- data/script/tc +0 -53
- data/script/yard-to-rubyforge +0 -2
- data/spec/.gitignore +0 -1
- data/spec/cwm_spec.rb +0 -44
- data/spec/cwm_test.rb +0 -76
- data/spec/format_spec.rb +0 -41
- data/spec/matchers.rb +0 -130
- data/spec/reader_spec.rb +0 -1243
- data/spec/spec.opts +0 -1
- data/spec/spec_helper.rb +0 -86
- data/spec/swap_spec.rb +0 -78
- data/spec/swap_test.rb +0 -79
- data/spec/turtle_spec.rb +0 -66
- data/spec/turtle_test.rb +0 -98
- data/spec/writer_spec.rb +0 -399
data/example.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$:.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
4
|
-
|
5
|
-
require 'rubygems'
|
6
|
-
require 'rdf/n3'
|
7
|
-
|
8
|
-
data = <<-EOF;
|
9
|
-
@prefix dc: <http://purl.org/dc/elements/1.1/>.
|
10
|
-
@prefix po: <http://purl.org/ontology/po/>.
|
11
|
-
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
|
12
|
-
_:broadcast
|
13
|
-
a po:Broadcast;
|
14
|
-
po:schedule_date """2008-06-24T12:00:00Z""";
|
15
|
-
po:broadcast_of _:version;
|
16
|
-
po:broadcast_on <http://www.bbc.co.uk/programmes/service/6music>;
|
17
|
-
.
|
18
|
-
_:version
|
19
|
-
a po:Version;
|
20
|
-
.
|
21
|
-
<http://www.bbc.co.uk/programmes/b0072l93>
|
22
|
-
dc:title """Nemone""";
|
23
|
-
a po:Brand;
|
24
|
-
.
|
25
|
-
<http://www.bbc.co.uk/programmes/b00c735d>
|
26
|
-
a po:Episode;
|
27
|
-
po:episode <http://www.bbc.co.uk/programmes/b0072l93>;
|
28
|
-
po:version _:version;
|
29
|
-
po:long_synopsis """Actor and comedian Rhys Darby chats to Nemone.""";
|
30
|
-
dc:title """Nemone""";
|
31
|
-
po:synopsis """Actor and comedian Rhys Darby chats to Nemone.""";
|
32
|
-
.
|
33
|
-
<http://www.bbc.co.uk/programmes/service/6music>
|
34
|
-
a po:Service;
|
35
|
-
dc:title """BBC 6 Music""";
|
36
|
-
.
|
37
|
-
|
38
|
-
#_:abcd a po:Episode.
|
39
|
-
EOF
|
40
|
-
|
41
|
-
RDF::N3::Reader.new(data, :base_uri => 'http://www.bbc.co.uk/programmes/on-now.n3') do |reader|
|
42
|
-
reader.each_statement do |statement|
|
43
|
-
statement.inspect!
|
44
|
-
end
|
45
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module RDF
|
2
|
-
class Graph
|
3
|
-
# Resource properties
|
4
|
-
#
|
5
|
-
# Properties arranged as a hash with the predicate Term as index to an array of resources or literals
|
6
|
-
#
|
7
|
-
# Example:
|
8
|
-
# graph.load(':foo a :bar; rdfs:label "An example" .', "http://example.com/")
|
9
|
-
# graph.resources(URI.new("http://example.com/subject")) =>
|
10
|
-
# {
|
11
|
-
# "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" => [<http://example.com/#bar>],
|
12
|
-
# "http://example.com/#label" => ["An example"]
|
13
|
-
# }
|
14
|
-
def properties(subject, recalc = false)
|
15
|
-
@properties ||= {}
|
16
|
-
@properties.delete(subject.to_s) if recalc
|
17
|
-
@properties[subject.to_s] ||= begin
|
18
|
-
hash = Hash.new
|
19
|
-
self.query(:subject => subject) do |statement|
|
20
|
-
pred = statement.predicate.to_s
|
21
|
-
|
22
|
-
hash[pred] ||= []
|
23
|
-
hash[pred] << statement.object
|
24
|
-
end
|
25
|
-
hash
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
# Get type(s) of subject, returns a list of symbols
|
30
|
-
def type_of(subject)
|
31
|
-
query(:subject => subject, :predicate => RDF.type).map {|st| st.object}
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,134 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Baccus - Naur Form (BNF) vocabulary
|
3
|
-
#
|
4
|
-
|
5
|
-
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
6
|
-
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
|
7
|
-
@prefix bnf: <http://www.w3.org/2000/10/swap/grammar/bnf#>.
|
8
|
-
@prefix : <http://www.w3.org/2000/10/swap/grammar/bnf-rules#>.
|
9
|
-
@prefix rul: <http://www.w3.org/2000/10/swap/grammar/bnf-rules#>.
|
10
|
-
@prefix n3: <http://www.w3.org/2000/10/swap/grammar/n3#>.
|
11
|
-
@prefix list: <http://www.w3.org/2000/10/swap/list#>.
|
12
|
-
@prefix doc: <http://www.w3.org/2000/10/swap/pim/doc#>.
|
13
|
-
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
|
14
|
-
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
|
15
|
-
@keywords a, is, of.
|
16
|
-
|
17
|
-
|
18
|
-
<> rdfs:comment
|
19
|
-
|
20
|
-
"""This set of rules process a BNF graph in its basic
|
21
|
-
cfg:mustBeOneOf BNF form and create the branching tables to drive a
|
22
|
-
predictive parser.
|
23
|
-
|
24
|
-
See also cfg2bnf.n3 which expands the shothand ontology into the basic
|
25
|
-
BNF terms.
|
26
|
-
""".
|
27
|
-
|
28
|
-
#_____________________________________
|
29
|
-
|
30
|
-
|
31
|
-
# Enumerate options:
|
32
|
-
|
33
|
-
{ ?x bnf:mustBeOneSequence ?y} => { ?x optionTail ?y }.
|
34
|
-
|
35
|
-
{?x optionTail [rdf:first ?y; rdf:rest ?z]} => {
|
36
|
-
?x bnf:branch [ bnf:sequence ?y];
|
37
|
-
optionTail ?z.
|
38
|
-
}.
|
39
|
-
|
40
|
-
{ ?x bnf:branch [bnf:sequence ?y] } => { ?y sequenceTail ?y }.
|
41
|
-
|
42
|
-
sequenceTail a log:Chaff.
|
43
|
-
optionTail a log:Chaff.
|
44
|
-
|
45
|
-
{ ?x sequenceTail [ rdf:rest ?z ] } => { ?x sequenceTail ?z }.
|
46
|
-
|
47
|
-
# What productions can follow each other?
|
48
|
-
# This is used for working out when to
|
49
|
-
|
50
|
-
{ ?x sequenceTail [ rdf:first ?y; rdf:rest [ rdf:first ?z ]] } =>
|
51
|
-
{ ?y bnf:canPrecede ?z }.
|
52
|
-
|
53
|
-
{ ?x bnf:branch [
|
54
|
-
bnf:sequence [
|
55
|
-
list:last ?y]].
|
56
|
-
?x bnf:canPrecede ?z} =>
|
57
|
-
{ ?y bnf:canPrecede ?z }.
|
58
|
-
|
59
|
-
{ ?x bnf:canPrecede ?y.
|
60
|
-
?y bnf:branch [ bnf:sequence () ].
|
61
|
-
?y bnf:canPrecede ?z.
|
62
|
-
} => {
|
63
|
-
|
64
|
-
?x bnf:canPrecede ?z.
|
65
|
-
}.
|
66
|
-
|
67
|
-
|
68
|
-
bnf:eof bnf:canStartWith "@EOFDUMMY". # @@ kludge
|
69
|
-
|
70
|
-
# Have to separate the next three rules or cwm seems to
|
71
|
-
# get screwed up and assume there is no solution @@@
|
72
|
-
|
73
|
-
{ ?x bnf:branch [bnf:sequence [ rdf:first ?y ]].
|
74
|
-
} => { ?x bnf:TEST ?y }.
|
75
|
-
|
76
|
-
{ ?x bnf:TEST ?y .
|
77
|
-
?y log:rawType log:Literal. } => { ?x bnf:canStartWithLiteral ?y }.
|
78
|
-
|
79
|
-
{ ?x bnf:canStartWithLiteral ?y .
|
80
|
-
# (?y "(.).*") string:scrape ?c # Use whole string
|
81
|
-
} => { ?y bnf:canStartWith ?y }.
|
82
|
-
|
83
|
-
#______________________________________________________________
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
# Rules for determining branching
|
88
|
-
|
89
|
-
# A branch has a sequence, which is the given BNF production, and
|
90
|
-
# one or more conditions, which are the strings on which to consider
|
91
|
-
# that branch. N3 is a langauge in whch the look-ahead often is only
|
92
|
-
# one character, and may allways be a constsnt string rather than a
|
93
|
-
# regexp (check).
|
94
|
-
|
95
|
-
# A branchTail is a sequnece which a branch could start with
|
96
|
-
{ ?x bnf:branch ?b.
|
97
|
-
?b bnf:sequence ?s.
|
98
|
-
} => {
|
99
|
-
?b bnf:branchTail ?s.
|
100
|
-
}.
|
101
|
-
|
102
|
-
{ ?b bnf:branchTail ?s.
|
103
|
-
?s rdf:first [ bnf:branch [ bnf:sequence () ]];
|
104
|
-
rdf:rest ?t
|
105
|
-
} => {
|
106
|
-
?b bnf:branchTail ?t.
|
107
|
-
}.
|
108
|
-
|
109
|
-
|
110
|
-
{ ?x bnf:branch ?b.
|
111
|
-
?b bnf:branchTail ?s.
|
112
|
-
?s rdf:first [bnf:canStartWith ?y].
|
113
|
-
} => {
|
114
|
-
?x bnf:canStartWith ?y.
|
115
|
-
?b bnf:condition ?y.
|
116
|
-
}.
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
{ ?x bnf:branch ?b;
|
121
|
-
bnf:canPrecede ?z.
|
122
|
-
?z log:rawType log:Literal.
|
123
|
-
?b bnf:sequence ().
|
124
|
-
} => { ?b bnf:condition ?z}.
|
125
|
-
|
126
|
-
{ ?x bnf:branch ?b;
|
127
|
-
bnf:canPrecede [bnf:canStartWith ?z].
|
128
|
-
?b bnf:sequence ().
|
129
|
-
} => { ?b bnf:condition ?z}.
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
#ends
|
Binary file
|
data/lib/rdf/n3/reader/n3.n3
DELETED
@@ -1,261 +0,0 @@
|
|
1
|
-
# Notation3 in Notation3
|
2
|
-
# Context Free Grammar without tokenization
|
3
|
-
#
|
4
|
-
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
5
|
-
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
|
6
|
-
@prefix cfg: <http://www.w3.org/2000/10/swap/grammar/bnf#>.
|
7
|
-
@prefix rul: <http://www.w3.org/2000/10/swap/grammar/bnf-rules#>.
|
8
|
-
@prefix : <http://www.w3.org/2000/10/swap/grammar/n3#>.
|
9
|
-
@prefix n3: <http://www.w3.org/2000/10/swap/grammar/n3#>.
|
10
|
-
@prefix list: <http://www.w3.org/2000/10/swap/list#>.
|
11
|
-
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
|
12
|
-
@keywords a, is, of.
|
13
|
-
|
14
|
-
|
15
|
-
# Issues:
|
16
|
-
# - string token regexp not right FIXED
|
17
|
-
# - tokenizing rules in general: whitespace are not defined in n3.n3
|
18
|
-
# and it would be nice for the *entire* syntax description to be in RDF.
|
19
|
-
# - encoding really needs specifying
|
20
|
-
# - @keywords affects tokenizing
|
21
|
-
# - comments (tokenizer deals with)
|
22
|
-
# - We assume ASCII, in fact should use not notNameChars for i18n
|
23
|
-
|
24
|
-
# tokenizing:
|
25
|
-
# Absorb anything until end of regexp, then stil white space
|
26
|
-
# period followed IMMEDIATELY by an opener or name char is taken as "!".
|
27
|
-
# Except after a "." used instead of in those circumstances,
|
28
|
-
# ws may be inserted between tokens.
|
29
|
-
# WS MUST be inserted between tokens where ambiguity would arise.
|
30
|
-
# (possible ending characters of one and beginning characters overlap)
|
31
|
-
#
|
32
|
-
|
33
|
-
#<> cfg:syntaxFor [ cfg:internetMediaType
|
34
|
-
# <http://www.w3.org/2003/mediatypes/text/n3>].
|
35
|
-
|
36
|
-
|
37
|
-
# __________________________________________________________________
|
38
|
-
#
|
39
|
-
# The N3 Full Grammar
|
40
|
-
|
41
|
-
|
42
|
-
language a cfg:Language;
|
43
|
-
cfg:document document;
|
44
|
-
cfg:whiteSpace "@@@@@".
|
45
|
-
|
46
|
-
|
47
|
-
document a rul:Used;
|
48
|
-
cfg:mustBeOneSequence(
|
49
|
-
|
50
|
-
(
|
51
|
-
# [ cfg:zeroOrMore declaration ]
|
52
|
-
# [ cfg:zeroOrMore universal ]
|
53
|
-
# [ cfg:zeroOrMore existential ]
|
54
|
-
statements_optional
|
55
|
-
cfg:eof
|
56
|
-
)
|
57
|
-
).
|
58
|
-
|
59
|
-
statements_optional cfg:mustBeOneSequence (() ( statement "." statements_optional ) ).
|
60
|
-
|
61
|
-
# Formula does NOT need period on last statement
|
62
|
-
|
63
|
-
formulacontent cfg:mustBeOneSequence (
|
64
|
-
( statementlist )
|
65
|
-
).
|
66
|
-
|
67
|
-
|
68
|
-
statementlist cfg:mustBeOneSequence (
|
69
|
-
( )
|
70
|
-
( statement statementtail )
|
71
|
-
).
|
72
|
-
|
73
|
-
statementtail cfg:mustBeOneSequence (
|
74
|
-
( )
|
75
|
-
( "." statementlist )
|
76
|
-
).
|
77
|
-
|
78
|
-
|
79
|
-
statement cfg:mustBeOneSequence (
|
80
|
-
(declaration)
|
81
|
-
(universal)
|
82
|
-
(existential)
|
83
|
-
(simpleStatement)
|
84
|
-
).
|
85
|
-
|
86
|
-
universal cfg:mustBeOneSequence (
|
87
|
-
(
|
88
|
-
"@forAll"
|
89
|
-
[ cfg:commaSeparatedListOf symbol ]
|
90
|
-
)).
|
91
|
-
|
92
|
-
existential cfg:mustBeOneSequence(
|
93
|
-
( "@forSome"
|
94
|
-
[ cfg:commaSeparatedListOf symbol ]
|
95
|
-
)).
|
96
|
-
|
97
|
-
|
98
|
-
declaration cfg:mustBeOneSequence(
|
99
|
-
( "@base" explicituri )
|
100
|
-
( "@prefix" prefix explicituri )
|
101
|
-
( "@keywords" [ cfg:commaSeparatedListOf barename ] )
|
102
|
-
).
|
103
|
-
|
104
|
-
|
105
|
-
simpleStatement cfg:mustBeOneSequence(( subject propertylist )).
|
106
|
-
|
107
|
-
propertylist cfg:mustBeOneSequence (
|
108
|
-
( )
|
109
|
-
( predicate object objecttail propertylisttail )
|
110
|
-
).
|
111
|
-
|
112
|
-
propertylisttail cfg:mustBeOneSequence (
|
113
|
-
( )
|
114
|
-
( ";" propertylist )
|
115
|
-
).
|
116
|
-
|
117
|
-
|
118
|
-
objecttail cfg:mustBeOneSequence (
|
119
|
-
( )
|
120
|
-
( "," object objecttail )
|
121
|
-
).
|
122
|
-
|
123
|
-
|
124
|
-
predicate cfg:mustBeOneSequence (
|
125
|
-
( expression )
|
126
|
-
( "@has" expression )
|
127
|
-
( "@is" expression "@of" )
|
128
|
-
( "@a" )
|
129
|
-
( "=" )
|
130
|
-
( "=>" )
|
131
|
-
( "<=" )
|
132
|
-
).
|
133
|
-
|
134
|
-
subject cfg:mustBeOneSequence ((expression)).
|
135
|
-
|
136
|
-
object cfg:mustBeOneSequence ((expression)).
|
137
|
-
|
138
|
-
expression cfg:mustBeOneSequence(
|
139
|
-
( pathitem pathtail )
|
140
|
-
).
|
141
|
-
|
142
|
-
pathtail cfg:mustBeOneSequence(
|
143
|
-
( )
|
144
|
-
( "!" expression )
|
145
|
-
( "^" expression )
|
146
|
-
).
|
147
|
-
|
148
|
-
|
149
|
-
pathitem cfg:mustBeOneSequence (
|
150
|
-
( symbol )
|
151
|
-
( "{" formulacontent "}" )
|
152
|
-
( quickvariable )
|
153
|
-
( numericliteral )
|
154
|
-
( literal )
|
155
|
-
( "[" propertylist "]" )
|
156
|
-
( "(" pathlist ")" )
|
157
|
-
( boolean )
|
158
|
-
# ( "@this" ) # Deprocated. Was allowed for this log:forAll x
|
159
|
-
).
|
160
|
-
|
161
|
-
|
162
|
-
boolean cfg:mustBeOneSequence (
|
163
|
-
( "@true" )
|
164
|
-
( "@false" )
|
165
|
-
) .
|
166
|
-
|
167
|
-
pathlist cfg:mustBeOneSequence (() (expression pathlist)).
|
168
|
-
|
169
|
-
symbol cfg:mustBeOneSequence (
|
170
|
-
(explicituri)
|
171
|
-
(qname)
|
172
|
-
).
|
173
|
-
|
174
|
-
|
175
|
-
numericliteral cfg:mustBeOneSequence (
|
176
|
-
( integer )
|
177
|
-
( rational )
|
178
|
-
( double )
|
179
|
-
( decimal )
|
180
|
-
) .
|
181
|
-
|
182
|
-
rational cfg:mustBeOneSequence (( integer "/" unsignedint)).
|
183
|
-
|
184
|
-
|
185
|
-
literal cfg:mustBeOneSequence(( string dtlang)).
|
186
|
-
|
187
|
-
dtlang cfg:mustBeOneSequence( () ("@" langcode) ("^^" symbol)).
|
188
|
-
|
189
|
-
|
190
|
-
#______________________________________________________________________
|
191
|
-
#
|
192
|
-
# TERMINALS
|
193
|
-
#
|
194
|
-
# "canStartWith" actually gives "a" for the whole class of alpha characters
|
195
|
-
# and "0" for any of the digits 0-9. This is used to build the branching
|
196
|
-
# tables.
|
197
|
-
#
|
198
|
-
integer cfg:matches """[-+]?[0-9]+""";
|
199
|
-
cfg:canStartWith "0", "-", "+".
|
200
|
-
unsignedint cfg:matches """[0-9]+""";
|
201
|
-
cfg:canStartWith "0".
|
202
|
-
double cfg:matches """[-+]?[0-9]+(\\.[0-9]+)?([eE][-+]?[0-9]+)""";
|
203
|
-
cfg:canStartWith "0", "-", "+".
|
204
|
-
decimal cfg:matches """[-+]?[0-9]+\\.[0-9]*""";
|
205
|
-
cfg:canStartWith "0", "-", "+".
|
206
|
-
|
207
|
-
#numericliteral cfg:matches """[-+]?[0-9]+(\\.[0-9]+)?(e[-+]?[0-9]+)?""";
|
208
|
-
# cfg:canStartWith "0", "-", "+".
|
209
|
-
|
210
|
-
explicituri cfg:matches "<[^>]*>";
|
211
|
-
cfg:canStartWith "<".
|
212
|
-
|
213
|
-
prefix cfg:matches "([A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff][\\-0-9A-Z_a-z\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff]*)?:";
|
214
|
-
cfg:canStartWith "a", "_", ":". # @@ etc unicode
|
215
|
-
|
216
|
-
qname cfg:matches "(([A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff][\\-0-9A-Z_a-z\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff]*)?:)?[A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff][\\-0-9A-Z_a-z\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff]*";
|
217
|
-
cfg:canStartWith "a", "_", ":". # @@ etc unicode
|
218
|
-
|
219
|
-
# ASCII version:
|
220
|
-
#barename cfg:matches "[a-zA-Z_][a-zA-Z0-9_]*"; # subset of qname
|
221
|
-
# cfg:canStartWith "a", "_". # @@ etc
|
222
|
-
|
223
|
-
# This is the XML1.1
|
224
|
-
barename cfg:matches "[A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff][\\-0-9A-Z_a-z\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff]*";
|
225
|
-
cfg:canStartWith "a", "_". # @@ etc .
|
226
|
-
|
227
|
-
# as far as I can tell, the regexp should be
|
228
|
-
# barename cfg:matches "[A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff][\\-0-9A-Z_a-z\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff]*" .
|
229
|
-
#
|
230
|
-
|
231
|
-
quickvariable cfg:matches "\\?[A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff][\\-0-9A-Z_a-z\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff]*"; # ? barename
|
232
|
-
cfg:canStartWith "?". #
|
233
|
-
|
234
|
-
# Maybe dtlang should just be part of string regexp?
|
235
|
-
# Whitespace is not allowed
|
236
|
-
|
237
|
-
# was: "[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)?";
|
238
|
-
langcode cfg:matches "[a-z]+(-[a-z0-9]+)*"; # http://www.w3.org/TR/rdf-testcases/#language
|
239
|
-
cfg:canStartWith "a".
|
240
|
-
|
241
|
-
|
242
|
-
# raw regexp single quoted would be "([^"]|(\\"))*"
|
243
|
-
# See:
|
244
|
-
# $ PYTHONPATH=$SWAP python
|
245
|
-
# >>> import tokenize
|
246
|
-
# >>> import notation3
|
247
|
-
# >>> print notation3.stringToN3(tokenize.Double3)
|
248
|
-
# "[^\"\\\\]*(?:(?:\\\\.|\"(?!\"\"))[^\"\\\\]*)*\"\"\""
|
249
|
-
# >>> print notation3.stringToN3(tokenize.Double)
|
250
|
-
# "[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\""
|
251
|
-
# After that we have to prefix with one or three opening \" which
|
252
|
-
# the python regexp doesn't have.
|
253
|
-
#
|
254
|
-
# string3 cfg:matches "\"\"\"[^\"\\\\]*(?:(?:\\\\.|\"(?!\"\"))[^\"\\\\]*)*\"\"\"".
|
255
|
-
# string1 cfg:matches "\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"".
|
256
|
-
|
257
|
-
string cfg:matches "(\"\"\"[^\"\\\\]*(?:(?:\\\\.|\"(?!\"\"))[^\"\\\\]*)*\"\"\")|(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\")";
|
258
|
-
cfg:canStartWith "\"".
|
259
|
-
|
260
|
-
|
261
|
-
#ends
|