You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by ha...@apache.org on 2018/08/29 15:38:24 UTC

any23 git commit: use ical:calAddress instead of rdf:value for CAL-ADDRESS datatypes, as in fromIcal.py

Repository: any23
Updated Branches:
  refs/heads/master 9d8b1d1e8 -> 3e949f268


use ical:calAddress instead of rdf:value for CAL-ADDRESS datatypes, as in fromIcal.py


Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/3e949f26
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/3e949f26
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/3e949f26

Branch: refs/heads/master
Commit: 3e949f268b6d5e8bf33145da45649d7278d2927e
Parents: 9d8b1d1
Author: Hans <fi...@gmail.com>
Authored: Wed Aug 29 09:10:29 2018 -0500
Committer: Hans <fi...@gmail.com>
Committed: Wed Aug 29 10:25:56 2018 -0500

----------------------------------------------------------------------
 .../calendar/BaseCalendarExtractor.java         | 73 ++++++++++----------
 .../rfc7265-example2-expected.nquads            |  8 +--
 .../example2-bad-timezone-expected.nquads       |  5 +-
 .../example2-external-timezone-expected.nquads  |  5 +-
 .../rfc5545-example1-expected.nquads            |  3 +-
 .../rfc5545-example2-expected.nquads            |  5 +-
 .../rfc5545-example3-expected.nquads            |  5 +-
 .../rfc5545-example4-expected.nquads            |  5 +-
 .../rfc5545-example5-expected.nquads            |  3 +-
 .../rfc5545-example6-expected.nquads            | 18 ++---
 .../rfc6321-example2-expected.nquads            |  8 +--
 11 files changed, 63 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/core/src/main/java/org/apache/any23/extractor/calendar/BaseCalendarExtractor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/extractor/calendar/BaseCalendarExtractor.java b/core/src/main/java/org/apache/any23/extractor/calendar/BaseCalendarExtractor.java
index 32538da..7be350e 100644
--- a/core/src/main/java/org/apache/any23/extractor/calendar/BaseCalendarExtractor.java
+++ b/core/src/main/java/org/apache/any23/extractor/calendar/BaseCalendarExtractor.java
@@ -133,20 +133,26 @@ abstract class BaseCalendarExtractor implements Extractor.ContentExtractor {
 
 
     private static String localNameOfType(String typeName) {
-        if (typeName.isEmpty()) {
-            return "";
-        }
-        int ind = Character.charCount(typeName.codePointAt(0));
-        return typeName.substring(0, ind).toUpperCase(Locale.ENGLISH)
-                + typeName.substring(ind).toLowerCase(Locale.ENGLISH);
+        return camelCase(typeName, false);
     }
 
     private static String localNameOfProperty(String propertyName) {
-        String[] nameComponents = propertyName.split("-");
-        StringBuilder sb = new StringBuilder(propertyName.length());
-        sb.append(nameComponents[0].toLowerCase(Locale.ENGLISH));
-        for (int i = 1, len = nameComponents.length; i < len; i++) {
-            sb.append(localNameOfType(nameComponents[i]));
+        return camelCase(propertyName, true);
+    }
+
+    private static String camelCase(String name, boolean forProperty) {
+        String[] nameComponents = name.toLowerCase(Locale.ENGLISH).split("-");
+        StringBuilder sb = new StringBuilder(name.length());
+        int i = 0;
+        if (forProperty) {
+            sb.append(nameComponents[i++]);
+        }
+        for (int len = nameComponents.length; i < len; i++) {
+            String n = nameComponents[i];
+            if (!n.isEmpty()) {
+                int ind = Character.charCount(n.codePointAt(0));
+                sb.append(n.substring(0, ind).toUpperCase(Locale.ENGLISH)).append(n.substring(ind));
+            }
         }
         return sb.toString();
     }
@@ -190,6 +196,13 @@ abstract class BaseCalendarExtractor implements Extractor.ContentExtractor {
         return d == null ? NaN : d.toString();
     }
 
+    private static BNode writeParams(BNode subject, IRI predicate, ICalParameters params, ExtractionResult result) {
+        BNode bNode = f.createBNode();
+        result.writeTriple(subject, predicate, bNode);
+        writeParams(bNode, params, result);
+        return bNode;
+    }
+
     private static void writeParams(BNode subject, ICalParameters params, ExtractionResult result) {
         for (Map.Entry<String, List<String>> entry : params.getMap().entrySet()) {
             List<String> strings = entry.getValue();
@@ -322,25 +335,17 @@ abstract class BaseCalendarExtractor implements Extractor.ContentExtractor {
                     }
                 } else if (vICAL.Value_PERIOD.equals(dataType)) {
                     String[] strs = str.split("/");
-                    if (strs.length != 2) {
-                        v = f.createLiteral(str);
-                    } else {
-                        BNode bNode = f.createBNode();
-                        result.writeTriple(subject, predicate, bNode);
-                        result.writeTriple(bNode, RDF.TYPE, dataType);
-
-                        String start = normalizeAndReportIfInvalid(strs[0], XMLSchema.DATETIME, zone, result);
-                        result.writeTriple(bNode, vICAL.dtstart, f.createLiteral(start, XMLSchema.DATETIME));
-                        String str1 = strs[1];
-                        if (str1.indexOf('P') != -1) { //duration
-                            String duration = normalizeAndReportIfInvalid(str1, XMLSchema.DURATION, zone, result);
-                            result.writeTriple(bNode, vICAL.duration, f.createLiteral(duration, XMLSchema.DURATION));
+                    if (strs.length == 2) {
+                        String firstPart = normalizeAndReportIfInvalid(strs[0], XMLSchema.DATETIME, zone, result);
+                        String secondPart = strs[1];
+                        if (secondPart.indexOf('P') != -1) { //duration
+                            secondPart = normalizeAndReportIfInvalid(secondPart, XMLSchema.DURATION, zone, result);
                         } else {
-                            String end = normalizeAndReportIfInvalid(str1, XMLSchema.DATETIME, zone, result);
-                            result.writeTriple(bNode, vICAL.dtend, f.createLiteral(end, XMLSchema.DATETIME));
+                            secondPart = normalizeAndReportIfInvalid(secondPart, XMLSchema.DATETIME, zone, result);
                         }
-                        return true;
+                        str = firstPart + "/" + secondPart;
                     }
+                    v = f.createLiteral(str);
                 } else if (dataType != null) {
                     v = f.createLiteral(str, dataType);
                 } else {
@@ -370,9 +375,6 @@ abstract class BaseCalendarExtractor implements Extractor.ContentExtractor {
         if (object != null) {
             BNode bNode = f.createBNode();
             result.writeTriple(subject, predicate, bNode);
-            if (dataType != null && ICAL.NS.equals(dataType.getNamespace())) {
-                result.writeTriple(bNode, RDF.TYPE, dataType);
-            }
             for (Map.Entry<String, JsonValue> entry : object.entrySet()) {
                 writeValue(bNode, predicate(entry.getKey(), result), entry.getValue(), lang, XMLSchema.STRING, zone, result);
             }
@@ -448,12 +450,11 @@ abstract class BaseCalendarExtractor implements Extractor.ContentExtractor {
 
             IRI predicate = predicate(scribe.getPropertyName(version), result);
 
-            if (!params.isEmpty()) {
-                BNode bNode = f.createBNode();
-                result.writeTriple(subject, predicate, bNode);
-                writeParams(bNode, params, result);
-
-                subject = bNode;
+            if (ICalDataType.CAL_ADDRESS.equals(dataType)) {
+                subject = writeParams(subject, predicate, params, result);
+                predicate = vICAL.calAddress;
+            } else if (!params.isEmpty()) {
+                subject = writeParams(subject, predicate, params, result);
                 predicate = RDF.VALUE;
             }
 

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.json/rfc7265-example2-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.json/rfc7265-example2-expected.nquads b/test-resources/src/test/resources/calendar.json/rfc7265-example2-expected.nquads
index 11ce490..12d26bb 100644
--- a/test-resources/src/test/resources/calendar.json/rfc7265-example2-expected.nquads
+++ b/test-resources/src/test/resources/calendar.json/rfc7265-example2-expected.nquads
@@ -24,7 +24,6 @@ _:node1clu415j2x3 <http://www.w3.org/2002/12/cal/icaltzd#lastModified> "2004-01-
 _:node1clu415j2x3 <http://www.w3.org/2002/12/cal/icaltzd#daylight> _:node1clu415j2x4 <http://bob.example.com/> .
 _:node1clu415j2x4 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "2000-04-04T02:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu415j2x4 <http://www.w3.org/2002/12/cal/icaltzd#rrule> _:node1clu415j2x5 <http://bob.example.com/> .
-_:node1clu415j2x5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_RECUR> <http://bob.example.com/> .
 _:node1clu415j2x5 <http://www.w3.org/2002/12/cal/icaltzd#freq> "YEARLY" <http://bob.example.com/> .
 _:node1clu415j2x5 <http://www.w3.org/2002/12/cal/icaltzd#byday> "1SU" <http://bob.example.com/> .
 _:node1clu415j2x5 <http://www.w3.org/2002/12/cal/icaltzd#bymonth> "4"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
@@ -34,7 +33,6 @@ _:node1clu415j2x4 <http://www.w3.org/2002/12/cal/icaltzd#tzoffsetto> "-04:00" <h
 _:node1clu415j2x3 <http://www.w3.org/2002/12/cal/icaltzd#standard> _:node1clu415j2x6 <http://bob.example.com/> .
 _:node1clu415j2x6 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "2000-10-26T02:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu415j2x6 <http://www.w3.org/2002/12/cal/icaltzd#rrule> _:node1clu415j2x7 <http://bob.example.com/> .
-_:node1clu415j2x7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_RECUR> <http://bob.example.com/> .
 _:node1clu415j2x7 <http://www.w3.org/2002/12/cal/icaltzd#freq> "YEARLY" <http://bob.example.com/> .
 _:node1clu415j2x7 <http://www.w3.org/2002/12/cal/icaltzd#byday> "1SU" <http://bob.example.com/> .
 _:node1clu415j2x7 <http://www.w3.org/2002/12/cal/icaltzd#bymonth> "10"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
@@ -49,15 +47,11 @@ _:node1clu415j2x9 <http://www.w3.org/2002/12/cal/icaltzd#tzid> "US/Eastern" <htt
 _:node1clu415j2x9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "2006-01-02T12:00:00-05:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu415j2x8 <http://www.w3.org/2002/12/cal/icaltzd#duration> "PT1H"^^<http://www.w3.org/2001/XMLSchema#duration> <http://bob.example.com/> .
 _:node1clu415j2x8 <http://www.w3.org/2002/12/cal/icaltzd#rrule> _:node1clu415j2x10 <http://bob.example.com/> .
-_:node1clu415j2x10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_RECUR> <http://bob.example.com/> .
 _:node1clu415j2x10 <http://www.w3.org/2002/12/cal/icaltzd#freq> "DAILY" <http://bob.example.com/> .
 _:node1clu415j2x10 <http://www.w3.org/2002/12/cal/icaltzd#count> "5"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
 _:node1clu415j2x8 <http://www.w3.org/2002/12/cal/icaltzd#rdate> _:node1clu415j2x11 <http://bob.example.com/> .
 _:node1clu415j2x11 <http://www.w3.org/2002/12/cal/icaltzd#tzid> "US/Eastern" <http://bob.example.com/> .
-_:node1clu415j2x11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> _:node1clu415j2x12 <http://bob.example.com/> .
-_:node1clu415j2x12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_PERIOD> <http://bob.example.com/> .
-_:node1clu415j2x12 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "2006-01-02T15:00:00-05:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu415j2x12 <http://www.w3.org/2002/12/cal/icaltzd#duration> "PT2H"^^<http://www.w3.org/2001/XMLSchema#duration> <http://bob.example.com/> .
+_:node1clu415j2x11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "2006-01-02T15:00:00-05:00/PT2H" <http://bob.example.com/> .
 _:node1clu415j2x8 <http://www.w3.org/2002/12/cal/icaltzd#summary> "Event #2" <http://bob.example.com/> .
 _:node1clu415j2x8 <http://www.w3.org/2002/12/cal/icaltzd#description> "We are having a meeting all this week at 12 pm for one hour, with an additional meeting on the first day 2 hours long.\nPlease bring your own lunch for the 12 pm meetings." <http://bob.example.com/> .
 _:node1clu415j2x8 <http://www.w3.org/2002/12/cal/icaltzd#uid> "00959BC664CA650E933C892C@example.com" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/example2-bad-timezone-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/example2-bad-timezone-expected.nquads b/test-resources/src/test/resources/calendar.text/example2-bad-timezone-expected.nquads
index e55ed53..b9b5d73 100644
--- a/test-resources/src/test/resources/calendar.text/example2-bad-timezone-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/example2-bad-timezone-expected.nquads
@@ -34,12 +34,13 @@ _:node1clu1u3ipx2 <http://www.w3.org/2002/12/cal/icaltzd#component> _:node1clu1u
 _:node1clu1u3ipx6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Vevent> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#dtstamp> "1998-03-09T23:10:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#uid> "guid-1.example.com" <http://bob.example.com/> .
-_:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu1u3ipx1 <http://bob.example.com/> .
+_:node1clu1u3ipx1 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#attendee> _:node1clu1u3ipx7 <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#cutype> "GROUP" <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#rsvp> "TRUE" <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#role> "REQ-PARTICIPANT" <http://bob.example.com/> .
-_:node1clu1u3ipx7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#description> "Project XYZ Review Meeting" <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#categories> "MEETING" <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#class> "PUBLIC" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/example2-external-timezone-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/example2-external-timezone-expected.nquads b/test-resources/src/test/resources/calendar.text/example2-external-timezone-expected.nquads
index dee2e4b..03aa3ff 100644
--- a/test-resources/src/test/resources/calendar.text/example2-external-timezone-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/example2-external-timezone-expected.nquads
@@ -34,12 +34,13 @@ _:node1clu1u3ipx2 <http://www.w3.org/2002/12/cal/icaltzd#component> _:node1clu1u
 _:node1clu1u3ipx6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Vevent> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#dtstamp> "1998-03-09T23:10:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#uid> "guid-1.example.com" <http://bob.example.com/> .
-_:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu1u3ipx1 <http://bob.example.com/> .
+_:node1clu1u3ipx1 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#attendee> _:node1clu1u3ipx7 <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#cutype> "GROUP" <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#rsvp> "TRUE" <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#role> "REQ-PARTICIPANT" <http://bob.example.com/> .
-_:node1clu1u3ipx7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#description> "Project XYZ Review Meeting" <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#categories> "MEETING" <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#class> "PUBLIC" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/rfc5545-example1-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/rfc5545-example1-expected.nquads b/test-resources/src/test/resources/calendar.text/rfc5545-example1-expected.nquads
index c043a1c..2070a2e 100644
--- a/test-resources/src/test/resources/calendar.text/rfc5545-example1-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/rfc5545-example1-expected.nquads
@@ -21,7 +21,8 @@ _:node1clu1knnlx2 <http://www.w3.org/2002/12/cal/icaltzd#component> _:node1clu1k
 _:node1clu1knnlx3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Vevent> <http://bob.example.com/> .
 _:node1clu1knnlx3 <http://www.w3.org/2002/12/cal/icaltzd#dtstamp> "1996-07-04T12:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu1knnlx3 <http://www.w3.org/2002/12/cal/icaltzd#uid> "uid1@example.com" <http://bob.example.com/> .
-_:node1clu1knnlx3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu1knnlx3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu1knnlx4 <http://bob.example.com/> .
+_:node1clu1knnlx4 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu1knnlx3 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "1996-09-18T14:30:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu1knnlx3 <http://www.w3.org/2002/12/cal/icaltzd#dtend> "1996-09-20T22:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu1knnlx3 <http://www.w3.org/2002/12/cal/icaltzd#status> "CONFIRMED" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/rfc5545-example2-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/rfc5545-example2-expected.nquads b/test-resources/src/test/resources/calendar.text/rfc5545-example2-expected.nquads
index 89f06e8..389f86c 100644
--- a/test-resources/src/test/resources/calendar.text/rfc5545-example2-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/rfc5545-example2-expected.nquads
@@ -34,12 +34,13 @@ _:node1clu1u3ipx2 <http://www.w3.org/2002/12/cal/icaltzd#component> _:node1clu1u
 _:node1clu1u3ipx6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Vevent> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#dtstamp> "1998-03-09T23:10:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#uid> "guid-1.example.com" <http://bob.example.com/> .
-_:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu1u3ipx1 <http://bob.example.com/> .
+_:node1clu1u3ipx1 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#attendee> _:node1clu1u3ipx7 <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#cutype> "GROUP" <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#rsvp> "TRUE" <http://bob.example.com/> .
 _:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#role> "REQ-PARTICIPANT" <http://bob.example.com/> .
-_:node1clu1u3ipx7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu1u3ipx7 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#description> "Project XYZ Review Meeting" <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#categories> "MEETING" <http://bob.example.com/> .
 _:node1clu1u3ipx6 <http://www.w3.org/2002/12/cal/icaltzd#class> "PUBLIC" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/rfc5545-example3-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/rfc5545-example3-expected.nquads b/test-resources/src/test/resources/calendar.text/rfc5545-example3-expected.nquads
index 9d48895..1f0b164 100644
--- a/test-resources/src/test/resources/calendar.text/rfc5545-example3-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/rfc5545-example3-expected.nquads
@@ -23,10 +23,11 @@ _:node1clu24refx3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.
 _:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#dtstamp> "1997-03-24T12:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#sequence> "0"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
 _:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#uid> "uid3@example.com" <http://bob.example.com/> .
-_:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu24refx6 <http://bob.example.com/> .
+_:node1clu24refx6 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#attendee> _:node1clu24refx4 <http://bob.example.com/> .
 _:node1clu24refx4 <http://www.w3.org/2002/12/cal/icaltzd#rsvp> "TRUE" <http://bob.example.com/> .
-_:node1clu24refx4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu24refx4 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "1997-03-24T12:30:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#dtend> "1997-03-24T21:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu24refx3 <http://www.w3.org/2002/12/cal/icaltzd#categories> "MEETING" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/rfc5545-example4-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/rfc5545-example4-expected.nquads b/test-resources/src/test/resources/calendar.text/rfc5545-example4-expected.nquads
index 7b34215..351a6b3 100644
--- a/test-resources/src/test/resources/calendar.text/rfc5545-example4-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/rfc5545-example4-expected.nquads
@@ -22,10 +22,11 @@ _:node1clu27ji5x3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.
 _:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#dtstamp> "1998-01-30T13:45:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#sequence> "2"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
 _:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#uid> "uid4@example.com" <http://bob.example.com/> .
-_:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu27ji5x7 <http://bob.example.com/> .
+_:node1clu27ji5x7 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#attendee> _:node1clu27ji5x4 <http://bob.example.com/> .
 _:node1clu27ji5x4 <http://www.w3.org/2002/12/cal/icaltzd#partstat> "ACCEPTED" <http://bob.example.com/> .
-_:node1clu27ji5x4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu27ji5x4 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#due> "1998-04-15T00:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#status> "NEEDS-ACTION" <http://bob.example.com/> .
 _:node1clu27ji5x3 <http://www.w3.org/2002/12/cal/icaltzd#summary> "Submit Income Taxes" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/rfc5545-example5-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/rfc5545-example5-expected.nquads b/test-resources/src/test/resources/calendar.text/rfc5545-example5-expected.nquads
index 1fb93ed..156585f 100644
--- a/test-resources/src/test/resources/calendar.text/rfc5545-example5-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/rfc5545-example5-expected.nquads
@@ -21,7 +21,8 @@ _:node1clu28m86x2 <http://www.w3.org/2002/12/cal/icaltzd#component> _:node1clu28
 _:node1clu28m86x3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Vjournal> <http://bob.example.com/> .
 _:node1clu28m86x3 <http://www.w3.org/2002/12/cal/icaltzd#dtstamp> "1997-03-24T12:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu28m86x3 <http://www.w3.org/2002/12/cal/icaltzd#uid> "uid5@example.com" <http://bob.example.com/> .
-_:node1clu28m86x3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu28m86x3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu28m86x4 <http://bob.example.com/> .
+_:node1clu28m86x4 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu28m86x3 <http://www.w3.org/2002/12/cal/icaltzd#status> "DRAFT" <http://bob.example.com/> .
 _:node1clu28m86x3 <http://www.w3.org/2002/12/cal/icaltzd#class> "PUBLIC" <http://bob.example.com/> .
 _:node1clu28m86x3 <http://www.w3.org/2002/12/cal/icaltzd#categories> "Project Report" <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.text/rfc5545-example6-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.text/rfc5545-example6-expected.nquads b/test-resources/src/test/resources/calendar.text/rfc5545-example6-expected.nquads
index 0425e4b..c3eebd7 100644
--- a/test-resources/src/test/resources/calendar.text/rfc5545-example6-expected.nquads
+++ b/test-resources/src/test/resources/calendar.text/rfc5545-example6-expected.nquads
@@ -19,19 +19,11 @@ _:node1clu29scrx2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.
 _:node1clu29scrx2 <http://www.w3.org/2002/12/cal/icaltzd#prodid> "-//RDU Software//NONSGML HandCal//EN" <http://bob.example.com/> .
 _:node1clu29scrx2 <http://www.w3.org/2002/12/cal/icaltzd#component> _:node1clu29scrx3 <http://bob.example.com/> .
 _:node1clu29scrx3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Vfreebusy> <http://bob.example.com/> .
-_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> <ma...@example.com> <http://bob.example.com/> .
+_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#organizer> _:node1clu29scrx7 <http://bob.example.com/> .
+_:node1clu29scrx7 <http://www.w3.org/2002/12/cal/icaltzd#calAddress> <ma...@example.com> <http://bob.example.com/> .
 _:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "1998-03-13T14:17:11Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#dtend> "1998-04-10T14:17:11Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#freebusy> _:node1clu29scrx4 <http://bob.example.com/> .
-_:node1clu29scrx4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_PERIOD> <http://bob.example.com/> .
-_:node1clu29scrx4 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "1998-03-14T23:30:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu29scrx4 <http://www.w3.org/2002/12/cal/icaltzd#dtend> "1998-03-15T00:30:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#freebusy> _:node1clu29scrx5 <http://bob.example.com/> .
-_:node1clu29scrx5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_PERIOD> <http://bob.example.com/> .
-_:node1clu29scrx5 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "1998-03-16T15:30:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu29scrx5 <http://www.w3.org/2002/12/cal/icaltzd#dtend> "1998-03-16T16:30:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#freebusy> _:node1clu29scrx6 <http://bob.example.com/> .
-_:node1clu29scrx6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_PERIOD> <http://bob.example.com/> .
-_:node1clu29scrx6 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "1998-03-18T03:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu29scrx6 <http://www.w3.org/2002/12/cal/icaltzd#dtend> "1998-03-18T04:00:00Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
+_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#freebusy> "1998-03-14T23:30:00Z/1998-03-15T00:30:00Z" <http://bob.example.com/> .
+_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#freebusy> "1998-03-16T15:30:00Z/1998-03-16T16:30:00Z" <http://bob.example.com/> .
+_:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#freebusy> "1998-03-18T03:00:00Z/1998-03-18T04:00:00Z" <http://bob.example.com/> .
 _:node1clu29scrx3 <http://www.w3.org/2002/12/cal/icaltzd#url> <http://www.example.com/calendar/busytime/jsmith.ifb> <http://bob.example.com/> .

http://git-wip-us.apache.org/repos/asf/any23/blob/3e949f26/test-resources/src/test/resources/calendar.xml/rfc6321-example2-expected.nquads
----------------------------------------------------------------------
diff --git a/test-resources/src/test/resources/calendar.xml/rfc6321-example2-expected.nquads b/test-resources/src/test/resources/calendar.xml/rfc6321-example2-expected.nquads
index 70ebe15..b89c659 100644
--- a/test-resources/src/test/resources/calendar.xml/rfc6321-example2-expected.nquads
+++ b/test-resources/src/test/resources/calendar.xml/rfc6321-example2-expected.nquads
@@ -24,7 +24,6 @@ _:node1clu4e12ox3 <http://www.w3.org/2002/12/cal/icaltzd#tzid> "US/Eastern" <htt
 _:node1clu4e12ox3 <http://www.w3.org/2002/12/cal/icaltzd#daylight> _:node1clu4e12ox4 <http://bob.example.com/> .
 _:node1clu4e12ox4 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "2000-04-04T02:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu4e12ox4 <http://www.w3.org/2002/12/cal/icaltzd#rrule> _:node1clu4e12ox5 <http://bob.example.com/> .
-_:node1clu4e12ox5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_RECUR> <http://bob.example.com/> .
 _:node1clu4e12ox5 <http://www.w3.org/2002/12/cal/icaltzd#freq> "YEARLY" <http://bob.example.com/> .
 _:node1clu4e12ox5 <http://www.w3.org/2002/12/cal/icaltzd#byday> "1SU" <http://bob.example.com/> .
 _:node1clu4e12ox5 <http://www.w3.org/2002/12/cal/icaltzd#bymonth> "4"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
@@ -34,7 +33,6 @@ _:node1clu4e12ox4 <http://www.w3.org/2002/12/cal/icaltzd#tzoffsetto> "-04:00" <h
 _:node1clu4e12ox3 <http://www.w3.org/2002/12/cal/icaltzd#standard> _:node1clu4e12ox6 <http://bob.example.com/> .
 _:node1clu4e12ox6 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "2000-10-26T02:00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu4e12ox6 <http://www.w3.org/2002/12/cal/icaltzd#rrule> _:node1clu4e12ox7 <http://bob.example.com/> .
-_:node1clu4e12ox7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_RECUR> <http://bob.example.com/> .
 _:node1clu4e12ox7 <http://www.w3.org/2002/12/cal/icaltzd#freq> "YEARLY" <http://bob.example.com/> .
 _:node1clu4e12ox7 <http://www.w3.org/2002/12/cal/icaltzd#byday> "-1SU" <http://bob.example.com/> .
 _:node1clu4e12ox7 <http://www.w3.org/2002/12/cal/icaltzd#bymonth> "10"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
@@ -49,15 +47,11 @@ _:node1clu4e12ox9 <http://www.w3.org/2002/12/cal/icaltzd#tzid> "US/Eastern" <htt
 _:node1clu4e12ox9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "2006-01-02T12:00:00-05:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
 _:node1clu4e12ox8 <http://www.w3.org/2002/12/cal/icaltzd#duration> "PT1H"^^<http://www.w3.org/2001/XMLSchema#duration> <http://bob.example.com/> .
 _:node1clu4e12ox8 <http://www.w3.org/2002/12/cal/icaltzd#rrule> _:node1clu4e12ox10 <http://bob.example.com/> .
-_:node1clu4e12ox10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_RECUR> <http://bob.example.com/> .
 _:node1clu4e12ox10 <http://www.w3.org/2002/12/cal/icaltzd#freq> "DAILY" <http://bob.example.com/> .
 _:node1clu4e12ox10 <http://www.w3.org/2002/12/cal/icaltzd#count> "5"^^<http://www.w3.org/2001/XMLSchema#int> <http://bob.example.com/> .
 _:node1clu4e12ox8 <http://www.w3.org/2002/12/cal/icaltzd#rdate> _:node1clu4e12ox11 <http://bob.example.com/> .
 _:node1clu4e12ox11 <http://www.w3.org/2002/12/cal/icaltzd#tzid> "US/Eastern" <http://bob.example.com/> .
-_:node1clu4e12ox11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> _:node1clu4e12ox12 <http://bob.example.com/> .
-_:node1clu4e12ox12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/12/cal/icaltzd#Value_PERIOD> <http://bob.example.com/> .
-_:node1clu4e12ox12 <http://www.w3.org/2002/12/cal/icaltzd#dtstart> "2006-01-02T15:00:00-05:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> <http://bob.example.com/> .
-_:node1clu4e12ox12 <http://www.w3.org/2002/12/cal/icaltzd#duration> "PT2H"^^<http://www.w3.org/2001/XMLSchema#duration> <http://bob.example.com/> .
+_:node1clu4e12ox11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> "2006-01-02T15:00:00-05:00/PT2H" <http://bob.example.com/> .
 _:node1clu4e12ox8 <http://www.w3.org/2002/12/cal/icaltzd#summary> "Event #2" <http://bob.example.com/> .
 _:node1clu4e12ox8 <http://www.w3.org/2002/12/cal/icaltzd#description> "We are having a meeting all this week at 12pm for one hour, with an additional meeting on the first day 2 hours long.\nPlease bring your own lunch for the 12 pm meetings." <http://bob.example.com/> .
 _:node1clu4e12ox8 <http://www.w3.org/2002/12/cal/icaltzd#uid> "00959BC664CA650E933C892C@example.com" <http://bob.example.com/> .