Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Request for Clarification

IndependentParty vs. AutonomousAgent

What if any relationship is there between IndependentParty and AutonomousAgent? It makes sense that every IndependentParty is an AutonomousAgent, but that subclass relationship is not there.

Recommended Changes

Naming Conventions for MediatingThings, ThingsInRole & RelativeThings & connecting properties

There is a property called isProducedBy which is supposed to only be used with RelativeThings. For the record, the definition is currently:  “The target or range of this property should be read as always being some kind of 'relative thing', that is a thing defined in some context. Generally this will be a 'party in role'. This property is not intended to be used to relate a thing to some independent thing which it is provided by, only to something in the role of being that which provides it.”  

...

This example points out something else.  The definition tells us to only use the isProducedBy property when the property is acting in the producer role.  In this case they are producing the credit report in their role as a credit reporting agency, not more norrowly as a producer.  Experian might produce something else but not in their role as a CreditReportingAgency, this would require yet another role instance for Experian.  Yet another reason to avoid mediating things whenver possible.

ReFactoring Suggestions

  • Suggest move the hasName data property to the relations ontology. Many things that are not agents have names .  Then there may be no need for relations ontology to be importing agents ontology. It seems a bit backwards. 
  • Suggest move identifies(isIdentifiedBy) properties to the relations ontology. Many things that are not agents have identifiers.  Then the agents ontology can import the relations ontology, like most other ontologies do.
  • Suggest change name of rel:hasUniqueIdentifier to rel:hasUniqueString to avoid confusion with the class, Identifier.

Properties with too narrow domain and/or range

rel:refersTo property has too narrow domain (Reference)

The property refersTo in the relations ontology has an overly narrow domain: Reference.  Every Reference refersTo something, but a person or a document or a report can refer to something, and it is not true that individual persons, documents or reporets are examples of " a concept that refers to (or stands in for) another concept".

...

Proposed solution: just remove the domain for refersTo, and all other properties that have indeterminately broad potential usage.

doc:hasExpirationDate has too narrow domain (Document)

It is currently not possible for an agreement to have an expiration date, because only Documents are allowed to have expiration dates

Proposed solution: just remove the domain for doc:hasExpirationDate

doc:hasDateOfIssuance has too narrow domain (Document)

It is currently not possible for anything to be issued unless it is a Document, thus the current ontology requires every financial instrument (which is currently a WrittenContract) to also be a Document.  Is that desirable?  

Proposed solution: just remove the domain for doc:hasDate

fd:hasCount has too narrow domain (RegularSchedule)

Data property: hasCount only applies to a RegularSchedule, but many things can be counted, e.g. the number of entries in a report, or number of members of a collection.

Proposed solution: just remove the domain for fd:hasCount

rel:uses has too narrow domain (AutonomousAgent)

The domain for uses is AutonomousAgent. Unlike the other examples, this one immediately seems reasonable and defensible from an intuitive and ontological perspective. Yet from a practical perspective, the domain is still too narrow. Outside of finance per se you can say an Argument uses a line of reasoning or that ontology uses a design pattern.  This is convenient and useful (as it were), even though strictly, the agent creating the argument or the ontology is doing the direct using.  In finance, there is a CreditScoring Occurrence whereby an algorithm is used to compute the credit score.  Strictly  the agent doing the work was using the model. But there is no reason to introduce an Agent here, that information is never tracked. I want to use the rel:uses property to link the credit scoring occurrence directly to the model.  In English this is fine, it makes sense to say algorithm X was used by this Occurrence of coming up with a credit score.   Lots of things might use something else, and it is hard to say what they all might be, so probably best to remove the domain. An alternate strategy is to try soemthing like Agent OR Occurrence (and anything else we can thyink of) and then if we run inference one day and find a problem we can keep extending the domain as needed. Not clear what the pros/cons are. 

Proposed solution: just remove the domain for rel:uses

rel:isMemberOf has too narrow domain 

isMemberOf should be general, now there is need to create a isGenericMemberOf.
UPDATE: this may have been fixed now. 


Recommended Additions

datatype property for version indicator

hasVersion string valued.

...