Example #1
0
        /// <inheritdoc />
        public async Task <IEnumerable <KeyValuePair <Iri, IEnumerable <Statement> > > > Read(StreamReader streamReader)
        {
            if (streamReader == null)
            {
                throw new ArgumentNullException(nameof(streamReader));
            }

            var statements = new TypePrioritizingStatementCollection();
            var blankNodes = new Dictionary <string, Iri>();

            using (var reader = XmlReader.Create(streamReader, new XmlReaderSettings()
            {
                Async = true
            }))
            {
                while (await reader.ReadAsync())
                {
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.LocalName == "Description") && (reader.NamespaceURI == rdf.ns))
                    {
                        await ReadResource(reader, statements, blankNodes);
                    }
                }
            }

            return(new[] { new KeyValuePair <Iri, IEnumerable <Statement> >(null, statements) });
        }
Example #2
0
 public void Setup()
 {
     Collection = new TypePrioritizingStatementCollection();
     Collection.Add(Predicate = new Statement(new Iri("subject"), new Iri("predicate"), new Iri("object")));
     Collection.Add(Typing    = new Statement(new Iri("subject"), rdf.type, new Iri("object")));
     Statements = new Statement[2];
 }
Example #3
0
        public Task <IEnumerable <KeyValuePair <Iri, IEnumerable <Statement> > > > Read(StreamReader streamReader)
        {
            if (streamReader == null)
            {
                throw new ArgumentNullException(nameof(streamReader));
            }

            var defaultGraph = new TypePrioritizingStatementCollection();
            var graphMap     = new Dictionary <Iri, IEnumerable <Statement> >();
            var dataset      = (RDFDataset)JsonLdProcessor.ToRDF(JSONUtils.FromReader(streamReader));

            foreach (var graphName in dataset.GraphNames())
            {
                var graphIri = (graphName == "@default" ? null : (graphName.StartsWith("_:") ? new Iri() : new Iri(graphName)));
                IEnumerable <Statement> statements;
                if (graphIri == null)
                {
                    statements = defaultGraph;
                }
                else if (!graphMap.TryGetValue(graphIri, out statements))
                {
                    graphMap[graphIri] = statements = new TypePrioritizingStatementCollection();
                }

                var statementsCollection = (ICollection <Statement>)statements;
                foreach (var quad in dataset.GetQuads(graphName))
                {
                    statementsCollection.Add(quad.AsStatement());
                }
            }

            return(Task.FromResult(new[] { new KeyValuePair <Iri, IEnumerable <Statement> >(null, defaultGraph) }.Concat(graphMap)));
        }