From: <ku...@us...> - 2008-09-24 15:38:25
|
Revision: 1255 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1255&view=rev Author: kurzum Date: 2008-09-24 15:33:30 +0000 (Wed, 24 Sep 2008) Log Message: ----------- latest changes Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/configurators/SparqlKnowledgeSourceConfigurator.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/RDFBlankNode.java trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java trunk/src/dl-learner/org/dllearner/utilities/datastructures/RDFNodeTuple.java trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/aquisitors/package.html trunk/src/dl-learner/org/dllearner/kb/extraction/package.html trunk/src/dl-learner/org/dllearner/kb/manipulator/package.html Modified: trunk/src/dl-learner/org/dllearner/core/configurators/SparqlKnowledgeSourceConfigurator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/configurators/SparqlKnowledgeSourceConfigurator.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/core/configurators/SparqlKnowledgeSourceConfigurator.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -151,7 +151,7 @@ return (Set<String>) ComponentManager.getInstance().getConfigOptionValue(sparqlKnowledgeSource, "objList") ; } /** -* saveExtractedFragment Specifies whether the extracted ontology is written to a file or not.. +* saveExtractedFragment Specifies whether the extracted ontology is written to a file or not. The OWL file is written to the cache dir.. * mandatory: false| reinit necessary: true * default value: true * @return boolean @@ -345,7 +345,7 @@ reinitNecessary = true; } /** -* @param saveExtractedFragment Specifies whether the extracted ontology is written to a file or not.. +* @param saveExtractedFragment Specifies whether the extracted ontology is written to a file or not. The OWL file is written to the cache dir.. * mandatory: false| reinit necessary: true * default value: true **/ Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/RDFBlankNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/RDFBlankNode.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/RDFBlankNode.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -47,6 +47,7 @@ return bNodeId; } //RBC + @Override public String toString(){ //RBC return "I'm a blank node with id: "+bNodeId+"||"+blankNode; Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -88,7 +88,7 @@ tuple.b = new RDFBlankNode(currentId, tuple.b); System.out.println(uri+" replaced blanknode "+tuple.b); dissolveBlankNodes(currentId, uri, tuple); - System.out.println(BlankNodeCollector.getBlankNodeMap()); + //System.out.println(BlankNodeCollector.getBlankNodeMap()); } } Added: trunk/src/dl-learner/org/dllearner/kb/aquisitors/package.html =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/aquisitors/package.html (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/package.html 2008-09-24 15:33:30 UTC (rev 1255) @@ -0,0 +1,7 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head></head> +<body bgcolor="white"> +<p>Different classes for physically extracting triples from data sources.</p> +</body> +</html> Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -1,7 +1,10 @@ package org.dllearner.kb.extraction; +import java.net.URI; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -10,18 +13,26 @@ import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; +import org.dllearner.utilities.owl.OWLVocabulary; +import org.semanticweb.owl.model.OWLDataFactory; +import org.semanticweb.owl.model.OWLDescription; public class BlankNode extends Node { RDFBlankNode bNode; + String inboundEdge; + + private List<Node> connectedNodes =new ArrayList<Node>(); + private List<ObjectPropertyNode> objectProperties = new ArrayList<ObjectPropertyNode>(); private List<DatatypePropertyNode> datatypeProperties = new ArrayList<DatatypePropertyNode>(); - public BlankNode(RDFBlankNode bNode){ - super("_:internal_"+bNode.getBNodeId()); + public BlankNode(RDFBlankNode bNode, String inboundEdge){ + super(""+bNode.getBNodeId()); this.bNode=bNode; + this.inboundEdge = inboundEdge; } @@ -34,21 +45,25 @@ for (RDFNodeTuple tuple : s) { if(tuple.b.isLiteral()) { datatypeProperties.add(new DatatypePropertyNode(tuple.a.toString(), this, new LiteralNode(tuple.b) )); + connectedNodes.add(new DatatypePropertyNode(tuple.a.toString(), this, new LiteralNode(tuple.b) )); }else if(tuple.b.isAnon()){ - BlankNode tmp = new BlankNode( (RDFBlankNode)tuple.b); + BlankNode tmp = new BlankNode( (RDFBlankNode)tuple.b, tuple.a.toString()); objectProperties.add(new ObjectPropertyNode(tuple.a.toString(), this, tmp )); + connectedNodes.add(new BlankNode( (RDFBlankNode)tuple.b, tuple.a.toString())); newNodes.add(tmp); }else{ objectProperties.add(new ObjectPropertyNode(tuple.a.toString(), this, new ClassNode(tuple.b.toString()) )); + connectedNodes.add(new ObjectPropertyNode(tuple.a.toString(), this, new ClassNode(tuple.b.toString()) )); } } return newNodes; } @Override - public void expandProperties(TupleAquisitor TupelAquisitor, + public List<BlankNode> expandProperties(TupleAquisitor TupelAquisitor, Manipulator manipulator) { + return new ArrayList<BlankNode>(); } @Override @@ -68,8 +83,77 @@ } @Override + public URI getURI(){ + return URI.create("http://www.empty.org/empty#empty"); + } + + @Override public void toOWLOntology( OWLAPIOntologyCollector owlAPIOntologyCollector){ //FIXME } + + public String getInBoundEdge(){ + return inboundEdge; + } + + public OWLDescription getAnonymousClass(OWLAPIOntologyCollector owlAPIOntologyCollector){ + OWLDataFactory factory = owlAPIOntologyCollector.getFactory(); + OWLDescription ret = factory.getOWLClass(URI.create("http://dummy.org/dummy")); + + for (Node n : connectedNodes) { + System.out.println(n.toString()); + } + + if(containsDataTypeProperties()){ + //do nothing right now, add a return here; + } + + Set<OWLDescription> l = new HashSet<OWLDescription>(); + for (Node n : connectedNodes) { + if(n instanceof BlankNode){ + l.add(((BlankNode)n).getAnonymousClass(owlAPIOntologyCollector)); + }else{ + l.add(factory.getOWLClass(n.getURI())); + } + } + + if(isOfType(OWLVocabulary.OWL_intersectionOf)){ + ret = factory.getOWLObjectIntersectionOf(l); + System.out.println("aaa"); + }else if(isOfType(OWLVocabulary.OWL_unionOf)){ + ret = factory.getOWLObjectUnionOf(l); + System.out.println("aaa"); + }else if(isOfType(OWLVocabulary.OWL_complementOf)){ + ret = factory.getOWLObjectComplementOf(new ArrayList<OWLDescription>(l).remove(0)); + System.out.println("aaa"); + } + return ret; + } + + + + private boolean isOfType(String type){ + for (Node n : connectedNodes) { + if((n instanceof BlankNode ) + && + ((BlankNode)n).getInBoundEdge().equals(type)) { + return true; + }else if((n instanceof ObjectPropertyNode ) + && + ((ObjectPropertyNode)n).getAPart().toString().equals(type)) { + return true; + } + } + return false; + } + + private boolean containsDataTypeProperties(){ + for (Node n : connectedNodes) { + if(n instanceof DatatypePropertyNode) { + return true; + } + } + return false; + } } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -48,7 +48,8 @@ List<ObjectPropertyNode> classProperties = new ArrayList<ObjectPropertyNode>(); List<DatatypePropertyNode> datatypeProperties = new ArrayList<DatatypePropertyNode>(); - + List<BlankNode> blankNodes = new ArrayList<BlankNode>(); + public ClassNode(String uri) { super(uri); } @@ -80,12 +81,12 @@ }else if(tuple.b.isAnon()){ logger.warn("blanknodes not supported as of now "+ this +" in tuple" + tuple); RDFBlankNode n = (RDFBlankNode) tuple.b; - //SortedSet<RDFNodeTuple> bNodeTuples = BlankNodeCollector.getBlankNode(n.getBNodeId()); - //BlankNode tmp = new BlankNode(n); + + BlankNode tmp = new BlankNode( n, tuple.a.toString()); //add it to the graph - //classProperties.add(new ObjectPropertyNode( tuple.a.toString(), this, tmp)); + blankNodes.add(tmp); //return tmp; - return null; + return tmp; // substitute rdf:type with owl:subclassof }else if (property.equals(OWLVocabulary.RDF_TYPE) || OWLVocabulary.isStringSubClassVocab(property)) { @@ -108,7 +109,8 @@ // gets the types for properties recursively @Override - public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + return new ArrayList<BlankNode>(); } @@ -151,7 +153,7 @@ }else if(one.getURIString().equals(OWLVocabulary.OWL_EQUIVALENT_CLASS)){ owlAPIOntologyCollector.addAxiom(factory.getOWLEquivalentClassesAxiom(me, c)); }else { - logger.warn("missing : " +one.getURIString()); + tail( getURIString()+"||"+one.getURIString()); } one.getBPart().toOWLOntology(owlAPIOntologyCollector); } @@ -166,10 +168,13 @@ OWLLabelAnnotation label = factory.getOWLLabelAnnotation(one.getBPart().getLiteral().getString()); owlAPIOntologyCollector.addAxiom(factory.getOWLEntityAnnotationAxiom(me, label)); }else { - logger.warn("missing : " +one.getURIString()); + tail(getURIString()+"||"+one.getURIString()); } } + for (BlankNode bn : blankNodes) { + System.out.println(bn.getAnonymousClass(owlAPIOntologyCollector).toString()); + } }catch (Exception e) { System.out.println("aaa"+getURIString()); e.printStackTrace(); Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -19,6 +19,7 @@ */ package org.dllearner.kb.extraction; +import java.util.ArrayList; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; @@ -49,7 +50,8 @@ // gets the types for properties recursively @Override - public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + return new ArrayList<BlankNode>(); } @Override Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -98,7 +98,7 @@ tupleAquisitor.setNextTaskToNormal(); tmp.addAll(nextNode.expand(tupleAquisitor, configuration.getManipulator())); - //System.out.println(tmpVec); + //.out.println(tmpVec); } collectNodes.addAll(tmp); Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -112,10 +112,12 @@ // gets the types for properties recursively @Override - public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + List<BlankNode> ret = new ArrayList<BlankNode>(); for (ObjectPropertyNode one : objectProperties) { - one.expandProperties(tupelAquisitor, manipulator); + ret.addAll(one.expandProperties(tupelAquisitor, manipulator)); } + return ret; } @@ -164,12 +166,12 @@ for (DatatypePropertyNode one : datatypeProperties) { OWLDataProperty p = factory.getOWLDataProperty(one.getURI()); Literal ln = one.getBPart().getLiteral(); + try{ - - if(one.getBPart().isString()){ owlAPIOntologyCollector.addAxiom( - factory.getOWLDataPropertyAssertionAxiom(me, p, ln.getString())); + factory.getOWLDataPropertyAssertionAxiom(me, p, ln.getString())); + } else if(one.getBPart().isDouble()){ owlAPIOntologyCollector.addAxiom( factory.getOWLDataPropertyAssertionAxiom(me, p, ln.getDouble())); @@ -183,7 +185,7 @@ owlAPIOntologyCollector.addAxiom( factory.getOWLDataPropertyAssertionAxiom(me, p, ln.getBoolean())); } else { - logger.warn("missing : "+one.getURIString()); + tail(getURIString()+"||"+one.getURIString()); } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -70,7 +70,8 @@ // gets the types for properties recursively @Override - public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + return new ArrayList<BlankNode>(); } @Override @@ -145,6 +146,9 @@ return false; } } + public boolean hasLanguageTag(){ + return (!(l.getLanguage().length()==0)); + } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Manager.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -85,12 +85,15 @@ } - public OWLOntology getOWLAPIOntologyForNodes(List<Node> nodes){ + public OWLOntology getOWLAPIOntologyForNodes(List<Node> nodes, boolean saveOntology){ for (Node n : nodes) { n.toOWLOntology(configuration.getOwlAPIOntologyCollector()); } + if(saveOntology){ configuration.getOwlAPIOntologyCollector().saveOntology(); + } return configuration.getOwlAPIOntologyCollector().getCurrentOntology(); + } public URL getPhysicalOntologyURL()throws MalformedURLException{ Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -23,6 +23,7 @@ import java.util.List; import java.util.SortedSet; +import org.apache.log4j.Logger; import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; @@ -35,8 +36,11 @@ * */ public abstract class Node { - + private static Logger logger = Logger + .getLogger(Node.class); + // make sure no information is missed during the transition to OWLAPI + public static final boolean DEBUGTAIL = true; protected String uri; // protected String type; @@ -61,7 +65,7 @@ * * @param manipulator */ - public abstract void expandProperties( + public abstract List<BlankNode> expandProperties( TupleAquisitor TupelAquisitor, Manipulator manipulator); /** @@ -99,11 +103,16 @@ return "<"+uri+"> "; } - - - public boolean isExpanded(){ return expanded; } + + public void tail(String uri){ + if(DEBUGTAIL){ + logger.warn("missing: "+uri); + System.exit(0); + } + + } } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -19,15 +19,22 @@ */ package org.dllearner.kb.extraction; +import java.net.URI; +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; +import org.dllearner.kb.aquisitors.RDFBlankNode; import org.dllearner.kb.aquisitors.TupleAquisitor; import org.dllearner.kb.manipulator.Manipulator; import org.dllearner.utilities.datastructures.RDFNodeTuple; import org.dllearner.utilities.owl.OWLVocabulary; +import org.semanticweb.owl.model.OWLClass; import org.semanticweb.owl.model.OWLDataFactory; +import org.semanticweb.owl.model.OWLLabelAnnotation; import org.semanticweb.owl.model.OWLObjectProperty; @@ -46,6 +53,7 @@ private SortedSet<String> specialTypes = new TreeSet<String>(); @SuppressWarnings("unused") private SortedSet<RDFNodeTuple> propertyInformation = new TreeSet<RDFNodeTuple>(); + List<BlankNode> blankNodes = new ArrayList<BlankNode>(); public ObjectPropertyNode(String propertyURI, Node a, Node b) { super(propertyURI, a, b); @@ -60,16 +68,27 @@ // gets the types for properties recursively @Override - public void expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { - b.expandProperties(tupelAquisitor, manipulator); + public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) { + List<BlankNode> ret = new ArrayList<BlankNode>(); + ret.addAll(b.expandProperties(tupelAquisitor, manipulator)); SortedSet<RDFNodeTuple> newTypes = tupelAquisitor.getTupelForResource(uri); for (RDFNodeTuple tuple : newTypes) { try { + if (tuple.a.toString().equals(OWLVocabulary.RDF_TYPE)) { - specialTypes.add(tuple.b.toString()); + if(!tuple.b.toString().equals(OWLVocabulary.OWL_OBJECTPROPERTY)){ + specialTypes.add(tuple.b.toString()); + } }else if(tuple.b.isAnon()){ logger.warn("blanknodes currently not implemented in this tuple aquisitor"); + RDFBlankNode n = (RDFBlankNode) tuple.b; + + BlankNode tmp = new BlankNode( n, tuple.a.toString()); + //add it to the graph + blankNodes.add(tmp); + ret.add( tmp); }else{ + propertyInformation.add(tuple); } @@ -77,7 +96,10 @@ logger.warn("resource "+uri+" with "+ tuple); e.printStackTrace(); } + } + return ret; + } @@ -105,8 +127,40 @@ OWLDataFactory factory = owlAPIOntologyCollector.getFactory(); OWLObjectProperty me =factory.getOWLObjectProperty(getURI()); + for (RDFNodeTuple one : propertyInformation) { + if(one.aPartContains(OWLVocabulary.RDFS_range)){ + OWLClass c = factory.getOWLClass(URI.create(one.a.toString())); + owlAPIOntologyCollector.addAxiom(factory.getOWLObjectPropertyRangeAxiom(me, c)); + }else if(one.aPartContains(OWLVocabulary.RDFS_domain)){ + OWLClass c = factory.getOWLClass(URI.create(one.a.toString())); + owlAPIOntologyCollector.addAxiom(factory.getOWLObjectPropertyDomainAxiom(me, c)); + }else if(one.aPartContains(OWLVocabulary.RDFS_SUB_PROPERTY_OF)){ + OWLObjectProperty p = factory.getOWLObjectProperty(URI.create(one.b.toString())); + owlAPIOntologyCollector.addAxiom(factory.getOWLSubObjectPropertyAxiom(me, p)); + + }else if(one.aPartContains(OWLVocabulary.OWL_inverseOf)){ + OWLObjectProperty p = factory.getOWLObjectProperty(URI.create(one.b.toString())); + owlAPIOntologyCollector.addAxiom(factory.getOWLInverseObjectPropertiesAxiom(me, p)); + }else if(one.aPartContains(OWLVocabulary.OWL_equivalentProperty)){ + OWLObjectProperty p = factory.getOWLObjectProperty(URI.create(one.b.toString())); + Set<OWLObjectProperty> tmp = new HashSet<OWLObjectProperty>(); + tmp.add(me);tmp.add(p); + owlAPIOntologyCollector.addAxiom(factory.getOWLEquivalentObjectPropertiesAxiom(tmp)); + + }else if(one.a.toString().equals(OWLVocabulary.RDFS_LABEL)){ + OWLLabelAnnotation label = factory.getOWLLabelAnnotation(one.b.toString()); + owlAPIOntologyCollector.addAxiom(factory.getOWLEntityAnnotationAxiom(me, label)); + }else if(one.b.isLiteral()){ + // XXX comments + } + else { + tail(getURIString()+"||"+one); + } + + } for (String one : specialTypes) { + if(one.equals(OWLVocabulary.OWL_FunctionalProperty)){ owlAPIOntologyCollector.addAxiom(factory.getOWLFunctionalObjectPropertyAxiom(me)); }else if(one.equals(OWLVocabulary.OWL_InverseFunctionalProperty)){ @@ -115,8 +169,13 @@ owlAPIOntologyCollector.addAxiom(factory.getOWLTransitiveObjectPropertyAxiom(me)); }else if(one.equals(OWLVocabulary.OWL_SymmetricProperty)){ owlAPIOntologyCollector.addAxiom(factory.getOWLSymmetricObjectPropertyAxiom(me)); + }else{ + tail(getURIString()+"||"+one); } } + for (BlankNode bn : blankNodes) { + System.out.println(bn.getAnonymousClass(owlAPIOntologyCollector).toString()); + } } Added: trunk/src/dl-learner/org/dllearner/kb/extraction/package.html =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/package.html (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/package.html 2008-09-24 15:33:30 UTC (rev 1255) @@ -0,0 +1,7 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head></head> +<body bgcolor="white"> +<p>Core extraction algorithm including datastructures.</p> +</body> +</html> Added: trunk/src/dl-learner/org/dllearner/kb/manipulator/package.html =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/manipulator/package.html (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/manipulator/package.html 2008-09-24 15:33:30 UTC (rev 1255) @@ -0,0 +1,7 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head></head> +<body bgcolor="white"> +<p>Classes for manipulating extracted triples</p> +</body> +</html> Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -170,11 +170,8 @@ options .add(new BooleanConfigOption( "saveExtractedFragment", - "Specifies whether the extracted ontology is written to a file or not.", + "Specifies whether the extracted ontology is written to a file or not. The OWL file is written to the cache dir.", true, false, true)); - - - options.add(new StringTupleListConfigOption("replacePredicate", "rule for replacing predicates", new ArrayList<StringTuple>(), false, true)); options.add(new StringTupleListConfigOption("replaceObject", @@ -253,49 +250,14 @@ extractionTime.setTime(); List<Node> seedNodes = m.extract(configurator.getInstances()); - fragment = m.getOWLAPIOntologyForNodes(seedNodes); - //System.exit(0); + fragment = m.getOWLAPIOntologyForNodes(seedNodes, configurator.getSaveExtractedFragment()); - //ont = m.getNTripleForNodes(seedNodes); extractionTime.printAndSet("extraction needed"); logger.info("Finished collecting Fragment"); ontologyFragmentURL = m.getPhysicalOntologyURL(); - /* - if (dumpToFile) { - String filename = System.currentTimeMillis() + ".nt"; - String basedir = "cache" + File.separator; - try { - if (!new File(basedir).exists()) { - new File(basedir).mkdir(); - } - - File dump = new File(basedir + filename); - - FileWriter fw = new FileWriter(dump, true); - fw.write(ont); - fw.flush(); - fw.close(); - - dumpFile = (dump).toURI().toURL(); - - if (configurator.getConvertNT2RDF()) { - NT2RDF.convertNT2RDF(dump.getAbsolutePath()); - - } - } catch (Exception e) { - e.printStackTrace(); - } - }*/ - /*if (format.equals("KB")) { - try { - // kb = KBParser.parseKBFile(new StringReader(ont)); - kb = KBParser.parseKBFile(dumpFile); - } catch (Exception e) { - e.printStackTrace(); - } - }*/ + } catch (Exception e) { e.printStackTrace(); } @@ -318,13 +280,8 @@ */ @Override public String toDIG(URI kbURI) { - //if (format.equals("RDF/XML")){ return JenaOWLDIGConverter.getTellsString(ontologyFragmentURL, OntologyFormat.RDF_XML, kbURI); - //}else { - //throw new Error("KB Format not supported any more"); - //return DIGConverter.getDIGString(kb, kbURI).toString(); - //} } /* @@ -363,9 +320,6 @@ } - /*public String[] getOntArray() { - return ontArray; - }*/ public SparqlQuery sparqlQuery(String query) { return new SparqlQuery(query, getSparqlEndpoint()); Modified: trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -76,7 +76,7 @@ 200 ); m.useConfiguration(conf); - + @SuppressWarnings("unused") String u2 = "http://dbpedia.org/resource/Angela_Merkel"; String filename = "cache/"+System.currentTimeMillis() + ".nt"; Modified: trunk/src/dl-learner/org/dllearner/utilities/datastructures/RDFNodeTuple.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/datastructures/RDFNodeTuple.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/utilities/datastructures/RDFNodeTuple.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -62,7 +62,7 @@ return b.toString().contains(partOf); } - @Deprecated + public String getNTriple (String subject){ String ret = "<"+subject+"> "; ret+="<"+a.toString()+"> "; Modified: trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java 2008-09-24 13:36:46 UTC (rev 1254) +++ trunk/src/dl-learner/org/dllearner/utilities/owl/OWLVocabulary.java 2008-09-24 15:33:30 UTC (rev 1255) @@ -30,7 +30,11 @@ public static final String RDFS_LABEL = "http://www.w3.org/2000/01/rdf-schema#label"; public static final String RDFS_DESCRIPTION = "http://www.w3.org/2000/01/rdf-schema#description"; + public static final String RDFS_SUB_PROPERTY_OF = "http://www.w3.org/2000/01/rdf-schema#subPropertyOf"; + public static final String RDFS_domain = "http://www.w3.org/2000/01/rdf-schema#domain"; + public static final String RDFS_range = "http://www.w3.org/2000/01/rdf-schema#range"; + public static final String OWL_SAME_AS = "http://www.w3.org/2002/07/owl#sameAs"; public static final String OWL_OBJECTPROPERTY = "http://www.w3.org/2002/07/owl#ObjectProperty"; public static final String OWL_DATATYPPROPERTY = "http://www.w3.org/2002/07/owl#DataTypeProperty"; @@ -40,13 +44,24 @@ public static final String OWL_DISJOINT_WITH = "http://www.w3.org/2002/07/owl#disjointWith"; public static final String OWL_EQUIVALENT_CLASS = "http://www.w3.org/2002/07/owl#equivalentClass"; + public static final String OWL_intersectionOf = "http://www.w3.org/2002/07/owl#intersectionOf"; + public static final String OWL_unionOf = "http://www.w3.org/2002/07/owl#unionOf"; + public static final String OWL_complementOf = "http://www.w3.org/2002/07/owl#complementOf"; + + public static final String OWL_FunctionalProperty = "http://www.w3.org/2002/07/owl#FunctionalProperty"; public static final String OWL_InverseFunctionalProperty = "http://www.w3.org/2002/07/owl#InverseFunctionalProperty"; public static final String OWL_TransitiveProperty = "http://www.w3.org/2002/07/owl#TransitiveProperty"; public static final String OWL_SymmetricProperty = "http://www.w3.org/2002/07/owl#SymmetricProperty"; + + public static final String OWL_equivalentProperty = "http://www.w3.org/2002/07/owl#equivalentProperty"; + public static final String OWL_inverseOf = "http://www.w3.org/2002/07/owl#inverseOf"; + + + public static final String OWL_THING = "http://www.w3.org/2002/07/owl#Thing"; public static final String OWL_NOTHING = "http://www.w3.org/2002/07/owl#Nothing"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |