Re: Faceted Search

Sebastian Samaruga <[email protected]> Sun, 27 Dec 2015 21:40:11 -0300
Newsgroups gmane.org.w3c.semantic-web,gmane.text.xml.xtm.general
Message-ID <CAFnmbpUtEfGJjHsp5KTBh8qYq4zbhmt=cbdE6YAb_qKj_CikZw@mail.gmail.com>
--001a113a033c35dac80527ea8ceb
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Martynas,

Following your advice I'm trying to get rid the most possible of a custom
object model and try to build something with XSL/XSLT.

I've posted in my blog the last comments regarding this issue:
http://cognescent.blogspot.com.ar/2015/12/cognescents-architectural-refacto=
rings.html

The source repository is not updated with this current changes. It's only
analysis work.

I'd like to use some kind of functional programming for a declarative
service/interface model. My approach currently attempts to return triples,
wrappers between. But with a working metamodel behind them the declarative
part should work fine.

On Sun, Dec 6, 2015 at 10:59 AM, Martynas Jusevi=C4=8Dius <martynas@graphit=
y.org>
wrote:

> Sebastian,
>
> I've looked at the code on Git. I think we've gone through this design
> phase as well: a custom object model.
>
> If you constrain yourself only to the standard RDF model and
> manipulate it using SPARQL (or an RDF API such as Jena or Sesame),
> then you can map the rest of data models into it using vocabularies.
>
> These class names look like they're taken from the Jena's codebase,
> just oversimplified and with much poorer functionality:
>
> http://sourceforge.net/p/cognescent/repository/ci/master/tree/src/net/jav=
a/cognescent/sbi/model/onto/
>
> In other words, domain model at the object layer is not necessary at
> all if you use RDF. And custom APIs are not necessary as you can reuse
> generic open-source libraries. Constraint fosters creativity :)
>
> They say Linked Data should not be treated as a hammer for which every
> problem appears as a nail. But it's the first hammer which includes a
> manual on how to turn problems into nails -- and them you hammer them
> down with ease :)
>
>
> Martynas
> graphityhq.com
>
> On Fri, Dec 4, 2015 at 5:55 PM, Sebastian Samaruga <[email protected]>
> wrote:
> > Martynas,
> >
> > The sources are in the Git repository of the Sourceforge project. They
> are
> > in the form of an importable Eclipse project, it is not yet a Maven
> project.
> > Once you import the project in Eclipse from the repository (from the
> > repository browser of Eclipse put "Import as a project in the workspace=
")
> > you must set some library paths to make it work in your environment.
> >
> > I'm not using the relational model, it is just an analogy.
> >
> > Sebastian.
> >
> >
> >
> >
> > On Fri, Dec 4, 2015 at 5:30 AM, Martynas Jusevi=C4=8Dius <
> [email protected]>
> > wrote:
> >>
> >> Sebastian,
> >>
> >> 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 t=
he
> >> canonical model:
> >>
> >>
> http://www.topquadrant.com/docs/whitepapers/information-enlightenment-2.0=
-final.pdf
> >>
> >> 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
> >> SPARQL.
> >>
> >>
> >> Martynas
> >> graphityhq.com
> >>
> >> On Wed, 2 Dec 2015 at 20:20, Sebastian Samaruga <[email protected]>
> >> wrote:
> >>>
> >>> 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 indexe=
s
> and
> >>> process flows definitions. I use forms for that and I also use XSL bu=
t
> 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 dat=
a
> >>> 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[predAxis=
Id]/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 predicat=
es
> >>> values. The URI is parsed to build the faceted queries.
> >>>
> >>> Best,
> >>> Sebastian.
> >>>
> >>>
> >>> On Wed, Nov 18, 2015 at 1:29 PM, Martynas Jusevi=C4=8Dius
> >>> <[email protected]> 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 i=
t
> >>>> 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/s=
tatic/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
> >>>> <[email protected]> wrote:
> >>>> > Sorry if this is not the right list. I've came here from a reply i=
n
> 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 wou=
ld
> >>>> > 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 ou=
t
> >>>> > there
> >>>> > must be a tree hierarchy of categories, roles and instances of dat=
a
> to
> >>>> > which
> >>>> > adhere the incoming data parsing so having a common denominator fo=
r
> >>>> > 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 scenari=
o
> 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 Rent=
al
> >>>> > 2",
> >>>> > etc) with its roles populated with the corresponding criteria valu=
es
> >>>> > (the
> >>>> > city corresponding to "Car Rental 1" given its car, etc).
> >>>> >
> >>>> > Maybe this sounds dumb. But the question is: how difficult would b=
e
> to
> >>>> > build
> >>>> > such a filter criteria using only RDF datasources. RDF statement
> >>>> > resources
> >>>> > are not individualized by their occurrences. An RDF resource is th=
e
> >>>> > 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 grap=
h
> to
> >>>> > any
> >>>> > depth. But I'll keep trying a while with this arrangements. It see=
ms
> >>>> > 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) whic=
h
> >>>> > 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 ca=
se
> >>>> > 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
> >>>
> >>>
> >
>

--001a113a033c35dac80527ea8ceb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div>Martynas,<br><br></div>Following your advic=
e I&#39;m trying to get rid the most possible of a custom object model and =
try to build something with XSL/XSLT.<br><br></div>I&#39;ve posted in my bl=
og the last comments regarding this issue:<br><a href=3D"http://cognescent.=
blogspot.com.ar/2015/12/cognescents-architectural-refactorings.html">http:/=
/cognescent.blogspot.com.ar/2015/12/cognescents-architectural-refactorings.=
html</a><br><br></div>The source repository is not updated with this curren=
t changes. It&#39;s only analysis work.<br><br>I&#39;d like to use some kin=
d of functional programming for a declarative service/interface model. My a=
pproach currently attempts to return triples, wrappers between. But with a =
working metamodel behind them the declarative part should work fine.<br></d=
iv><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Sun, Dec 6,=
 2015 at 10:59 AM, Martynas Jusevi=C4=8Dius <span dir=3D"ltr">&lt;<a href=
=3D"mailto:[email protected]" target=3D"_blank">[email protected]</=
a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sebastian,<br>
<br>
I&#39;ve looked at the code on Git. I think we&#39;ve gone through this des=
ign<br>
phase as well: a custom object model.<br>
<br>
If you constrain yourself only to the standard RDF model and<br>
manipulate it using SPARQL (or an RDF API such as Jena or Sesame),<br>
then you can map the rest of data models into it using vocabularies.<br>
<br>
These class names look like they&#39;re taken from the Jena&#39;s codebase,=
<br>
just oversimplified and with much poorer functionality:<br>
<a href=3D"http://sourceforge.net/p/cognescent/repository/ci/master/tree/sr=
c/net/java/cognescent/sbi/model/onto/" rel=3D"noreferrer" target=3D"_blank"=
>http://sourceforge.net/p/cognescent/repository/ci/master/tree/src/net/java=
/cognescent/sbi/model/onto/</a><br>
<br>
In other words, domain model at the object layer is not necessary at<br>
all if you use RDF. And custom APIs are not necessary as you can reuse<br>
generic open-source libraries. Constraint fosters creativity :)<br>
<br>
They say Linked Data should not be treated as a hammer for which every<br>
problem appears as a nail. But it&#39;s the first hammer which includes a<b=
r>
manual on how to turn problems into nails -- and them you hammer them<br>
down with ease :)<br>
<br>
<br>
Martynas<br>
<a href=3D"http://graphityhq.com" rel=3D"noreferrer" target=3D"_blank">grap=
hityhq.com</a><br>
<div class=3D"HOEnZb"><div class=3D"h5"><br>
On Fri, Dec 4, 2015 at 5:55 PM, Sebastian Samaruga &lt;<a href=3D"mailto:co=
[email protected]">[email protected]</a>&gt; wrote:<br>
&gt; Martynas,<br>
&gt;<br>
&gt; The sources are in the Git repository of the Sourceforge project. They=
 are<br>
&gt; in the form of an importable Eclipse project, it is not yet a Maven pr=
oject.<br>
&gt; Once you import the project in Eclipse from the repository (from the<b=
r>
&gt; repository browser of Eclipse put &quot;Import as a project in the wor=
kspace&quot;)<br>
&gt; you must set some library paths to make it work in your environment.<b=
r>
&gt;<br>
&gt; I&#39;m not using the relational model, it is just an analogy.<br>
&gt;<br>
&gt; Sebastian.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Dec 4, 2015 at 5:30 AM, Martynas Jusevi=C4=8Dius &lt;<a href=
=3D"mailto:[email protected]">[email protected]</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Sebastian,<br>
&gt;&gt;<br>
&gt;&gt; as I mentioned before, a .war file is a poor channel of distributi=
on these<br>
&gt;&gt; days. Please show us your source code and/or deployed application.=
<br>
&gt;&gt;<br>
&gt;&gt; Are you using the relational model or your own metamodel for data<=
br>
&gt;&gt; integration? This paper explains the advantage of RDF and triples =
as the<br>
&gt;&gt; canonical model:<br>
&gt;&gt;<br>
&gt;&gt; <a href=3D"http://www.topquadrant.com/docs/whitepapers/information=
-enlightenment-2.0-final.pdf" rel=3D"noreferrer" target=3D"_blank">http://w=
ww.topquadrant.com/docs/whitepapers/information-enlightenment-2.0-final.pdf=
</a><br>
&gt;&gt;<br>
&gt;&gt; By putting RDF at the center, you could reuse the RESTful Linked D=
ata<br>
&gt;&gt; processing from Graphity and focus on BI which can be implemented =
with<br>
&gt;&gt; SPARQL.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Martynas<br>
&gt;&gt; <a href=3D"http://graphityhq.com" rel=3D"noreferrer" target=3D"_bl=
ank">graphityhq.com</a><br>
&gt;&gt;<br>
&gt;&gt; On Wed, 2 Dec 2015 at 20:20, Sebastian Samaruga &lt;<a href=3D"mai=
lto:[email protected]">[email protected]</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Martynas,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Happy you replied my message. I&#39;ve been watching Graphity =
and it is<br>
&gt;&gt;&gt; awesome. But, although our scopes seems to be similar I think =
there are huge<br>
&gt;&gt;&gt; differences at implementation level and at presentation level.=
<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; What I would like to have built is a &#39;semantic&#39; browse=
r focused in<br>
&gt;&gt;&gt; analysis and mining for business intelligence and for building=
 indexes and<br>
&gt;&gt;&gt; process flows definitions. I use forms for that and I also use=
 XSL but for<br>
&gt;&gt;&gt; data coming from my metamodel, serialized from JAXB beans. My =
metamodel is a<br>
&gt;&gt;&gt; completely normalized scheme in which &#39;tables&#39;, &#39;c=
olumns&#39; and &#39;values&#39; are<br>
&gt;&gt;&gt; interchangeable entities aggregated into &#39;rows&#39; (Mappi=
ngs). It comes from a<br>
&gt;&gt;&gt; variety of sources, including but not just RDF. The metamodel =
has a notion<br>
&gt;&gt;&gt; of triples regarding the application state and I use them when=
 triple<br>
&gt;&gt;&gt; exchange is needed.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m aiming to be able, for example, to build queries with =
analysis<br>
&gt;&gt;&gt; metadata from the URIs given to a REST service. Being this ser=
vice a HATEOAS<br>
&gt;&gt;&gt; service, a client could browse through the use cases / context=
s only with<br>
&gt;&gt;&gt; metadata. Loaders from multiple sources (JDBC, RDF, XML, JSON,=
 CSV, SPARQL,<br>
&gt;&gt;&gt; etc) exist to populate the mappings layer. The browser UI aggr=
egates<br>
&gt;&gt;&gt; &#39;tables&#39; (metaclasses), once a metaclass is selected i=
t shows its &#39;columns&#39;<br>
&gt;&gt;&gt; (roles) and selecting a &#39;column&#39; shows the column valu=
es. If I select one<br>
&gt;&gt;&gt; &#39;row&#39; while navigating (instances) the values shown wi=
ll be only the ones of<br>
&gt;&gt;&gt; that instance (Mapping).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You can check it in Sourceforge<br>
&gt;&gt;&gt; <a href=3D"http://sourceforge.net/projects/cognescent/" rel=3D=
"noreferrer" target=3D"_blank">http://sourceforge.net/projects/cognescent/<=
/a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The WAR file downloadable there shows examples with a sample l=
oad data<br>
&gt;&gt;&gt; form. Modify datasources.xml in the src root to test other dat=
asources. The<br>
&gt;&gt;&gt; XSL templates (Resumen button in the browser) only outputs the=
 raw XML. Once<br>
&gt;&gt;&gt; the stylesheets are developed they&#39;ll bring a cleaner know=
ledge view.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; A sample URI to check in the REST interface would be like (dum=
my):<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; <a href=3D"http://localhost:8080/CognescentSBI/resources/data/=
metaId:instId[predAxisId]/instId:instId[predAxisId]/instId:instId[predAxisI=
d]" rel=3D"noreferrer" target=3D"_blank">http://localhost:8080/CognescentSB=
I/resources/data/metaId:instId[predAxisId]/instId:instId[predAxisId]/instId=
:instId[predAxisId]</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; To test the REST service go to:<br>
&gt;&gt;&gt; [your_server:your:port]/CognescentSBI/resources/sbi/data<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The predicate axis IDs (predAxisId) will be for the implementa=
tion of the<br>
&gt;&gt;&gt; Analyzer component so it can aggregate instances due to this p=
redicates<br>
&gt;&gt;&gt; values. The URI is parsed to build the faceted queries.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Best,<br>
&gt;&gt;&gt; Sebastian.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, Nov 18, 2015 at 1:29 PM, Martynas Jusevi=C4=8Dius<br>
&gt;&gt;&gt; &lt;<a href=3D"mailto:[email protected]">martynas@graphity=
..org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Sebastian,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; there was little traffic on this list so far, yet your mes=
sage went<br>
&gt;&gt;&gt;&gt; unnoticed. Sorry for that!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; You can view the webpage for your data as an (X)HTML repre=
sentation of<br>
&gt;&gt;&gt;&gt; RDF. It can be completely data-driven and simply a functio=
n that<br>
&gt;&gt;&gt;&gt; transforms the RDF response into an (X)THML response. You =
could do it<br>
&gt;&gt;&gt;&gt; in a number of ways: using an imperative language such as =
Java, or<br>
&gt;&gt;&gt;&gt; various template engines.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; From a declarative perspective, XSLT (2.0) is probably the=
 best tool<br>
&gt;&gt;&gt;&gt; for this. The RDF/XML syntax is admittedly not straightfor=
ward, but<br>
&gt;&gt;&gt;&gt; XSLT is a functional and Turing-complete language that can=
 handle it<br>
&gt;&gt;&gt;&gt; effectively and transform it to (X)HTML or other formats.<=
br>
&gt;&gt;&gt;&gt; Graphity Client includes a number of predefined generic XS=
LT<br>
&gt;&gt;&gt;&gt; stylesheets that can be imported, extended, customized etc=
:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href=3D"https://github.com/Graphity/graphity-client/tre=
e/master/src/main/webapp/static/org/graphity/client/xsl" rel=3D"noreferrer"=
 target=3D"_blank">https://github.com/Graphity/graphity-client/tree/master/=
src/main/webapp/static/org/graphity/client/xsl</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The facets part is more complicated. If you are using SPAR=
QL to<br>
&gt;&gt;&gt;&gt; retrieve RDF results, you can modify the query on the fly,=
 to narrow<br>
&gt;&gt;&gt;&gt; down matches based on the facet selections. That is what w=
e did in<br>
&gt;&gt;&gt;&gt; this project: <a href=3D"http://dedanskeaviser.dk/newspape=
rs" rel=3D"noreferrer" target=3D"_blank">http://dedanskeaviser.dk/newspaper=
s</a><br>
&gt;&gt;&gt;&gt; If not, then it depends on the API you are using to access=
 RDF.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I am not familiar with DCI or its concept of actors/roles/=
contexts.<br>
&gt;&gt;&gt;&gt; Maybe it would be easier if you explained your goals. If y=
ou are<br>
&gt;&gt;&gt;&gt; looking for a functional implementation of data-driven app=
lications<br>
&gt;&gt;&gt;&gt; that uses REST and HATEOS and builds interactive forms and=
 other<br>
&gt;&gt;&gt;&gt; navigation items, it is exactly what we provide:<br>
&gt;&gt;&gt;&gt; <a href=3D"http://graphityhq.com/technology" rel=3D"norefe=
rrer" target=3D"_blank">http://graphityhq.com/technology</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; We would be happy to this topic discuss further.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Martynas<br>
&gt;&gt;&gt;&gt; <a href=3D"http://graphityhq.com" rel=3D"noreferrer" targe=
t=3D"_blank">graphityhq.com</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Oct 12, 2015 at 10:26 PM, Sebastian Samaruga<br>
&gt;&gt;&gt;&gt; &lt;<a href=3D"mailto:[email protected]">cognescent@gma=
il.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt; Sorry if this is not the right list. I&#39;ve came he=
re from a reply in a<br>
&gt;&gt;&gt;&gt; &gt; previous post.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; I don&#39;t know if this is something new, it just se=
ems it was useful for<br>
&gt;&gt;&gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt; &gt; kind of interface I was looking for. I was just wonde=
ring what would<br>
&gt;&gt;&gt;&gt; &gt; be the<br>
&gt;&gt;&gt;&gt; &gt; best way to facilitate browsing and search in the app=
lication demo I&#39;m<br>
&gt;&gt;&gt;&gt; &gt; building that renders RDF / Semantic Web contents. I&=
#39;ve figured out<br>
&gt;&gt;&gt;&gt; &gt; there<br>
&gt;&gt;&gt;&gt; &gt; must be a tree hierarchy of categories, roles and ins=
tances of data to<br>
&gt;&gt;&gt;&gt; &gt; which<br>
&gt;&gt;&gt;&gt; &gt; adhere the incoming data parsing so having a common d=
enominator for<br>
&gt;&gt;&gt;&gt; &gt; different input structures.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Having this structures, browsing through the tree of =
data, an item<br>
&gt;&gt;&gt;&gt; &gt; (leave or<br>
&gt;&gt;&gt;&gt; &gt; node) could be &#39;picked up&#39; as a facet. For ex=
ample, if the scenario is<br>
&gt;&gt;&gt;&gt; &gt; &quot;Car<br>
&gt;&gt;&gt;&gt; &gt; Rental&quot; as a category, &quot;Car Model&quot; and=
 &quot;Rental City&quot; as roles and many<br>
&gt;&gt;&gt;&gt; &gt; models of cars and many cities as instances, what if =
I could pick a<br>
&gt;&gt;&gt;&gt; &gt; car<br>
&gt;&gt;&gt;&gt; &gt; model, a city or both and press &quot;Aggregate&quot;=
 and this resulting in root<br>
&gt;&gt;&gt;&gt; &gt; categories for each specific car rental (&quot;Car Re=
ntal 1&quot;, &quot;Car Rental<br>
&gt;&gt;&gt;&gt; &gt; 2&quot;,<br>
&gt;&gt;&gt;&gt; &gt; etc) with its roles populated with the corresponding =
criteria values<br>
&gt;&gt;&gt;&gt; &gt; (the<br>
&gt;&gt;&gt;&gt; &gt; city corresponding to &quot;Car Rental 1&quot; given =
its car, etc).<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Maybe this sounds dumb. But the question is: how diff=
icult would be to<br>
&gt;&gt;&gt;&gt; &gt; build<br>
&gt;&gt;&gt;&gt; &gt; such a filter criteria using only RDF datasources. RD=
F statement<br>
&gt;&gt;&gt;&gt; &gt; resources<br>
&gt;&gt;&gt;&gt; &gt; are not individualized by their occurrences. An RDF r=
esource is the<br>
&gt;&gt;&gt;&gt; &gt; same<br>
&gt;&gt;&gt;&gt; &gt; regardless which statements it occurs. And, although =
I&#39;ve found a way<br>
&gt;&gt;&gt;&gt; &gt; to<br>
&gt;&gt;&gt;&gt; &gt; individualize occurrences of, for example, Car Rental=
(s), I can&#39;t find<br>
&gt;&gt;&gt;&gt; &gt; the<br>
&gt;&gt;&gt;&gt; &gt; way yet to correlate this instances with the instance=
s of their roles.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Also, I&#39;m restricting my mappings (ontology proce=
ssing output) to<br>
&gt;&gt;&gt;&gt; &gt; three<br>
&gt;&gt;&gt;&gt; &gt; levels depth, which seems arbitrary. I could not rest=
rict the graph to<br>
&gt;&gt;&gt;&gt; &gt; any<br>
&gt;&gt;&gt;&gt; &gt; depth. But I&#39;ll keep trying a while with this arr=
angements. It seems<br>
&gt;&gt;&gt;&gt; &gt; attractive the correlation of categories, roles and i=
nstances with<br>
&gt;&gt;&gt;&gt; &gt; some of<br>
&gt;&gt;&gt;&gt; &gt; the concepts in the DCI programming model<br>
&gt;&gt;&gt;&gt; &gt; (<a href=3D"https://en.wikipedia.org/wiki/Data,_conte=
xt_and_interaction" rel=3D"noreferrer" target=3D"_blank">https://en.wikiped=
ia.org/wiki/Data,_context_and_interaction</a>) which<br>
&gt;&gt;&gt;&gt; &gt; could<br>
&gt;&gt;&gt;&gt; &gt; allow for a model driven focused approach of building=
 the client<br>
&gt;&gt;&gt;&gt; &gt; application, again with the ontology &#39;common fact=
ors&#39; concept in mind.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; And the concept of actors, roles and contexts seems a=
s an ideal case<br>
&gt;&gt;&gt;&gt; &gt; for a<br>
&gt;&gt;&gt;&gt; &gt; functional language implementation of what could be a=
 runtime<br>
&gt;&gt;&gt;&gt; &gt; environment<br>
&gt;&gt;&gt;&gt; &gt; for data driven applications (think of a REST-HATEOAS=
 client that<br>
&gt;&gt;&gt;&gt; &gt; interactively builds forms and other navigation items=
 simply by<br>
&gt;&gt;&gt;&gt; &gt; content<br>
&gt;&gt;&gt;&gt; &gt; negotiation with a functional data-state-based endpoi=
nt).<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Source, examples and the demo web application are ava=
ilable in the<br>
&gt;&gt;&gt;&gt; &gt; project<br>
&gt;&gt;&gt;&gt; &gt; web page:<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; <a href=3D"http://cognescent.blogspot.com" rel=3D"nor=
eferrer" target=3D"_blank">http://cognescent.blogspot.com</a><br>
&gt;&gt;&gt;&gt; &gt; <a href=3D"http://sourceforge.net/projects/cognescent=
/" rel=3D"noreferrer" target=3D"_blank">http://sourceforge.net/projects/cog=
nescent/</a><br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Regards,<br>
&gt;&gt;&gt;&gt; &gt; Sebastian<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>

--001a113a033c35dac80527ea8ceb--