/* * This software is Copyright 2005,2006,2007,2008 Langdale Consultants. * Langdale Consultants can be contacted at: http://www.langdale.com.au */ package au.com.langdale.splitmodel; import java.io.File; import com.hp.hpl.jena.datatypes.xsd.XSDDatatype; import com.hp.hpl.jena.vocabulary.RDF; /** * A vocabulary use in split models and the mapping function between URI's and files. */ public class SplitBase { public static final String LOCAL = "http://langdale.com.au/2007/SplitModel/local"; public static final String DOCUMENT = "http://langdale.com.au/2007/SplitModel#document"; public static final String HASH = "http://langdale.com.au/2007/SplitModel#hasHash"; public static final String MODULUS = "http://langdale.com.au/2007/SplitModel#hasModulus"; public static final String SPLITMODEL = "http://langdale.com.au/2007/SplitModel#"; public static final String RDF_TYPE_URI = RDF.Nodes.type.getURI(); public static final String XSD_URI = XSDDatatype.XSD + "#"; public static final String XSD_INTEGER_URI = XSDDatatype.XSDinteger.getURI(); public static int hashURI(String uri, int modulus) { return Math.abs(uri.hashCode()) % modulus; } protected File destin; protected int modulus; protected File getFile(int key) { String hex = Integer.toHexString(key); if( hex.length() == 1) hex = "0" + hex; File target = new File(destin, "Part" + hex + ".ttl"); return target; } /** * @return the number of files used by this split model. */ public int getModulus() { return modulus; } protected int hashURI(String uri) { return hashURI(uri, modulus); } }