
|
IdAS changes proposal

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Paul,
I suppose, cdm:entityId is redundant
and we can use rdf:ID instead. As a result:
1.1. In this case IEntity.getEntityID() will retun
rdf:ID.
1.2. In case of blank entity (previously known
as a complex value) it should return null.
1.3. entityId attribute will be
eliminated.
I suppose we need to do the
following changes to IdAS interfaces to be compatible
with CDM:
2.1. BlankEntity class has been
eliminated from cdm.owl. So, I suppose we need to do the same for IdAS
interfaces and replace IBlankEntity with IEntity (eliminate IBlankEntity
interface).
Because there is no any difference between entity
and complex value, we can define the following:
2.2. If
Entity has been created by IContext.addEntity(entityType,
entityID) method, it should always have entityID (should not be a
blank entity). In other words, a unique value should
be generated by a context and used as entityId, if no
entityId passed.
2.3. If Entity has been created
by IAttribute.addValue(URI) method, it should be a blank
entity.
2.4. If Entity has been added
by IAttribute.addValue(IAttributeValue) it should be the same type as
passed entity. If passed entity is a blank entity, new blank entity should be
created as a copy of passed, otherwise a reference to the
existent (non blank) entity should be created.
2.5. When Entity is deleted, all
its subentities which are a blank entity should be deleted
too.
Also we need more flex IFilter API:
3.1. IFilter should be able to query both types of entities as blank
as usual.
3.2. IFilter should be able to query a separate value
(entity or simple value) of any nesting level, not only direct attributes
of Entity.
Also I have some notes about CDM:
4.1. CDM.owl contains entityRelation and contextRelation object
properties. Do we need to reflect them in IdAS interfaces?
Thanks, Sergey
Lyakhov
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal
Hi, - I like everything you say under 1.X and 2.X. I love the idea of removing IBlankEntity. - If I understand correctly, entityRelation isn't needed, because everything is an entityRelation. Sergey, do you have an opinion on how one Attribute can have a Value which points to an Entity in a different Context (by using a UDI)?
Should IAttribute.getValues() return a string which holds the UDI and which can be manually resolved to another Entity, or should getValues() return an IEntity "proxy" object which gets properly resolved once you access it? Like in Hibernate.. If you fetch a row which has a parent-child relationship to a row in another table, Hibernate will return a proxy object and only fetch the row in the other table when you really need it..
Markus 2009/9/23 Sergey Lyakhov <slyakhov@...>
Paul,
I suppose, cdm:entityId is redundant
and we can use rdf:ID instead. As a result:
1.1. In this case IEntity.getEntityID() will retun
rdf:ID.
1.2. In case of blank entity (previously known
as a complex value) it should return null.
1.3. entityId attribute will be
eliminated.
I suppose we need to do the
following changes to IdAS interfaces to be compatible
with CDM:
2.1. BlankEntity class has been
eliminated from cdm.owl. So, I suppose we need to do the same for IdAS
interfaces and replace IBlankEntity with IEntity (eliminate IBlankEntity
interface).
Because there is no any difference between entity
and complex value, we can define the following:
2.2. If
Entity has been created by IContext.addEntity(entityType,
entityID) method, it should always have entityID (should not be a
blank entity). In other words, a unique value should
be generated by a context and used as entityId, if no
entityId passed.
2.3. If Entity has been created
by IAttribute.addValue(URI) method, it should be a blank
entity.
2.4. If Entity has been added
by IAttribute.addValue(IAttributeValue) it should be the same type as
passed entity. If passed entity is a blank entity, new blank entity should be
created as a copy of passed, otherwise a reference to the
existent (non blank) entity should be created.
2.5. When Entity is deleted, all
its subentities which are a blank entity should be deleted
too.
Also we need more flex IFilter API:
3.1. IFilter should be able to query both types of entities as blank
as usual.
3.2. IFilter should be able to query a separate value
(entity or simple value) of any nesting level, not only direct attributes
of Entity.
Also I have some notes about CDM:
4.1. CDM.owl contains entityRelation and contextRelation object
properties. Do we need to reflect them in IdAS interfaces?
Thanks, Sergey
Lyakhov
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal
Re: [higgins-dev] IdAS changes proposal
Sergey,
My responses:
- agree
- agree
- Jim Sermersheim invented IFilter because we needed something and SPARQL wasn’t yet established. Now that it is, I wonder if we shouldn’t give it another look
- (4.1): short answer: no. Longer answer: cdm.owl is an attempt to approximate in owl concepts that cannot be directly operationalized in real RDF/OWL based systems. Only higgins.owl should be imported and used. Cdm.owl is just an attempt at explanation. It can be ignored. (4.2) A lot of OWL URLS end in .owl, but it isn’t a firm requirement or convention.
When you go to make these changes, it will be critical to load into your workbench every possible context provider that you can find so that you can fix them so that they don’t all break.
--Paul
On 9/23/09 12:07 PM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
I suppose, cdm:entityId is redundant and we can use rdf:ID instead. As a result:
1.1. In this case IEntity.getEntityID() will retun rdf:ID.
1.2. In case of blank entity (previously known as a complex value) it should return null.
1.3. entityId attribute will be eliminated.
I suppose we need to do the following changes to IdAS interfaces to be compatible with CDM:
2.1. BlankEntity class has been eliminated from cdm.owl. So, I suppose we need to do the same for IdAS interfaces and replace IBlankEntity with IEntity (eliminate IBlankEntity interface).
Because there is no any difference between entity and complex value, we can define the following:
2.2. If Entity has been created by IContext.addEntity(entityType, entityID) method, it should always have entityID (should not be a blank entity). In other words, a unique value should be generated by a context and used as entityId, if no entityId passed.
2.3. If Entity has been created by IAttribute.addValue(URI) method, it should be a blank entity.
2.4. If Entity has been added by IAttribute.addValue(IAttributeValue) it should be the same type as passed entity. If passed entity is a blank entity, new blank entity should be created as a copy of passed, otherwise a reference to the existent (non blank) entity should be created.
2.5. When Entity is deleted, all its subentities which are a blank entity should be deleted too.
Also we need more flex IFilter API:
3.1. IFilter should be able to query both types of entities as blank as usual.
3.2. IFilter should be able to query a separate value (entity or simple value) of any nesting level, not only direct attributes of Entity.
Also I have some notes about CDM:
4.1. CDM.owl contains entityRelation and contextRelation object properties. Do we need to reflect them in IdAS interfaces?
4.2. Namespase of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl ends with .owl. Is it correct?
Thanks,
Sergey Lyakhov
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Re: [higgins-dev] IdAS changes proposal
> 3. Jim Sermersheim invented IFilter because we needed
something and SPARQL wasnt yet established. Now that it is, I wonder if we
shouldnt give it another look
It would be very
convinient to use SPARQL for RDF-based context providers (like jena CP).
However it would be hard to implement all aspects of SPARQL for context
providers which are not based on RDF (JNDI, XML, Hibernate
etc.).
> When you go
to make these changes, it will be critical to load into your workbench every
possible context
> provider that
you can find so that you can fix them so that they dont all
break.
It will take a lot of work to implement new
filter/model for all providers. So, I suppose there is a sence to put new
IdAS interfaces into a new project (like
org.eclipse.higgins.idas.api2) and than fix all providers to support these
new interfaces. What do you think about this?
Thanks, Sergey Lyakhov
----- Original Message -----
Sent: Monday, September 28, 2009 3:11
AM
Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
My responses:
- agree
- agree
- Jim Sermersheim
invented IFilter because we needed something and SPARQL wasnt yet
established. Now that it is, I wonder if we shouldnt give it another look
- (4.1): short
answer: no. Longer answer: cdm.owl is an attempt to approximate in owl
concepts that cannot be directly operationalized in real RDF/OWL based
systems. Only higgins.owl should be imported and used. Cdm.owl is just an
attempt at explanation. It can be ignored. (4.2) A lot of OWL URLS end in
.owl, but it isnt a firm requirement or
convention.
When you go to make these changes, it will be
critical to load into your workbench every possible context provider that you
can find so that you can fix them so that they dont all break.
--Paul
On 9/23/09 12:07 PM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
I suppose, cdm:entityId is redundant and we can use rdf:ID
instead. As a result:
1.1. In this case IEntity.getEntityID() will retun
rdf:ID. 1.2. In case of blank entity (previously known as a complex
value) it should return null. 1.3. entityId attribute will be
eliminated.
I suppose we need to do the following changes to IdAS interfaces
to be compatible with CDM:
2.1. BlankEntity class has
been eliminated from cdm.owl. So, I suppose we need to do the same for IdAS
interfaces and replace IBlankEntity with IEntity (eliminate IBlankEntity
interface). Because there is no any difference between entity
and complex value, we can define the following:
2.2. If Entity has been
created by IContext.addEntity(entityType, entityID) method, it should always
have entityID (should not be a blank entity). In other words, a unique value
should be generated by a context and used as entityId, if no entityId
passed. 2.3. If Entity has been created by IAttribute.addValue(URI)
method, it should be a blank entity. 2.4. If Entity has been added by
IAttribute.addValue(IAttributeValue) it should be the same type as passed
entity. If passed entity is a blank entity, new blank entity should be
created as a copy of passed, otherwise a reference to the existent (non
blank) entity should be created. 2.5. When Entity is deleted, all its
subentities which are a blank entity should be deleted
too. Also we need more flex IFilter API: 3.1.
IFilter should be able to query both types of entities as blank as
usual. 3.2. IFilter should be able to query a separate value (entity or
simple value) of any nesting level, not only direct attributes of
Entity. Also I have some notes about CDM: 4.1.
CDM.owl contains entityRelation and contextRelation object properties. Do we
need to reflect them in IdAS interfaces? 4.2. Namespase of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl
ends with .owl. Is it correct?
Thanks, Sergey
Lyakhov
_______________________________________________ higgins-dev mailing
list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal
Re: [higgins-dev] IdAS changes proposal
Sergey,
Hmmm, this is a tough one. We don’t want to lose the investments in the existing CPs (the old .idas.api). Yet we don’t want to create a burden for new CP developers. While we mull this over, I have a question. Do you think it is practical to implement this:
+----------------------------------------+
| Upper CP that implements .idas.api2 |
| SPARQL api but read/writes “raw” |
| entities/attributes from lower CP |
+----------------------------------------+
+----------------------------------------+
| Lower CP implements existing .idas.api |
+----------------------------------------+
If so, then we could maintain both the lower and the upper APIs. Any CP that didn’t want to support the .api2 (upper api) wouldn’t have to, there because they could use the upper “adapter” CP. The result might be very slow, but at least it (might) work. And if good SPARQL performance was required, then the CP would be force to do a native implementation of .idas.api2.
[One really interesting benefit of implementing SPARQL is that with the above adapter plus a web service front end, we can expose any IdAS data source as a SPARQL endpoint. Then we’d have XDI and SPARQL endpoints for the Attribute Service. The Linked Object Data (LOD) semweb folks are creating lots of SPARQL endpoints—we’d dovetail with these efforts.
--Paul
On 10/15/09 6:23 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
Sorry for delay.
> 3. Jim Sermersheim invented IFilter because we needed something and SPARQL wasn’t yet established. Now that it is, I wonder if we shouldn’t give it another look
It would be very convinient to use SPARQL for RDF-based context providers (like jena CP). However it would be hard to implement all aspects of SPARQL for context providers which are not based on RDF (JNDI, XML, Hibernate etc.).
> When you go to make these changes, it will be critical to load into your workbench every possible context
> provider that you can find so that you can fix them so that they don’t all break.
It will take a lot of work to implement new filter/model for all providers. So, I suppose there is a sence to put new IdAS interfaces into a new project (like org.eclipse.higgins.idas.api2) and than fix all providers to support these new interfaces. What do you think about this?
Thanks,
Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...> ; Paul Trevithick <paul@...> ; Igor Tsinman <itsinman@...>
Sent: Monday, September 28, 2009 3:11 AM
Subject: Re: [higgins-dev] IdAS changes proposal
Sergey,
My responses:
- agree
- agree
- Jim Sermersheim invented IFilter because we needed something and SPARQL wasn’t yet established. Now that it is, I wonder if we shouldn’t give it another look
- (4.1): short answer: no. Longer answer: cdm.owl is an attempt to approximate in owl concepts that cannot be directly operationalized in real RDF/OWL based systems. Only higgins.owl should be imported and used. Cdm.owl is just an attempt at explanation. It can be ignored. (4.2) A lot of OWL URLS end in .owl, but it isn’t a firm requirement or convention.
When you go to make these changes, it will be critical to load into your workbench every possible context provider that you can find so that you can fix them so that they don’t all break.
--Paul
On 9/23/09 12:07 PM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
I suppose, cdm:entityId is redundant and we can use rdf:ID instead. As a result:
1.1. In this case IEntity.getEntityID() will retun rdf:ID.
1.2. In case of blank entity (previously known as a complex value) it should return null.
1.3. entityId attribute will be eliminated.
I suppose we need to do the following changes to IdAS interfaces to be compatible with CDM:
2.1. BlankEntity class has been eliminated from cdm.owl. So, I suppose we need to do the same for IdAS interfaces and replace IBlankEntity with IEntity (eliminate IBlankEntity interface).
Because there is no any difference between entity and complex value, we can define the following:
2.2. If Entity has been created by IContext.addEntity(entityType, entityID) method, it should always have entityID (should not be a blank entity). In other words, a unique value should be generated by a context and used as entityId, if no entityId passed.
2.3. If Entity has been created by IAttribute.addValue(URI) method, it should be a blank entity.
2.4. If Entity has been added by IAttribute.addValue(IAttributeValue) it should be the same type as passed entity. If passed entity is a blank entity, new blank entity should be created as a copy of passed, otherwise a reference to the existent (non blank) entity should be created.
2.5. When Entity is deleted, all its subentities which are a blank entity should be deleted too.
Also we need more flex IFilter API:
3.1. IFilter should be able to query both types of entities as blank as usual.
3.2. IFilter should be able to query a separate value (entity or simple value) of any nesting level, not only direct attributes of Entity.
Also I have some notes about CDM:
4.1. CDM.owl contains entityRelation and contextRelation object properties. Do we need to reflect them in IdAS interfaces?
4.2. Namespase of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl ends with .owl. Is it correct?
Thanks,
Sergey Lyakhov
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Re: [higgins-dev] IdAS changes proposal
Paul,
> Do you think
it is practical to implement this:
> +----------------------------------------+ > |
Upper CP that implements .idas.api2 | > | SPARQL api but
read/writes raw | > |
entities/attributes from lower CP | >
+----------------------------------------+ >
+----------------------------------------+ > | Lower CP implements
existing .idas.api | >
+----------------------------------------+
I think we are able to implement basic
aspects of SPARQL which will satisfy our requirements. However it
will be difficult to implement many aspects of SPARQL such as FILTER
functions in WHERE clause (moreover, there is no any equivalent of
those functions in idas.api.IFilter). For example, if I want to use
regex(..) SPARQL FILTER function in Upper
CP, I'll need first select all entities from old CP, and than make
additional check selecting entities which conform to the regexp.
Thanks, Sergey Lyakhov
----- Original Message -----
Sent: Thursday, October 15, 2009 4:31
PM
Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
Hmmm, this is a tough one. We dont
want to lose the investments in the existing CPs (the old .idas.api). Yet we
dont want to create a burden for new CP developers. While we mull this over,
I have a question. Do you think it is practical to implement
this:
+----------------------------------------+ | Upper CP
that implements .idas.api2 | | SPARQL api but
read/writes raw | |
entities/attributes from lower CP
| +----------------------------------------+ +----------------------------------------+ |
Lower CP implements existing .idas.api
| +----------------------------------------+
If so, then we could maintain both the lower and the upper
APIs. Any CP that didnt want to support the .api2 (upper api) wouldnt have
to, there because they could use the upper adapter CP. The result might be
very slow, but at least it (might) work. And if good SPARQL performance was
required, then the CP would be force to do a native implementation of
.idas.api2.
[One really interesting benefit of implementing SPARQL is
that with the above adapter plus a web service front end, we can expose any
IdAS data source as a SPARQL endpoint. Then wed have XDI and SPARQL endpoints
for the Attribute Service. The Linked Object Data (LOD) semweb folks are
creating lots of SPARQL endpointswed dovetail with these
efforts.
--Paul
On 10/15/09 6:23 AM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
Sorry for
delay.
> 3. Jim Sermersheim invented
IFilter because we needed something and SPARQL wasnt yet established. Now
that it is, I wonder if we shouldnt give it another look
It would be very convinient to use SPARQL for
RDF-based context providers (like jena CP). However it would be hard
to implement all aspects of SPARQL for context providers which are not based
on RDF (JNDI, XML, Hibernate etc.). > When you go to make these
changes, it will be critical to load into your workbench every possible
context > provider that you can find so that you can fix them so that
they dont all break.
It
will take a lot of work to implement new filter/model for all providers. So,
I suppose there is a sence to put new IdAS interfaces into a new project
(like org.eclipse.higgins.idas.api2) and than fix all providers to support
these new interfaces. What do you think about
this? Thanks, Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Monday, September 28, 2009 3:11
AM Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
My
responses:
- agree
- agree
- Jim
Sermersheim invented IFilter because we needed something and
SPARQL wasnt yet established. Now that it is, I wonder if we
shouldnt give it another look
- (4.1): short
answer: no. Longer answer: cdm.owl is an attempt to approximate in
owl concepts that cannot be directly operationalized in real
RDF/OWL based systems. Only higgins.owl should be imported and
used. Cdm.owl is just an attempt at explanation. It can be
ignored. (4.2) A lot of OWL URLS end in .owl, but it isnt a firm
requirement or convention.
When you go to make
these changes, it will be critical to load into your workbench every
possible context provider that you can find so that you can fix them
so that they dont all break.
--Paul
On 9/23/09 12:07
PM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
I suppose, cdm:entityId is redundant and we can use rdf:ID
instead. As a result:
1.1. In this case
IEntity.getEntityID() will retun rdf:ID. 1.2. In case of blank
entity (previously known as a complex value) it should return
null. 1.3. entityId attribute will be
eliminated.
I suppose we need to do the following changes to IdAS
interfaces to be compatible with CDM:
2.1. BlankEntity class
has been eliminated from cdm.owl. So, I suppose we need to do the
same for IdAS interfaces and replace IBlankEntity with IEntity
(eliminate IBlankEntity interface). Because there is
no any difference between entity and complex value, we can define
the following:
2.2. If Entity has been created by
IContext.addEntity(entityType, entityID) method, it should always
have entityID (should not be a blank entity). In other words, a
unique value should be generated by a context and used as
entityId, if no entityId passed. 2.3. If Entity has been
created by IAttribute.addValue(URI) method, it should be a blank
entity. 2.4. If Entity has been added by
IAttribute.addValue(IAttributeValue) it should be the same type as
passed entity. If passed entity is a blank entity, new blank
entity should be created as a copy of passed, otherwise a
reference to the existent (non blank) entity should be
created. 2.5. When Entity is deleted, all its subentities which
are a blank entity should be deleted too. Also we
need more flex IFilter API: 3.1. IFilter should be
able to query both types of entities as blank as usual. 3.2.
IFilter should be able to query a separate value (entity or simple
value) of any nesting level, not only direct attributes of
Entity. Also I have some notes about
CDM: 4.1. CDM.owl contains entityRelation and
contextRelation object properties. Do we need to reflect them in
IdAS interfaces? 4.2. Namespase of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl
ends with .owl. Is it correct?
Thanks, Sergey
Lyakhov
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev mailing
list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal
Re: [higgins-dev] IdAS changes proposal
Sergey,
Let me see if I understand what you are saying. Are you saying this:
- We could implement the .api2 CP as shown below, but it will be difficult to implement in it many aspects of SPARQL because the semantics can’t be expressed in the .api CP using .api.IFilter.
If yes, then I was thinking was different. I was not assuming that .api.IFilter semantics were sufficient to express the SPARQL semantics directly. I was, however, assuming that the upper .api2 CP may in some cases have to read (using lower .api CP) many, most, and sometimes ALL (!) entities from the lower .api CP and perform the SPARQL WHERE filtering algorithms itself. And this is why I was saying that the performance may be very bad when this two layer approach is taken.
I’m looking for a solution that allows the old .api to be maintained and to be able to reuse these “old” CPs by adapting them with the upper .api2 CP. If the performance is too bad, then the developer can implement a “native” (not two layered) CP using .api2.
--Paul
On 10/15/09 11:27 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
> Do you think it is practical to implement this:
> +----------------------------------------+
> | Upper CP that implements .idas.api2 |
> | SPARQL api but read/writes “raw” |
> | entities/attributes from lower CP |
> +----------------------------------------+
> +----------------------------------------+
> | Lower CP implements existing .idas.api |
> +----------------------------------------+
I think we are able to implement basic aspects of SPARQL which will satisfy our requirements. However it will be difficult to implement many aspects of SPARQL such as FILTER functions in WHERE clause (moreover, there is no any equivalent of those functions in idas.api.IFilter). For example, if I want to use regex(..) SPARQL FILTER function in Upper CP, I'll need first select all entities from old CP, and than make additional check selecting entities which conform to the regexp.
Thanks,
Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...> ; Paul Trevithick <paul@...> ; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009 4:31 PM
Subject: Re: [higgins-dev] IdAS changes proposal
Sergey,
Hmmm, this is a tough one. We don’t want to lose the investments in the existing CPs (the old .idas.api). Yet we don’t want to create a burden for new CP developers. While we mull this over, I have a question. Do you think it is practical to implement this:
+----------------------------------------+
| Upper CP that implements .idas.api2 |
| SPARQL api but read/writes “raw” |
| entities/attributes from lower CP |
+----------------------------------------+
+----------------------------------------+
| Lower CP implements existing .idas.api |
+----------------------------------------+
If so, then we could maintain both the lower and the upper APIs. Any CP that didn’t want to support the .api2 (upper api) wouldn’t have to, there because they could use the upper “adapter” CP. The result might be very slow, but at least it (might) work. And if good SPARQL performance was required, then the CP would be force to do a native implementation of .idas.api2.
[One really interesting benefit of implementing SPARQL is that with the above adapter plus a web service front end, we can expose any IdAS data source as a SPARQL endpoint. Then we’d have XDI and SPARQL endpoints for the Attribute Service. The Linked Object Data (LOD) semweb folks are creating lots of SPARQL endpoints—we’d dovetail with these efforts.
--Paul
On 10/15/09 6:23 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
Sorry for delay.
> 3. Jim Sermersheim invented IFilter because we needed something and SPARQL wasn’t yet established. Now that it is, I wonder if we shouldn’t give it another look
It would be very convinient to use SPARQL for RDF-based context providers (like jena CP). However it would be hard to implement all aspects of SPARQL for context providers which are not based on RDF (JNDI, XML, Hibernate etc.).
> When you go to make these changes, it will be critical to load into your workbench every possible context
> provider that you can find so that you can fix them so that they don’t all break.
It will take a lot of work to implement new filter/model for all providers. So, I suppose there is a sence to put new IdAS interfaces into a new project (like org.eclipse.higgins.idas.api2) and than fix all providers to support these new interfaces. What do you think about this?
Thanks,
Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...> ; Paul Trevithick <paul@...> ; Igor Tsinman <itsinman@...>
Sent: Monday, September 28, 2009 3:11 AM
Subject: Re: [higgins-dev] IdAS changes proposal
Sergey,
My responses:
- agree
- agree
- Jim Sermersheim invented IFilter because we needed something and SPARQL wasn’t yet established. Now that it is, I wonder if we shouldn’t give it another look
- (4.1): short answer: no. Longer answer: cdm.owl is an attempt to approximate in owl concepts that cannot be directly operationalized in real RDF/OWL based systems. Only higgins.owl should be imported and used. Cdm.owl is just an attempt at explanation. It can be ignored. (4.2) A lot of OWL URLS end in .owl, but it isn’t a firm requirement or convention.
When you go to make these changes, it will be critical to load into your workbench every possible context provider that you can find so that you can fix them so that they don’t all break.
--Paul
On 9/23/09 12:07 PM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
I suppose, cdm:entityId is redundant and we can use rdf:ID instead. As a result:
1.1. In this case IEntity.getEntityID() will retun rdf:ID.
1.2. In case of blank entity (previously known as a complex value) it should return null.
1.3. entityId attribute will be eliminated.
I suppose we need to do the following changes to IdAS interfaces to be compatible with CDM:
2.1. BlankEntity class has been eliminated from cdm.owl. So, I suppose we need to do the same for IdAS interfaces and replace IBlankEntity with IEntity (eliminate IBlankEntity interface).
Because there is no any difference between entity and complex value, we can define the following:
2.2. If Entity has been created by IContext.addEntity(entityType, entityID) method, it should always have entityID (should not be a blank entity). In other words, a unique value should be generated by a context and used as entityId, if no entityId passed.
2.3. If Entity has been created by IAttribute.addValue(URI) method, it should be a blank entity.
2.4. If Entity has been added by IAttribute.addValue(IAttributeValue) it should be the same type as passed entity. If passed entity is a blank entity, new blank entity should be created as a copy of passed, otherwise a reference to the existent (non blank) entity should be created.
2.5. When Entity is deleted, all its subentities which are a blank entity should be deleted too.
Also we need more flex IFilter API:
3.1. IFilter should be able to query both types of entities as blank as usual.
3.2. IFilter should be able to query a separate value (entity or simple value) of any nesting level, not only direct attributes of Entity.
Also I have some notes about CDM:
4.1. CDM.owl contains entityRelation and contextRelation object properties. Do we need to reflect them in IdAS interfaces?
4.2. Namespase of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl ends with .owl. Is it correct?
Thanks,
Sergey Lyakhov
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Re: [higgins-dev] IdAS changes proposal
Paul,
Actually, I did mean the following:
1. Main point - it is difficult to implement
full SPARQL specification in Upper CP because it is really difficult
task. In other words, we can implement "restricted" SPARQL
functionality where some queries will not work.
2. (as you understood) some semantics
cant be expressed in the .api CP using .api.IFilter. For such
queries (where regex() is present for an example) Upper CP will work
solwly.
Thanks, Sergey Lyakhov
----- Original Message -----
Sent: Thursday, October 15, 2009 6:41
PM
Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
Let me see if I understand what you are
saying. Are you saying this:
- We could
implement the .api2 CP as shown below, but it will be difficult to implement
in it many aspects of SPARQL because the semantics cant be expressed in the
.api CP using .api.IFilter.
If yes, then I was
thinking was different. I was not assuming that .api.IFilter semantics
were sufficient to express the SPARQL semantics directly. I was, however,
assuming that the upper .api2 CP may in some cases have to read (using lower
.api CP) many, most, and sometimes ALL (!) entities from the lower .api CP and
perform the SPARQL WHERE filtering algorithms itself. And this is why I was
saying that the performance may be very bad when this two layer approach is
taken.
Im looking for a solution that allows the old .api to be
maintained and to be able to reuse these old CPs by adapting them with the
upper .api2 CP. If the performance is too bad, then the developer can
implement a native (not two layered) CP using .api2.
--Paul
On
10/15/09 11:27 AM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
> Do you
think it is practical to implement this: >
+----------------------------------------+ > | Upper CP that
implements .idas.api2 | > | SPARQL api but
read/writes raw | > |
entities/attributes from lower CP | >
+----------------------------------------+ >
+----------------------------------------+ > | Lower CP implements
existing .idas.api | >
+----------------------------------------+
I think we are able to implement basic aspects of SPARQL which
will satisfy our requirements. However it will be difficult to implement
many aspects of SPARQL such as FILTER functions in WHERE clause (moreover,
there is no any equivalent of those functions in idas.api.IFilter). For
example, if I want to use regex(..) SPARQL FILTER function in
Upper CP, I'll need first select all entities from old CP,
and than make additional check selecting entities which conform to the
regexp.
Thanks, Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009 4:31
PM Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
Hmmm, this is a tough one.
We dont want to lose the investments in the existing CPs (the old
.idas.api). Yet we dont want to create a burden for new CP
developers. While we mull this over, I have a question. Do you think
it is practical to implement this:
+----------------------------------------+ | Upper
CP that implements .idas.api2 | | SPARQL api
but read/writes raw | |
entities/attributes from lower CP
| +----------------------------------------+ +----------------------------------------+ |
Lower CP implements existing .idas.api
| +----------------------------------------+
If so, then we could maintain both the lower and the
upper APIs. Any CP that didnt want to support the .api2 (upper api)
wouldnt have to, there because they could use the upper adapter
CP. The result might be very slow, but at least it (might) work. And
if good SPARQL performance was required, then the CP would be force
to do a native implementation of .idas.api2.
[One really
interesting benefit of implementing SPARQL is that with the above
adapter plus a web service front end, we can expose any IdAS data
source as a SPARQL endpoint. Then wed have XDI and SPARQL endpoints
for the Attribute Service. The Linked Object Data (LOD) semweb folks
are creating lots of SPARQL endpointswed dovetail with these
efforts.
--Paul
On
10/15/09 6:23 AM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
Sorry for
delay.
> 3. Jim Sermersheim
invented IFilter because we needed something and SPARQL wasnt yet
established. Now that it is, I wonder if we shouldnt give it
another look It would
be very convinient to use SPARQL for RDF-based context
providers (like jena CP). However it would be hard to implement
all aspects of SPARQL for context providers which are not based on
RDF (JNDI, XML, Hibernate etc.). > When you go to make these
changes, it will be critical to load into your workbench every
possible context > provider that you can find so that you
can fix them so that they dont all break.
It will take a lot of work to
implement new filter/model for all providers. So, I suppose there
is a sence to put new IdAS interfaces into a new project (like
org.eclipse.higgins.idas.api2) and than fix all providers to support
these new interfaces. What do you think about
this? Thanks, Sergey
Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Monday, September 28, 2009 3:11
AM Subject: Re: [higgins-dev] IdAS
changes proposal
Sergey,
My
responses:
- agree
- agree
- Jim
Sermersheim invented IFilter because we needed something
and SPARQL wasnt yet established. Now that it is, I
wonder if we shouldnt give it another look
- (4.1):
short answer: no. Longer answer: cdm.owl is an attempt
to approximate in owl concepts that cannot be directly
operationalized in real RDF/OWL based systems. Only
higgins.owl should be imported and used. Cdm.owl is just an
attempt at explanation. It can be ignored. (4.2) A lot
of OWL URLS end in .owl, but it isnt a firm requirement
or convention.
When you go to
make these changes, it will be critical to load into your
workbench every possible context provider that you can
find so that you can fix them so that they dont all break.
--Paul
On 9/23/09 12:07 PM, "Sergey
Lyakhov" <slyakhov@...>
wrote:
Paul,
I suppose,
cdm:entityId is redundant and we can use rdf:ID instead.
As a result:
1.1. In this case IEntity.getEntityID() will retun
rdf:ID. 1.2. In case of blank entity (previously
known as a complex value) it should return null. 1.3.
entityId attribute will be eliminated.
I suppose we need to
do the following changes to IdAS interfaces to be
compatible with CDM:
2.1. BlankEntity
class has been eliminated from cdm.owl. So, I suppose we
need to do the same for IdAS interfaces and replace
IBlankEntity with IEntity (eliminate IBlankEntity
interface). Because there is no any
difference between entity and complex value, we can define
the following:
2.2. If Entity has
been created by IContext.addEntity(entityType, entityID)
method, it should always have entityID (should not be a
blank entity). In other words, a unique value should be
generated by a context and used as entityId, if no entityId
passed. 2.3. If Entity has been created by
IAttribute.addValue(URI) method, it should be a blank
entity. 2.4. If Entity has been added by
IAttribute.addValue(IAttributeValue) it should be the
same type as passed entity. If passed entity is a blank
entity, new blank entity should be created as a copy of
passed, otherwise a reference to the existent (non
blank) entity should be created. 2.5. When Entity is
deleted, all its subentities which are a blank entity
should be deleted too. Also we need more
flex IFilter API: 3.1. IFilter should be
able to query both types of entities as blank as
usual. 3.2. IFilter should be able to query a
separate value (entity or simple value) of any nesting
level, not only direct attributes of
Entity. Also I have some notes about
CDM: 4.1. CDM.owl contains entityRelation
and contextRelation object properties. Do we need to
reflect them in IdAS interfaces? 4.2. Namespase of cdm.owl
http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl
ends with .owl. Is it correct?
Thanks, Sergey
Lyakhov
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev mailing
list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal
Re: [higgins-dev] IdAS changes proposal
Sergey,
Are you proposing that:
- We define a new .api2 that replaces the IFilter stuff with SPARQL.
- We define a sub-set of SPARQL that could be used with .api2 for purposes of creating an adaptor CP, yet would still have acceptable performance.
- We would implement the full new .api2 in any new CPs that are based on RDF technology directly (e.g. Jena) or on something like RDF (e.g. XDI). [Of course as you know Jena has an add-on (ARQ) SPARQL processor, so if we use ARQ + Jena we’re “done” from a raw functionality point of view—we just have to adapt to the IdAS .api2]
- We will inform Mary Ruddy ASAP about any new tech (e.g. ARQ or newer versions of Jena) we want to use for this new CP so we can get the Eclipse legal process going.
--Paul
On 10/15/09 12:16 PM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
Actually, I did mean the following:
1. Main point - it is difficult to implement full SPARQL specification in Upper CP because it is really difficult task. In other words, we can implement "restricted" SPARQL functionality where some queries will not work.
2. (as you understood) some semantics can’t be expressed in the .api CP using .api.IFilter. For such queries (where regex() is present for an example) Upper CP will work solwly.
Thanks,
Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...> ; Paul Trevithick <paul@...> ; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009 6:41 PM
Subject: Re: [higgins-dev] IdAS changes proposal
Sergey,
Let me see if I understand what you are saying. Are you saying this:
- We could implement the .api2 CP as shown below, but it will be difficult to implement in it many aspects of SPARQL because the semantics can’t be expressed in the .api CP using .api.IFilter.
If yes, then I was thinking was different. I was not assuming that .api.IFilter semantics were sufficient to express the SPARQL semantics directly. I was, however, assuming that the upper .api2 CP may in some cases have to read (using lower .api CP) many, most, and sometimes ALL (!) entities from the lower .api CP and perform the SPARQL WHERE filtering algorithms itself. And this is why I was saying that the performance may be very bad when this two layer approach is taken.
I’m looking for a solution that allows the old .api to be maintained and to be able to reuse these “old” CPs by adapting them with the upper .api2 CP. If the performance is too bad, then the developer can implement a “native” (not two layered) CP using .api2.
--Paul
On 10/15/09 11:27 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
> Do you think it is practical to implement this:
> +----------------------------------------+
> | Upper CP that implements .idas.api2 |
> | SPARQL api but read/writes “raw” |
> | entities/attributes from lower CP |
> +----------------------------------------+
> +----------------------------------------+
> | Lower CP implements existing .idas.api |
> +----------------------------------------+
I think we are able to implement basic aspects of SPARQL which will satisfy our requirements. However it will be difficult to implement many aspects of SPARQL such as FILTER functions in WHERE clause (moreover, there is no any equivalent of those functions in idas.api.IFilter). For example, if I want to use regex(..) SPARQL FILTER function in Upper CP, I'll need first select all entities from old CP, and than make additional check selecting entities which conform to the regexp.
Thanks,
Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...> ; Paul Trevithick <paul@...> ; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009 4:31 PM
Subject: Re: [higgins-dev] IdAS changes proposal
Sergey,
Hmmm, this is a tough one. We don’t want to lose the investments in the existing CPs (the old .idas.api). Yet we don’t want to create a burden for new CP developers. While we mull this over, I have a question. Do you think it is practical to implement this:
+----------------------------------------+
| Upper CP that implements .idas.api2 |
| SPARQL api but read/writes “raw” |
| entities/attributes from lower CP |
+----------------------------------------+
+----------------------------------------+
| Lower CP implements existing .idas.api |
+----------------------------------------+
If so, then we could maintain both the lower and the upper APIs. Any CP that didn’t want to support the .api2 (upper api) wouldn’t have to, there because they could use the upper “adapter” CP. The result might be very slow, but at least it (might) work. And if good SPARQL performance was required, then the CP would be force to do a native implementation of .idas.api2.
[One really interesting benefit of implementing SPARQL is that with the above adapter plus a web service front end, we can expose any IdAS data source as a SPARQL endpoint. Then we’d have XDI and SPARQL endpoints for the Attribute Service. The Linked Object Data (LOD) semweb folks are creating lots of SPARQL endpoints—we’d dovetail with these efforts.
--Paul
On 10/15/09 6:23 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
Sorry for delay.
> 3. Jim Sermersheim invented IFilter because we needed something and SPARQL wasn’t yet established. Now that it is, I wonder if we shouldn’t give it another look
It would be very convinient to use SPARQL for RDF-based context providers (like jena CP). However it would be hard to implement all aspects of SPARQL for context providers which are not based on RDF (JNDI, XML, Hibernate etc.).
> When you go to make these changes, it will be critical to load into your workbench every possible context
> provider that you can find so that you can fix them so that they don’t all break.
It will take a lot of work to implement new filter/model for all providers. So, I suppose there is a sence to put new IdAS interfaces into a new project (like org.eclipse.higgins.idas.api2) and than fix all providers to support these new interfaces. What do you think about this?
Thanks,
Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...> ; Paul Trevithick <paul@...> ; Igor Tsinman <itsinman@...>
Sent: Monday, September 28, 2009 3:11 AM
Subject: Re: [higgins-dev] IdAS changes proposal
Sergey,
My responses:
- agree
- agree
- Jim Sermersheim invented IFilter because we needed something and SPARQL wasn’t yet established. Now that it is, I wonder if we shouldn’t give it another look
- (4.1): short answer: no. Longer answer: cdm.owl is an attempt to approximate in owl concepts that cannot be directly operationalized in real RDF/OWL based systems. Only higgins.owl should be imported and used. Cdm.owl is just an attempt at explanation. It can be ignored. (4.2) A lot of OWL URLS end in .owl, but it isn’t a firm requirement or convention.
When you go to make these changes, it will be critical to load into your workbench every possible context provider that you can find so that you can fix them so that they don’t all break.
--Paul
On 9/23/09 12:07 PM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
I suppose, cdm:entityId is redundant and we can use rdf:ID instead. As a result:
1.1. In this case IEntity.getEntityID() will retun rdf:ID.
1.2. In case of blank entity (previously known as a complex value) it should return null.
1.3. entityId attribute will be eliminated.
I suppose we need to do the following changes to IdAS interfaces to be compatible with CDM:
2.1. BlankEntity class has been eliminated from cdm.owl. So, I suppose we need to do the same for IdAS interfaces and replace IBlankEntity with IEntity (eliminate IBlankEntity interface).
Because there is no any difference between entity and complex value, we can define the following:
2.2. If Entity has been created by IContext.addEntity(entityType, entityID) method, it should always have entityID (should not be a blank entity). In other words, a unique value should be generated by a context and used as entityId, if no entityId passed.
2.3. If Entity has been created by IAttribute.addValue(URI) method, it should be a blank entity.
2.4. If Entity has been added by IAttribute.addValue(IAttributeValue) it should be the same type as passed entity. If passed entity is a blank entity, new blank entity should be created as a copy of passed, otherwise a reference to the existent (non blank) entity should be created.
2.5. When Entity is deleted, all its subentities which are a blank entity should be deleted too.
Also we need more flex IFilter API:
3.1. IFilter should be able to query both types of entities as blank as usual.
3.2. IFilter should be able to query a separate value (entity or simple value) of any nesting level, not only direct attributes of Entity.
Also I have some notes about CDM:
4.1. CDM.owl contains entityRelation and contextRelation object properties. Do we need to reflect them in IdAS interfaces?
4.2. Namespase of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl ends with .owl. Is it correct?
Thanks,
Sergey Lyakhov
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Re: [higgins-dev] IdAS changes proposal
Paul,
> 1. We define a new .api2 that replaces the IFilter
stuff with SPARQL.
Yes,
replaces IFilter, removes IBlankEntity, and (perhaps) replaces IModel
interfaces with something you were going to propose.
> 2. We define a
sub-set of SPARQL that could be used with .api2 for purposes of creating an
adaptor CP, yet would still have acceptable performance.
Yes. Also, because SPAR@... allows to query literals, I suppose it would be
useful to query as full Entities as separate attribute values. I
suppose we should add two methods to IContext:
a) Iterator getEntities(String sparql) -
returns iterator of IEntity;
a) Iterator
getValues(String sparql) - returns iterator of List, where list
contains data objects;
> We would
implement the full new .api2 in any new CPs that are based on RDF technology
directly (e.g. Jena) or on something like RDF (e.g. XDI).
Yes.
> We will inform Mary Ruddy ASAP about any new tech (e.g.
ARQ or newer versions of Jena) we want to use for this new CP so we can get the
Eclipse legal process going.
Yes, of course.
Thanks, Sergey Lyakhov
----- Original Message -----
Sent: Thursday, October 15, 2009 9:58
PM
Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
Are you proposing
that:
- We define a new
.api2 that replaces the IFilter stuff with SPARQL.
- We define a
sub-set of SPARQL that could be used with .api2 for purposes of creating an
adaptor CP, yet would still have acceptable performance.
- We would
implement the full new .api2 in any new CPs that are based on RDF technology
directly (e.g. Jena) or on something like RDF (e.g. XDI). [Of course as you
know Jena has an add-on (ARQ) SPARQL processor, so if we use ARQ + Jena
were done from a raw functionality point of viewwe just have to adapt to
the IdAS .api2]
- We will inform
Mary Ruddy ASAP about any new tech (e.g. ARQ or newer versions of Jena) we
want to use for this new CP so we can get the Eclipse legal process
going.
--Paul
On 10/15/09 12:16 PM, "Sergey
Lyakhov" <slyakhov@...>
wrote:
Paul,
Actually, I did
mean the following: 1. Main point - it is difficult to
implement full SPARQL specification in Upper CP because it is really
difficult task. In other words, we can implement "restricted" SPARQL
functionality where some queries will not work. 2. (as you
understood) some semantics cant be expressed in the .api CP using
.api.IFilter. For such queries (where regex() is present for an example)
Upper CP will work solwly. Thanks, Sergey
Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009 6:41
PM Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
Let me see if I understand
what you are saying. Are you saying
this:
- We could
implement the .api2 CP as shown below, but it will be difficult to
implement in it many aspects of SPARQL because the semantics cant
be expressed in the .api CP using
.api.IFilter.
If yes, then I was
thinking was different. I was not assuming that .api.IFilter
semantics were sufficient to express the SPARQL semantics directly.
I was, however, assuming that the upper .api2 CP may in some cases
have to read (using lower .api CP) many, most, and sometimes ALL (!)
entities from the lower .api CP and perform the SPARQL WHERE
filtering algorithms itself. And this is why I was saying that the
performance may be very bad when this two layer approach is taken.
Im looking for a solution that allows the old .api to be
maintained and to be able to reuse these old CPs by adapting them
with the upper .api2 CP. If the performance is too bad, then the
developer can implement a native (not two layered) CP using
.api2.
--Paul
On 10/15/09 11:27 AM, "Sergey Lyakhov"
<slyakhov@...>
wrote:
Paul,
> Do you think it is
practical to implement this: >
+----------------------------------------+ > | Upper CP that
implements .idas.api2 | > | SPARQL api but
read/writes raw | > |
entities/attributes from lower CP
| >
+----------------------------------------+ >
+----------------------------------------+ > | Lower CP
implements existing .idas.api | >
+----------------------------------------+
I think we are able to implement basic aspects of SPARQL
which will satisfy our requirements. However it will be difficult
to implement many aspects of SPARQL such as FILTER functions in
WHERE clause (moreover, there is no any equivalent of those
functions in idas.api.IFilter). For example, if I want to use
regex(..) SPARQL FILTER function in Upper
CP,
I'll need first select all entities from old CP, and than make
additional check selecting entities which conform to the
regexp.
Thanks, Sergey
Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009 4:31
PM Subject: Re: [higgins-dev] IdAS
changes proposal
Sergey,
Hmmm,
this is a tough one. We dont want to lose the investments
in the existing CPs (the old .idas.api). Yet we dont want
to create a burden for new CP developers. While we mull this
over, I have a question. Do you think it is practical to
implement this:
+----------------------------------------+ |
Upper CP that implements .idas.api2
| | SPARQL api but read/writes
raw | |
entities/attributes from lower CP
| +----------------------------------------+ +----------------------------------------+ |
Lower CP implements existing .idas.api
| +----------------------------------------+
If so, then we could maintain both the lower and
the upper APIs. Any CP that didnt want to support the
.api2 (upper api) wouldnt have to, there because they
could use the upper adapter CP. The result might be very
slow, but at least it (might) work. And if good SPARQL
performance was required, then the CP would be force to do
a native implementation of .idas.api2.
[One really
interesting benefit of implementing SPARQL is that with
the above adapter plus a web service front end, we can expose
any IdAS data source as a SPARQL endpoint. Then wed have
XDI and SPARQL endpoints for the Attribute Service. The
Linked Object Data (LOD) semweb folks are creating lots of
SPARQL endpointswed dovetail with these
efforts.
--Paul
On
10/15/09 6:23 AM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
Sorry
for delay.
> 3.
Jim Sermersheim invented IFilter
because we needed something and SPARQL wasnt yet established.
Now that it is, I wonder if we shouldnt give it another
look It
would be very convinient to use SPARQL for
RDF-based context providers (like jena CP).
However it would be hard to implement all aspects of
SPARQL for context providers which are not based on RDF
(JNDI, XML, Hibernate etc.). > When you go to make these
changes, it will be critical to load into your workbench
every possible context > provider that you can
find so that you can fix them so that they dont all
break.
It
will take a lot of work to implement new filter/model
for all providers. So, I suppose there is a sence to put
new IdAS interfaces into a new project (like
org.eclipse.higgins.idas.api2) and than fix all providers to
support these new interfaces. What do you think
about this? Thanks, Sergey
Lyakhov
----- Original Message -----
From: Paul Trevithick
<ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Monday, September 28,
2009 3:11 AM Subject: Re:
[higgins-dev] IdAS changes
proposal
Sergey,
My
responses:
- agree
- agree
- Jim
Sermersheim invented IFilter because we needed
something and SPARQL wasnt yet established.
Now that it is, I wonder if we shouldnt give it
another look
- (4.1): short answer:
no. Longer answer: cdm.owl is an attempt to approximate in
owl concepts that cannot be directly
operationalized in real RDF/OWL based systems.
Only higgins.owl should be imported and used.
Cdm.owl is just an attempt at explanation. It can be
ignored. (4.2) A lot of OWL URLS end in .owl,
but it isnt a firm requirement or
convention.
When you go
to make these changes, it will be critical to
load into your workbench every possible context
provider that you can find so that you can fix them
so that they dont all break.
--Paul
On 9/23/09 12:07 PM,
"Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
I suppose,
cdm:entityId is redundant and we can use rdf:ID
instead. As a result:
1.1. In this
case IEntity.getEntityID() will retun
rdf:ID. 1.2. In case of blank entity
(previously known as a complex value) it should
return null. 1.3. entityId attribute will be
eliminated.
I suppose we
need to do the following changes to IdAS interfaces
to be compatible with CDM:
2.1. BlankEntity
class has been eliminated from cdm.owl. So, I
suppose we need to do the same for IdAS
interfaces and replace IBlankEntity with IEntity
(eliminate IBlankEntity
interface). Because there is no
any difference between entity and complex value, we
can define the following:
2.2. If Entity
has been created by
IContext.addEntity(entityType, entityID) method, it
should always have entityID (should not be a
blank entity). In other words, a unique value
should be generated by a context and used as
entityId, if no entityId passed. 2.3. If
Entity has been created by IAttribute.addValue(URI)
method, it should be a blank entity. 2.4.
If Entity has been added by
IAttribute.addValue(IAttributeValue) it should
be the same type as passed entity. If passed
entity is a blank entity, new blank entity should be
created as a copy of passed, otherwise a
reference to the existent (non blank) entity
should be created. 2.5. When Entity is deleted,
all its subentities which are a blank entity
should be deleted too. Also we
need more flex IFilter API: 3.1.
IFilter should be able to query both types of
entities as blank as usual. 3.2. IFilter
should be able to query a separate value (entity or
simple value) of any nesting level, not only
direct attributes of Entity. Also
I have some notes about CDM: 4.1.
CDM.owl contains entityRelation and
contextRelation object properties. Do we need to
reflect them in IdAS interfaces? 4.2. Namespase
of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl
ends with .owl. Is it correct?
Thanks, Sergey
Lyakhov
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev mailing
list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal
Re: [higgins-dev] IdAS changes proposal
What Jim and all of us talked about several months ago is to remove the special IModel interfaces completely, and just use the existing entities and attributes to describe entity classes and attribute definitions. In other words, recurse.
On 10/16/09 11:49 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
> 1. We define a new .api2 that replaces the IFilter stuff with SPARQL.
<snip>... replaces IModel interfaces with something you were going to propose.
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Re: [higgins-dev] IdAS changes proposal
Paul,
> What Jim and all of us talked about several months ago is to remove
the special IModel interfaces completely, > and just use the existing
entities and attributes to describe entity classes and attribute definitions. In
other words, recurse.
The main Jim's argument to rid IModel interfaces was to reuse alredy
existent IEntity and IAttribute inerfaces. Actually, I already gave arguments a
year ago, why the current model interfaces are more convenient:
1. The current model interfaces allow to represent many things
obviously. Suppose, we need to expose the model of a simple value. If we used
Jim's model, we'd represent simple value model via IEntity intrerface (which is
confusing by itself). Than, to represent params of this simple value (there are
many things in OWL1.1 like length, minLength, maxLength, pattern, etc.), this
IEntity should contain an attribute for each of those params. In turn, the
attribute should contain some ISimpleAttrValue with data of its parameter. From
the other hand, the current IModel interface can reflect OWL in a more
convenient way. If we need params of some simple value, we get an instance of
ISimpleValueModel (either from IAttributeModel or from ISimpleAttrValue), and
invoke its methods getLength(), getMinLength(), getMaxLength() etc.
2. IdAS interfaces (IEntity, IAttribute) have a lot of methods behind of
getType() and getData() which are not used in Jim's model. I suppose these
methods will confuse people which need to use a model.
3. Jim's model is flexible and could represent anything, but we do not need
this, because we limited by OWL and need to describe things which OWL provides.
IModel, in turn, could be disigned to reflect OWL constructs handy.
Thanks, Sergey Lyakhov
----- Original Message -----
Sent: Monday, October 19, 2009 10:55
PM
Subject: Re: [higgins-dev] IdAS changes
proposal
What Jim and all of us talked about several months ago
is to remove the special IModel interfaces completely, and just use the
existing entities and attributes to describe entity classes and attribute
definitions. In other words, recurse.
On 10/16/09 11:49 AM, "Sergey
Lyakhov" <slyakhov@...>
wrote:
>
1. We define a new .api2 that replaces the IFilter stuff with SPARQL.
<snip>... replaces IModel interfaces with something you were
going to propose.
_______________________________________________ higgins-dev mailing
list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal

Some parts of this message have been removed.
Learn more about Nabble's security policy.
Re: [higgins-dev] IdAS changes proposal
Hello,
I commited a new IdAS API, implementation of a new
model and a new RDF CP into Eclipse SVN. The following projects were
added:
1. org.eclipse.higgins.idas.api2 - new IdAS/model API; main changes -
eleminating of BlankEntity, entityId (attribute of Entity) and IFilter
interfaces.
2. org.eclipse.higgins.idas.cp.model2 and
org.eclipse.higgins.idas.cp.model2.test -
implementation of a new model;
3.
org.eclipse.higgins.idas.cp.rdf2 and org.eclipse.higgins.idas.cp.rdf2.test
- implementation of new IdAS API.
4. org.eclipse.higgins.idas.common2 and
org.eclipse.higgins.idas.registry2 - duplicates of the same previous
projects which need to be used with a new API. IdAS registry was duplicated to
provide the possibility to use both IdAS API in the same application.
Thanks, Sergey Lyakhov
----- Original Message -----
Sent: Friday, October 16, 2009 5:49
PM
Subject: Re: [higgins-dev] IdAS changes
proposal
Paul,
> 1. We define a new .api2 that replaces the IFilter
stuff with SPARQL.
Yes,
replaces IFilter, removes IBlankEntity, and (perhaps) replaces IModel
interfaces with something you were going to propose.
> 2. We define
a sub-set of SPARQL that could be used with .api2 for purposes of creating an
adaptor CP, yet would still have acceptable performance.
Yes. Also, because SPAR@... allows to query literals, I suppose it would
be useful to query as full Entities as separate attribute values. I
suppose we should add two methods to IContext:
a) Iterator getEntities(String sparql) -
returns iterator of IEntity;
a) Iterator
getValues(String sparql) - returns iterator of List, where list
contains data objects;
> We would
implement the full new .api2 in any new CPs that are based on RDF technology
directly (e.g. Jena) or on something like RDF (e.g. XDI).
Yes.
> We will inform Mary Ruddy ASAP about any new tech
(e.g. ARQ or newer versions of Jena) we want to use for this new CP so we can
get the Eclipse legal process going.
Yes, of course.
Thanks, Sergey Lyakhov
----- Original Message -----
Sent: Thursday, October 15, 2009 9:58
PM
Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
Are you proposing
that:
- We define a
new .api2 that replaces the IFilter stuff with SPARQL.
- We define a
sub-set of SPARQL that could be used with .api2 for purposes of creating
an adaptor CP, yet would still have acceptable performance.
- We would
implement the full new .api2 in any new CPs that are based on RDF
technology directly (e.g. Jena) or on something like RDF (e.g. XDI). [Of
course as you know Jena has an add-on (ARQ) SPARQL processor, so if we use
ARQ + Jena were done from a raw functionality point of viewwe just
have to adapt to the IdAS .api2]
- We will inform
Mary Ruddy ASAP about any new tech (e.g. ARQ or newer versions of Jena) we
want to use for this new CP so we can get the Eclipse legal process
going.
--Paul
On 10/15/09 12:16 PM, "Sergey
Lyakhov" <slyakhov@...>
wrote:
Paul,
Actually, I did
mean the following: 1. Main point - it is difficult to
implement full SPARQL specification in Upper CP because it is really
difficult task. In other words, we can implement "restricted" SPARQL
functionality where some queries will not work. 2. (as you
understood) some semantics cant be expressed in the .api CP using
.api.IFilter. For such queries (where regex() is present for an example)
Upper CP will work solwly. Thanks, Sergey
Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009 6:41
PM Subject: Re: [higgins-dev] IdAS changes
proposal
Sergey,
Let me see if I
understand what you are saying. Are you saying
this:
- We could
implement the .api2 CP as shown below, but it will be difficult
to implement in it many aspects of SPARQL because the semantics
cant be expressed in the .api CP using
.api.IFilter.
If yes, then I was
thinking was different. I was not assuming that
.api.IFilter semantics were sufficient to express the SPARQL
semantics directly. I was, however, assuming that the upper .api2
CP may in some cases have to read (using lower .api CP) many,
most, and sometimes ALL (!) entities from the lower .api CP and
perform the SPARQL WHERE filtering algorithms itself. And this is
why I was saying that the performance may be very bad when this
two layer approach is taken.
Im looking for a solution
that allows the old .api to be maintained and to be able to reuse
these old CPs by adapting them with the upper .api2 CP. If the
performance is too bad, then the developer can implement a
native (not two layered) CP using .api2.
--Paul
On
10/15/09 11:27 AM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
> Do you think it is
practical to implement this: >
+----------------------------------------+ > | Upper CP
that implements .idas.api2 | > | SPARQL
api but read/writes raw
| > |
entities/attributes from lower CP
| >
+----------------------------------------+ >
+----------------------------------------+ > | Lower CP
implements existing .idas.api | >
+----------------------------------------+
I think we are able to implement basic aspects of SPARQL
which will satisfy our requirements. However it will be
difficult to implement many aspects of SPARQL such as FILTER
functions in WHERE clause (moreover, there is no any equivalent
of those functions in idas.api.IFilter). For example, if I want
to use regex(..) SPARQL FILTER function in Upper
CP, I'll need first select all entities from old
CP, and than make additional check selecting entities which
conform to the regexp.
Thanks, Sergey
Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Thursday, October 15, 2009
4:31 PM Subject: Re: [higgins-dev]
IdAS changes
proposal
Sergey,
Hmmm, this is a
tough one. We dont want to lose the investments in the
existing CPs (the old .idas.api). Yet we dont want to
create a burden for new CP developers. While we mull this
over, I have a question. Do you think it is practical to
implement this:
+----------------------------------------+ |
Upper CP that implements .idas.api2
| | SPARQL api but read/writes
raw | |
entities/attributes from lower CP
| +----------------------------------------+ +----------------------------------------+ |
Lower CP implements existing .idas.api
| +----------------------------------------+
If so, then we could maintain both the lower and
the upper APIs. Any CP that didnt want to support the
.api2 (upper api) wouldnt have to, there because they
could use the upper adapter CP. The result might be
very slow, but at least it (might) work. And if good
SPARQL performance was required, then the CP would be force
to do a native implementation of .idas.api2.
[One
really interesting benefit of implementing SPARQL is
that with the above adapter plus a web service front
end, we can expose any IdAS data source as a SPARQL
endpoint. Then wed have XDI and SPARQL endpoints for
the Attribute Service. The Linked Object Data (LOD) semweb folks
are creating lots of SPARQL endpointswed dovetail with
these efforts.
--Paul
On
10/15/09 6:23 AM, "Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
Sorry for
delay.
> 3. Jim Sermersheim
invented IFilter because we needed something and
SPARQL wasnt yet established. Now that it is, I
wonder if we shouldnt give it another look
It would be very
convinient to use SPARQL for RDF-based context
providers (like jena CP). However it would be hard to
implement all aspects of SPARQL for context providers which
are not based on RDF (JNDI, XML, Hibernate
etc.). > When you go to make these changes, it
will be critical to load into your workbench every possible
context > provider that you can find so that you
can fix them so that they dont all
break.
It
will take a lot of work to implement new filter/model
for all providers. So, I suppose there is a sence to
put new IdAS interfaces into a new project (like
org.eclipse.higgins.idas.api2) and than fix all providers to
support these new interfaces. What do you think
about this? Thanks, Sergey
Lyakhov
----- Original Message -----
From: Paul
Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...>
; Paul Trevithick <paul@...>
; Igor Tsinman <itsinman@...>
Sent: Monday, September
28, 2009 3:11 AM Subject:
Re: [higgins-dev] IdAS changes
proposal
Sergey,
My
responses:
- agree
- agree
- Jim Sermersheim
invented IFilter because we needed something and
SPARQL wasnt yet established. Now that it is, I
wonder if we shouldnt give it another look
- (4.1): short answer:
no. Longer answer: cdm.owl is an attempt to approximate
in owl concepts that cannot be directly
operationalized in real RDF/OWL based
systems. Only higgins.owl should be imported and
used. Cdm.owl is just an attempt at
explanation. It can be ignored. (4.2) A lot of OWL
URLS end in .owl, but it isnt a firm requirement
or convention.
When you
go to make these changes, it will be critical
to load into your workbench every possible context
provider that you can find so that you can fix them
so that they dont all break.
--Paul
On 9/23/09 12:07 PM,
"Sergey Lyakhov" <slyakhov@...>
wrote:
Paul,
I suppose,
cdm:entityId is redundant and we can use rdf:ID
instead. As a result:
1.1. In this
case IEntity.getEntityID() will retun
rdf:ID. 1.2. In case of blank entity
(previously known as a complex value) it should
return null. 1.3. entityId attribute will be
eliminated.
I suppose we
need to do the following changes to IdAS
interfaces to be compatible with
CDM:
2.1. BlankEntity class has been
eliminated from cdm.owl. So, I suppose we need to do the
same for IdAS interfaces and replace
IBlankEntity with IEntity (eliminate IBlankEntity
interface). Because there is no
any difference between entity and complex value,
we can define the following:
2.2. If Entity
has been created by
IContext.addEntity(entityType, entityID) method,
it should always have entityID (should not be a
blank entity). In other words, a unique value
should be generated by a context and used as
entityId, if no entityId passed. 2.3. If
Entity has been created by
IAttribute.addValue(URI) method, it should be a
blank entity. 2.4. If Entity has been added by
IAttribute.addValue(IAttributeValue) it
should be the same type as passed entity. If
passed entity is a blank entity, new blank entity
should be created as a copy of passed, otherwise a
reference to the existent (non blank) entity
should be created. 2.5. When Entity is deleted,
all its subentities which are a blank entity
should be deleted too. Also we
need more flex IFilter API: 3.1.
IFilter should be able to query both types
of entities as blank as usual. 3.2.
IFilter should be able to query a separate value
(entity or simple value) of any nesting
level, not only direct attributes of
Entity. Also I have some notes
about CDM: 4.1. CDM.owl
contains entityRelation and contextRelation object
properties. Do we need to reflect them in
IdAS interfaces? 4.2. Namespase of cdm.owl http://www.eclipse.org/higgins/ontologies/2008/6/cdm.owl
ends with .owl. Is it
correct?
Thanks, Sergey
Lyakhov
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev
mailing list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev
mailing
list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________ higgins-dev mailing
list higgins-dev@... https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|

|
Re: IdAS changes proposal
Re: [higgins-dev] IdAS changes proposal
Sergey,
Since you, Valery and perhaps others think that having a model API would be much more convenient to use than directly navigating the entities/attributes, let’s keep the IModel interface (and related interfaces). But must align them with the underlying entities & attributes as described here [1]. I’ve updated [1] recently thus creating some mismatches. Please review [1] and let me know if anything is unclear as to what the semantics are supposed to be.
[BTW, I’m aware that the concept of display order is missing from [1] and it probably needs to be added. I’m thinking that it should be added as an attribute of a “class-scoped attribute class”].
--Paul
[1] http://wiki.eclipse.org/Higgins_Data_Model_1.1#Representation_of_Entity_and_Attribute_Classes
On 10/21/09 10:17 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
Paul,
> What Jim and all of us talked about several months ago is to remove the special IModel interfaces completely,
> and just use the existing entities and attributes to describe entity classes and attribute definitions. In other words, recurse.
The main Jim's argument to rid IModel interfaces was to reuse alredy existent IEntity and IAttribute inerfaces. Actually, I already gave arguments a year ago, why the current model interfaces are more convenient:
1. The current model interfaces allow to represent many things obviously. Suppose, we need to expose the model of a simple value. If we used Jim's model, we'd represent simple value model via IEntity intrerface (which is confusing by itself). Than, to represent params of this simple value (there are many things in OWL1.1 like length, minLength, maxLength, pattern, etc.), this IEntity should contain an attribute for each of those params. In turn, the attribute should contain some ISimpleAttrValue with data of its parameter. From the other hand, the current IModel interface can reflect OWL in a more convenient way. If we need params of some simple value, we get an instance of ISimpleValueModel (either from IAttributeModel or from ISimpleAttrValue), and invoke its methods getLength(), getMinLength(), getMaxLength() etc.
2. IdAS interfaces (IEntity, IAttribute) have a lot of methods behind of getType() and getData() which are not used in Jim's model. I suppose these methods will confuse people which need to use a model.
3. Jim's model is flexible and could represent anything, but we do not need this, because we limited by OWL and need to describe things which OWL provides. IModel, in turn, could be disigned to reflect OWL constructs handy.
Thanks,
Sergey Lyakhov
----- Original Message -----
From: Paul Trevithick <ptrevithick@...>
To: higgins-dev <higgins-dev@...>
Cc: Vadym Synakh <synakh@...> ; Paul Trevithick <paul@...> ; Igor Tsinman <itsinman@...>
Sent: Monday, October 19, 2009 10:55 PM
Subject: Re: [higgins-dev] IdAS changes proposal
What Jim and all of us talked about several months ago is to remove the special IModel interfaces completely, and just use the existing entities and attributes to describe entity classes and attribute definitions. In other words, recurse.
On 10/16/09 11:49 AM, "Sergey Lyakhov" <slyakhov@...> wrote:
> 1. We define a new .api2 that replaces the IFilter stuff with SPARQL.
<snip>... replaces IModel interfaces with something you were going to propose.
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@...
https://dev.eclipse.org/mailman/listinfo/higgins-dev
|