Coder Social home page Coder Social logo

zazuko / zack-search Goto Github PK

View Code? Open in Web Editor NEW
10.0 9.0 1.0 18.28 MB

A highly adaptable HTML5 only component that enables interactive access and search data from a SPARQL endpoint.

JavaScript 86.16% HTML 9.61% CSS 4.23%
rdf javascript faceted-search html5 search

zack-search's Introduction

Zazuko Zack [zack-search]

A highly adaptable HTML5 only component which enables interactive access and to search data from a SPARQL endpoint.

Install

  • Install dependencies and build project.

    yarn install

  • Run locally with proxy to SPARQL endpoint. See for current endpoint in package.json

    npm start

Configure / Development

  • Change the config inside

    public/index.js

  • Find the relevant CSS definitions in

    lib/zack.css

zack-search's People

Contributors

bergos avatar cristianvasquez avatar dependabot[bot] avatar ktk avatar l00mi avatar larsvers avatar ludovicm67 avatar strubt avatar tpluscode avatar vhf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

trevorlazarus

zack-search's Issues

data-property-path-postfix gets lost from filterable to filter

<div class="filter-item" data-filter="=" data-predicate="http://purl.org/dc/terms/hasPart" data-property-path-prefix="^" data-property-path-postfix="undefined" data-value="http://data.staatsarchiv-bs.ch/id/archivalresource/CH-000027-1/pa-633" data-named-node="true" draggable="true">fond: Archiv der Familie Ochs genannt His</div>

First release

  • Switch the example to use query.wikidata.org
  • Clean up the queries to be more generic.
  • Documentation

Upgrade dependencies

The module comes with several security issues.
Dependencies should be upgraded.

detach the "search by text" part of the sparql queries

From @l00mi on September 12, 2016 5:34

In preparation for Stardog and as optimization for the current queries:

filter for documents only

Adding the document identifierZack.resultType like following as standard in the filters:
?sub a <http://data.archiveshub.ac.uk/def/ArchivalResource> .

remove the text search instead adding "*" if not set

Instead of providing a * as searchString remove the complete part of the query handling the text match:

GRAPH <http://data.alod.ch/graph/inference-supertitle> {$
   (?sub ?score ?literal) text:query (skos:hiddenLabel "${searchString}") .$
}

I propose to create another text snippet to be composed to the other queries: zack.textmatch-part.sparql

Copied from original issue: zazuko/www.alod.ch#34

create query dictionary component

From @bergos on November 3, 2016 15:46

The logic to load and manage queries with different dialects should be implemented only in one place in the code. The query dictionary component should read the dialect from the configuration and handle module/file loading. The interface should be implemented with Promises.

Copied from original issue: zazuko/www.alod.ch#41

Inline documentation/help on filters

While the function of the filter-link on the top left ("Series", "Files", "Items") seems more or less self-evident. I think the two filter links on the individual result rows are not and need some explanation (tool-tip, help-link or similar).

Temporary disable filter

One should be able to temporary disable the filter so one can select other filter types that get added to it.

sync issues

If while the interace is still loading the first filter is selected we end up often in an undefined state:

  • Reload and immediately click on e.g. "Fonds"
  • The result shows 4 items, but we see lots of entries not being fonds.

Overview zack-histogram

Concept and Design related

  • The more important point of the component is to show the context of time.

    • Important feature to show for the current selection the start point of the timeline and end point (interval where documents are situated in). Might need visual boost.
    • Documents will relate with arrows or intervals to it (to put them self into context on the timeline.)
    • [Low prio] Timeline is fixed in granularity of years, (ideally it would also scales down to months, days).
  • The case that non of the documents provide a date, hence there are no buckets delivered to the visualisation needs to be gracefully handled.

  • The black bars can be used to constrain the search query to a time interval. (Probably better user interface metaphor ? Drag over the constraining interval (click-start, drag, click-stop -> interval).

  • [Low prio] An intuitive way to relax the constraint is searched after (minimal case, just remove the constraint completely).

  • Lowest Target Browser IE11

Dev and Code related

Top notch!

@bergos this is class work, was a breeze to setup and run, couldn't have been made any simpler, thanks!

possibly reflect on a plug-in architecture

From @l00mi on October 23, 2016 12:6

Right now the timeline/histogram gets fairly deep integrated with the main application. In some future we might see also a map component and so on. Each which should be easy to enable/disable for different use cases.

Might it be useful to define a plug-in interface architecture?

Copied from original issue: zazuko/www.alod.ch#40

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.