Skip to content

Commit 12eac7c

Browse files
committed
Fix: nested reified triples
1 parent 86b00ed commit 12eac7c

File tree

5 files changed

+499
-441
lines changed

5 files changed

+499
-441
lines changed

Diff for: jena-arq/Grammar/arq.jj

+10-13
Original file line numberDiff line numberDiff line change
@@ -1307,25 +1307,22 @@ Node VarOrTerm() : { Node n = null ; String iri ; }
13071307
Node ReifiedTriple(TripleCollector acc) : { Node reifId = null ; Token tok ; Node s; Node p ; Node o ; }
13081308
{
13091309
tok = <LT2>
1310-
s = VarOrTerm()
1310+
(
1311+
s = VarOrTerm()
1312+
|
1313+
s = ReifiedTriple(acc)
1314+
)
13111315
p = Verb()
1312-
o = VarOrTerm()
1316+
(
1317+
o = VarOrTerm()
1318+
|
1319+
o = ReifiedTriple(acc)
1320+
)
13131321
(reifId = Reifier())?
13141322
{ reifId = insertTripleReifier(acc, reifId, s, p, o, tok.beginLine, tok.beginColumn) ; }
13151323
<GT2>
13161324
{ return reifId; }
13171325
}
1318-
Node ReifiedTripleData(TripleCollector acc) : { Node reifId = null ; Token tok ; String iri ; Node s; Node p ; Node o ; }
1319-
{
1320-
tok = <LT2>
1321-
( s = DataValueTerm() )
1322-
( iri = iri() { p = createNode(iri) ; } | <KW_A> { p = nRDFtype ; } )
1323-
( o = DataValueTerm() )
1324-
( reifId = ReifierData() )?
1325-
{ reifId = insertTripleReifier(acc, reifId, s, p, o, tok.beginLine, tok.beginColumn) ; }
1326-
<GT2>
1327-
{ return reifId; }
1328-
}
13291326
Node TripleTerm() : { Node n = null ; Token openToken ; String iri ; Node s , p , o ; }
13301327
{
13311328
openToken = <L_TRIPLE>

Diff for: jena-arq/Grammar/main.jj

+10-16
Original file line numberDiff line numberDiff line change
@@ -1748,28 +1748,23 @@ Node VarOrTerm() : { Node n = null ; String iri ; }
17481748
Node ReifiedTriple(TripleCollector acc) : { Node reifId = null ; Token tok ; Node s; Node p ; Node o ; }
17491749
{
17501750
tok = <LT2>
1751-
s = VarOrTerm()
1751+
(
1752+
s = VarOrTerm()
1753+
|
1754+
s = ReifiedTriple(acc)
1755+
)
17521756
p = Verb()
1753-
o = VarOrTerm()
1757+
(
1758+
o = VarOrTerm()
1759+
|
1760+
o = ReifiedTriple(acc)
1761+
)
17541762
(reifId = Reifier())?
17551763
{ reifId = insertTripleReifier(acc, reifId, s, p, o, tok.beginLine, tok.beginColumn) ; }
17561764
<GT2>
17571765
{ return reifId; }
17581766
}
17591767

1760-
// No variables.
1761-
Node ReifiedTripleData(TripleCollector acc) : { Node reifId = null ; Token tok ; String iri ; Node s; Node p ; Node o ; }
1762-
{
1763-
tok = <LT2>
1764-
( s = DataValueTerm() )
1765-
( iri = iri() { p = createNode(iri) ; } | <KW_A> { p = nRDFtype ; } )
1766-
( o = DataValueTerm() )
1767-
( reifId = ReifierData() )?
1768-
{ reifId = insertTripleReifier(acc, reifId, s, p, o, tok.beginLine, tok.beginColumn) ; }
1769-
<GT2>
1770-
{ return reifId; }
1771-
}
1772-
17731768
Node TripleTerm() : { Node n = null ; Token openToken ; String iri ; Node s , p , o ; }
17741769
{
17751770
openToken = <L_TRIPLE>
@@ -1803,7 +1798,6 @@ Node DataValueTerm() : { Node n = null ; String iri ; Node s , p , o ; }
18031798
| n = NumericLiteral() { return n ; }
18041799
| n = BooleanLiteral() { return n ; }
18051800
| n = TripleTermData() { return n; }
1806-
//| n = ReifiedTripleData(acc) { return n; }
18071801
}
18081802

18091803
// e.g. Property (if no bNodes) + DESCRIBE

Diff for: jena-arq/Grammar/sparql_12.jj

+10-13
Original file line numberDiff line numberDiff line change
@@ -1109,25 +1109,22 @@ Node VarOrTerm() : { Node n = null ; String iri ; }
11091109
Node ReifiedTriple(TripleCollector acc) : { Node reifId = null ; Token tok ; Node s; Node p ; Node o ; }
11101110
{
11111111
tok = <LT2>
1112-
s = VarOrTerm()
1112+
(
1113+
s = VarOrTerm()
1114+
|
1115+
s = ReifiedTriple(acc)
1116+
)
11131117
p = Verb()
1114-
o = VarOrTerm()
1118+
(
1119+
o = VarOrTerm()
1120+
|
1121+
o = ReifiedTriple(acc)
1122+
)
11151123
(reifId = Reifier())?
11161124
{ reifId = insertTripleReifier(acc, reifId, s, p, o, tok.beginLine, tok.beginColumn) ; }
11171125
<GT2>
11181126
{ return reifId; }
11191127
}
1120-
Node ReifiedTripleData(TripleCollector acc) : { Node reifId = null ; Token tok ; String iri ; Node s; Node p ; Node o ; }
1121-
{
1122-
tok = <LT2>
1123-
( s = DataValueTerm() )
1124-
( iri = iri() { p = createNode(iri) ; } | <KW_A> { p = nRDFtype ; } )
1125-
( o = DataValueTerm() )
1126-
( reifId = ReifierData() )?
1127-
{ reifId = insertTripleReifier(acc, reifId, s, p, o, tok.beginLine, tok.beginColumn) ; }
1128-
<GT2>
1129-
{ return reifId; }
1130-
}
11311128
Node TripleTerm() : { Node n = null ; Token openToken ; String iri ; Node s , p , o ; }
11321129
{
11331130
openToken = <L_TRIPLE>

0 commit comments

Comments
 (0)