better abstraction of document model generation

pull/1/head
Michael Peter Christen 13 years ago
parent 8b7c4d3144
commit 52f5d40043

@ -40,6 +40,7 @@ import net.yacy.cora.document.ASCII;
import net.yacy.cora.document.MultiProtocolURI; import net.yacy.cora.document.MultiProtocolURI;
import net.yacy.cora.document.UTF8; import net.yacy.cora.document.UTF8;
import net.yacy.cora.lod.JenaTripleStore; import net.yacy.cora.lod.JenaTripleStore;
import net.yacy.cora.lod.vocabulary.YaCyMetadata;
import net.yacy.cora.protocol.RequestHeader; import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.services.federated.yacy.CacheStrategy; import net.yacy.cora.services.federated.yacy.CacheStrategy;
import net.yacy.document.Condenser; import net.yacy.document.Condenser;
@ -54,6 +55,9 @@ import net.yacy.kelondro.data.meta.URIMetadataRow;
import net.yacy.search.Switchboard; import net.yacy.search.Switchboard;
import net.yacy.search.index.Segment; import net.yacy.search.index.Segment;
import net.yacy.search.index.Segments; import net.yacy.search.index.Segments;
import com.hp.hpl.jena.rdf.model.Model;
import de.anomic.crawler.Cache; import de.anomic.crawler.Cache;
import de.anomic.crawler.retrieval.Response; import de.anomic.crawler.retrieval.Response;
import de.anomic.server.serverObjects; import de.anomic.server.serverObjects;
@ -344,7 +348,8 @@ public class ViewFile {
prop.putNum("error_size", size); prop.putNum("error_size", size);
prop.put("error_mimeTypeAvailable", (response.getMimeType() == null) ? "0" : "1"); prop.put("error_mimeTypeAvailable", (response.getMimeType() == null) ? "0" : "1");
prop.put("error_mimeTypeAvailable_mimeType", response.getMimeType()); prop.put("error_mimeTypeAvailable_mimeType", response.getMimeType());
prop.putXML("error_triples", JenaTripleStore.getMetadataByURLHash(url.hash())); Model model = JenaTripleStore.getSubmodelBySubject(YaCyMetadata.hashURI(url.hash()));
prop.putXML("error_triples", JenaTripleStore.getRDFByModel(model));
return prop; return prop;
} }

@ -30,6 +30,7 @@ import java.net.MalformedURLException;
import net.yacy.cora.date.ISO8601Formatter; import net.yacy.cora.date.ISO8601Formatter;
import net.yacy.cora.document.ASCII; import net.yacy.cora.document.ASCII;
import net.yacy.cora.lod.JenaTripleStore; import net.yacy.cora.lod.JenaTripleStore;
import net.yacy.cora.lod.vocabulary.YaCyMetadata;
import net.yacy.cora.protocol.RequestHeader; import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.protocol.RequestHeader.FileType; import net.yacy.cora.protocol.RequestHeader.FileType;
import net.yacy.kelondro.data.meta.DigestURI; import net.yacy.kelondro.data.meta.DigestURI;
@ -39,6 +40,9 @@ import net.yacy.kelondro.logging.Log;
import net.yacy.search.Switchboard; import net.yacy.search.Switchboard;
import net.yacy.search.index.Segment; import net.yacy.search.index.Segment;
import net.yacy.search.index.Segments; import net.yacy.search.index.Segments;
import com.hp.hpl.jena.rdf.model.Model;
import de.anomic.server.serverObjects; import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch; import de.anomic.server.serverSwitch;
@ -130,7 +134,8 @@ public class yacydoc {
prop.put("yacy_outbound", entry.lother()); prop.put("yacy_outbound", entry.lother());
// extract the submodel from the triplestore // extract the submodel from the triplestore
String rdf = JenaTripleStore.getMetadataByURLHash(entry.hash()); Model model = JenaTripleStore.getSubmodelBySubject(YaCyMetadata.hashURI(entry.hash()));
String rdf = JenaTripleStore.getRDFByModel(model);
prop.putXML("triples", rdf); prop.putXML("triples", rdf);
prop.put("rdf", header.fileType() == FileType.XML ? rdf : ""); prop.put("rdf", header.fileType() == FileType.XML ? rdf : "");

@ -262,9 +262,7 @@ public class JenaTripleStore {
return m; return m;
} }
public static String getMetadataByURLHash(byte[] urlhash) { public static String getRDFByModel(Model model) {
String subject = YaCyMetadata.hashURI(urlhash);
Model model = JenaTripleStore.getSubmodelBySubject(subject);
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
model.write(baos, "RDF/XML-ABBREV"); model.write(baos, "RDF/XML-ABBREV");
return UTF8.String(baos.toByteArray()); return UTF8.String(baos.toByteArray());

Loading…
Cancel
Save