public SparqlResponseProperty GetNodeValuesFromSparqlResult(SparqlResult sparqlResult, string value)
        {
            INode node;
            var   data = new SparqlResponseProperty();

            if (sparqlResult.TryGetValue(value, out node))
            {
                if (node != null)
                {
                    data.Type = node.NodeType.ToString().ToLower();
                    switch (node.NodeType)
                    {
                    case NodeType.Uri:
                        data.Value = ((IUriNode)node).Uri.AbsoluteUri;
                        break;

                    case NodeType.Blank:
                        data.Value = ((IBlankNode)node).InternalID;
                        break;

                    case NodeType.Literal:
                        //You may want to inspect the DataType and Language properties and generate
                        //a different string here
                        data.Value    = ((ILiteralNode)node).Value;
                        data.DataType = ((ILiteralNode)node).DataType?.OriginalString;
                        break;

                    default:
                        throw new RdfOutputException("Unexpected Node Type");
                    }
                }
            }
            return(data);
        }
        public static SparqlResponseProperty GetNodeValuesFromSparqlResult(this SparqlResult sparqlResult, string value)
        {
            INode node;
            var   data = new SparqlResponseProperty();

            if (sparqlResult.TryGetValue(value, out node))
            {
                if (node != null)
                {
                    data.Type = node.NodeType.ToString().ToLower();

                    switch (node.NodeType)
                    {
                    case NodeType.Uri:
                        data.Type  = Shacl.NodeKinds.IRI;
                        data.Value = ((IUriNode)node).Uri.AbsoluteUri;
                        break;

                    case NodeType.Blank:
                        data.Type  = Shacl.NodeKinds.BlankNode;
                        data.Value = ((IBlankNode)node).InternalID;
                        break;

                    case NodeType.Literal:
                        //You may want to inspect the DataType and Language properties and generate
                        //a different string here
                        data.Type     = Shacl.NodeKinds.Literal;
                        data.DataType = ((ILiteralNode)node).DataType?.OriginalString;
                        data.Value    = ((ILiteralNode)node).Value;
                        data.Language = ((ILiteralNode)node).Language;
                        break;

                    default:
#pragma warning disable CA1303 // Do not pass literals as localized parameters
                        throw new RdfOutputException("Unexpected Node Type");
#pragma warning restore CA1303 // Do not pass literals as localized parameters
                    }
                }
            }
            return(data);
        }