[Mulgara-svn] r1841 - branches/distinct_queries/src/jar/content-n3/java/org/mulgara/content/n3
pag at mulgara.org
pag at mulgara.org
Fri Nov 13 19:26:42 UTC 2009
Author: pag
Date: 2009-11-13 11:26:41 -0800 (Fri, 13 Nov 2009)
New Revision: 1841
Modified:
branches/distinct_queries/src/jar/content-n3/java/org/mulgara/content/n3/Parser.java
Log:
Now expanding namespaces in datatypes
Modified: branches/distinct_queries/src/jar/content-n3/java/org/mulgara/content/n3/Parser.java
===================================================================
--- branches/distinct_queries/src/jar/content-n3/java/org/mulgara/content/n3/Parser.java 2009-11-13 19:25:26 UTC (rev 1840)
+++ branches/distinct_queries/src/jar/content-n3/java/org/mulgara/content/n3/Parser.java 2009-11-13 19:26:41 UTC (rev 1841)
@@ -70,6 +70,7 @@
import org.mulgara.util.TempDir;
/**
+ * nd
* <p>This class parses N3 data. It is implemented as a {@link Runnable} to allow it to be running in
* the background filling a queue, while a consumer thread drains the queue.</p>
*
@@ -545,7 +546,18 @@
// get the datatype details
AST dt = a.getFirstChild();
try {
- return dt == null ? null : new URI(dt.toString());
+ if (dt == null) return null;
+ String uri = dt.toString();
+ // check for QName
+ int colonIndex = uri.indexOf(':');
+ // relative URI, so just return
+ if (colonIndex == -1) return new URI(uri);
+
+ // look for possible prefix
+ String qnamePrefix = uri.substring(0, colonIndex + 1);
+ String uriPrefix = prefixMap.get(qnamePrefix);
+ // if known prefix, then use it, otherwise just return the string as a URI
+ return uriPrefix == null ? new URI(uri) : new URI(uriPrefix + uri.substring(colonIndex + 1));
} catch (URISyntaxException e) {
logger.warn("Error parsing N3 datatype: " + dt.toString(), e);
return null;
More information about the Mulgara-svn
mailing list