- From: Hugh Glaser <hg@ecs.soton.ac.uk>
- Date: Fri, 12 Jul 2013 09:55:20 +0000
- To: Kristian Rink <kawazu428@gmail.com>
- CC: "<semantic-web@w3c.org>" <semantic-web@w3c.org>
Hi Kristian, Some comments, which may help even if they don't answer your question directly. (And sorry if you knew all this!) The first thing that worried me was your use of the property "belongsToProject"; it seems to me that it should more correctly be named something like "belongsToProjectThatHasName". So I am sort of worrying that confusion can creep in between the URI that you will have generated for the instances of class Project and the use of that string in the description of Document instances. (You don't say what the URI for the Project comes from, so I can't go further - is it from the key from the original DB, or something else?) I have been challenged about this before on the list, but I would say that the problem arises because you are content to let the Project in "Document" "belongsTo" "Project" remain as a string. Strings can bring in lots of confusion, and should be restricted to well-understood contexts. That is why URIs and the Semantic Web are so powerful - for example in this case, leaving things as strings might cause a user to get confused between a Project and a Document that has the same name (assuming you have such a property for Documents). So in transforming DBs to RDF, my routine pattern is to generate URIs for most strings. When transforming the Document, were you to generate a URI for the object (Project), with, of course an appropriate data property "name", then it would change your problem to saying that two Projects that had the same name were the same Project. In practice, for a dataset like this, it is often easiest to make the algorithm you use to make the URI for a project depend only on the name (in both contexts), and then the problem you describe entirely goes away - the Projects are the same by construction, and there is no need for OWL rules or owl:sameAs etc. I do realise that this doesn't actually answer your question, as you are trying model, not transform! But it might help :-) Best Hugh On 11 Jul 2013, at 14:53, Kristian Rink <kawazu428@gmail.com> wrote: > Hi all, > > into trying to model an existing (relational) metadata structure for a given domain as an OWL ontology, I am left with a question I thought to be trivial at first, yet I do not completely know how to model them. > > Bottom line is something like this: > > There are two classes, "Project" and "Document", in our ontology. > > "Project" has a data property ("name") attached to it which basically is a unique identifier for any individual belonging to this class. > > "Document", right now, has a data property "belongsToProject", which again is string. > > And there's an object property "Document" "belongsTo" "Project". What I, right now, would like to do is find a formal definition (in OWL) that a "Document" individual "belongsTo" a particular "Project" individual if the Documents "belongsToProject" (string) property is equal to the Projects "name" (string) property. > > I am unsure what's the best solution to do this. So far I encountered various different forms of how to define ontology rules, but in most if not all cases I ended up right at the point where to define that "string" comparison thing. > > Is something such as this doable, or am I completely off track and not yet thinking "ontology" enough here? > > > Thanks in advance for any insights. > Kristian > >
Received on Friday, 12 July 2013 09:56:35 UTC