LODSPeaKr is a framework for creating Linked Data applications in a simple and easy way

Related tags

Frameworks lodspeakr
Overview

LODSPeaKr

author: Alvaro Graves ([email protected])

version: 20130612

LODSPeaKr is a framework for creating Linked Data applications in a simple and easy way. You can see several applications created using LODSPeaKr.

Simplest Installation

Simply go to your web server root directory (e.g., /var/www/) and run

bash < <(curl -sL http://lodspeakr.org/install)

You will be required to answer 3 questions:

  • What is the location of lodspeakr? If you are running the script in /var/www/visualizations it is highly likely it will be http://localhost/visualizations or http://yourdomainname/visualizations
  • What is the domain of the data you want to query? For now, you can leave it as the default (i.e., press Enter)
  • What is the URL of your SPARQL endpoint? Where should Visualbox look to execute SPARQL queries.

Finally, give write permissions to the web server in lodspeakr/meta, lodspeakr/cache, lodspeakr/settings.inc.php and lodspeakr/components. This can be done in several ways:

  • sudo chown WEBSERVERUSER lodspeakr/meta lodspeakr/cache lodspeakr/settings.inc.php lodspeakr/components
    • Note You can find the name of your web server user by running ps aux|egrep "apache|httpd|www" |egrep -v "grep|root"|awk '{print $1}'|uniq
  • Alternatively you can run chdmod -R 777 lodspeakr/meta lodspeakr/cache lodspeakr/settings.inc.php lodspeakr/components but this is highly discouraged

More documentation on installation of LODSPeaKr is available at the LODSPeaKr wiki

Comments
  • filter for domain...localname

    filter for domain...localname

    filter to transform:

    https://raw.github.com/timrdf/csv2rdf4lod-automation/master/doc/examples/source/lebot/golfers/version/original/manual/golfers.xls.zip

    into:

    https://raw.github.com...golfers.xls.zip ?

    Would be awesome User submission 
    opened by timrdf 15
  • Default .json/.rdf/.nt/.ttl responses based on .html model query

    Default .json/.rdf/.nt/.ttl responses based on .html model query

    the "resource representation" returned should be equivalent in content regardless of format. So demanding new queries for each content-type is redundant and makes it too easy to violate AWWW by providing different content for the same URI request.

    Would be awesome 
    opened by timrdf 11
  • contents of settings.inc.php prepended to static components

    contents of settings.inc.php prepended to static components

    Hello,

    I just installed lodspeakr out of the box using the simple install and noticed that every static component has the contents of settings.inc.php prepended to it. Viewing the source of the index.html and jquery files confirms this. I think even the lodspeakr_logotype.png file gets it prepended because firebug shows that it is corrupted.

    Is there some configuration issue?

    Thanks,

    Gerald

    opened by pymonger 6
  • error on sibling deployments?

    error on sibling deployments?

    Is it possible to deploy two lodspeakrs next to each other?

    http://aquarius.tw.rpi.edu/prov-wg-dev/ results in

    [Mon Mar 12 14:53:51 2012] [error] [client 128....] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
    

    aquarius:/var/www/prov-wg-dev

    while http://aquarius.tw.rpi.edu/prov-wg/index.html works.

    opened by timrdf 5
  • # tags for classes and properties are namespace:class, could we just make it class

    # tags for classes and properties are namespace:class, could we just make it class

    same for properties

    for one of our schemas we have things like:

    http://toolmatch.esipfed.org/schema#DataServer

    If I go to the lodspeakr index page it's #tool:DataServer (namespace is tool)

    Just wondering if user browses to http://toolmatch.esipfed.org/schema#DataServer it'll take you to the #DataServer anchor in lodspeakr.

    I tried to set a default namespace, but that didn't work.

    opened by mrpatrickwest 4
  • Add prefixes in queries automagically

    Add prefixes in queries automagically

    I spend a lot of time looking for prefixes, finding that there a query is missing a prefix, etc. LODSPeaKr should add the needed prefixes automatically.

    Would be nice Simplify usage 
    opened by alangrafu 4
  • filter to escape <> in included file.

    filter to escape <> in included file.

    https://github.com/timrdf/prov-lodspeakr/blob/c68030a729c50cee5b4f069400f9bdd2b102216c/components/services/prov-o/html.template

    is including a local copy of http://dvcs.w3.org/hg/prov/raw-file/tip/examples/eg-9-provrdf-owl-coverage/rdf/create/rdf/eg-9-provrdf-owl-coverage.html.ttl via line 243:

            <div class="anexample">
            <div><b>Example</b></div>
               <p> Example of instances of class Entity from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are files with identifiers <i>e1</i> and <i>e2
    </i>. The RDF/XML syntax for asserting that e1 is an instance of Entity is given below.
               <div class="exampleOuter">
                <pre class="example">{% include "eg-9-provrdf-owl-coverage.html.ttl" %}</pre>
               </div>
            </div>
    

    the example that is being included has angles, which need to be escaped:

    @prefix dcat: <http://www.w3.org/ns/dcat#> .
    

    http://aquarius.tw.rpi.edu/prov-wg/prov-o#simple-relationships-in-prov-o only shows:

    @prefix dcat:  .
    @prefix dcterms:  .
    @prefix prov:  .
    @prefix rdf:  .
    @prefix rdfs:  .
    @prefix xhv:  .
    @prefix xml:  .
    @prefix xsd:  .
    
    User submission 
    opened by timrdf 4
  • reorganize models and views hierarchy (again)

    reorganize models and views hierarchy (again)

    models/service.configure-epoch/html.queries/biordf/local/previous_faqt_service_inputs.query contains select distinct ?input

    and is named according to the pattern:

    models.service.<service-name>/[<content-type>.]queries/<endpoint-name>/<endpoint-name>/<model-name>.query
    

    views/service.configure-epoch/html.template contains

                {%for row in models.biordf.local.previous_faqt_service_inputs%}
                   <option value='{{row.input.value}}'>{{row.input.value}}</option>
                {%endfor%}
    

    (diagram at https://github.com/timrdf/DataFAQs/wiki/LODSPeaKr)

    Problem: "models" and "views" feel too disconnected.

    I'd suggest reorganizing the directory structure (again) to:

    (defaults to local endpoint)
    module/services/configure-epoch/queries/previous_faqt_service_inputs.query
    
    (uses the local endpoint)
    module/services/configure-epoch/queries/local/previous_faqt_service_inputs.query
    
    (uses a non-default endpoint)
    module/services/configure-epoch/queries/biordf/previous_faqt_service_inputs.query
    
    (single, explicit endpoint)
    module/services/configure-epoch/queries/biordf/endpoint.local/previous_faqt_service_inputs.query 
    
    (cross-format, cascading queries)
    module/services/configure-epoch/queries/endpoint.biordf/endpoint.local/previous_faqt_service_inputs.query
    
    (format-specific cascading queries)
    module/services/configure-epoch/queries/html/endpoint.biordf/endpoint.local/previous_faqt_service_inputs.query
    
    module/services/configure-epoch/html.template
    module/services/configure-epoch/json.template
    

    This way, everything I need to create a service is in a single directory. Also, the scoping of the hierarchy is nice. The template is "higher" than all of the queries, which would be completed at the lower end of the tree.

    No need to group templates in to a separate directory, let them be evident directly within the service directory, since that IS what is shown by the service.

    When referencing the models within the template (e.g. {%for row in models.biordf.local.previous_faqt_service_inputs%}), this path matches the relative path in the directory structure (though, "queries" in my proposal would be renaming "models" which I'm okay with b/c the model is the entire structure of the 'queryies' directory structure.).

    Simplify usage Would be awesome User submission 
    opened by timrdf 4
  • accept full URIs into service parameters

    accept full URIs into service parameters

    use case:

    prefix prov:   <http://www.w3.org/ns/prov-o/>
    prefix select: <http://sparql.tw.rpi.edu/services/datafaqs/core/select-faqts/> 
    
    select distinct ?input
    where {
      []
         prov:wasAttributedTo {{base.args.arg0}};
         prov:used            ?input;
      .
    }
    

    where the param is some unknown URI (so it is a hassle to find a qname for it.)

    Simplify usage 
    opened by timrdf 4
  • consider renaming 'base' variable

    consider renaming 'base' variable

    In https://github.com/alangrafu/lodspeakr/wiki/Special-URIs you show code example:

    {%for h in base.header %}
    

    perhaps it would be easier to use if it were something like:

    {%for h in lodspeakr.header %}
    

    much like how jquery is the (long-named) object you use to use jquery. It would help developers know when they are talking to lodspeakr and when they are talking to, say haanga or something.

    or something shorter like lodspk so it is easier to type.

    Clarity 
    opened by timrdf 4
  • make it easier to reference the query file?

    make it easier to reference the query file?

    In a template, models.get provides a direct way to reference the result bindings, but some maintenance is needed to provide a link to the query file used (which is encoded in PROV RDFa in this example).

          {% for row in models.get %}
             <tr>
    ...
             </tr>
           {% endfor %}
    ...
          <p about="#results">
          <a rel="prov:used" href="{{lodspk.baseUrl}}prov-lodspeakr/components/services/retrievals/queries/get.query"/>query</a>
          </p>
    
    Would be nice Simplify usage User submission Discussion 
    opened by timrdf 3
  • Improve if mirroring is needed

    Improve if mirroring is needed

    Example: Serving data from namespace http://lofd.tw.rpi.edu/ in http://lofd.tw.rpi.edu/~lebot/. Installing lodspk in ~lebot/ won't turn the mirroring option on

    Bug 
    opened by alangrafu 0
  • Add a GoogleMapCircles visualisation.

    Add a GoogleMapCircles visualisation.

    Hi Alvaro,

    Could you allow to add a 4th variable to the GoogleMaps visualisation?

    GoogleMaps:"lat,long,conflict,radius";

    This would display circles of various radiuses on the google map.

    opened by jmatsushita 0
  • Add optional label to default components

    Add optional label to default components

    Add

    OPTIONAL { ?o rdfs:label ?label }
    

    and

    {%if row.label.value%}{{row.label.value}}{%else%}{{row.o.value}}{%endif%}
    

    in templates

    to queries (in types/rdfs:Resource, service/instances, etc.)

    Would be nice Simplify usage Should be easy 
    opened by alangrafu 0
  • Discussion: Add a controller to components

    Discussion: Add a controller to components

    The lack of a controller component was an intentional in the first versions of lodspk. However more and more I see the need of it for other functions besides data publishing:

    • You want to add data form other sources
    • You want to manage data using other libraries (e.g., statistical libraries) that are beyond of what lodspk and Haanga can/want to do
    • You want to enable read/write operations
    • You want to control which queries will be executed depending on previous results
      • Corolary: change the endpoint of a query?
    • You want to list all the services, types and uri components available in a lodspk installation without doing a hack :)

    For all this, we need to specify:

    • If no controller exists, keep things as usual (execute queries, apply results in template)
    • If controller is available, support:
      • HTTP PUT, DELETE and POST at least
      • Flow control
      • Api for accessing SPARQL endpoint?
      • Others
    Would be awesome Discussion 
    opened by alangrafu 1
  • model and queries inconsistent

    model and queries inconsistent

    main and queries do not align between the query file path and how it is called in the template. Aligning these would make it easier to understand and remember.

    lebot@aquarius:/var/www/prov-wg/prov-lodspeakr/components/services/provrdf-owl-coverage$ grep "select" queries/main.query 
    select distinct ?construct ?yes
    
    
    lebot@aquarius:/var/www/prov-wg/prov-lodspeakr/components/services/provrdf-owl-coverage$ grep "row in" html.template 
          <ul> {% for row in models.main %}
    
    Simplify usage Clarity User submission 
    opened by timrdf 2
Owner
Alvaro Graves
Alvaro Graves
Framework X – the simple and fast micro framework for building reactive web applications that run anywhere.

Framework X Framework X – the simple and fast micro framework for building reactive web applications that run anywhere. Quickstart Documentation Tests

Christian LΓΌck 620 Jan 7, 2023
A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast! Condensed in a single ~65KB file

Bong Cosca 2.6k Dec 30, 2022
TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs.

TrailLamp Introduction TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs. Installatio

Etorojah Okon 14 Jun 10, 2022
A easy way to install your basic yii projetc, we have encrypt database password in phpfile, my class with alot funtions to help you encrypt and decrypt and our swoole server install just run ./yii swoole/start and be happy!

Yii 2 Basic Project Template with swoole and Modules Yii 2 Basic Project Template is a skeleton Yii 2 application best for rapidly creating small proj

null 3 Apr 11, 2022
Implementing programming best practices and patterns, and creating a custom PHP framework from scratch.

Implementing programming best practices and patterns, and creating a custom PHP framework from scratch.

Sajidur Rahman 3 Jul 2, 2022
Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress.

Pods Framework Pods is a development framework for creating, extending, managing, and deploying customized content types in WordPress. Description Che

Pods Foundation, Inc 982 Jan 4, 2023
Opulence is a PHP web application framework that simplifies the difficult parts of creating and maintaining a secure, scalable website.

Opulence Introduction Opulence is a PHP web application framework that simplifies the difficult parts of creating and maintaining a secure, scalable w

Opulence 733 Sep 8, 2022
Extension for creating and sending emails for the Yii PHP framework.

yii-emailer Extension for creating and sending emails for the Yii PHP framework. Usage Migrate the email_message database table by this command: yiic

Digia 12 Mar 30, 2022
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.

Slim Framework Slim is a PHP micro-framework that helps you quickly write simple yet powerful web applications and APIs. Installation It's recommended

Slim Framework 11.5k Jan 4, 2023
Woski is a fast and simple lightweight PHP Framework for building applications in the realm of the web.

Woski is a simple fast PHP framework for the Realm The Project Installation Clone the repository $ composer create-project clintonnzedimma/woski myApp

Clinton Nzedimma 19 Aug 15, 2022
πŸ˜πŸŽ“πŸ“ PHP Library providing an easy way to spellcheck multiple sources of text by many spellcheckers

PHP-Spellchecker Check misspellings from any text source with the most popular PHP spellchecker. About PHP-Spellchecker is a spellchecker abstraction

Philippe SEGATORI 257 Jan 2, 2023
Simple, fast and secure PHP Framework with easy integration.

simple-php-framework Simple, fast and secure PHP Framework with easy integration.

winact 2 Nov 23, 2021
FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Ruby on Rails.

FlyCubePHP FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Rub

Anton 1 Dec 21, 2021
Simple and universal connection pool for ReactPHP applications.

szado/reactphp-connection-pool Async and flexible pool for any type of connections built on top of ReactPHP. Connection pooling allows you to easily m

shado 2 Apr 30, 2022
Asynchronous & Fault-tolerant PHP Framework for Distributed Applications.

Kraken PHP Framework ~ Release the Kraken! Note: This repository contains the core of the Kraken Framework. If you want to start developing new applic

Kraken 1.1k Dec 27, 2022
Asynchronous server-side framework for network applications implemented in PHP using libevent

phpDaemon https://github.com/kakserpom/phpdaemon Asynchronous framework in PHP. It has a huge number of features. Designed for highload. Each worker i

Vasily Zorin 1.5k Nov 30, 2022
Biny is a tiny, high-performance PHP framework for web applications

Biny is high performance. Framework comes default with response time of less than 1ms. Stand-alone QPS easily up to 3000.

Tencent 1.7k Dec 9, 2022
Framework for building extensible server-side progressive applications for modern PHP.

Chevere ?? Subscribe to the newsletter to don't miss any update regarding Chevere. Framework for building extensible server-side progressive applicati

Chevere 65 Jan 6, 2023
Elgg is an open source rapid development framework for socially aware web applications.

Elgg Elgg is an open source rapid development framework for socially aware web applications. Features Well-documented core API that allows developers

Elgg 1.6k Dec 27, 2022