Re: [Crm-sig] ISSUE Form and persistence of RDF identifiers

2018-01-18 Thread Gordon Dunsire
All

 

[My first response was blocked because the thread was “too long”; here it is 
again]

 

I agree with Philip [and Richard]

 

If the domain or range of a FRBRoo property is changed, or there was a 
significant change in definition, we would deprecate the old version and 
declare a new URI. This hasn’t happened yet, but would beg the question of what 
to use as a new URI – perhaps add a version number to the alphanumeric part. 
For that reason we would advise the FRBR Review Group to mint a new 
alphanumeric designation.

 

Cheers

 

Gordon

 

From: Richard Light [mailto:rich...@light.demon.co.uk] 
Sent: 18 January 2018 12:30
To: Carlisle, Philip ; Gordon Dunsire 
; 'Robert Sanderson' ; 'Jim 
Salmons' ; crm-sig@ics.forth.gr
Subject: Re: [Crm-sig] ISSUE Form and persistence of RDF identifiers

 

Phil,

This is alarming.  I have always assumed that a superseded class or property 
would simply be flagged as "deprecated" and a new one minted to replace it. 
There is absolutely no need to re-use numbers, and I am hoping someone will 
come forward to say that this was a mistake, and not a change which accords 
with CRM-SIG policy.  Otherwise, as you say, we can have no confidence in the 
CRM as a persistent RDF framework, whether or not the class and property 
identifiers include a textual component.  Is this an isolated case, or does 
anyone know of other cases where domain and range (and indeed meaning) of a 
class or property has been changed after its initial publication?

(The textual component is, in any case, only meant to be guidance and is 
explicitly stated not to be unique: 'is identified by' below is a good example 
of this.)

Best wishes,

Richard

On 18/01/2018 10:29, Carlisle, Philip wrote:

Hi all,

I agree that using the number alone as the identifier would be the way forward 
particularly with regards to the changing of the name of a class or property.

 

However this would only work if the domain/range and scope of the class or 
property remain the same.

 

There is at least one instance of a property in the CRM where the number has 
been retained but the context of the property has completely changed.

 

The property in question is P148.

 

In the CRM version 4.2.2 we had: 

 

P148 is identified by (identifies)

 

Domain:E28 Conceptual Object

Range:   E75 Conceptual Object Appellation

Subproperty:E1 CRM Entity. P1 is identified by (identifies): E41 
Appellation

Quantification:many to many (0,n:0,n)

 

Scope note:   This property identifies a name used specifically to 
identify an E28 Conceptual Object. 

 

This property is a specialisation of P1 is identified by (identifies) is 
identified by.

 

Examples: 

*   The publication „Germanisches Nationalmuseum (GNM), Fuehrer durch die 
Sammlungen” (broschiert), Prestl 1995 (E73) is identified by ISBN 3-7913-1418-1 
(E75)

 

 

According to the appendix of CRM 5.1.2 as amendments to CRM 4.2.5 the property 
P148  changed to

 

P148  has been changed

 

BEFORE

 

P148 is identified by (identifies)

 

Domain:E28 Conceptual Object

Range:   E75 Conceptual Object Appellation

Subproperty:E1 CRM Entity. P1 is identified by (identifies): E41 
Appellation

Quantification:many to many (0,n:0,n)

 

Scope note:   This property identifies a name used specifically to 
identify an E28 Conceptual Object. 

 

This property is a specialisation of P1 is identified by (identifies) is 
identified by.

 

Examples: 

*   The publication „Germanisches Nationalmuseum (GNM), Fuehrer durch die 
Sammlungen” (broschiert), Prestl 1995 (E73) is identified by ISBN 3-7913-1418-1 
(E75)

AFTER

 

P148 has component (is component of)

Domain:E89 Propositional Object

Range:   E89 Propositional Object

Superproperty of:

Subproperty of:   

 

Quantification:(0:n,0:n)

 

Scope note:  This property associates an instance of E89 Propositional 
Object with a structural part of it that is by itself an instance of E89 
Propositional Object.

 

Examples: The Italian text of Dante’s textual work entitled “Divina 
Commedia” (E33) P148 has component The Italian text of Dante’s textual work 
entitled “Inferno” (E33) 

 

 

In the document as amendments to CRM 5.0.3 we have, unbelievably, the following:

 

P149 is identified by (identifies)

It is decided to create a subproperty of P1 to connect E28 with E75 as follows

 

P149 is identified by: E75

 

Domain:E28 <>  Conceptual Object

Range:   E75 <>  Conceptual Object Appellation 

Subproperty of:   E1 <>  CRM Entity. P1 <>  is identified by (identifies): E41 
<>  Appellation 

Quantification:many to many 

Re: [Crm-sig] ISSUE Form and persistence of RDF identifiers

2018-01-18 Thread Gordon Dunsire
Richard

 

I guess we were waiting for this discussion; we can only use what is documented 
in the CRM itself.

 

Cheers

 

Gordon

 

From: Richard Light [mailto:rich...@light.demon.co.uk] 
Sent: 18 January 2018 12:18
To: Gordon Dunsire ; 'Robert Sanderson' 
; 'Jim Salmons' ; 
crm-sig@ics.forth.gr
Subject: ISSUE Form and persistence of RDF identifiers

 

Gordon,

Looking at the RDF XML for F10, I see (a) that you make F10 equivalent to the 
full F10_Person, as the core CRM does in its RDFS Schema and (b) when 
subclassing from the CRM core, you use the full form E21_Person:

http://iflastandards.info/ns/fr/frbr/frbroo/F10> 
"http://iflastandards.info/ns/fr/frbr/frbroo/F10;>
...
http://www.cidoc-crm.org/cidoc-crm/E21_Person> 
"http://www.cidoc-crm.org/cidoc-crm/E21_Person"/>
http://iflastandards.info/ns/fr/frbr/frbroo/F10_Person> 
"http://iflastandards.info/ns/fr/frbr/frbroo/F10_Person"/>


So I think there are still issues to resolve in this area for FRBRoo.

Best wishes,

Richard

On 18/01/2018 09:21, Gordon Dunsire wrote:

All

 

It is for this reason that the IFLA declaration of URIs for the FRBRoo 
extension to CRM drops the name, and uses only the notation:

 

http://metadataregistry.org/schemaprop/list/schema_id/94.html

 

Cheers

 

Gordon

…

 

-- 
Richard Light 



Re: [Crm-sig] ISSUE Form and persistence of RDF identifiers

2018-01-18 Thread Richard Light
Phil,

This is alarming.  I have always assumed that a superseded class or
property would simply be flagged as "deprecated" and a new one minted to
replace it. There is absolutely no need to re-use numbers, and I am
hoping someone will come forward to say that this was a mistake, and not
a change which accords with CRM-SIG policy.  Otherwise, as you say, we
can have no confidence in the CRM as a persistent RDF framework, whether
or not the class and property identifiers include a textual component. 
Is this an isolated case, or does anyone know of other cases where
domain and range (and indeed meaning) of a class or property has been
changed after its initial publication?

(The textual component is, in any case, only meant to be guidance and is
explicitly stated not to be unique: 'is identified by' below is a good
example of this.)

Best wishes,

Richard

On 18/01/2018 10:29, Carlisle, Philip wrote:
>
> Hi all,
>
> I agree that using the number alone as the identifier would be the way
> forward particularly with regards to the changing of the name of a
> class or property.
>
>  
>
> However this would only work if the domain/range and scope of the
> class or property remain the same.
>
>  
>
> There is at least one instance of a property in the CRM where the
> number has been retained but the context of the property has
> completely changed.
>
>  
>
> The property in question is P148.
>
>  
>
> In the CRM version 4.2.2 we had:
>
>  
>
> *P148 is identified by (identifies)*
>
>  
>
> Domain:    E28 Conceptual Object
>
> Range:   E75 Conceptual Object Appellation
>
> Subproperty:    E1 CRM Entity. P1 is identified by (identifies):
> E41 Appellation
>
> Quantification:    many to many (0,n:0,n)
>
> 
>
> Scope note:   This property identifies a name used
> specifically to identify an E28 Conceptual Object.
>
>  
>
> This property is a specialisation of /P1 is identified by
> (identifies)/ is identified by.
>
>  
>
> Examples:
>
> §  The publication „Germanisches Nationalmuseum (GNM), Fuehrer durch
> die Sammlungen” (broschiert), Prestl 1995 (E73) /is identified by/
> ISBN 3-7913-1418-1 (E75)
>
>  
>
>  
>
> According to the appendix of CRM 5.1.2 as amendments to CRM 4.2.5 the
> property P148  changed to
>
>  
>
> */P148  has been changed/**//*
>
> * *
>
> BEFORE
>
> * *
>
> *P148 is identified by (identifies)*
>
>  
>
> Domain:    E28 Conceptual Object
>
> Range:   E75 Conceptual Object Appellation
>
> Subproperty:    E1 CRM Entity. P1 is identified by (identifies):
> E41 Appellation
>
> Quantification:    many to many (0,n:0,n)
>
> 
>
> Scope note:   This property identifies a name used
> specifically to identify an E28 Conceptual Object.
>
>  
>
> This property is a specialisation of /P1 is identified by
> (identifies)/ is identified by.
>
>  
>
> Examples:
>
> §  The publication „Germanisches Nationalmuseum (GNM), Fuehrer durch
> die Sammlungen” (broschiert), Prestl 1995 (E73) /is identified by/
> ISBN 3-7913-1418-1 (E75)
>
> AFTER
>
> * *
>
> *P148 has component (is component of)*
>
> Domain:    E89 Propositional Object
>
> Range:   E89 Propositional Object
>
> Superproperty of:   
>
> Subproperty of:  
>
>  
>
> Quantification:    (0:n,0:n)
>
>  
>
> Scope note:  This property associates an instance of E89
> Propositional Object with a structural part of it that is by itself an
> instance of E89 Propositional Object.
>
>  
>
> Examples: The Italian text of Dante’s textual work
> entitled “Divina Commedia” (E33) /P148 has component /The Italian text
> of Dante’s textual work entitled “Inferno” (E33)
>
>  
>
>  
>
> In the document as amendments to CRM 5.0.3 we have, unbelievably, the
> following:
>
>  
>
> *P149 is identified by (identifies)***
>
> It is decided to create a subproperty of P1 to connect E28 with E75 as
> follows
>
>  
>
>     P149 is identified by: E75
>
>  
>
> Domain:    E28 <#_E28_Conceptual_Object>
> Conceptual Object
>
> Range:   E75 <#_E75_Conceptual_Object> Conceptual
> Object Appellation
>
> Subproperty of:   E1 <#_E1_CRM_Entity> CRM Entity. P1
> <#_P1_is_identified> is identified by (identifies): E41
> <#_E41_Appellation> Appellation
>
> Quantification:    many to many (0,n:0,n)
>
>  
>
> Scope note:   This property identifies an instance of E28
> Conceptual Object using an instance of E75 Conceptual Object Appellation.
>
>  
>
> Examples: The German edition of the CIDOC CRM (E73) /is
> identified/ /by/ ISBN 978-3-00-030907-6 (E75)
>
>  
>
>  
>
> In this instance if the URI http://www.cidoc-crm.org/cidoc-crm/P148
> had been in use in any implementation based on CRM 4.2.2 the change in
> label, domain and range would 

[Crm-sig] ISSUE Form and persistence of RDF identifiers

2018-01-18 Thread Richard Light
Gordon,

Looking at the RDF XML for F10, I see (a) that you make F10 equivalent
to the full F10_Person, as the core CRM does in its RDFS Schema and (b)
when subclassing from the CRM core, you use the full form E21_Person:

http://iflastandards.info/ns/fr/frbr/frbroo/F10;>
...
http://www.cidoc-crm.org/cidoc-crm/E21_Person"/>
http://iflastandards.info/ns/fr/frbr/frbroo/F10_Person"/>


So I think there are still issues to resolve in this area for FRBRoo.

Best wishes,

Richard

On 18/01/2018 09:21, Gordon Dunsire wrote:
>
> All
>
>  
>
> It is for this reason that the IFLA declaration of URIs for the FRBRoo
> extension to CRM drops the name, and uses only the notation:
>
>  
>
> http://metadataregistry.org/schemaprop/list/schema_id/94.html
>
>  
>
> Cheers
>
>  
>
> Gordon
>
>  
>
> *From:*Crm-sig [mailto:crm-sig-boun...@ics.forth.gr] *On Behalf Of
> *Robert Sanderson
> *Sent:* 17 January 2018 16:52
> *To:* Richard Light ; Jim Salmons
> ; crm-sig@ics.forth.gr
> *Subject:* Re: [Crm-sig] ISSUE Recording an E41 in RDF
>
>  
>
>  
>
> Here’s a quick addition …
>
>  
>
> The RDF representation uses the names of the classes and predicates in
> the URIs that identify them.  This means ;l
>
> that when the names change, the URIs change and this invalidates all
> of the previous uses.  As the SIG considers only the number to be
> important, there is a mismatch of expectations around persistence and
> versioning.
>
>  
>
> Examples: E78_Collection versus E78_Curated_Holding and the recent
> thread about renaming translation_of.
>
>  
>
> Rob
>
>  
>
>  
>
> *From: *Crm-sig  > on behalf of Richard Light
> mailto:rich...@light.demon.co.uk>>
> *Date: *Wednesday, January 17, 2018 at 3:46 AM
> *To: *Jim Salmons  >, "crm-sig@ics.forth.gr
> "  >
> *Subject: *Re: [Crm-sig] ISSUE Recording an E41 in RDF
>
>  
>
> Jim,
>
> Thank you for the encouragement. I have put the document in its
> current form at:
>
> https://docs.google.com/document/d/1zCGZ4iBzekcEYo4Dy0hI8CrZ7dTkMD2rJaxavtEOET0/edit?usp=sharing
>
> and it is editable by anyone with the link.  As you'll see, there is
> little that is new in there (although there might already be things to
> argue about!), but there is the outline of a more substantive
> document.  All suggestions and contributions gratefully received.
>
> Richard
>
> On 16/01/2018 23:42, Jim Salmons wrote:
>
> Richard and SIG members,
>
>  
>
> On 16/01/2018, Richard Light wrote [rest of thread snipped for
> brevity]:
>
>  
>
>    “I have started an "issues with RDF" document, but on
> reflection it may be more constructive to make it into a first
> attempt at the guidance I am asking for.  I'll spend this
> afternoon pulling together material which I can easily find (e.g.
> the introductory comments in the RDF Schema document), and see
> what questions that exercise answers.”
>
>  
>
> The recent flurry of conversation relating to the interplay of
> #cidocCRM and #RDF is most interesting and timely, both to me
> personally and, I believe, to the larger SIG mission of
> championing our model’s utility to those who are interested but
> hesitant to explore and adopt it in practice.
>
>  
>
> == On the "Big Picture" Community Level... ==
>
>  
>
> 1. Richard, I would be very interested to see your working
> document mentioned above as soon as it is available and would love
> to be involved in its draft evolution as I would qualify as a
> highly-motivated non-expert reader with good writing/editing skills.
>
>  
>
> 2. I know that this mailing list is very focused on the "tight"
> conversations of core and significant modeling issues and their
> resolution. Given that wrestling with "#cidocCRM in #RDF" is
> itself a gnarly domain that will likely engender its own level of
> detailed conversation, and given that the SIG is currently having
> an in-person meeting on current issues and future directions,
> might it be appropriate, via the energy and interest at the
> current meeting, to form a Working Group on this topic and spawn
> its own mailing list with a charter to explore this topic and come
> back to the full SIG with draft documents (e.g. the
> afore-mentioned "primer") and recommendations in response to its
> charter? If such a working group were to be formed, I would very
> much like to be involved.
>
>  
>
> Putting on my "marketing hat" for a moment, I believe that the
> better we address #cidocCRM in #RDF, especially in terms of
> practical and example-based documentation and learning materials,
> that this will be the most important initiative we can take at
> this time to advance the adoption of the #cidocCRM in deployed and
> new #LOD systems/collections.
>
>  
>
>  

Re: [Crm-sig] ISSUE Recording an E41 in RDF

2018-01-18 Thread Carlisle, Philip
Hi all,
I agree that using the number alone as the identifier would be the way forward 
particularly with regards to the changing of the name of a class or property.

However this would only work if the domain/range and scope of the class or 
property remain the same.

There is at least one instance of a property in the CRM where the number has 
been retained but the context of the property has completely changed.

The property in question is P148.

In the CRM version 4.2.2 we had:

P148 is identified by (identifies)

Domain:E28 Conceptual Object
Range:   E75 Conceptual Object Appellation
Subproperty:E1 CRM Entity. P1 is identified by (identifies): E41 
Appellation
Quantification:many to many (0,n:0,n)

Scope note:   This property identifies a name used specifically to 
identify an E28 Conceptual Object.

This property is a specialisation of P1 is identified by (identifies) is 
identified by.

Examples:
§  The publication „Germanisches Nationalmuseum (GNM), Fuehrer durch die 
Sammlungen” (broschiert), Prestl 1995 (E73) is identified by ISBN 3-7913-1418-1 
(E75)


According to the appendix of CRM 5.1.2 as amendments to CRM 4.2.5 the property 
P148  changed to

P148  has been changed

BEFORE

P148 is identified by (identifies)

Domain:E28 Conceptual Object
Range:   E75 Conceptual Object Appellation
Subproperty:E1 CRM Entity. P1 is identified by (identifies): E41 
Appellation
Quantification:many to many (0,n:0,n)

Scope note:   This property identifies a name used specifically to 
identify an E28 Conceptual Object.

This property is a specialisation of P1 is identified by (identifies) is 
identified by.

Examples:
§  The publication „Germanisches Nationalmuseum (GNM), Fuehrer durch die 
Sammlungen” (broschiert), Prestl 1995 (E73) is identified by ISBN 3-7913-1418-1 
(E75)
AFTER

P148 has component (is component of)
Domain:E89 Propositional Object
Range:   E89 Propositional Object
Superproperty of:
Subproperty of:

Quantification:(0:n,0:n)

Scope note:  This property associates an instance of E89 Propositional 
Object with a structural part of it that is by itself an instance of E89 
Propositional Object.

Examples: The Italian text of Dante’s textual work entitled “Divina 
Commedia” (E33) P148 has component The Italian text of Dante’s textual work 
entitled “Inferno” (E33)


In the document as amendments to CRM 5.0.3 we have, unbelievably, the following:

P149 is identified by (identifies)
It is decided to create a subproperty of P1 to connect E28 with E75 as follows

P149 is identified by: E75

Domain:E28 Conceptual Object
Range:   E75 Conceptual Object Appellation
Subproperty of:   E1 CRM Entity. P1 is identified by (identifies): E41 
Appellation
Quantification:many to many (0,n:0,n)

Scope note:   This property identifies an instance of E28 Conceptual 
Object using an instance of E75 Conceptual Object Appellation.

Examples: The German edition of the CIDOC CRM (E73) is identified 
by ISBN 978-3-00-030907-6 (E75)


In this instance if the URI http://www.cidoc-crm.org/cidoc-crm/P148 had been in 
use in any implementation based on CRM 4.2.2 the change in label, domain and 
range would not have been picked up by an automatic update.

Furthermore at no point would it have been obvious that all instances of 
http://www.cidoc-crm.org/cidoc-crm/P148, in the original meaning, should be 
replaced with http://www.cidoc-crm.org/cidoc-crm/P149

This may have been an oversight on the part of the CRM-SIG however I would 
strongly suggest that in future if the SIG want to change a property or class 
that they check with those system owners who’ve actually been using the CRM in 
the real world to ensure that these whims do not affect the smooth running of 
any current implementations.

If the aim of the CRM is to facilitate data exchange it would imply that each 
implementation should be able to rely on the properties and classes not 
changing their fundamental essence.

Re-use and re-assignment of numbers and labels is, to my mind, exceptionally 
bad practice.

Phil

Phil Carlisle
Knowledge Organization Specialist
Listing Group, Historic England
Direct Dial: +44 (0)1793 414824

http://thesaurus.historicengland.org.uk/
http://www.heritagedata.org/blog/

Listing Information Services fosters an environment where colleagues are valued 
for their skills and knowledge, and where communication, customer focus and 
working in partnership are at the heart of everything we do.



[Historic England Logo]


We help people understand, enjoy and value the historic environment, and 
protect it for the future. Historic England is a public 
body, and we champion everyone’s heritage, across 

Re: [Crm-sig] ISSUE Recording an E41 in RDF

2018-01-18 Thread Gordon Dunsire
All

 

It is for this reason that the IFLA declaration of URIs for the FRBRoo 
extension to CRM drops the name, and uses only the notation:

 

http://metadataregistry.org/schemaprop/list/schema_id/94.html

 

Cheers

 

Gordon

 

From: Crm-sig [mailto:crm-sig-boun...@ics.forth.gr] On Behalf Of Robert 
Sanderson
Sent: 17 January 2018 16:52
To: Richard Light ; Jim Salmons 
; crm-sig@ics.forth.gr
Subject: Re: [Crm-sig] ISSUE Recording an E41 in RDF

 

 

Here’s a quick addition …

 

The RDF representation uses the names of the classes and predicates in the URIs 
that identify them.  This means ;l

that when the names change, the URIs change and this invalidates all of the 
previous uses.  As the SIG considers only the number to be important, there is 
a mismatch of expectations around persistence and versioning.

 

Examples: E78_Collection versus E78_Curated_Holding and the recent thread about 
renaming translation_of.

 

Rob

 

 

From: Crm-sig mailto:crm-sig-boun...@ics.forth.gr> > on behalf of Richard Light 
mailto:rich...@light.demon.co.uk> >
List-Post: crm-sig@ics.forth.gr
Date: Wednesday, January 17, 2018 at 3:46 AM
To: Jim Salmons mailto:jim.salm...@factminers.org> 
>, "crm-sig@ics.forth.gr  " mailto:crm-sig@ics.forth.gr> >
Subject: Re: [Crm-sig] ISSUE Recording an E41 in RDF

 

Jim,

Thank you for the encouragement. I have put the document in its current form at:

https://docs.google.com/document/d/1zCGZ4iBzekcEYo4Dy0hI8CrZ7dTkMD2rJaxavtEOET0/edit?usp=sharing

and it is editable by anyone with the link.  As you'll see, there is little 
that is new in there (although there might already be things to argue about!), 
but there is the outline of a more substantive document.  All suggestions and 
contributions gratefully received.

Richard

On 16/01/2018 23:42, Jim Salmons wrote:

Richard and SIG members,
 
On 16/01/2018, Richard Light wrote [rest of thread snipped for brevity]:
 
   “I have started an "issues with RDF" document, but on reflection it may 
be more constructive to make it into a first attempt at the guidance I am 
asking for.  I'll spend this afternoon pulling together material which I can 
easily find (e.g. the introductory comments in the RDF Schema document), and 
see what questions that exercise answers.”
 
The recent flurry of conversation relating to the interplay of #cidocCRM and 
#RDF is most interesting and timely, both to me personally and, I believe, to 
the larger SIG mission of championing our model’s utility to those who are 
interested but hesitant to explore and adopt it in practice.
 
== On the "Big Picture" Community Level... ==
 
1. Richard, I would be very interested to see your working document mentioned 
above as soon as it is available and would love to be involved in its draft 
evolution as I would qualify as a highly-motivated non-expert reader with good 
writing/editing skills.
 
2. I know that this mailing list is very focused on the "tight" conversations 
of core and significant modeling issues and their resolution. Given that 
wrestling with "#cidocCRM in #RDF" is itself a gnarly domain that will likely 
engender its own level of detailed conversation, and given that the SIG is 
currently having an in-person meeting on current issues and future directions, 
might it be appropriate, via the energy and interest at the current meeting, to 
form a Working Group on this topic and spawn its own mailing list with a 
charter to explore this topic and come back to the full SIG with draft 
documents (e.g. the afore-mentioned "primer") and recommendations in response 
to its charter? If such a working group were to be formed, I would very much 
like to be involved.
 
Putting on my "marketing hat" for a moment, I believe that the better we 
address #cidocCRM in #RDF, especially in terms of practical and example-based 
documentation and learning materials, that this will be the most important 
initiative we can take at this time to advance the adoption of the #cidocCRM in 
deployed and new #LOD systems/collections.
 
 Happy-Healthy Vibes to All and a Happy New Year,
 -: Jim:-
 
www.researchgate.net/profile/Jim_Salmons 
 
www.medium.com/@Jim_Salmons/   (my 
#CognitiveComputing/#DigitalHumanities articles)
 
P.S. As a postscript, I provide these comments with regard to my own personal 
learning and research experience...
 
== Optional on my Personal Interest in #cidocCRM & #RDF ==
 
At a personal level, some in the SIG know that I am a U.S.-based independent 
(and untrained) #CitizenScientist working my post-cancer #PayItForward Bonus 
Rounds to contribute my best efforts at the intersection of #DigitalHumanities 
and #CognitiveComputing. As a “software guy” I spent the bulk of my career as a 
Smalltalk developer and was particularly active during the initial wave of the 
software patterns movement. I was drawn to the #cidocCRM through