Hi there! Regarding one last post I try to continue with the subject:<br>
<br>
At first my attempt was try to build a business application up from
'semantic' components. The first approach was to try to build an
application, layered as usual in, for example, Java business
applications, maybe being the more significant difference in using a
semantic (Apache Jena) back-end. Then I've tried many ways of composing
my 'POJOs' (Plain Old Java Objects) from the back-end and came to what
could be regarded as a Object Semantic Mapping, doing the mapping
manually but leaving the door open to more automation. Then the POJOs
where exposed as REST entities (using Jersey) with some sort of
serialization to XML and then a minimal MVC facade over these resources.<br>
<br>
All
this leave thinking: what could be the real benefits of embracing
semantics at the business application level? The first two answers that
seemed obvious to me where: data is 'activated' and knowledge is
'augmented'. Of course. I mean, in a context, some data item, regarded
as some kind of data is available to a set of operations that 'activate'
it. And in a given context, knowledge is augmented with relationships
established with previous, maybe other's, knowledge. Fine, I could try
to embed this in POJOs and a set of RESTful web services. But I still
thinking, what are the "real" benefits.<br>
<br>
At a glance, and inspired
by some of my last readings
(<a href="http://www.artima.com/shop/monadic_design_patterns">http://www.artima.com/shop/monadic_design_patterns</a>) there could be a
chance that, properly used, semantics and some sort of functional
programming techniques enables what is already known as DDD (Domain
Driven Development). There, for example, an entire business application
can be built from the model up and let the framework handle the
remaining parts. This is a field in which I'm really interested, not
only because I like the idea of writing less code... but I also like the
integration and interoperability that such attempt may provide because
of a common underlying (meta) model.<br>
<br>
Despite all of this I'm
still wondering what makes a Semantic Web application Semantic? Far from
the promise of making an intelligent / smart web, I'm looking at what
are the implications today of an application really leveraging this
paradigm? One example from one domain where OWL (Web Ontology Language)
is heavily applied tells the way in which I could encode my data, using
my schema as a source, and you or a third party will understand them
seamlessly by means of upper ontologies or mappings, which are a sort of
way of telling we are talking about the same thing in, for example, a
RFQ (Request For Quotation).<br>
<br>
For this approach to work, I've
found that clients (users behind a browser), agents (software acting on
behalf of) and servers should be regarded as the same thing in a P2P
(Peer to Peer) approach or fashion. In this way, the notion of two
parties trying to understand each other may gain more significance.
Maybe I'm trying to talk to a travel agency (profiled as) peer and, in
such a dialog, some sort of ontology 'alignment' may occur. Then, when
we all know we are talking about the same, one could ask the other for
what it can provide. The first resemblance to what is today know as a
web application I've found is that links are 'smart' and also forms too
(dummy example: form 'populating' itself). This is fundamental: I (as a
peer) am using some kind of semantic browser, running in my desktop or
as a service other provides. My browser instance is the instance of the
knowledge I handle. I could also 'profile' myself as something.<br>
<br>
Profiling
are the means of a peer to advertise itself as something. This
'advertisement' is what search engines could 'index', semantically along
with meta-data and descriptions. Given the situation of profiles being
shared each other between peers, chances are that understanding and
dialogging with new peers gets easier. Some profile could be 'travel
agency'. Some other profile could be 'health insurance', 'social
individual', etc.<br>
<br>
Alignment may occur if, on behalf of some
ontology, one builds up some sort of concept lattice
(<a href="http://en.wikipedia.org/wiki/FCA">http://en.wikipedia.org/wiki/FCA</a>) and then, in our dialog between peers
some concept happens to be more or least defined regarding each other's
knowledge and we start exchange of 'meaning' till we get 'equals'
regarding some identifier. Maybe some sort of heavy hashing must be done
for this to work, and this 'hashing' has to be neutral regarding terms
in a given language. Then, given concepts (monadic predicates) and
individuals (roles), the functions (applications) of what holds for or
can be applied to may be exchanged without regard to names or
identifiers because they are anonymous
(<a href="http://www.stephanboyer.com/post/9">http://www.stephanboyer.com/post/9</a>) and based only in the structure of
their arguments and not their names.<br>
<br>
Regards,<br>
Sebastian.<br>
<a href="http://www.cognescent.com">http://www.cognescent.com</a><br>
<br>