miércoles, 12 de septiembre de 2012

Indice de contenidos, lista de tablas y lista de figuras en Latex

En forma regular, los comandos:
\tableofcontents
\listoffigures 
\listoftables

despliegan el indice de contenidos, lista de figuras y lista de tablas, respectivamente.

Sin embargo, cuando se utiliza el estilo llncs, estos comandos no funcionan de por sì solos.

Para solucionar este inconveniente, ademas de ubicar los comandos mencionados, se escriben las siguientes lineas bajo el \documentclass y entre el \author y el \title del trabajo:

% make a proper TOC despite llncs
\setcounter{tocdepth}{2}
\makeatletter
\renewcommand*\l@author[2]{}
\renewcommand*\l@title[2]{}
\makeatletter

Compilar un par de veces y voila!

(by Priscill)

jueves, 6 de septiembre de 2012

Mostrar resultados de consultas SPARQL sin tipo

Con este método, usando la librería dotnetrdf en una aplicación web, podemos mostrar los valores asociados a las variables de una consulta SPARQL sin que se muestre el texto que identifica al tipo de dato o al idioma, etc.


 private string GetINodeText(INode n)
    {
        String output = "";
        if (n != null)
        {
            switch (n.NodeType)
            {
                case NodeType.Literal:
                    //For literals you only want the lexical value only so need to cast to
                    //literal and access the Value property
                    output = ((ILiteralNode)n).Value;
                    break;
                default:
                    //For any other node we just want the string form so
                    //ToString() is sufficient
                    output = n.ToString();
                    break;
            }
        }

        return output;
    }

El parámetro que se pasa es el que se obtiene haciendo esto:


 SparqlResultSet results = LoadFromEndPoint2("dbpedia.org/sparql", "dbpedia.org", query);


         if (results != null)
         {
                 foreach (SparqlResult result in results)
                 {
                       string text = GetINodeText(result.Value("varname"));
                 }
          }

El método LoadFromEndPoint2 básicamente es esto:


    private SparqlResultSet LoadFromEndPoint2(string ipaddress, string graph, string query)
    {
        try
        {
            SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri("http://" + ipaddress), "http://" + graph);
            endpoint.Timeout = 0;

            SparqlResultSet results = endpoint.QueryWithResultSet(query);

            return results;
       }catch(Exception ex)
       {
       }
}


Configurar IIS Express para que escuche peticiones externas


Para que IIS Express sea capaz de servir peticiones que llegan desde fuera de la máquina, copiamos el fichero 'C:\Program Files\IIS Express\AppServer\applicationhost.config' a la carpeta de la aplicación web y lo editamos, configuramos algo como esto:


<application path="/">
           <virtualDirectory path="/" physicalPath="C:\temp" />
</application>

<bindings>
           <binding protocol="http" bindingInformation=":8080:" />
</bindings>

Configuramos la carpeta raíz de la aplicación y el resto de parámetros y lo ejecutamos así

iisexpress.exe /config:c:\temp\applicationhost.config

donde 'temp' sería la capeta de nuestra aplicación.