private Node WrapNode(VDS.RDF.INode node)
        {
            var literal = node as ILiteralNode;

            if (literal != null)
            {
                if (literal.DataType != null)
                {
                    return(Node.ForLiteral(literal.Value, literal.DataType));
                }

                if (literal.Language != null)
                {
                    return(Node.ForLiteral(literal.Value, literal.Language));
                }

                return(Node.ForLiteral(literal.Value));
            }

            var uriNode = node as IUriNode;

            if (uriNode != null)
            {
                return(Node.ForUri(uriNode.Uri));
            }

            var blankNode = node as IBlankNode;

            if (blankNode != null)
            {
                return(Node.ForBlank(blankNode.InternalID, null, null));
            }

            throw new ArgumentException("The node was neither URI, literal nor blank", "node");
        }
        private static Node ToNode(this VDS.RDF.INode node, EntityId id)
        {
            if (node is IUriNode)
            {
                return(Node.ForUri(((IUriNode)node).Uri));
            }

            if (node is IBlankNode)
            {
                return(Node.ForBlank(((IBlankNode)node).InternalID, id, node.GraphUri));
            }

            var literal = (ILiteralNode)node;

            if (literal.DataType != null)
            {
                return(Node.ForLiteral(literal.Value, literal.DataType));
            }

            if (literal.Language != null)
            {
                return(Node.ForLiteral(literal.Value, literal.Language));
            }

            return(Node.ForLiteral(literal.Value));
        }
示例#3
0
        /// <summary>Converts a dotNetRDF's <see cref="VDS.RDF.INode"/> into RomanticWeb's <see cref="Node"/>.</summary>
        public static Node WrapNode(this VDS.RDF.INode node, EntityId entityId)
        {
            var literal = node as ILiteralNode;

            if (literal != null)
            {
                if (literal.DataType != null)
                {
                    return(Node.ForLiteral(literal.Value, literal.DataType));
                }

                if (literal.Language != null)
                {
                    return(Node.ForLiteral(literal.Value, literal.Language));
                }

                return(Node.ForLiteral(literal.Value));
            }

            var uriNode = node as IUriNode;

            if (uriNode != null)
            {
                return(Node.ForUri(uriNode.Uri));
            }

            var blankNode = node as IBlankNode;

            if (blankNode != null)
            {
                return(Node.ForBlank(blankNode.InternalID, entityId, blankNode.GraphUri));
            }

            throw new ArgumentException("The node was neither URI, literal nor blank", "node");
        }