W3C home > Mailing lists > Public > semantic-web@w3.org > December 2015

Re: Faceted Search

From: Martynas Jusevičius <martynas@graphity.org>
Date: Fri, 04 Dec 2015 08:30:38 +0000
Message-ID: <CAE35VmxUYvJveM7dOWus1jHVrDi0GdeXoz-=4PBabntB60HrwA@mail.gmail.com>
To: Sebastian Samaruga <cognescent@gmail.com>
Cc: public-declarative-apps@w3.org, "semantic-web@w3.org" <semantic-web@w3.org>, "pragmaticweb@lists.spline.inf.fu-berlin.de" <pragmaticweb@lists.spline.inf.fu-berlin.de>, "topicmapmail@infoloom.com" <topicmapmail@infoloom.com>

as I mentioned before, a .war file is a poor channel of distribution these
days. Please show us your source code and/or deployed application.

Are you using the relational model or your own metamodel for data
integration? This paper explains the advantage of RDF and triples as the
canonical model:

By putting RDF at the center, you could reuse the RESTful Linked Data
processing from Graphity and focus on BI which can be implemented with

On Wed, 2 Dec 2015 at 20:20, Sebastian Samaruga <cognescent@gmail.com>

> Martynas,
> Happy you replied my message. I've been watching Graphity and it is
> awesome. But, although our scopes seems to be similar I think there are
> huge differences at implementation level and at presentation level.
> What I would like to have built is a 'semantic' browser focused in
> analysis and mining for business intelligence and for building indexes and
> process flows definitions. I use forms for that and I also use XSL but for
> data coming from my metamodel, serialized from JAXB beans. My metamodel is
> a completely normalized scheme in which 'tables', 'columns' and 'values'
> are interchangeable entities aggregated into 'rows' (Mappings). It comes
> from a variety of sources, including but not just RDF. The metamodel has a
> notion of triples regarding the application state and I use them when
> triple exchange is needed.
> I'm aiming to be able, for example, to build queries with analysis
> metadata from the URIs given to a REST service. Being this service a
> HATEOAS service, a client could browse through the use cases / contexts
> only with metadata. Loaders from multiple sources (JDBC, RDF, XML, JSON,
> CSV, SPARQL, etc) exist to populate the mappings layer. The browser UI
> aggregates 'tables' (metaclasses), once a metaclass is selected it shows
> its 'columns' (roles) and selecting a 'column' shows the column values. If
> I select one 'row' while navigating (instances) the values shown will be
> only the ones of that instance (Mapping).
> You can check it in Sourceforge
> http://sourceforge.net/projects/cognescent/
> The WAR file downloadable there shows examples with a sample load data
> form. Modify datasources.xml in the src root to test other datasources. The
> XSL templates (Resumen button in the browser) only outputs the raw XML.
> Once the stylesheets are developed they'll bring a cleaner knowledge view.
> A sample URI to check in the REST interface would be like (dummy):
> http://localhost:8080/CognescentSBI/resources/data/metaId:instId[predAxisId]/instId:instId[predAxisId]/instId:instId[predAxisId]
> To test the REST service go to:
> [your_server:your:port]/CognescentSBI/resources/sbi/data
> The predicate axis IDs (predAxisId) will be for the implementation of the
> Analyzer component so it can aggregate instances due to this predicates
> values. The URI is parsed to build the faceted queries.
> Best,
> Sebastian.
> On Wed, Nov 18, 2015 at 1:29 PM, Martynas Jusevičius <
> martynas@graphity.org> wrote:
>> Sebastian,
>> there was little traffic on this list so far, yet your message went
>> unnoticed. Sorry for that!
>> You can view the webpage for your data as an (X)HTML representation of
>> RDF. It can be completely data-driven and simply a function that
>> transforms the RDF response into an (X)THML response. You could do it
>> in a number of ways: using an imperative language such as Java, or
>> various template engines.
>> From a declarative perspective, XSLT (2.0) is probably the best tool
>> for this. The RDF/XML syntax is admittedly not straightforward, but
>> XSLT is a functional and Turing-complete language that can handle it
>> effectively and transform it to (X)HTML or other formats.
>> Graphity Client includes a number of predefined generic XSLT
>> stylesheets that can be imported, extended, customized etc:
>> https://github.com/Graphity/graphity-client/tree/master/src/main/webapp/static/org/graphity/client/xsl
>> The facets part is more complicated. If you are using SPARQL to
>> retrieve RDF results, you can modify the query on the fly, to narrow
>> down matches based on the facet selections. That is what we did in
>> this project: http://dedanskeaviser.dk/newspapers
>> If not, then it depends on the API you are using to access RDF.
>> I am not familiar with DCI or its concept of actors/roles/contexts.
>> Maybe it would be easier if you explained your goals. If you are
>> looking for a functional implementation of data-driven applications
>> that uses REST and HATEOS and builds interactive forms and other
>> navigation items, it is exactly what we provide:
>> http://graphityhq.com/technology
>> We would be happy to this topic discuss further.
>> Martynas
>> graphityhq.com
>> On Mon, Oct 12, 2015 at 10:26 PM, Sebastian Samaruga
>> <cognescent@gmail.com> wrote:
>> > Sorry if this is not the right list. I've came here from a reply in a
>> > previous post.
>> >
>> > I don't know if this is something new, it just seems it was useful for
>> the
>> > kind of interface I was looking for. I was just wondering what would be
>> the
>> > best way to facilitate browsing and search in the application demo I'm
>> > building that renders RDF / Semantic Web contents. I've figured out
>> there
>> > must be a tree hierarchy of categories, roles and instances of data to
>> which
>> > adhere the incoming data parsing so having a common denominator for
>> > different input structures.
>> >
>> > Having this structures, browsing through the tree of data, an item
>> (leave or
>> > node) could be 'picked up' as a facet. For example, if the scenario is
>> "Car
>> > Rental" as a category, "Car Model" and "Rental City" as roles and many
>> > models of cars and many cities as instances, what if I could pick a car
>> > model, a city or both and press "Aggregate" and this resulting in root
>> > categories for each specific car rental ("Car Rental 1", "Car Rental 2",
>> > etc) with its roles populated with the corresponding criteria values
>> (the
>> > city corresponding to "Car Rental 1" given its car, etc).
>> >
>> > Maybe this sounds dumb. But the question is: how difficult would be to
>> build
>> > such a filter criteria using only RDF datasources. RDF statement
>> resources
>> > are not individualized by their occurrences. An RDF resource is the same
>> > regardless which statements it occurs. And, although I've found a way to
>> > individualize occurrences of, for example, Car Rental(s), I can't find
>> the
>> > way yet to correlate this instances with the instances of their roles.
>> >
>> > Also, I'm restricting my mappings (ontology processing output) to three
>> > levels depth, which seems arbitrary. I could not restrict the graph to
>> any
>> > depth. But I'll keep trying a while with this arrangements. It seems
>> > attractive the correlation of categories, roles and instances with some
>> of
>> > the concepts in the DCI programming model
>> > (https://en.wikipedia.org/wiki/Data,_context_and_interaction) which
>> could
>> > allow for a model driven focused approach of building the client
>> > application, again with the ontology 'common factors' concept in mind.
>> >
>> > And the concept of actors, roles and contexts seems as an ideal case
>> for a
>> > functional language implementation of what could be a runtime
>> environment
>> > for data driven applications (think of a REST-HATEOAS client that
>> > interactively builds forms and other navigation items simply by content
>> > negotiation with a functional data-state-based endpoint).
>> >
>> > Source, examples and the demo web application are available in the
>> project
>> > web page:
>> >
>> > http://cognescent.blogspot.com
>> > http://sourceforge.net/projects/cognescent/
>> >
>> > Regards,
>> > Sebastian
Received on Friday, 4 December 2015 08:31:21 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:44 UTC