[Top] [All Lists]

[ontolog-forum] Invoice ontology discussion points/issues

To: ontolog-forum@xxxxxxxxxxxxxxxx
From: MDaconta@xxxxxxx
Date: Thu, 10 Jul 2003 21:09:40 EDT
Message-id: <49.30df9992.2c3f6854@xxxxxxx>
Hi All,

Began working on the UBL invoice ontology in protege.
Attempting to reuse SUMO makes this extremely interesting.
Some of the questions here can only be understood if you download
the protege version of SUMO from ontology.teknowledge.com.

Here is some of the things I have run into so far (For context, note
that Invoice is a subclass of Document which is a subclass of Text, which is a subclass of Artifact, which is a subclass ... (see SUMO) ):

1. Invoice has a "Note" property in the XML version for some form of random text attachment to an invoice.  Does this have a place in a formal ontology?  My gut
feel is no as I don't see how it would be used in any form of inference,
axiom, etc.

2. There is a field called Invoice types.  Did not see an enumerated list for
these but if you find one -- tell me.  Probably need to be modeled as either
subclasses or as axioms.

3. There are CurrencyCodes for invoice, tax and pricing.  My take on this is
that this is the same as defining a CurrencyType which can be modeled in
protegy as a slot with a range of "Class" where you define the parent class
and the valid values are any subclass.  So, I mapped this to the SUMO
CurrencyMeasure class.

4. An invoice can have one or more line items (see the UBL class diagrams),
I modeled this as a subclass of SUMO "Class".  With the idea that it is an
abstract concept which organizes pricing information in the invoice about
a product.  An Invoice instance can then have multiple LineItem slots. Of
course, the line item will point to a product, have a quantity, price, etc.. 
Some axiom of Invoice would be how to calculate a total by summing the
the prices in the Line Items ... etc. 

5. The way "date" is modeled in SUMO seems strange.  In the protege version
(it may be more natural in KIF), this is modeled as an Instance of
BinaryPredicate.  I get why date is a binary predicate (there is documentation)
but if I want a specific date attached as a slot, it is a binary predicate by
default -- i.e.  date(ContainingClass, value).  
Also, in protege there is no way to say that a slot should be of type a
specific instance (because an instance is not a domain, it is a range
of some other domain).
So what I did was for the specific dates in the UBL spreadsheet for
Invoice (like "IssueDate") ... I made its value an Instance of Class TimePoint.

Comments/suggestion on any/all of the above are appreciated,

I'll keep plugging away a little each day and hopefully have most of it
done by the next meeting.

- Mike
Michael C. Daconta
Chief Scientist, APG, McDonald Bradley, Inc.
<Prev in Thread] Current Thread [Next in Thread>