📄 thesaurus.java
字号:
//=== Copyright (C) 2001-2005 Food and Agriculture Organization of the
//=== United Nations (FAO-UN), United Nations World Food Programme (WFP)
//=== and United Nations Environment Programme (UNEP)
//===
//=== This program is free software; you can redistribute it and/or modify
//=== it under the terms of the GNU General Public License as published by
//=== the Free Software Foundation; either version 2 of the License, or (at
//=== your option) any later version.
//===
//=== This program is distributed in the hope that it will be useful, but
//=== WITHOUT ANY WARRANTY; without even the implied warranty of
//=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
//=== General Public License for more details.
//===
//=== You should have received a copy of the GNU General Public License
//=== along with this program; if not, write to the Free Software
//=== Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//===
//=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2,
//=== Rome - Italy. email: GeoNetwork@fao.org
//==============================================================================
package org.fao.geonet.kernel;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import org.openrdf.model.BNode;
import org.openrdf.model.Graph;
import org.openrdf.model.GraphException;
import org.openrdf.model.Literal;
import org.openrdf.model.Statement;
import org.openrdf.model.URI;
import org.openrdf.model.Value;
import org.openrdf.model.ValueFactory;
import org.openrdf.sesame.config.AccessDeniedException;
import org.openrdf.sesame.constants.QueryLanguage;
import org.openrdf.sesame.query.MalformedQueryException;
import org.openrdf.sesame.query.QueryEvaluationException;
import org.openrdf.sesame.query.QueryResultsTable;
import org.openrdf.sesame.repository.local.LocalRepository;
import org.openrdf.sesame.sail.StatementIterator;
public class Thesaurus {
private String fname;
private String type;
private String dname;
private File thesaurusFile;
private LocalRepository repository;
// Informations lues dans le fichier
@SuppressWarnings("unused")
private String name;
@SuppressWarnings("unused")
private String description;
@SuppressWarnings("unused")
private String source;
@SuppressWarnings("unused")
private String langue;
@SuppressWarnings("unused")
private String autority;
/**
* @param fname
* file name
* @param type
* @param dname
*/
public Thesaurus(String fname, String type, String dname,
File thesaurusFile) {
super();
this.fname = fname;
this.type = type;
this.dname = dname;
this.thesaurusFile = thesaurusFile;
}
/**
*
* @return Thesaurus identifier
*/
public String getKey() {
return buildThesaurusKey(fname, type, dname);
}
public String getDname() {
return dname;
}
public String getFname() {
return fname;
}
public File getFile() {
return thesaurusFile;
}
public String getType() {
return type;
}
/**
*
* @param fname
* @param type
* @param dname
* @return
*/
public static String buildThesaurusKey(String fname, String type,
String dname) {
return type + "." + dname + "."
+ fname.substring(0, fname.indexOf(".rdf"));
}
public LocalRepository getRepository() {
return repository;
}
public void setRepository(LocalRepository repository) {
this.repository = repository;
}
public QueryResultsTable performRequest(String query) throws IOException,
MalformedQueryException, QueryEvaluationException,
AccessDeniedException {
System.out.println("Query : " + query);
QueryResultsTable resultsTable = repository.performTableQuery(
QueryLanguage.SERQL, query);
//printResultsTable(resultsTable);
return resultsTable;
}
/**
*
* @param resultsTable
*/
private void printResultsTable(QueryResultsTable resultsTable) {
int rowCount = resultsTable.getRowCount();
int columnCount = resultsTable.getColumnCount();
for (int row = 0; row < rowCount; row++) {
for (int column = 0; column < columnCount; column++) {
Value value = resultsTable.getValue(row, column);
if (value != null) {
System.out.print(value.toString());
} else {
System.out.print("null");
}
System.out.print("\t");
}
System.out.println();
}
System.out.println("End");
}
public URI addElement(String code, String prefLab, String note, String lang)
throws GraphException, IOException, AccessDeniedException {
Graph myGraph = new org.openrdf.model.impl.GraphImpl();
ValueFactory myFactory = myGraph.getValueFactory();
String namespaceSkos = "http://www.w3.org/2004/02/skos/core#";
//String namespace = "http://geosource.org/keyword#";
String namespace = "#";
// URI mySubject = myFactory.createURI(namespace, Long
// .toString((new Date()).getTime()));
URI mySubject = myFactory.createURI(namespace, code);
URI skosClass = myFactory.createURI(namespaceSkos, "Concept");
URI rdfType = myFactory.createURI(org.openrdf.vocabulary.RDF.TYPE);
mySubject.addProperty(rdfType, skosClass); // equivalent
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -