Giter Club home page Giter Club logo

facete3's People

Contributors

aklakan avatar gordiandziwis avatar kibubu avatar lisa-wen avatar petzkahefraun avatar simonbin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

facete3's Issues

Virtuoso Bug: Query incorrectly evaluates to empty result set; breaks keyword search over literal facet values

The following query incorrectly returns 0 results on the Virtuoso deployed at http://cord19.aksw.org/sparql

The actual query has a VALUES clause as the first UNION member (instead of the empty graph pattern) but it suffers from the same empty result set problem

SELECT  *
WHERE
  { {
     SELECT  ?o
        WHERE
          {
              {} # Empty for the sake of a minimal example
            UNION
              { ?s  ?p  ?o FILTER ( ?p = <http://id.loc.gov/ontologies/bibframe/title> )}
          }
      }
      OPTIONAL { ?o  <http://www.w3.org/2000/01/rdf-schema#label>  ?v_1 }

    FILTER ( regex(str(?o), "met", "i")  )
  }

LIMIT 100
  • Interestingly the query works when filtering?p to <http://example.org/dbpediaSubject> (instead of <http://id.loc.gov/ontologies/bibframe/title>).
    The titles are all literals and the dbpediaSubjects are all IRIs - so apparently the optional block fails to evaluate for literals.

  • The query APPEARS to work but actually DOESN'T when omitting the str function and writing directly regex(?o, ...):
    It seems as if the regex then evaluates to true regardless of ?o's value.

There may be some wacky optimization in place regarding variables in subject positions that are bound to literal values...

Add a process to configure the initial set of resources in case showing everything is too much

After or maybe even during configuration of the sparql connection the faceted search components should not be configured with the actual data providers right away.
Instead, a panel that allows inspecting the amount of data and configuring a base concept should be shown first.

In general, this panel should provide a button that performs a probing query for whether the currently selected amount of resources can be processed

For specification of the initial set of resources this panel could for example allow for

  • just selecting all subjects
  • selecting among the sets of instances for given set of classes (i.e. the values of the type facet without counts)
  • the option to select subjects or objects of one or properties

Synergy with Norman's OpenAPI Project

Facete could provide a shacl builder whose output could be fed into Norman's OpenAPI generator which would allow to easily create REST methods over a SPARQL endpoint.

Crash on invalid service URL

Facete crashes if service custom service url cannot be queried.

Crash should be caught and user notified, facete should not crash.

image

ERROR com.vaadin.flow.server.DefaultErrorHandler -
org.apache.jena.atlas.web.HttpException: Not an absolute URL: <localhost8234?query=SELECT%20%20%28count%28%2A%29%20AS%20?c_1%29%0AWHERE%0A%20%20%7B%20GRAPH%20?g%0A%20%20%20%20%20%20%7B%20%20%7D%0A%20%20%7D%0A>

Enable complex constraints

When we click a facet, we should have e.g. a tabbed pane for how we want to create constraints.
The prior versions always had this 'click on a facet value to create a constraint' thing.
But in the API we can e.g. do

facetNode.constraints().between(foo, bar).activate()
facetNode.constraints().greaterThan(baz).activate()

So we could have a separate tab where we show a sliders to create/update/delete range constraints.

The API even has a method to get all values NOT affected by constraints facetNode.fwd().nonConstrainedFacetValueCounts() It is useful in the benchmark to find out what has not yet been constrained - maybe its not that useful in the UI :)

Originally posted by @Aklakan in #18 (comment)

Get rid of hard coded data generation time

The following classes are related

  • ConfigDataGeneratorFacetedBrowsing - health check on podigg launch needs to wait - Also: health check is not interrupted when shutdown is triggered
  • BenchmarkControllerFacetedBrowsing - generic wait for the component
  • TaskGeneratorFacetedBenchmarkMocha - time for the DG to wait for the start signal - timeout should be refreshed whenever a valid task or data message arrives.
  • SystemAdapterRDFConnectionMocha - waits for tasks to arrive

Add proper support for default graphs

Currently the default graph cli option results in a query rewrite that injects GRAPH :dg rather than using the FROM clause.
Systems that allow for virtual graphs (that map to multiple physical ones) usually require graph specifications in the FROM clause.

Create a plugin for custom resource views

For a given set of RDFnodes enable:

  • determine applicable data shapes (e.g shacl) and view components

on that basis:

  • retrieve corresponding triples (e.g. nested property structures)
  • present retrieved data using an appropriate vaadin component

(facete3 UI) Global Toggle for IRI/Label display

Today I wanted to quickly check the download URLs of some datasets, however, with the new behaviour of using labels everywhere, it is now a pain (selecting the label of the download URL and hitting space bar is possible but hardly usable).
Maybe the most convenient solution would be some form of "stylesheet" configuration for controlling this.

Remove hack to disambiguate facetcountvalues

https://github.com/hobbit-project/facete3/blob/fea4616a653e084176339b2d7d15ea6694c2d335/facete3-core-parent/facete3-app-vaadin/src/main/java/org/aksw/facete3/app/vaadin/FacetValueCountProvider.java#L35

im detail: die data query klasse geht momentan von einer einzigen root variabel aus - aber bei den facetten werten ist die id eines result nodes abhaengig von den attribut-paar (facette, facetten-wert) - d.h. die id eines results ist von 2 variablen abhaengig - momentan ist auch bei facetten-werten einfach die facette die root variabel - aber das ist schlecht also deswegen sind facetcounts nicht unterscheidbar in einer menge umgekehrt heisst dass, dass man nicht mehr
dataQuery[FacetValueCount].filter(foo) machen kann sondern es muesste so aussehen:
dataQuery[FacetValueCount].get(FacetValueCount_.facetValue).filter(foo) Also dass man von einer super-root zu der eigentlichen sparql variabel navigiert um dort einen filter dranzuhaengen

LLM Text-to-Constraint

Allow text input for the generation of constraints. The LLM must be fed with available properties and values, and the output format must be specified.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.