- From: Leonid Ototsky <leo@mmk.ru>
- Date: Fri, 19 Jul 2002 13:14:55 +0600
- To: MDaconta@aol.com
- CC: decoy@iki.fi, www-rdf-interest@w3.org
Mike, Mac> decoy@iki.fi writes: >> >To me, predicates seem to have two types: relation (or association) and >> >attribute. >> How are attributes different from relations except perhaps for their >> typical value range? I mean, mathematically speaking an attribute is just >> a member of the image of an object in a certain relation, that is, a >> member of X \times Y where X is the set of objects and Y the set of values >> this particular attribute may have. I would view the uniform treatment of >> attributes and relations as a big, big plus -- you only have to implement >> the tools once, and everything's beautiful from there. Mac> Attributes and relations are different in terms of subordination, types of Mac> values (not Mac> range) and semantics. Mac> Let's look at a common database example: Mac> If I have the following tables (could be classes): employee, department Mac> The employee table would have attributes like: Mac> name, SSN, dateHired, etc. Mac> Department could have attributes like: name, dnumber, managerSSN, location, Mac> etc. Mac> A relation between these two classe would be something like Mac> "WorksFor" Mac> In the database world, WorksFor would be modeled in a separate table with Mac> an EmployeeSSN and Department number. In other words, the relation connects Mac> these two entities in some way. The relation itself is not part-of or Mac> subordinate Mac> to either entity. Semantically speaking, the concept of "working for" should Mac> not be Mac> a bound characteristic of the Employee class as it is a temporary condition. Mac> So, Mac> while I know you can model it with a "worksFor" attribute that is a reference Mac> to Mac> a Department object ... I would argue that makes your class brittle and Mac> logically Mac> incorrect. So, I am saying that I don't think we should model relations as Mac> members of a Class. In object-oriented programming terms, I am saying that a Mac> simple property as a reference type to another object is not good enough if Mac> you have a situation where the relations are more important than the entities. You are right ! And in practice we use a separate entity to model the relations - associations . Although from formal logic point of view they differ only as monadic and nonmonadic predicates. But ! It will be helpful to take into account some "relativity" between "properties" and "relations". Sometimes we model a relation as "propertiy" of object and simetimes as separate entity (see for example a discussion - http://grouper.ieee.org/groups/suo/email/msg02014.html) As I wrote yesterday some more deep foundations must be taken into account for basic Semantic Web metamodel. Best regards, Leonid mailto:leo@mmk.ru and copy to leo@mgn.ru ===================================================== Leonid Ototsky, http://ototsky.mgn.ru Chief Specialist of the Computer Center, Magnitogorsk Iron&Steel Works (MMK)- www.mmk.ru Russia =====================================================
Received on Friday, 19 July 2002 05:14:35 UTC