- From: Martynas Jusevičius <martynas@graphity.org>
- Date: Fri, 17 Aug 2012 11:40:00 +0300
- To: Heiko Paulheim <paulheim@ke.tu-darmstadt.de>
- Cc: Timothy Armstrong <tim.armstrong@gmx.com>, semantic-web@w3.org
Heiko, I can confirm your words from my practice -- getting rid of any object-oriented models above RDF level (that is, above Jena or similar API) actually results in a much more generic, lean, and flexible design. Our approach was presented at the Linked Enterprise Data Patterns workshop [LEDP]. [LEDP] http://www.w3.org/2011/09/LinkedData/ledp2011_submission_1.pdf Martynas graphity.org On Fri, Aug 17, 2012 at 10:49 AM, Heiko Paulheim <paulheim@ke.tu-darmstadt.de> wrote: > Hi Tim, > > there are quite a few frameworks doing similar things; JenaBean, mentioned > by Martynas, being one of them. > > Although the idea looks tempting, I do not think that simply mapping a class > model to an OWL/RDFS ontology in a 1:1 fashion will result in a usable RDF > model, since common modeling practices in ontology engineering and OOX are > different and not trivially compatible. Thus, I believe that allowing more > flexible mappings between a class model and OWL/RDFS than just wiring each > Java class to an OWL/RDFS class and each attribute to a property is > required. > > See our 2011 DESWeb paper [1] for an in-depth discussion. > > Best, > Heiko > > > > [1] Paulheim et al.: "Mapping Pragmatic Class Models to Reference > Ontologies". In: 2nd International Workshop on > Data Engineering meets the Semantic Web (DESWeb), 2011. > > Am 17.08.2012 09:33, schrieb Martynas Jusevičius: > >> Hey Timothy, >> >> are you familiar with JenaBean? It uses annotations for a similar purpose: >> http://code.google.com/p/jenabean/wiki/AnnotationGuide >> >> Martynas >> graphity.org >> >> On Thu, Aug 16, 2012 at 8:42 PM, Timothy Armstrong >> <tim.armstrong@gmx.com> wrote: >>> >>> Hello everyone, >>> >>> My understanding is that we can post all object-oriented data on the >>> Semantic Web, as object-oriented programming and OWL and are entirely >>> compatible. I have a correspondence between OOP and OWL. Object-oriented >>> classes are OWL classes, object-oriented attributes are OWL properties, >>> object-oriented operations are Semantic Web Services, and object-oriented >>> packages are ontologies. Class membership is unary predicates, and >>> attributes are binary predicates, relating two entities. In Java, if a >>> field is a Java Collection or an array, each element in it is just the >>> object of a triple. I interpret all object-oriented data as being >>> triples >>> in RDF. So we should be able to serialize all object-oriented data to >>> RDF. >>> We can thus have lots more data on the Semantic Web! >>> >>> Based on these principles, what we want to do is extend OOP to make it >>> into >>> OWL, i.e. to make it better. I've developed an extension to Java using >>> OWL >>> and have just released it open source: http://www.semanticoop.org. I'm >>> looking to talk to people about it. I've translated the entire RDF, >>> RDFS, >>> and OWL ontologies into Java; see the packages beginning with org.w3 at >>> http://www.semanticoop.org/xref/. Here is rdfs:comment, for instance, as >>> a >>> Java annotation in a file comment.java: >>> >>> @AnnotationProperty >>> @label("comment") >>> @comment("A description of the subject resource.") >>> @isDefinedBy("http://www.w3.org/2000/01/rdf-schema#") >>> @domain(Resource.class) >>> @range(Literal.class) >>> >>> @Documented >>> @Retention(RetentionPolicy.RUNTIME) >>> public @interface comment >>> { >>> public String[] value(); >>> } >>> >>> The OWL annotation properties are Java annotations, so I can write >>> ontologies entirely in Java. >>> >>> The proof that the correspondence between attributes and properties holds >>> up >>> is just that I have most of the property reasoning working for >>> attributes, >>> and it all makes sense and seems like it would be very useful in >>> object-oriented programming. We will allow programmers to define classes >>> as >>> intersections, unions, or complements of other classes, run SPARQL >>> queries >>> and rules on main memory, and do everything else we can do with OWL >>> inside >>> an object-oriented language, object database, or object-relational >>> database. >>> >>> I have a lot working. I came across other software that treats >>> attributes >>> as properties, like AliBaba, very late in the development process. I >>> think >>> I did a lot differently. Would anyone be interested in talking about it >>> or >>> hearing more? This is the first I'm announcing the project. I've just >>> done >>> everything myself to this point, so I've gotten as far as I could. I was >>> trying to do it as part of my Ph.D. research. I'm currently looking to >>> talk >>> to people about the software rather than for people to use it yet. Well, >>> I >>> hope people like it. >>> >>> Thank you, >>> Tim Armstrong >>> >>> > > -- > Dr. Heiko Paulheim > Knowledge Engineering Group > Technische Universität Darmstadt > Phone: +49 6151 16 6634 > Fax: +49 6151 16 5482 > http://www.ke.tu-darmstadt.de/staff/heiko-paulheim > >
Received on Friday, 17 August 2012 08:40:29 UTC