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); }