This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Semantic ArtsSemantic ArtsSemantic ArtsSemantic Arts
May 14, 2015May 14, 2015May 14, 2015May 14, 2015
DataversityDataversityDataversityDataversity
ObjectivesObjectivesObjectivesObjectives
•Two Target AudiencesTwo Target AudiencesTwo Target AudiencesTwo Target AudiencesoThose who want to know that it’s possible to build an enterprise Those who want to know that it’s possible to build an enterprise Those who want to know that it’s possible to build an enterprise Those who want to know that it’s possible to build an enterprise ontology in a limited amount of timeontology in a limited amount of timeontology in a limited amount of timeontology in a limited amount of time
oThose who want to know howThose who want to know howThose who want to know howThose who want to know how
•Goal: Provide insights to improve ontology development to Goal: Provide insights to improve ontology development to
•Goal: Provide insights to improve ontology development to Goal: Provide insights to improve ontology development to Goal: Provide insights to improve ontology development to Goal: Provide insights to improve ontology development to make your ontology:make your ontology:make your ontology:make your ontology:oEasier to extendEasier to extendEasier to extendEasier to extend
oStable in the face of changeStable in the face of changeStable in the face of changeStable in the face of change
oSimpler for others to understand Simpler for others to understand Simpler for others to understand Simpler for others to understand
2
Our JourneyOur JourneyOur JourneyOur Journey•Over the last 15 years we’ve been designing and building Over the last 15 years we’ve been designing and building Over the last 15 years we’ve been designing and building Over the last 15 years we’ve been designing and building ontologiesontologiesontologiesontologies for a number of large firms in many different for a number of large firms in many different for a number of large firms in many different for a number of large firms in many different industriesindustriesindustriesindustries
•Analogous to an Enterprise Data ModelAnalogous to an Enterprise Data ModelAnalogous to an Enterprise Data ModelAnalogous to an Enterprise Data Model
• Important distinctions stem from being rooted in Semantic Important distinctions stem from being rooted in Semantic Important distinctions stem from being rooted in Semantic Important distinctions stem from being rooted in Semantic Technology:Technology:Technology:Technology:oA comprehensive model can be much, much simplerA comprehensive model can be much, much simplerA comprehensive model can be much, much simplerA comprehensive model can be much, much simpler
oA comprehensive model can be much, much simplerA comprehensive model can be much, much simplerA comprehensive model can be much, much simplerA comprehensive model can be much, much simpler
oYet less abstract, and less ambiguousYet less abstract, and less ambiguousYet less abstract, and less ambiguousYet less abstract, and less ambiguous
oIt can be directly implementedIt can be directly implementedIt can be directly implementedIt can be directly implemented
oIt can evolve in place It can evolve in place It can evolve in place It can evolve in place
oIt can integrate structured, unstructured and semiIt can integrate structured, unstructured and semiIt can integrate structured, unstructured and semiIt can integrate structured, unstructured and semi----structured structured structured structured datadatadatadata
4
How (Very Briefly)How (Very Briefly)How (Very Briefly)How (Very Briefly)
The “URI” (Uniform Resource Identifier) The “URI” (Uniform Resource Identifier) The “URI” (Uniform Resource Identifier) The “URI” (Uniform Resource Identifier)
•This identifier is truly globalThis identifier is truly globalThis identifier is truly globalThis identifier is truly global
• It means the same thing, regardless of the database of It means the same thing, regardless of the database of It means the same thing, regardless of the database of It means the same thing, regardless of the database of document it is part ofdocument it is part ofdocument it is part ofdocument it is part of
A Graph is a Self Assembling “Join”A Graph is a Self Assembling “Join”A Graph is a Self Assembling “Join”A Graph is a Self Assembling “Join”
•Which may have been harvested from completely Which may have been harvested from completely Which may have been harvested from completely Which may have been harvested from completely different sourcesdifferent sourcesdifferent sourcesdifferent sources
•The definition can be read The definition can be read The definition can be read The definition can be read and processed by a and processed by a and processed by a and processed by a system (as well as a system (as well as a system (as well as a system (as well as a human)human)human)human)
•Plus inference of new Plus inference of new Plus inference of new Plus inference of new information from existing information from existing information from existing information from existing informationinformationinformationinformation
9
՜纰
Because typing is just another triple, any instance, Because typing is just another triple, any instance, Because typing is just another triple, any instance, Because typing is just another triple, any instance, can, and usually is, a member of many classes can, and usually is, a member of many classes can, and usually is, a member of many classes can, and usually is, a member of many classes simultaneouslysimultaneouslysimultaneouslysimultaneously
In the Process of Building Enterprise In the Process of Building Enterprise In the Process of Building Enterprise In the Process of Building Enterprise OntologiesOntologiesOntologiesOntologies
•We (Semantic Arts) have arrived at this conclusion:We (Semantic Arts) have arrived at this conclusion:We (Semantic Arts) have arrived at this conclusion:We (Semantic Arts) have arrived at this conclusion:
Early ProjectsEarly ProjectsEarly ProjectsEarly Projects
•About half the EO About half the EO About half the EO About half the EO classes were classes were classes were classes were derived from gistderived from gistderived from gistderived from gist
Current ProjectsCurrent ProjectsCurrent ProjectsCurrent Projects
•Most classes Most classes Most classes Most classes derived from gist, derived from gist, derived from gist, derived from gist, without even tryingwithout even tryingwithout even tryingwithout even trying
•It was obvious that our clients wanted:It was obvious that our clients wanted:It was obvious that our clients wanted:It was obvious that our clients wanted:oLess up front investmentLess up front investmentLess up front investmentLess up front investment
oSomething their staff could understandSomething their staff could understandSomething their staff could understandSomething their staff could understand
oSomething that put them on a path toward integrationSomething that put them on a path toward integrationSomething that put them on a path toward integrationSomething that put them on a path toward integration
oSomething that put them on a path toward integrationSomething that put them on a path toward integrationSomething that put them on a path toward integrationSomething that put them on a path toward integration
oSomething that was stable even while changingSomething that was stable even while changingSomething that was stable even while changingSomething that was stable even while changing
•In other words: AgileIn other words: AgileIn other words: AgileIn other words: Agile
20
՜�
The Dark Side of AgileThe Dark Side of AgileThe Dark Side of AgileThe Dark Side of Agile
Methodology: Comparing Four Sources of Methodology: Comparing Four Sources of Methodology: Comparing Four Sources of Methodology: Comparing Four Sources of KnowledgeKnowledgeKnowledgeKnowledge
•Harvesting from existing data basesHarvesting from existing data basesHarvesting from existing data basesHarvesting from existing data bases
•Derive from standardsDerive from standardsDerive from standardsDerive from standards
•Postulate and TestPostulate and TestPostulate and TestPostulate and Test
27
Ֆ�
HarvestHarvestHarvestHarvest
•Since we’re eventually going to be using our ontology to Since we’re eventually going to be using our ontology to Since we’re eventually going to be using our ontology to Since we’re eventually going to be using our ontology to integrating all these disparate systems…integrating all these disparate systems…integrating all these disparate systems…integrating all these disparate systems…
•Why not just start there?Why not just start there?Why not just start there?Why not just start there?
Standards Based Standards Based Standards Based Standards Based
• Industry standards for data communication are importantIndustry standards for data communication are importantIndustry standards for data communication are importantIndustry standards for data communication are important
•And it’s tempting to want to start with themAnd it’s tempting to want to start with themAnd it’s tempting to want to start with themAnd it’s tempting to want to start with them
•But in our experience its not been a good place to startBut in our experience its not been a good place to startBut in our experience its not been a good place to startBut in our experience its not been a good place to start
•They typically cover a small percent of what you will need They typically cover a small percent of what you will need They typically cover a small percent of what you will need They typically cover a small percent of what you will need
•They typically cover a small percent of what you will need They typically cover a small percent of what you will need They typically cover a small percent of what you will need They typically cover a small percent of what you will need to cover for your internal operationsto cover for your internal operationsto cover for your internal operationsto cover for your internal operations
•They aren’t very rigorousThey aren’t very rigorousThey aren’t very rigorousThey aren’t very rigorous
•And often unnecessarily complexAnd often unnecessarily complexAnd often unnecessarily complexAnd often unnecessarily complex
•# of things you must know to be competent with the # of things you must know to be competent with the # of things you must know to be competent with the # of things you must know to be competent with the ontologyontologyontologyontology
•# of things you must be in agreement with in order to # of things you must be in agreement with in order to # of things you must be in agreement with in order to # of things you must be in agreement with in order to commit to the ontologycommit to the ontologycommit to the ontologycommit to the ontology
•Typical large enterprise has millions of properties Typical large enterprise has millions of properties Typical large enterprise has millions of properties Typical large enterprise has millions of properties (attributes/ columns ) in their legacy systems(attributes/ columns ) in their legacy systems(attributes/ columns ) in their legacy systems(attributes/ columns ) in their legacy systems
•This is mostly a product of arbitrary design decisionsThis is mostly a product of arbitrary design decisionsThis is mostly a product of arbitrary design decisionsThis is mostly a product of arbitrary design decisions
•We need to be vigilantWe need to be vigilantWe need to be vigilantWe need to be vigilant
•We need to be vigilantWe need to be vigilantWe need to be vigilantWe need to be vigilant
•Properties (with a few very narrow exceptions) can not be Properties (with a few very narrow exceptions) can not be Properties (with a few very narrow exceptions) can not be Properties (with a few very narrow exceptions) can not be formally defined, we must learn them allformally defined, we must learn them allformally defined, we must learn them allformally defined, we must learn them all
•Our target is to get to a few hundredOur target is to get to a few hundredOur target is to get to a few hundredOur target is to get to a few hundred
34
Subclass Assertions v. InferenceSubclass Assertions v. InferenceSubclass Assertions v. InferenceSubclass Assertions v. Inference
•We advocate using subclass assertions sparinglyWe advocate using subclass assertions sparinglyWe advocate using subclass assertions sparinglyWe advocate using subclass assertions sparingly
• It typically is a carry over from Object OrientedIt typically is a carry over from Object OrientedIt typically is a carry over from Object OrientedIt typically is a carry over from Object Oriented
specifies the more general type of thing the word is, and then provides a way to distinguish this thing from others that are similar.
Definitions v. DescriptionsDefinitions v. DescriptionsDefinitions v. DescriptionsDefinitions v. Descriptions
•A “description” tells us properties about a class of A “description” tells us properties about a class of A “description” tells us properties about a class of A “description” tells us properties about a class of instances, if we already know what type the instance isinstances, if we already know what type the instance isinstances, if we already know what type the instance isinstances, if we already know what type the instance is
•Adding classes to your ontology that are only descriptive Adding classes to your ontology that are only descriptive Adding classes to your ontology that are only descriptive Adding classes to your ontology that are only descriptive increases cognitive load. You audience must know the increases cognitive load. You audience must know the increases cognitive load. You audience must know the increases cognitive load. You audience must know the
increases cognitive load. You audience must know the increases cognitive load. You audience must know the increases cognitive load. You audience must know the increases cognitive load. You audience must know the class and its (implicit) membership criteriaclass and its (implicit) membership criteriaclass and its (implicit) membership criteriaclass and its (implicit) membership criteria
•A “definition” supplies the criteria for membership in a A “definition” supplies the criteria for membership in a A “definition” supplies the criteria for membership in a A “definition” supplies the criteria for membership in a class. class. class. class.
• If your audience understands the criteria, they agree with If your audience understands the criteria, they agree with If your audience understands the criteria, they agree with If your audience understands the criteria, they agree with the definition (they may not like the label)the definition (they may not like the label)the definition (they may not like the label)the definition (they may not like the label)
37
Descriptions v. DefinitionsDescriptions v. DefinitionsDescriptions v. DefinitionsDescriptions v. Definitions
•We’ve found the discipline of creating subsets of the We’ve found the discipline of creating subsets of the We’ve found the discipline of creating subsets of the We’ve found the discipline of creating subsets of the ontology for the purpose of explaining ontology for the purpose of explaining ontology for the purpose of explaining ontology for the purpose of explaining
•The “easy to change” aspect of agile, requires a way to The “easy to change” aspect of agile, requires a way to The “easy to change” aspect of agile, requires a way to The “easy to change” aspect of agile, requires a way to detect errors.detect errors.detect errors.detect errors.
•Two of the more effective that we use areTwo of the more effective that we use areTwo of the more effective that we use areTwo of the more effective that we use areoHigh Level Disjoints High Level Disjoints High Level Disjoints High Level Disjoints
oHigh Level Disjoints High Level Disjoints High Level Disjoints High Level Disjoints
oABoxABoxABoxABox Unit TestsUnit TestsUnit TestsUnit Tests
41
DisjointsDisjointsDisjointsDisjoints
•Most of the errors that a tableaux reasoned will surface Most of the errors that a tableaux reasoned will surface Most of the errors that a tableaux reasoned will surface Most of the errors that a tableaux reasoned will surface stem from stem from stem from stem from disjointnessdisjointnessdisjointnessdisjointness (or negation/ complement) (or negation/ complement) (or negation/ complement) (or negation/ complement) asssertionsasssertionsasssertionsasssertions
•No No No No disjointnessdisjointnessdisjointnessdisjointness = no error checking= no error checking= no error checking= no error checking
ABoxABoxABoxABox Unit TestsUnit TestsUnit TestsUnit Tests
•Check for things that should not arise in the course of Check for things that should not arise in the course of Check for things that should not arise in the course of Check for things that should not arise in the course of using the ontology, use for unit testingusing the ontology, use for unit testingusing the ontology, use for unit testingusing the ontology, use for unit testing
•Move most of your taxonomies out of the class structureMove most of your taxonomies out of the class structureMove most of your taxonomies out of the class structureMove most of your taxonomies out of the class structure
•Separation of governanceSeparation of governanceSeparation of governanceSeparation of governance
•Simplification of the modelSimplification of the modelSimplification of the modelSimplification of the model
Move Minor Distinctions to Taxonomies Move Minor Distinctions to Taxonomies Move Minor Distinctions to Taxonomies Move Minor Distinctions to Taxonomies
• We’re tempted to put We’re tempted to put We’re tempted to put We’re tempted to put everything we know into everything we know into everything we know into everything we know into our ontologiesour ontologiesour ontologiesour ontologies
• Many distinctions are Many distinctions are Many distinctions are Many distinctions are best “pushed” to best “pushed” to best “pushed” to best “pushed” to taxonomiestaxonomiestaxonomiestaxonomies
• Where mere mortals can Where mere mortals can Where mere mortals can Where mere mortals can debate and rearrange debate and rearrange debate and rearrange debate and rearrange them them them them
• Without destabilizing the Without destabilizing the Without destabilizing the Without destabilizing the ontologyontologyontologyontology
Ք
Should it be in the taxonomy?Should it be in the taxonomy?Should it be in the taxonomy?Should it be in the taxonomy?
•Some of the things we consider:Some of the things we consider:Some of the things we consider:Some of the things we consider:oAre there likely to be instances of this thing, or is it more a way Are there likely to be instances of this thing, or is it more a way Are there likely to be instances of this thing, or is it more a way Are there likely to be instances of this thing, or is it more a way to tag or classify instances that already exist?to tag or classify instances that already exist?to tag or classify instances that already exist?to tag or classify instances that already exist?
oDo these things have non trivial properties? (trivial properties Do these things have non trivial properties? (trivial properties Do these things have non trivial properties? (trivial properties Do these things have non trivial properties? (trivial properties are things like “synonym” or “are things like “synonym” or “are things like “synonym” or “are things like “synonym” or “broaderThanbroaderThanbroaderThanbroaderThan” or ” or ” or ” or
are things like “synonym” or “are things like “synonym” or “are things like “synonym” or “are things like “synonym” or “broaderThanbroaderThanbroaderThanbroaderThan” or ” or ” or ” or ““““expressedInLanguageexpressedInLanguageexpressedInLanguageexpressedInLanguage”, non trivial properties include things like ”, non trivial properties include things like ”, non trivial properties include things like ”, non trivial properties include things like “owns” “governs” ““owns” “governs” ““owns” “governs” ““owns” “governs” “isPartyToisPartyToisPartyToisPartyTo”)”)”)”)
48
Ք
Classes and Taxonomic InstancesClasses and Taxonomic InstancesClasses and Taxonomic InstancesClasses and Taxonomic Instances
•Strive to be more like Strive to be more like Strive to be more like Strive to be more like GeoNamesGeoNamesGeoNamesGeoNames than than than than SnomedSnomedSnomedSnomed
GeoNames Snomed
Concepts 10 million geographical Presumably millions
Rules for working with modulesRules for working with modulesRules for working with modulesRules for working with modules
•Don’t add disjoints for classes you importDon’t add disjoints for classes you importDon’t add disjoints for classes you importDon’t add disjoints for classes you import
•Don’t make a class you import an explicit subclass of other Don’t make a class you import an explicit subclass of other Don’t make a class you import an explicit subclass of other Don’t make a class you import an explicit subclass of other classes (yours or others)classes (yours or others)classes (yours or others)classes (yours or others)
•Don’t change the definition of classes or properties you Don’t change the definition of classes or properties you Don’t change the definition of classes or properties you Don’t change the definition of classes or properties you
•Don’t change the definition of classes or properties you Don’t change the definition of classes or properties you Don’t change the definition of classes or properties you Don’t change the definition of classes or properties you importimportimportimport
• It’s ok, even encouraged to:It’s ok, even encouraged to:It’s ok, even encouraged to:It’s ok, even encouraged to:oCreate sub classes of classes you Create sub classes of classes you Create sub classes of classes you Create sub classes of classes you importimportimportimport
oUse the classes and properties you import in the definition of Use the classes and properties you import in the definition of Use the classes and properties you import in the definition of Use the classes and properties you import in the definition of classes in your moduleclasses in your moduleclasses in your moduleclasses in your module
oUse imported classes in Boolean class expressionsUse imported classes in Boolean class expressionsUse imported classes in Boolean class expressionsUse imported classes in Boolean class expressions
51
Ք쭠
Namespaces and ModulesNamespaces and ModulesNamespaces and ModulesNamespaces and Modules
•Many ontologies use many namespaces (most of the third Many ontologies use many namespaces (most of the third Many ontologies use many namespaces (most of the third Many ontologies use many namespaces (most of the third party ontologies you inherit have their own namespaces party ontologies you inherit have their own namespaces party ontologies you inherit have their own namespaces party ontologies you inherit have their own namespaces ––––skosskosskosskos:, :, :, :, foaffoaffoaffoaf:, :, :, :, dbpediadbpediadbpediadbpedia: : : : etcetcetcetc))))
•There is a temptation to have each module/ontology have There is a temptation to have each module/ontology have There is a temptation to have each module/ontology have There is a temptation to have each module/ontology have
•There is a temptation to have each module/ontology have There is a temptation to have each module/ontology have There is a temptation to have each module/ontology have There is a temptation to have each module/ontology have its own name space its own name space its own name space its own name space
•Minus:Minus:Minus:Minus:oMakes moving concepts from module to module difficult (they have to be renamed and all Makes moving concepts from module to module difficult (they have to be renamed and all Makes moving concepts from module to module difficult (they have to be renamed and all Makes moving concepts from module to module difficult (they have to be renamed and all
the references to them changed)the references to them changed)the references to them changed)the references to them changed)
o It’s a added burden on the consumer to know the namespace for each conceptIt’s a added burden on the consumer to know the namespace for each conceptIt’s a added burden on the consumer to know the namespace for each conceptIt’s a added burden on the consumer to know the namespace for each concept
•Plus:Plus:Plus:Plus:o It allows each module to coin there own terms without central coordinationIt allows each module to coin there own terms without central coordinationIt allows each module to coin there own terms without central coordinationIt allows each module to coin there own terms without central coordination
•Think about the scope of a governance group that is Think about the scope of a governance group that is Think about the scope of a governance group that is Think about the scope of a governance group that is tasked with creating and naming concepts tasked with creating and naming concepts tasked with creating and naming concepts tasked with creating and naming concepts
•This will be the broadest a name space should be (if the This will be the broadest a name space should be (if the This will be the broadest a name space should be (if the This will be the broadest a name space should be (if the namespaces were broader, every new term would have to namespaces were broader, every new term would have to namespaces were broader, every new term would have to namespaces were broader, every new term would have to
namespaces were broader, every new term would have to namespaces were broader, every new term would have to namespaces were broader, every new term would have to namespaces were broader, every new term would have to be reviewed with other groups to ensure consistency and be reviewed with other groups to ensure consistency and be reviewed with other groups to ensure consistency and be reviewed with other groups to ensure consistency and prevent name collision)prevent name collision)prevent name collision)prevent name collision)
•But don’t over do this. But don’t over do this. But don’t over do this. But don’t over do this.
• If you create a namespace for every (modular) ontology, If you create a namespace for every (modular) ontology, If you create a namespace for every (modular) ontology, If you create a namespace for every (modular) ontology, you will create confusion, unnecessary duplication and make you will create confusion, unnecessary duplication and make you will create confusion, unnecessary duplication and make you will create confusion, unnecessary duplication and make refactoring more difficultrefactoring more difficultrefactoring more difficultrefactoring more difficult
•Have one namespace over as many ontologies as your Have one namespace over as many ontologies as your Have one namespace over as many ontologies as your Have one namespace over as many ontologies as your
•Have one namespace over as many ontologies as your Have one namespace over as many ontologies as your Have one namespace over as many ontologies as your Have one namespace over as many ontologies as your governance can manage governance can manage governance can manage governance can manage
54
sales:Prospect
CRM Governance Group
mkt:Lead
in:Customer
ps:Client
crm:Prospect
CRM Governance Group
crm:Lead
crm:Customer
crm:Client
Ք쭠
Separation of ConcernsSeparation of ConcernsSeparation of ConcernsSeparation of Concerns
• If you’re trying to answer the question “which properties go If you’re trying to answer the question “which properties go If you’re trying to answer the question “which properties go If you’re trying to answer the question “which properties go on this class” by looking at the ontology, you’ve collapsed on this class” by looking at the ontology, you’ve collapsed on this class” by looking at the ontology, you’ve collapsed on this class” by looking at the ontology, you’ve collapsed these two ideasthese two ideasthese two ideasthese two ideas
these two ideasthese two ideasthese two ideasthese two ideas
•The ontology should be the province of coining new terms, The ontology should be the province of coining new terms, The ontology should be the province of coining new terms, The ontology should be the province of coining new terms, establishing meaning and providing the rules for inferenceestablishing meaning and providing the rules for inferenceestablishing meaning and providing the rules for inferenceestablishing meaning and providing the rules for inference
55
Ք쭠
RDF Shape ExampleRDF Shape ExampleRDF Shape ExampleRDF Shape Example
• It is necessary (and luckily possible) to create enterprise It is necessary (and luckily possible) to create enterprise It is necessary (and luckily possible) to create enterprise It is necessary (and luckily possible) to create enterprise ontologiesontologiesontologiesontologies in a relatively short time frame that can be in a relatively short time frame that can be in a relatively short time frame that can be in a relatively short time frame that can be evolved in placeevolved in placeevolved in placeevolved in place
•There are many techniques that aid in that effort:There are many techniques that aid in that effort:There are many techniques that aid in that effort:There are many techniques that aid in that effort:oShift from discovery to postulationShift from discovery to postulationShift from discovery to postulationShift from discovery to postulation
oShift from discovery to postulationShift from discovery to postulationShift from discovery to postulationShift from discovery to postulationoReduce the cognitive load for the consumer of the ontologyReduce the cognitive load for the consumer of the ontologyReduce the cognitive load for the consumer of the ontologyReduce the cognitive load for the consumer of the ontologyoModularize and separate taxonomies and instances to make Modularize and separate taxonomies and instances to make Modularize and separate taxonomies and instances to make Modularize and separate taxonomies and instances to make maintenance easiermaintenance easiermaintenance easiermaintenance easieroTest reasoning and results frequentlyTest reasoning and results frequentlyTest reasoning and results frequentlyTest reasoning and results frequentlyoWhen modularizing, set up some rules to keep people from When modularizing, set up some rules to keep people from When modularizing, set up some rules to keep people from When modularizing, set up some rules to keep people from clobbering each otherclobbering each otherclobbering each otherclobbering each otheroKeep structure out of the ontologyKeep structure out of the ontologyKeep structure out of the ontologyKeep structure out of the ontology
57
Ք쭠
Question TimeQuestion TimeQuestion TimeQuestion Time
•To pursue this further:To pursue this further:To pursue this further:To pursue this further:
oArticles and blogs Articles and blogs Articles and blogs Articles and blogs
oData Centric Manifesto (become a signatory) Data Centric Manifesto (become a signatory) Data Centric Manifesto (become a signatory) Data Centric Manifesto (become a signatory)
http://datacentricmanifesto.org
oContact me (Dave McComb)Contact me (Dave McComb)Contact me (Dave McComb)Contact me (Dave McComb)