Exemple #1
0
        private string?ConstructInsertResourceQueryString(ResourceVm resourceVm, string resourceAbsoluteUri)
        {
            SparqlParameterizedString sparqlParameterizedInsertQuery = new();

            sparqlParameterizedInsertQuery.CommandText = "INSERT DATA {@sub @pred @obj";
            string?insertQuery = null;

            sparqlParameterizedInsertQuery.SetUri("sub", new Uri(resourceAbsoluteUri));
            SparqlParameterizedString sparqlParameterizedInsertSubQuery = new();

            sparqlParameterizedInsertSubQuery.CommandText = "; @pred @obj";
            foreach (var propertyName in resourceVm.Predicates.Keys)
            {
                if (_namespaceFactoryService.GetAbsoluteUriFromQname(propertyName, out string predAbsoluteUri))
                {
                    PredicateContent propertyContent = resourceVm.Predicates[propertyName];
                    insertQuery += PopulateInsertQueryString(propertyContent,
                                                             sparqlParameterizedInsertQuery, sparqlParameterizedInsertSubQuery,
                                                             resourceAbsoluteUri, predAbsoluteUri);
                    if (string.IsNullOrEmpty(insertQuery))
                    {
                        return(null);
                    }
                    insertQuery += "} ";
                }
                else
                {
                    return(null);
                }
            }

            return(insertQuery);
        }
Exemple #2
0
        private string?PopulateInsertQueryString(PredicateContent propertyContent,
                                                 SparqlParameterizedString sparqlParameterizedInsertQuery,
                                                 SparqlParameterizedString sparqlParameterizedInsertSubQuery,
                                                 string resourceAbsoluteUri, string predicateAbsoluteUri)
        {
            sparqlParameterizedInsertQuery.SetUri("sub", new Uri(resourceAbsoluteUri));
            sparqlParameterizedInsertQuery.SetUri("pred", new Uri(predicateAbsoluteUri));
            sparqlParameterizedInsertSubQuery.SetUri("pred", new Uri(predicateAbsoluteUri));
            string?insertQuery = "";
            bool   first       = true;

            if (propertyContent.Curies != null)
            {
                foreach (var objCurie in propertyContent.Curies)
                {
                    if (_namespaceFactoryService.GetAbsoluteUriFromQname(objCurie,
                                                                         out string objectAbsoluteUri))
                    {
                        if (first)
                        {
                            sparqlParameterizedInsertQuery.SetUri("obj", new Uri(objectAbsoluteUri));
                            insertQuery = sparqlParameterizedInsertQuery.ToString();
                            first       = false;
                            continue;
                        }

                        sparqlParameterizedInsertSubQuery.SetUri("obj", new Uri(objectAbsoluteUri));
                        insertQuery += sparqlParameterizedInsertSubQuery.ToString();
                    }
                    else
                    {
                        return(null);
                    }
                }
            }

            if (propertyContent.Literals != null)
            {
                foreach (var literal in propertyContent.Literals)
                {
                    if (first)
                    {
                        sparqlParameterizedInsertQuery =
                            ConstructLiteralString(sparqlParameterizedInsertQuery, literal);
                        insertQuery = sparqlParameterizedInsertQuery.ToString();
                        first       = false;
                        continue;
                    }

                    sparqlParameterizedInsertSubQuery =
                        ConstructLiteralString(sparqlParameterizedInsertSubQuery, literal);
                    insertQuery += sparqlParameterizedInsertSubQuery.ToString();
                }
            }

            return(insertQuery);
        }