- From: Timothy Armstrong <tim.armstrong@gmx.com>
- Date: Thu, 16 Aug 2012 13:42:41 -0400
- To: semantic-web@w3.org
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
Received on Friday, 17 August 2012 07:02:40 UTC