コード例 #1
0
 public IActionResult dataValidate(IFormFile rdfFile, Guid repositoryIdentifier)
 {
     try
     {
         string rdfFileContent = SparqlUtility.GetTextFromFile(rdfFile);
         return(Ok(SparqlUtility.ValidateRDF(rdfFileContent, _shapeConfigService.GetShapesConfigs().FindAll(x => x.RepositoryID == repositoryIdentifier))));
     }
     catch (Exception ex)
     {
         return(Problem(ex.ToString()));
     }
 }
コード例 #2
0
 public IActionResult dataValidate(IFormFile rdfFile, IFormFile validationFile)
 {
     try
     {
         string rdfFileContent = SparqlUtility.GetTextFromFile(rdfFile);
         string validation     = SparqlUtility.GetTextFromFile(validationFile);
         return(Ok(SparqlUtility.ValidateRDF(rdfFileContent, validation, validationFile.FileName)));
     }
     catch (Exception ex)
     {
         return(Problem(ex.ToString()));
     }
 }
コード例 #3
0
 public IActionResult dataPublish(IFormFile rdfFile)
 {
     try
     {
         XmlDocument   rdf     = SparqlUtility.GetRDFFromFile(rdfFile);
         List <string> triples = SparqlUtility.GetTriplesFromRDF(rdf);
         SparqlUtility.LoadTriples(triples, _configSparql.GetEndpoint(), _configSparql.GetQueryParam(), _configSparql.GetGraph(), _configSparql.GetGraphUnidata());
         return(Ok());
     }
     catch (Exception ex)
     {
         return(Problem(ex.ToString()));
     }
 }
コード例 #4
0
        public IActionResult ModifyShape(Guid shapeConfigID, string name, Guid repositoryID, IFormFile rdfFile)
        {
            ShapeConfig shapeconfig = new ShapeConfig();

            shapeconfig.ShapeConfigID = shapeConfigID;
            shapeconfig.Name          = name;
            shapeconfig.RepositoryID  = repositoryID;
            try
            {
                if (rdfFile != null)
                {
                    shapeconfig.Shape = SparqlUtility.GetTextFromFile(rdfFile);
                    IGraph shapeGraph = new Graph();
                    shapeGraph.LoadFromString(shapeconfig.Shape);
                }
            }
            catch (Exception ex)
            {
                return(Problem(ex.Message));
            }
            if (!_shapeConfigService.GetShapesConfigs().Exists(x => x.ShapeConfigID == shapeConfigID))
            {
                return(BadRequest(new ErrorExample {
                    Error = $"Comprueba si el shape config con id {shapeconfig.ShapeConfigID} existe"
                }));
            }
            try
            {
                bool modified = _shapeConfigService.ModifyShapeConfig(shapeconfig);
                if (modified)
                {
                    return(Ok($"La configuración del shape {shapeconfig.ShapeConfigID} ha sido modificada"));
                }
                else
                {
                    return(BadRequest(new ErrorExample {
                        Error = $"Se ha producido un error al modificar el Shape"
                    }));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new ErrorExample {
                    Error = $"Se ha producido un error al modificar el Shape " + ex.Message
                }));
            }
        }
コード例 #5
0
 public IActionResult LoadOntology(IFormFile ontology)
 {
     try
     {
         OntologyService.SetOntology(ontology);
         string ontologyGraph = "";
         ontologyGraph = _configSparql.GetGraphRoh();
         RohGraph graph = new RohGraph();
         graph.LoadFromString(OntologyService.GetOntology());
         SparqlUtility.LoadOntology(graph, _configSparql.GetEndpoint(), _configSparql.GetQueryParam(), ontologyGraph);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(Problem(ex.ToString()));
     }
 }
コード例 #6
0
 public IActionResult dataDiscover(IFormFile rdfFile)
 {
     try
     {
         XmlDocument  rdf          = SparqlUtility.GetRDFFromFile(rdfFile);
         DiscoverItem discoverItem = new DiscoverItem()
         {
             Rdf = rdf.InnerXml, Publish = false, DissambiguationProcessed = false, Status = "Pending"
         };
         Guid addedID = _discoverItemService.AddDiscoverItem(discoverItem);
         _amqpService.PublishMessage(addedID);
         return(Ok(addedID));
     }
     catch (Exception ex)
     {
         return(Problem(ex.ToString()));
     }
 }
コード例 #7
0
        public IActionResult dataPublish(IFormFile rdfFile, string jobId, bool discoverProcessed)
        {
            try
            {
                string idDiscoverItem = null;
                if (Request != null)
                {
                    idDiscoverItem = Request.Query["idDiscoverItem"].ToString();
                }
                if (!string.IsNullOrEmpty(idDiscoverItem))
                {
                    //Si viene el parametro 'idDiscoverItem' actualizamos un DiscoverItem ya existente.
                    XmlDocument rdf = SparqlUtility.GetRDFFromFile(rdfFile);

                    DiscoverItem discoverItem = _discoverItemService.GetDiscoverItemById(new Guid(idDiscoverItem));
                    discoverItem.DissambiguationProcessed = discoverProcessed;
                    discoverItem.Publish     = true;
                    discoverItem.Status      = "Pending";
                    discoverItem.DiscoverRdf = rdf.InnerXml;

                    _amqpService.PublishMessage(idDiscoverItem);
                    return(Ok());
                }
                else
                {
                    XmlDocument  rdf          = SparqlUtility.GetRDFFromFile(rdfFile);
                    DiscoverItem discoverItem = new DiscoverItem()
                    {
                        JobID = jobId, Rdf = rdf.InnerXml, Publish = true, DissambiguationProcessed = discoverProcessed, Status = "Pending"
                    };
                    Guid addedID = _discoverItemService.AddDiscoverItem(discoverItem);
                    _amqpService.PublishMessage(addedID);
                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                return(Problem(ex.ToString()));
            }
        }
コード例 #8
0
        /// <summary>
        /// Busca personas en el API de DBPEDIA
        /// </summary>
        /// <param name="q">Texto a buscar (con urlEncode)</param>
        /// <returns>Objeto con las personas encontradas</returns>
        public static DBPEDIAData Search(string q)
        {
            string        SPARQLEndpoint = "https://dbpedia.org/sparql";
            string        Graph          = "http://dbpedia.org";
            string        consulta       = "select * where {?s <http://www.w3.org/2000/01/rdf-schema#label> '" + q + "'@es. ?s a ?rdftype.FILTER(?rdftype in (<http://dbpedia.org/ontology/Organisation>,<http://dbpedia.org/ontology/Place>)) MINUS{?s <http://dbpedia.org/ontology/wikiPageDisambiguates> ?dis} OPTIONAL {?s <http://www.w3.org/2002/07/owl#sameAs> ?geonames.FILTER(?geonames like'http://sws.geonames.org*')}}";
            string        QueryParam     = "query";
            SparqlUtility utility        = new SparqlUtility();
            SparqlObject  sparqlObject   = utility.SelectData(SPARQLEndpoint, Graph, consulta, QueryParam, "", "");
            DBPEDIAData   dBPEDIAData    = new DBPEDIAData();

            foreach (var result in sparqlObject.results.bindings)
            {
                if (result.ContainsKey("s") && result["s"] != null)
                {
                    dBPEDIAData.uri_dbpedia = result["s"].value;
                }
                if (result.ContainsKey("geonames") && result["geonames"] != null)
                {
                    dBPEDIAData.uri_geonames = result["geonames"].value;
                }
            }
            return(dBPEDIAData);
        }
コード例 #9
0
        public IActionResult AddShape(string name, Guid repositoryID, IFormFile rdfFile)
        {
            ShapeConfig shapeconfig = new ShapeConfig();

            shapeconfig.ShapeConfigID = Guid.NewGuid();
            shapeconfig.Name          = name;
            shapeconfig.RepositoryID  = repositoryID;
            try
            {
                shapeconfig.Shape = SparqlUtility.GetTextFromFile(rdfFile);
                IGraph shapeGraph = new Graph();
                shapeGraph.LoadFromString(shapeconfig.Shape);
            }
            catch (Exception ex)
            {
                return(Problem(ex.Message));
            }

            try
            {
                Guid addedID = _shapeConfigService.AddShapeConfig(shapeconfig);
                if (!addedID.Equals(Guid.Empty))
                {
                    return(Ok(addedID));
                }
                else
                {
                    return(Problem($"Se ha producido un error al añadir el Shape"));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new ErrorExample {
                    Error = $"Se ha producido un error al añadir el Shape " + ex.Message
                }));
            }
        }
コード例 #10
0
 public IActionResult LoadTriples(List <string> triples)
 {
     SparqlUtility.LoadTriples(triples);
     return(Ok());
 }