Re: Enhancing object-oriented programming with OWL

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 07:50:33 UTC