W3C home > Mailing lists > Public > semantic-web@w3.org > August 2012

Re: Enhancing object-oriented programming with OWL

From: Mike Dupont <jamesmikedupont@googlemail.com>
Date: Fri, 17 Aug 2012 07:14:09 +0000
Message-ID: <CAF0qKV0PJdKnLwakDw2X2RWAFEnAXP1581Kakfk99ZK=Z0CULw@mail.gmail.com>
To: Timothy Armstrong <tim.armstrong@gmx.com>
Cc: semantic-web@w3.org
Hi there,
I have also considered this approach. My idea was to extract this
semantic information from the compiler itself and make a user library
available that reads this data. If you look at the gnome introspection
interface https://live.gnome.org/GObjectIntrospection/ you will find
something that I consider going in the right direction.

mike

On Thu, Aug 16, 2012 at 5: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
>
>



-- 
James Michael DuPont
Member of Free Libre Open Source Software Kosova http://flossk.org
Saving wikipedia(tm) articles from deletion http://SpeedyDeletion.wikia.com
Contributor FOSM, the CC-BY-SA map of the world http://fosm.org
Mozilla Rep https://reps.mozilla.org/u/h4ck3rm1k3
Received on Friday, 17 August 2012 07:14:58 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:48:39 UTC