aboutsummaryrefslogtreecommitdiffstats
path: root/test/w3c/TurtleTests
diff options
context:
space:
mode:
Diffstat (limited to 'test/w3c/TurtleTests')
-rw-r--r--test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.nt3
-rw-r--r--test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.ttl1
-rw-r--r--test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.nt3
-rw-r--r--test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.ttl2
-rw-r--r--test/w3c/TurtleTests/manifest.ttl88
-rw-r--r--test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.nt5
-rw-r--r--test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.ttl3
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-01.nt1
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-01.ttl (renamed from test/w3c/TurtleTests/turtle-syntax-lists-01.ttl)0
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-02.nt7
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-02.ttl (renamed from test/w3c/TurtleTests/turtle-syntax-lists-02.ttl)0
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-03.nt5
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-03.ttl (renamed from test/w3c/TurtleTests/turtle-syntax-lists-03.ttl)0
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-04.nt5
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-04.ttl (renamed from test/w3c/TurtleTests/turtle-syntax-lists-04.ttl)0
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-05.nt19
-rw-r--r--test/w3c/TurtleTests/turtle-eval-lists-05.ttl (renamed from test/w3c/TurtleTests/turtle-syntax-lists-05.ttl)0
-rw-r--r--test/w3c/TurtleTests/turtle-syntax-bad-bnode-01.ttl1
-rw-r--r--test/w3c/TurtleTests/turtle-syntax-bad-bnode-02.ttl1
19 files changed, 123 insertions, 21 deletions
diff --git a/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.nt b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.nt
new file mode 100644
index 00000000..03618699
--- /dev/null
+++ b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.nt
@@ -0,0 +1,3 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://a.example/p2> <http://a.example/o> .
+_:b1 <http://a.example/p2> <http://a.example/o2> .
diff --git a/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.ttl b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.ttl
new file mode 100644
index 00000000..c5e224df
--- /dev/null
+++ b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> [ <http://a.example/p2> <http://a.example/o>,<http://a.example/o2> ] .
diff --git a/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.nt b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.nt
new file mode 100644
index 00000000..d67ef6ca
--- /dev/null
+++ b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.nt
@@ -0,0 +1,3 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://a.example/p2> <http://a.example/o> .
+<http://a.example/s> <http://a.example/p> <http://a.example/o2> .
diff --git a/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.ttl b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.ttl
new file mode 100644
index 00000000..884fac6c
--- /dev/null
+++ b/test/w3c/TurtleTests/blankNodePropertyList_as_object_containing_objectList_of_two_objects.ttl
@@ -0,0 +1,2 @@
+<http://a.example/s> <http://a.example/p> [ <http://a.example/p2> <http://a.example/o> ]
+ , <http://a.example/o2> .
diff --git a/test/w3c/TurtleTests/manifest.ttl b/test/w3c/TurtleTests/manifest.ttl
index 0a24655e..5a0183ab 100644
--- a/test/w3c/TurtleTests/manifest.ttl
+++ b/test/w3c/TurtleTests/manifest.ttl
@@ -16,7 +16,7 @@
@prefix rdft: <http://www.w3.org/ns/rdftest#> .
<> rdf:type mf:Manifest ;
- rdfs:comment "Turtle tests" ;
+ rdfs:label "Turtle tests" ;
mf:entries
(
@@ -59,6 +59,8 @@
<#sole_blankNodePropertyList>
<#blankNodePropertyList_as_subject>
<#blankNodePropertyList_as_object>
+ <#blankNodePropertyList_as_object_containing_objectList>
+ <#blankNodePropertyList_as_object_containing_objectList_of_two_objects>
<#blankNodePropertyList_with_multiple_triples>
<#nested_blankNodePropertyLists>
<#blankNodePropertyList_containing_collection>
@@ -115,6 +117,7 @@
<#lantag_with_subtag>
<#objectList_with_two_objects>
<#predicateObjectList_with_two_objectLists>
+ <#predicateObjectList_with_blankNodePropertyList_as_object>
<#repeated_semis_at_end>
<#repeated_semis_not_at_end>
@@ -201,11 +204,11 @@
<#turtle-syntax-struct-03>
<#turtle-syntax-struct-04>
<#turtle-syntax-struct-05>
- <#turtle-syntax-lists-01>
- <#turtle-syntax-lists-02>
- <#turtle-syntax-lists-03>
- <#turtle-syntax-lists-04>
- <#turtle-syntax-lists-05>
+ <#turtle-eval-lists-01>
+ <#turtle-eval-lists-02>
+ <#turtle-eval-lists-03>
+ <#turtle-eval-lists-04>
+ <#turtle-eval-lists-05>
<#turtle-syntax-bad-uri-01>
<#turtle-syntax-bad-uri-02>
<#turtle-syntax-bad-uri-03>
@@ -219,6 +222,8 @@
<#turtle-syntax-bad-base-01>
<#turtle-syntax-bad-base-02>
<#turtle-syntax-bad-base-03>
+ <#turtle-syntax-bad-bnode-01>
+ <#turtle-syntax-bad-bnode-02>
<#turtle-syntax-bad-struct-01>
<#turtle-syntax-bad-struct-02>
<#turtle-syntax-bad-struct-03>
@@ -630,6 +635,22 @@
mf:result <blankNodePropertyList_as_object.nt> ;
.
+<#blankNodePropertyList_as_object_containing_objectList> rdf:type rdft:TestTurtleEval ;
+ mf:name "blankNodePropertyList_as_object_containing_objectList" ;
+ rdfs:comment "blankNodePropertyList as object containing objectList <s> <p> [ <p2> <o>,<o2> ] ." ;
+ rdft:approval rdft:Approved ;
+ mf:action <blankNodePropertyList_as_object_containing_objectList.ttl> ;
+ mf:result <blankNodePropertyList_as_object_containing_objectList.nt> ;
+ .
+
+<#blankNodePropertyList_as_object_containing_objectList_of_two_objects> rdf:type rdft:TestTurtleEval ;
+ mf:name "blankNodePropertyList_as_object_containing_objectList_of_two_objects" ;
+ rdfs:comment "blankNodePropertyList as object containing objectList of two objects <s> <p> [ <p2 <o> ] , <o2> ." ;
+ rdft:approval rdft:Approved ;
+ mf:action <blankNodePropertyList_as_object_containing_objectList_of_two_objects.ttl> ;
+ mf:result <blankNodePropertyList_as_object_containing_objectList_of_two_objects.nt> ;
+ .
+
<#blankNodePropertyList_with_multiple_triples> rdf:type rdft:TestTurtleEval ;
mf:name "blankNodePropertyList_with_multiple_triples" ;
rdfs:comment "blankNodePropertyList with multiple triples [ <s> <p> ; <s2> <p2> ]" ;
@@ -1078,6 +1099,14 @@
mf:result <predicateObjectList_with_two_objectLists.nt> ;
.
+<#predicateObjectList_with_blankNodePropertyList_as_object> rdf:type rdft:TestTurtleEval ;
+ mf:name "predicateObjectList_with_blankNodePropertyList_as_object" ;
+ rdfs:comment "predicateObjectList_with_blankNodePropertyList_as_object <s> <p> [ <p2> <o> ] ; <p3> [ <p4> <o2> , <o3> ] " ;
+ rdft:approval rdft:Approved ;
+ mf:action <predicateObjectList_with_blankNodePropertyList_as_object.ttl> ;
+ mf:result <predicateObjectList_with_blankNodePropertyList_as_object.nt> ;
+ .
+
<#repeated_semis_at_end> rdf:type rdft:TestTurtleEval ;
mf:name "repeated_semis_at_end" ;
rdfs:comment "repeated semis at end <s> <p> <o> ;; <p2> <o2> ." ;
@@ -1571,39 +1600,44 @@
mf:action <turtle-syntax-struct-05.ttl> ;
.
-<#turtle-syntax-lists-01> rdf:type rdft:TestTurtlePositiveSyntax ;
- mf:name "turtle-syntax-lists-01" ;
+<#turtle-eval-lists-01> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-eval-lists-01" ;
rdfs:comment "empty list" ;
rdft:approval rdft:Approved ;
- mf:action <turtle-syntax-lists-01.ttl> ;
+ mf:action <turtle-eval-lists-01.ttl> ;
+ mf:result <turtle-eval-lists-01.nt> ;
.
-<#turtle-syntax-lists-02> rdf:type rdft:TestTurtlePositiveSyntax ;
- mf:name "turtle-syntax-lists-02" ;
+<#turtle-eval-lists-02> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-eval-lists-02" ;
rdfs:comment "mixed list" ;
rdft:approval rdft:Approved ;
- mf:action <turtle-syntax-lists-02.ttl> ;
+ mf:action <turtle-eval-lists-02.ttl> ;
+ mf:result <turtle-eval-lists-02.nt> ;
.
-<#turtle-syntax-lists-03> rdf:type rdft:TestTurtlePositiveSyntax ;
- mf:name "turtle-syntax-lists-03" ;
+<#turtle-eval-lists-03> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-eval-lists-03" ;
rdfs:comment "isomorphic list as subject and object" ;
rdft:approval rdft:Approved ;
- mf:action <turtle-syntax-lists-03.ttl> ;
+ mf:action <turtle-eval-lists-03.ttl> ;
+ mf:result <turtle-eval-lists-03.nt> ;
.
-<#turtle-syntax-lists-04> rdf:type rdft:TestTurtlePositiveSyntax ;
- mf:name "turtle-syntax-lists-04" ;
+<#turtle-eval-lists-04> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-eval-lists-04" ;
rdfs:comment "lists of lists" ;
rdft:approval rdft:Approved ;
- mf:action <turtle-syntax-lists-04.ttl> ;
+ mf:action <turtle-eval-lists-04.ttl> ;
+ mf:result <turtle-eval-lists-04.nt> ;
.
-<#turtle-syntax-lists-05> rdf:type rdft:TestTurtlePositiveSyntax ;
- mf:name "turtle-syntax-lists-05" ;
+<#turtle-eval-lists-05> rdf:type rdft:TestTurtleEval ;
+ mf:name "turtle-eval-lists-05" ;
rdfs:comment "mixed lists with embedded lists" ;
rdft:approval rdft:Approved ;
- mf:action <turtle-syntax-lists-05.ttl> ;
+ mf:action <turtle-eval-lists-05.ttl> ;
+ mf:result <turtle-eval-lists-05.nt> ;
.
<#turtle-syntax-bad-uri-01> rdf:type rdft:TestTurtleNegativeSyntax ;
@@ -1697,6 +1731,18 @@
mf:action <turtle-syntax-bad-base-03.ttl> ;
.
+<#turtle-syntax-bad-bnode-01> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "turtle-syntax-bad-bnode-01" ;
+ rdfs:comment "Colon in bnode label not allowed (negative test)" ;
+ mf:action <turtle-syntax-bad-bnode-01.ttl> ;
+ .
+
+<#turtle-syntax-bad-bnode-02> rdf:type rdft:TestNTriplesNegativeSyntax ;
+ mf:name "turtle-syntax-bad-bnode-02" ;
+ rdfs:comment "Colon in bnode label not allowed (negative test)" ;
+ mf:action <turtle-syntax-bad-bnode-02.ttl> ;
+ .
+
<#turtle-syntax-bad-struct-01> rdf:type rdft:TestTurtleNegativeSyntax ;
mf:name "turtle-syntax-bad-struct-01" ;
rdfs:comment "Turtle is not TriG (negative test)" ;
diff --git a/test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.nt b/test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.nt
new file mode 100644
index 00000000..4ae67584
--- /dev/null
+++ b/test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.nt
@@ -0,0 +1,5 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://a.example/p2> <http://a.example/o> .
+<http://a.example/s> <http://a.example/p3> _:b2 .
+_:b2 <http://a.example/p4> <http://a.example/o2> .
+_:b2 <http://a.example/p4> <http://a.example/o3> .
diff --git a/test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.ttl b/test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.ttl
new file mode 100644
index 00000000..88de7744
--- /dev/null
+++ b/test/w3c/TurtleTests/predicateObjectList_with_blankNodePropertyList_as_object.ttl
@@ -0,0 +1,3 @@
+<http://a.example/s> <http://a.example/p> [ <http://a.example/p2> <http://a.example/o> ]
+ ; <http://a.example/p3> [ <http://a.example/p4> <http://a.example/o2>
+ , <http://a.example/o3> ] .
diff --git a/test/w3c/TurtleTests/turtle-eval-lists-01.nt b/test/w3c/TurtleTests/turtle-eval-lists-01.nt
new file mode 100644
index 00000000..e4a87b2d
--- /dev/null
+++ b/test/w3c/TurtleTests/turtle-eval-lists-01.nt
@@ -0,0 +1 @@
+<http://www.w3.org/2013/TurtleTests/s> <http://www.w3.org/2013/TurtleTests/p> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/test/w3c/TurtleTests/turtle-syntax-lists-01.ttl b/test/w3c/TurtleTests/turtle-eval-lists-01.ttl
index c6ee0fbe..c6ee0fbe 100644
--- a/test/w3c/TurtleTests/turtle-syntax-lists-01.ttl
+++ b/test/w3c/TurtleTests/turtle-eval-lists-01.ttl
diff --git a/test/w3c/TurtleTests/turtle-eval-lists-02.nt b/test/w3c/TurtleTests/turtle-eval-lists-02.nt
new file mode 100644
index 00000000..f2d81d46
--- /dev/null
+++ b/test/w3c/TurtleTests/turtle-eval-lists-02.nt
@@ -0,0 +1,7 @@
+<http://www.w3.org/2013/TurtleTests/s> <http://www.w3.org/2013/TurtleTests/p> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2" .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/2013/TurtleTests/o> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/test/w3c/TurtleTests/turtle-syntax-lists-02.ttl b/test/w3c/TurtleTests/turtle-eval-lists-02.ttl
index 06a0cd1e..06a0cd1e 100644
--- a/test/w3c/TurtleTests/turtle-syntax-lists-02.ttl
+++ b/test/w3c/TurtleTests/turtle-eval-lists-02.ttl
diff --git a/test/w3c/TurtleTests/turtle-eval-lists-03.nt b/test/w3c/TurtleTests/turtle-eval-lists-03.nt
new file mode 100644
index 00000000..bac62c25
--- /dev/null
+++ b/test/w3c/TurtleTests/turtle-eval-lists-03.nt
@@ -0,0 +1,5 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://www.w3.org/2013/TurtleTests/p> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/test/w3c/TurtleTests/turtle-syntax-lists-03.ttl b/test/w3c/TurtleTests/turtle-eval-lists-03.ttl
index e71f0273..e71f0273 100644
--- a/test/w3c/TurtleTests/turtle-syntax-lists-03.ttl
+++ b/test/w3c/TurtleTests/turtle-eval-lists-03.ttl
diff --git a/test/w3c/TurtleTests/turtle-eval-lists-04.nt b/test/w3c/TurtleTests/turtle-eval-lists-04.nt
new file mode 100644
index 00000000..ba577791
--- /dev/null
+++ b/test/w3c/TurtleTests/turtle-eval-lists-04.nt
@@ -0,0 +1,5 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://www.w3.org/2013/TurtleTests/p> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/test/w3c/TurtleTests/turtle-syntax-lists-04.ttl b/test/w3c/TurtleTests/turtle-eval-lists-04.ttl
index a9885389..a9885389 100644
--- a/test/w3c/TurtleTests/turtle-syntax-lists-04.ttl
+++ b/test/w3c/TurtleTests/turtle-eval-lists-04.ttl
diff --git a/test/w3c/TurtleTests/turtle-eval-lists-05.nt b/test/w3c/TurtleTests/turtle-eval-lists-05.nt
new file mode 100644
index 00000000..79225c4a
--- /dev/null
+++ b/test/w3c/TurtleTests/turtle-eval-lists-05.nt
@@ -0,0 +1,19 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b4 .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b5 .
+_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://www.w3.org/2013/TurtleTests/p> _:b6 .
+_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b7 .
+_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
+_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b8 .
+_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
+_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b9 .
+_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/2013/TurtleTests/o> .
+_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/test/w3c/TurtleTests/turtle-syntax-lists-05.ttl b/test/w3c/TurtleTests/turtle-eval-lists-05.ttl
index 43e68a44..43e68a44 100644
--- a/test/w3c/TurtleTests/turtle-syntax-lists-05.ttl
+++ b/test/w3c/TurtleTests/turtle-eval-lists-05.ttl
diff --git a/test/w3c/TurtleTests/turtle-syntax-bad-bnode-01.ttl b/test/w3c/TurtleTests/turtle-syntax-bad-bnode-01.ttl
new file mode 100644
index 00000000..a776d20d
--- /dev/null
+++ b/test/w3c/TurtleTests/turtle-syntax-bad-bnode-01.ttl
@@ -0,0 +1 @@
+_::a <http://example/p> <http://example/o> .
diff --git a/test/w3c/TurtleTests/turtle-syntax-bad-bnode-02.ttl b/test/w3c/TurtleTests/turtle-syntax-bad-bnode-02.ttl
new file mode 100644
index 00000000..093b8700
--- /dev/null
+++ b/test/w3c/TurtleTests/turtle-syntax-bad-bnode-02.ttl
@@ -0,0 +1 @@
+_:abc:def <http://example/p> <http://example/o> .