<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Brad,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>OK, we&#8217;ll switch to fdo-internals.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thanks,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Orest.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> fdo-users-bounces@lists.osgeo.org
[mailto:fdo-users-bounces@lists.osgeo.org] <b>On Behalf Of </b>Brad Nesom<br>
<b>Sent:</b> Monday, July 26, 2010 10:15 AM<br>
<b>To:</b> FDO Users Mail List<br>
<b>Subject:</b> Re: [fdo-users] RE: Object and Association Support<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<div>

<p class=MsoNormal>i'm not complaining, (maybe some good programming techniques
will rub off), but is this an fdo-users thread or an fdo-internals? It is quite
a bit over my head.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>:)<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>On Mon, Jul 26, 2010 at 7:30 AM, Orest Halustchak &lt;<a
href="mailto:orest.halustchak@autodesk.com">orest.halustchak@autodesk.com</a>&gt;
wrote:<o:p></o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'>Hi,<br>
<br>
One of the things available with associations is the definition and handling of
cardinality rules and cascade delete rules. With object properties, the objects
are contained within the parent object and automatically would be deleted when
the parent is deleted. It provides not just the advertising of where there are
associations and object properties, but some management of them as well.<br>
<br>
Crispin, yes, these allow the handling of association rules and complex objects
that contain ADT style properties to be managed by the provider / server. You
said 'These can, of course, be modelled at the application level but rich
object management is just a &quot;better&quot; way of handling the real-world.'
It's a question that comes up for the more advanced capabilities and data types
that may only be implemented by a smaller number of FDO providers. If a user
wanted to take advantage of those capabilities, then they would be restricted
to the providers that support them. The other argument is that if advanced
capabilities can be implemented above the FDO level, then possibly they could
be available with more providers since the providers don't have to be upgraded
to handle all the new capabilities (and there are quite a few providers
available now, open source and commercial, and growing). Personally, I feel
that there are cases where something cannot be done easily or with enough
performance above FDO where you can argue that it should be at the FDO level.
But, should we also be looking at the alternative where it may make sense? There
is obviously a trade off of where data integrity rules are known versus more
wide-spread use of the capability. Open question. Note that there was some
roughly related discussion a while ago as part of a &quot;futures
discussion&quot;: <a href="http://trac.osgeo.org/fdo/wiki/FdoClientUtilities"
target="_blank">http://trac.osgeo.org/fdo/wiki/FdoClientUtilities</a><br>
<br>
<br>
Thanks,<br>
Orest.<br>
<br>
<br>
-----Original Message-----<br>
From: <a href="mailto:fdo-users-bounces@lists.osgeo.org">fdo-users-bounces@lists.osgeo.org</a>
[mailto:<a href="mailto:fdo-users-bounces@lists.osgeo.org">fdo-users-bounces@lists.osgeo.org</a>]
On Behalf Of Brent Robinson<br>
Sent: Friday, July 23, 2010 1:30 PM<br>
To: FDO Users Mail List<br>
Subject: RE: [fdo-users] RE: Object and Association Support<br>
<br>
Associated geometry is an interesting case. I tried a select, with filter
similar to:<br>
<br>
&nbsp; &nbsp;ParentClass.ChildAssociation.Geom EnvelopeIntersects<br>
&nbsp; &nbsp;GeomFromText('&lt;geometry text&gt;')<br>
<br>
with the OSGeo.MySQL and OSGeo.PostgreSQL providers but it didn't work. The
scoping got removed and it tried to filter on ParentClass.Geom. However, a
filter on a data property such as:<br>
<br>
&nbsp; &nbsp;&quot;ParentClass.ChildObject.Value = 1&quot;<br>
<br>
works fine. I don't know of any technical reason why the filter on associated
geometry would not work; it would probably be just a matter of bug fixing to
get these providers to support it.<br>
<br>
In the case of 1:m associations, the &quot;ParentClass.ChildObject.Value =
1&quot; would select all ParentClass features with at least one associated
ChildObject with Value=1. However, when I tried this with the MySQL provider,
if a feature had 2 ChildObjects that passed the filter, then the feature got
selected twice.<br>
<br>
Since associations have been under-utilized sofar, there are probably a few
bugs like the above-mentioned ones, that would need to be fixed before
association properties would be working smoothly.<br>
<br>
<br>
-----Original Message-----<br>
From: <a href="mailto:fdo-users-bounces@lists.osgeo.org">fdo-users-bounces@lists.osgeo.org</a>
[mailto:<a href="mailto:fdo-users-bounces@lists.osgeo.org">fdo-users-bounces@lists.osgeo.org</a>]
On Behalf Of Crispin_at_1Spatial<br>
Sent: Friday, July 23, 2010 3:46 AM<br>
To: <a href="mailto:fdo-users@lists.osgeo.org">fdo-users@lists.osgeo.org</a><br>
Subject: [fdo-users] RE: Object and Association Support<br>
<br>
<br>
Orest,<br>
<br>
<br>
Orest Halustchak wrote:<br>
&gt;<br>
&gt; Crispin, do you have some examples of the types of data models that you<br>
&gt; would like to support?<br>
&gt;<br>
<br>
This very simple example is for the management of cartographic labelling for<br>
an object - is positioned text. &nbsp;I am sure this is something that has been<br>
asked of some of the high-end editing clients using FDO.<br>
<br>
Take a river class - some rivers are short and have no labels (these<br>
requirements are for positioned 'cartographic' labels, not auto-generated<br>
labels). &nbsp;Some have one and some have many. &nbsp;The labels do not exist
as a<br>
&quot;layer&quot; themselves as are only ever associated with the river - when
the<br>
river is off they disappear without needing to have application-level logic<br>
such as a layer-group fudge. &nbsp;Editing the label geometry is really editing<br>
one of the complex geometry/attribute the river object.<br>
<br>
More complex examples such as property boundaries containing properties and<br>
masts where the properties and masts are entities of their own and also<br>
shared with other objects. &nbsp;These can, of course, be modelled at the<br>
application level but rich object management is just a &quot;better&quot; way
of<br>
handling the real-world.<br>
Just as managing topographic detail is moving from classic lines<br>
(historically print/plot/carto driven needs) to polygons (GI<br>
representation)... business modelling is moving to multi-cardinality<br>
representation rather than simple features.<br>
<br>
Another Question:<br>
If an object in a class has a geometry and the association/object properties<br>
include geometry, what will happen with a spatial query? &nbsp;By default I<br>
assume that only the parent geometry be used in the query as the filter must<br>
explicitly define the geom column that it is acting on.<br>
Brent said above that you could do a filter like<br>
&quot;ParentClass.ChildObject.Value = 1&quot; so I assume this is supported for<br>
spatial filters. &nbsp;Where there is 1:m cardinality on associations does the<br>
query below automatically run on *every* association - that would be very<br>
good!!!<br>
&nbsp;ParentClass.ChildAssociation.Geom EnvelopeIntersects<br>
GeomFromText('&lt;geometry text&gt;')<br>
<br>
e.g. For a river labelling it may be expected that either the labels are<br>
only show when the river object is visible in some applications, but for a<br>
cartographic map tiling generation (where consistency is needed) the label<br>
should show even if the river is on the adjacent tile but the label geom is<br>
on this tile.<br>
<br>
--<br>
View this message in context: <a
href="http://osgeo-org.1803224.n2.nabble.com/Object-and-Association-Support-tp5325810p5328676.html"
target="_blank">http://osgeo-org.1803224.n2.nabble.com/Object-and-Association-Support-tp5325810p5328676.html</a><br>
Sent from the FDO Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
fdo-users mailing list<br>
<a href="mailto:fdo-users@lists.osgeo.org">fdo-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/fdo-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/fdo-users</a><br>
_______________________________________________<br>
fdo-users mailing list<br>
<a href="mailto:fdo-users@lists.osgeo.org">fdo-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/fdo-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/fdo-users</a><br>
_______________________________________________<br>
fdo-users mailing list<br>
<a href="mailto:fdo-users@lists.osgeo.org">fdo-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/fdo-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/fdo-users</a><o:p></o:p></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>