You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/11/02 18:46:37 UTC
svn commit: r1405072 - in /jena: Experimental/riot-reader/src/main/java/dev/
Experimental/riot-reader/testing/RIOT/Lang/Turtle/ trunk/jena-arq/
trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/
trunk/jena-arq/src/main/java/org/openjen...
Author: andy
Date: Fri Nov 2 17:46:36 2012
New Revision: 1405072
URL: http://svn.apache.org/viewvc?rev=1405072&view=rev
Log:
Final adjustments for correct Turtle token handling.
Modified:
jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java
jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/eval-struct-02.ttl
jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/master
jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/syn-pname-esc-03.ttl
jena/trunk/jena-arq/ReleaseNotes.txt
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/XSDFuncOp.java
jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/Chars.java
jena/trunk/jena-arq/src/main/java/org/openjena/riot/tokens/TokenizerText.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValueOps.java
jena/trunk/jena-arq/src/test/java/org/openjena/riot/lang/TestTurtleTerms.java
jena/trunk/jena-arq/src/test/java/org/openjena/riot/tokens/TestTokenizer.java
Modified: jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java (original)
+++ jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java Fri Nov 2 17:46:36 2012
@@ -35,10 +35,6 @@ public class PROJECT_RiotReader
// (eventual) Integration into Jena:
// Remove: RDFReaderF etc.
- // tests
- // Is HTTP and 303's sufficiently covered?
- // tests files on jena.apache.org, gated by can contact jena.apache.org/
-
// Update documentation
// http://jena.apache.org/documentation/io/index.html
// http://jena.apache.org/documentation/io/iohowto.html
@@ -48,6 +44,7 @@ public class PROJECT_RiotReader
// if the universal Jena reader used in the old model.read.
// (currently coded around by creating per language reader factories).
+ // --------
// If universal reader:
// 6 errors need changes to ModelCom to fix.
// read_base_1 -
Modified: jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/eval-struct-02.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/eval-struct-02.ttl?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/eval-struct-02.ttl (original)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/eval-struct-02.ttl Fri Nov 2 17:46:36 2012
@@ -1,3 +1,4 @@
<http://example/s>
<http://example/p1> <http://example/o1> ;
- <http://example/p2> <http://example/o2> ;
+ <http://example/p2> <http://example/o2> ;
+ .
Modified: jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/master
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/master?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/master (original)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/master Fri Nov 2 17:46:36 2012
@@ -194,7 +194,7 @@ ROOT=syn-pname-esc
--Syntax--
@prefix : <http://example/> .
-:xyz\~ :abc\.: :
+:xyz\~ :abc\.: : .
--End--
# BNodes
@@ -290,7 +290,7 @@ ROOT=syn-number
--End--
--Syntax--
-# This is a integer
+# This is an integer
<s> <p> 123.
--End--
@@ -697,7 +697,8 @@ ROOT=eval-struct
--Eval--
<http://example/s>
<http://example/p1> <http://example/o1> ;
- <http://example/p2> <http://example/o2> ;
+ <http://example/p2> <http://example/o2> ;
+ .
--Results--
<http://example/s> <http://example/p1> <http://example/o1> .
<http://example/s> <http://example/p2> <http://example/o2> .
Modified: jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/syn-pname-esc-03.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/syn-pname-esc-03.ttl?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/syn-pname-esc-03.ttl (original)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/syn-pname-esc-03.ttl Fri Nov 2 17:46:36 2012
@@ -1,2 +1,2 @@
@prefix : <http://example/> .
-:xyz\~ :abc\.: :
+:xyz\~ :abc\.: : .
Modified: jena/trunk/jena-arq/ReleaseNotes.txt
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/ReleaseNotes.txt?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/trunk/jena-arq/ReleaseNotes.txt (original)
+++ jena/trunk/jena-arq/ReleaseNotes.txt Fri Nov 2 17:46:36 2012
@@ -10,6 +10,7 @@ ChangeLog for ARQ
+ Remove the partial migration support for old-style SPARQL submission update forms.
+ Update Turtle/Trig parsers for prefixed name details in RDF 1.1
Add %-sequences, \char sequences and ':' to local part of prefixed names.
+ NB. The characters 123. are now an integer 123 and a DOT; they were a decimal, and no DOT.
==== ARQ 2.9.4
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/XSDFuncOp.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/XSDFuncOp.java?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/XSDFuncOp.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/XSDFuncOp.java Fri Nov 2 17:46:36 2012
@@ -187,8 +187,8 @@ public class XSDFuncOp
// Has a DOT.
int i = x.length()-1;
- // i+1 at least leave ".0"
- while ( i+1 > dotIdx && x.charAt(i) == '0' )
+ // dotIdx+1 to leave at least ".0"
+ while ( ( i > dotIdx+1) && x.charAt(i) == '0' )
i -- ;
if ( i < x.length()-1)
// And trailing zeros.
Modified: jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/Chars.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/Chars.java?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/Chars.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/Chars.java Fri Nov 2 17:46:36 2012
@@ -217,6 +217,7 @@ public class Chars
public static final char CH_DASH = '-' ; // Alt name
public static final char CH_SLASH = '/' ;
public static final char CH_RSLASH = '\\' ;
+ public static final char CH_PERCENT = '%' ;
// Byte versions of the above
public static final byte B_NL = NL ;
@@ -253,6 +254,7 @@ public class Chars
public static final byte B_DASH = '-' ; // Alt name
public static final byte B_SLASH = '/' ;
public static final byte B_RSLASH = '\\' ;
+ public static final byte B_PERCENT = '%' ;
}
Modified: jena/trunk/jena-arq/src/main/java/org/openjena/riot/tokens/TokenizerText.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/riot/tokens/TokenizerText.java?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/tokens/TokenizerText.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/tokens/TokenizerText.java Fri Nov 2 17:46:36 2012
@@ -18,7 +18,7 @@
package org.openjena.riot.tokens;
-import static org.openjena.atlas.lib.Chars.CH_AT ;
+import static org.openjena.atlas.lib.Chars.* ;
import static org.openjena.atlas.lib.Chars.CH_COLON ;
import static org.openjena.atlas.lib.Chars.CH_COMMA ;
import static org.openjena.atlas.lib.Chars.CH_DOT ;
@@ -559,14 +559,14 @@ public final class TokenizerText impleme
return "" ;
if ( isLocalPart )
{
- if ( ch == ':' )
+ if ( ch == CH_COLON )
{
reader.readChar() ;
stringBuilder.append((char)ch) ;
}
// processPLX
- else if ( ch == '%' || ch == '\\' )
+ else if ( ch == CH_PERCENT|| ch == CH_RSLASH )
{
reader.readChar() ;
processPLX(ch) ;
@@ -593,7 +593,7 @@ public final class TokenizerText impleme
ch = reader.peekChar() ;
boolean valid = false ;
- if ( isLocalPart && ( ch == '%' || ch == '\\' ) )
+ if ( isLocalPart && ( ch == CH_PERCENT|| ch == CH_RSLASH ) )
{
reader.readChar() ;
if ( chDot != 0 )
@@ -604,7 +604,7 @@ public final class TokenizerText impleme
}
// Single valid characters
- if ( isLocalPart && ch == ':' )
+ if ( isLocalPart && ch == CH_COLON )
valid = true ;
else if ( isPNChars(ch) )
valid = true ;
@@ -643,7 +643,7 @@ public final class TokenizerText impleme
// Process PLX (percent or character escape for a prefixed name)
private void processPLX(int ch)
{
- if ( ch == '%' )
+ if ( ch == CH_PERCENT )
{
stringBuilder.append((char)ch) ;
@@ -659,9 +659,8 @@ public final class TokenizerText impleme
stringBuilder.append((char)ch) ;
reader.readChar() ;
}
- else if ( ch == '\\' )
+ else if ( ch == CH_RSLASH )
{
- reader.readChar() ;
ch = readCharEscape() ;
stringBuilder.append((char)ch) ;
}
@@ -693,7 +692,7 @@ public final class TokenizerText impleme
exception("Broken token: "+stringBuilder.toString(), y, x) ;
}
- if ( ch == '\n' )
+ if ( ch == NL )
exception("Broken token (newline): "+stringBuilder.toString(), y, x) ;
if ( ch == endCh )
@@ -702,7 +701,7 @@ public final class TokenizerText impleme
return stringBuilder.toString() ;
}
- if ( ch == '\\' )
+ if ( ch == CH_RSLASH )
{
ch = strEscapes ? readLiteralEscape() : readUnicodeEscape() ;
// Drop through.
@@ -729,7 +728,7 @@ public final class TokenizerText impleme
return stringBuilder.toString() ;
}
- if ( ch == '\\' )
+ if ( ch == CH_RSLASH )
ch = readLiteralEscape() ;
insertCodepoint(stringBuilder, ch) ;
}
@@ -845,19 +844,17 @@ public final class TokenizerText impleme
}
// Make better!
-/*
- [16] integer ::= ('-' | '+') ? [0-9]+
- [17] double ::= ('-' | '+') ? ( [0-9]+ '.' [0-9]* exponent | '.' ([0-9])+ exponent | ([0-9])+ exponent )
- 0.e0, .0e0, 0e0
- [18] decimal ::= ('-' | '+')? ( [0-9]+ '.' [0-9]* | '.' ([0-9])+ | ([0-9])+ )
- 0.0 .0
- [19] exponent ::= [eE] ('-' | '+')? [0-9]+
- [] hex ::= 0x0123456789ABCDEFG
+ /*
+ * [146] INTEGER ::= [0-9]+
+ * [147] DECIMAL ::= [0-9]* '.' [0-9]+
+ * [148] DOUBLE ::= [0-9]+ '.' [0-9]* EXPONENT | '.' ([0-9])+ EXPONENT | ([0-9])+ EXPONENT
+ * [] hex ::= 0x0123456789ABCDEFG
*/
private void readNumber()
{
// One entry, definitely a number.
+ //
// Beware of '.' as a (non) decimal.
/*
maybeSign()
@@ -871,7 +868,6 @@ public final class TokenizerText impleme
boolean isDecimal = false ;
stringBuilder.setLength(0) ;
-
/*
readPossibleSign(stringBuilder) ;
readDigits may be hex
@@ -904,7 +900,6 @@ public final class TokenizerText impleme
readPossibleSign(stringBuilder) ;
}
-
x += readDigits(stringBuilder) ;
// if ( x == 0 )
// {
@@ -929,6 +924,21 @@ public final class TokenizerText impleme
isDecimal = false ;
}
+
+ //****
+ // Final part - "decimal" 123. is an integer 123 and a DOT.
+ if ( isDecimal )
+ {
+ int len = stringBuilder.length() ;
+ if ( stringBuilder.charAt(len-1) == CH_DOT )
+ {
+ stringBuilder.setLength(len-1) ;
+ reader.pushbackChar(CH_DOT) ;
+ isDecimal = false ;
+ }
+
+ }
+
token.setImage(stringBuilder.toString()) ;
if ( isDouble )
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValueOps.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValueOps.java?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValueOps.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValueOps.java Fri Nov 2 17:46:36 2012
@@ -136,7 +136,7 @@ public class TestNodeValueOps extends Ba
@Test public void nv_mult_3() { testMult("'PT1H2M'^^xsd:duration", "2", "'PT2H4M'^^xsd:dayTimeDuration") ; }
// ** Division
- @Test public void nv_div_1() { testDiv("12", "2", "6." ) ; }
+ @Test public void nv_div_1() { testDiv("12", "2", "6.0" ) ; }
@Test public void nv_div_2() { testDiv("12", "2e0", "6.0e0" ) ; }
// == Workers
Modified: jena/trunk/jena-arq/src/test/java/org/openjena/riot/lang/TestTurtleTerms.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/openjena/riot/lang/TestTurtleTerms.java?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/openjena/riot/lang/TestTurtleTerms.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/openjena/riot/lang/TestTurtleTerms.java Fri Nov 2 17:46:36 2012
@@ -65,8 +65,8 @@ public class TestTurtleTerms extends Bas
@Test public void turtle_020() { parse("a:subj a:prop 'string1'^^<uriref>.") ; }
// Literals: numbers.
- @Test public void turtle_021() { parse("a: :p 2. .") ; }
- @Test public void turtle_022() { parse("a: :p +2. .") ; }
+ @Test public void turtle_021() { parse("a: :p 2.") ; }
+ @Test public void turtle_022() { parse("a: :p +2.") ; }
@Test public void turtle_023() { parse("a: :p -2 .") ; }
@Test public void turtle_024() { parse("a: :p 2e6.") ; }
@Test public void turtle_025() { parse("a: :p 2e-6.") ; }
Modified: jena/trunk/jena-arq/src/test/java/org/openjena/riot/tokens/TestTokenizer.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/openjena/riot/tokens/TestTokenizer.java?rev=1405072&r1=1405071&r2=1405072&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/openjena/riot/tokens/TestTokenizer.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/openjena/riot/tokens/TestTokenizer.java Fri Nov 2 17:46:36 2012
@@ -476,23 +476,30 @@ public class TestTokenizer extends BaseT
tokenizeAndTestExact("a:xe\u0301y", TokenType.PREFIXED_NAME, "a", "xe\u0301y") ;
}
-// @Test
-// public void tokenUnit_pname10()
-// {
-// Tokenizer tokenizer = tokenizer("a:b#c") ;
-// assertTrue(tokenizer.hasNext()) ;
-// Token token = tokenizer.next() ;
-// pnameToken(token, "a", "b#c") ;
-// }
-//
-// @Test
-// public void tokenUnit_pname11()
-// {
-// Tokenizer tokenizer = tokenizer("a:b/c") ;
-// assertTrue(tokenizer.hasNext()) ;
-// Token token = tokenizer.next() ;
-// pnameToken(token, "a", "b/c") ;
-// }
+ @Test
+ public void tokenUnit_pname16()
+ {
+ tokenizeAndTestExact("a:b\\#c", TokenType.PREFIXED_NAME, "a", "b#c") ;
+ }
+
+ @Test
+ public void tokenUnit_pname17()
+ {
+ tokenizeAndTestExact("a:b\\/c", TokenType.PREFIXED_NAME, "a", "b/c") ;
+ }
+
+ @Test
+ public void tokenUnit_pname18()
+ {
+ tokenizeAndTestExact("a:b:c", TokenType.PREFIXED_NAME, "a", "b:c") ;
+ }
+
+ @Test
+ public void tokenUnit_pname19()
+ {
+ tokenizeAndTestExact("a:b%AAc", TokenType.PREFIXED_NAME, "a", "b%AAc") ;
+ }
+
@Test
public void tokenUnit_25()
@@ -511,7 +518,8 @@ public class TestTokenizer extends BaseT
@Test public void tokenUnit_num2()
{
- tokenizeAndTestExact("123.", TokenType.DECIMAL, "123.") ;
+ // This is a chnage in Turtle (and SPARQL 1.1)
+ tokenizeAndTestFirst("123.", TokenType.INTEGER, "123") ;
}
@Test public void tokenUnit_num3()