/** * Answer the lowest common ancestor of two classes in a given ontology. This is the class that is * farthest from the root concept (defaulting to <code>owl:Thing</code> which is a super-class of * both <code>u</code> and <code>v</code>. The algorithm is based on <a * href="http://en.wikipedia.org/wiki/Tarjan's_off-line_least_common_ancestors_algorithm">Tarjan's * off-line LCA</a>. The current implementation expects that the given model: * * <ul> * <li>is transitively closed over the <code>subClassOf</code> relation * <li>can cheaply determine <em>direct sub-class</em> relations * </ul> * * <p>Both of these conditions are true of the built-in Jena OWL reasoners, such as {@link * OntModelSpec#OWL_MEM_MICRO_RULE_INF}, and external DL reasoners such as Pellet. * * @param m The ontology model being queried to find the LCA, which should conform to the reasoner * capabilities described above * @param u An ontology class * @param v An ontology class * @return The LCA of <code>u</code> and <code>v</code> * @exception JenaException if the language profile of the given model does not define a top * concept (e.g. <code>owl:Thing</code>) */ public static OntClass getLCA(OntModel m, OntClass u, OntClass v) { Resource root = m.getProfile().THING(); if (root == null) { throw new JenaException( "The given OntModel has a language profile that does not define a generic root class (such as owl:Thing)"); } root = root.inModel(m); return getLCA(m, root.as(OntClass.class), u, v); }
/** * Answer a list of the named hierarchy roots of a given {@link OntModel}. This will be similar to * the results of {@link OntModel#listHierarchyRootClasses()}, with the added constraint that * every member of the returned iterator will be a named class, not an anonymous class expression. * The named root classes are calculated from the root classes, by recursively replacing every * anonymous class with its direct sub-classes. Thus it can be seen that the values in the list * consists of the shallowest fringe of named classes in the hierarchy. * * @param m An ontology model * @return A list of classes whose members are the named root classes of the class hierarchy in * <code>m</code> */ public static List<OntClass> namedHierarchyRoots(OntModel m) { List<OntClass> nhr = new ArrayList<OntClass>(); // named roots List<OntClass> ahr = new ArrayList<OntClass>(); // anon roots // do the initial partition of the root classes partitionByNamed(m.listHierarchyRootClasses(), nhr, ahr); // now push the fringe down until we have only named classes while (!ahr.isEmpty()) { OntClass c = ahr.remove(0); partitionByNamed(c.listSubClasses(true), nhr, ahr); } return nhr; }
/** * Vocabulary definitions * * @author Christopher Haines ([email protected]) */ public class WorkflowOntology { /** The ontology model that holds the vocabulary terms */ private static OntModel m_model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null); /** The namespace of the vocabulary as a string */ public static final String NS = "http://vivoweb.org/ontology/harvesterWorkflow#"; /** * The namespace of the vocabulary as a string * * @return {@link #NS} * @see #NS */ public static String getURI() { return NS; } /** The namespace of the vocabulary as a resource */ public static final Resource NAMESPACE = m_model.createResource(NS); /** retractionsModel */ public static final ObjectProperty retractionsModel = m_model.createObjectProperty(NS + "retractionsModel"); /** processorMethod */ public static final ObjectProperty processorMethod = m_model.createObjectProperty(NS + "processorMethod"); /** originalPropertyOf */ public static final ObjectProperty originalPropertyOf = m_model.createObjectProperty(NS + "originalPropertyOf"); /** firstStepOf */ public static final ObjectProperty firstStepOf = m_model.createObjectProperty(NS + "firstStepOf"); /** additionsModel */ public static final ObjectProperty additionsModel = m_model.createObjectProperty(NS + "additionsModel"); /** originalProperty */ public static final ObjectProperty originalProperty = m_model.createObjectProperty(NS + "originalProperty"); /** newPropertyOf */ public static final ObjectProperty newPropertyOf = m_model.createObjectProperty(NS + "newPropertyOf"); /** processorClassOf */ public static final ObjectProperty processorClassOf = m_model.createObjectProperty(NS + "processorClassOf"); /** retractionsModelOf */ public static final ObjectProperty retractionsModelOf = m_model.createObjectProperty(NS + "retractionsModelOf"); /** firstStep */ public static final ObjectProperty firstStep = m_model.createObjectProperty(NS + "firstStep"); /** modelToAdd */ public static final ObjectProperty modelToAdd = m_model.createObjectProperty(NS + "modelToAdd"); /** modelToSubtract */ public static final ObjectProperty modelToSubtract = m_model.createObjectProperty(NS + "modelToSubtract"); /** smushedOnInAction */ public static final ObjectProperty smushedOnInAction = m_model.createObjectProperty(NS + "smushedOnInAction"); /** actionOf */ public static final ObjectProperty actionOf = m_model.createObjectProperty(NS + "actionOf"); /** newProperty */ public static final ObjectProperty newProperty = m_model.createObjectProperty(NS + "newProperty"); /** splitRegex */ public static final ObjectProperty splitRegex = m_model.createObjectProperty(NS + "splitRegex"); /** processorClass */ public static final ObjectProperty processorClass = m_model.createObjectProperty(NS + "processorClass"); /** sourceModelFor */ public static final ObjectProperty sourceModelFor = m_model.createObjectProperty(NS + "sourceModelFor"); /** destinationModelFor */ public static final ObjectProperty destinationModelFor = m_model.createObjectProperty(NS + "destinationModelFor"); /** splitRegexOf */ public static final ObjectProperty splitRegexOf = m_model.createObjectProperty(NS + "splitRegexOf"); /** trimValueFor */ public static final ObjectProperty trimValueFor = m_model.createObjectProperty(NS + "trimValueFor"); /** uriPrefix */ public static final ObjectProperty uriPrefix = m_model.createObjectProperty(NS + "uriPrefix"); /** action */ public static final ObjectProperty action = m_model.createObjectProperty(NS + "action"); /** destinationModel */ public static final ObjectProperty destinationModel = m_model.createObjectProperty(NS + "destinationModel"); /** processorMethodOf */ public static final ObjectProperty processorMethodOf = m_model.createObjectProperty(NS + "processorMethodOf"); /** sourceModel */ public static final ObjectProperty sourceModel = m_model.createObjectProperty(NS + "sourceModel"); /** uriPrefixForAction */ public static final ObjectProperty uriPrefixForAction = m_model.createObjectProperty(NS + "uriPrefixForAction"); /** smushOnProperty */ public static final ObjectProperty smushOnProperty = m_model.createObjectProperty(NS + "smushOnProperty"); /** sparqlQuery */ public static final ObjectProperty sparqlQuery = m_model.createObjectProperty(NS + "sparqlQuery"); /** previousStep */ public static final ObjectProperty previousStep = m_model.createObjectProperty(NS + "previousStep"); /** addedInAction */ public static final ObjectProperty addedInAction = m_model.createObjectProperty(NS + "addedInAction"); /** subtractedInAction */ public static final ObjectProperty subtractedInAction = m_model.createObjectProperty(NS + "subtractedInAction"); /** nextStep */ public static final ObjectProperty nextStep = m_model.createObjectProperty(NS + "nextStep"); /** trim */ public static final ObjectProperty trim = m_model.createObjectProperty(NS + "trim"); /** additionsModelOf */ public static final ObjectProperty additionsModelOf = m_model.createObjectProperty(NS + "additionsModelOf"); /** applyChangesDirectlyToSource */ public static final DatatypeProperty applyChangesDirectlyToSource = m_model.createDatatypeProperty(NS + "applyChangesDirectlyToSource"); /** jenaConnectConfig */ public static final DatatypeProperty jenaConnectConfig = m_model.createDatatypeProperty(NS + "jenaConnectConfig"); /** literalValue */ public static final DatatypeProperty literalValue = m_model.createDatatypeProperty(NS + "literalValue"); /** variableName */ public static final DatatypeProperty variableName = m_model.createDatatypeProperty(NS + "variableName"); /** Action */ public static final OntClass Action = m_model.createClass(NS + "Action"); /** ProcessPropertyValueStringsAction */ public static final OntClass ProcessPropertyValueStringsAction = m_model.createClass(NS + "ProcessPropertyValueStringsAction"); /** Workflow */ public static final OntClass Workflow = m_model.createClass(NS + "Workflow"); /** WorkflowStep */ public static final OntClass WorkflowStep = m_model.createClass(NS + "WorkflowStep"); /** Value */ public static final OntClass Value = m_model.createClass(NS + "Value"); /** SPARQLCONSTRUCTAction */ public static final OntClass SPARQLCONSTRUCTAction = m_model.createClass(NS + "SPARQLCONSTRUCTAction"); /** Model */ public static final OntClass Model = m_model.createClass(NS + "Model"); /** Literal */ public static final OntClass Literal = m_model.createClass(NS + "Literal"); /** CreateModelAction */ public static final OntClass CreateModelAction = m_model.createClass(NS + "CreateModelAction"); /** AddModelAction */ public static final OntClass AddModelAction = m_model.createClass(NS + "AddModelAction"); /** SubtractModelAction */ public static final OntClass SubtractModelAction = m_model.createClass(NS + "SubtractModelAction"); /** SplitPropertyValuesAction */ public static final OntClass SplitPropertyValuesAction = m_model.createClass(NS + "SplitPropertyValuesAction"); /** NameBlankNodesAction */ public static final OntClass NameBlankNodesAction = m_model.createClass(NS + "NameBlankNodesAction"); /** Variable */ public static final OntClass Variable = m_model.createClass(NS + "Variable"); /** ClearModelAction */ public static final OntClass ClearModelAction = m_model.createClass(NS + "ClearModelAction"); /** PropertyValueProcessingAction */ public static final OntClass PropertyValueProcessingAction = m_model.createClass(NS + "PropertyValueProcessingAction"); /** SmushResourcesAction */ public static final OntClass SmushResourcesAction = m_model.createClass(NS + "SmushResourcesAction"); }
/** * Vocabulary definitions from * /home/myrtill/Hackystat_linkedData/mysqlProva/workspace/hackystat-linked-service-data/src/org/hackystat/linkedservicedata/vocabularies/voID.rdf * * @author Auto-generated by schemagen on 20 Aug 2009 19:14 */ public class VoIDVocab { /** The ontology model that holds the vocabulary terms */ private static OntModel m_model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null); /** The namespace of the vocabulary as a string */ public static final String NS = "http://rdfs.org/ns/void#"; /** * The namespace of the vocabulary as a string * * @see #NS */ public static String getURI() { return NS; } /** The namespace of the vocabulary as a resource */ public static final Resource NAMESPACE = m_model.createResource(NS); // Vocabulary properties /////////////////////////// /** Announcement of an RDF dump of the dataset. */ public static final OntProperty DATA_DUMP = m_model.createOntProperty("http://rdfs.org/ns/void#dataDump"); public static final OntProperty EXAMPLE_RESOURCE = m_model.createOntProperty("http://rdfs.org/ns/void#exampleResource"); public static final OntProperty FEATURE = m_model.createOntProperty("http://rdfs.org/ns/void#feature"); public static final OntProperty LINK_PREDICATE = m_model.createOntProperty("http://rdfs.org/ns/void#linkPredicate"); /** The sink target of an interlinking */ public static final OntProperty OBJECTS_TARGET = m_model.createOntProperty("http://rdfs.org/ns/void#objectsTarget"); public static final OntProperty SPARQL_ENDPOINT = m_model.createOntProperty("http://rdfs.org/ns/void#sparqlEndpoint"); public static final OntProperty STAT_ITEM = m_model.createOntProperty("http://rdfs.org/ns/void#statItem"); /** The source target of an interlinking */ public static final OntProperty SUBJECTS_TARGET = m_model.createOntProperty("http://rdfs.org/ns/void#subjectsTarget"); public static final OntProperty SUBSET = m_model.createOntProperty("http://rdfs.org/ns/void#subset"); public static final OntProperty TARGET = m_model.createOntProperty("http://rdfs.org/ns/void#target"); /** Defines a simple URI look-up protocol for accessing a dataset. */ public static final OntProperty URI_LOOKUP_ENDPOINT = m_model.createOntProperty("http://rdfs.org/ns/void#uriLookupEndpoint"); /** Defines a regular expression pattern matching URIs in the dataset. */ public static final OntProperty URI_REGEX_PATTERN = m_model.createOntProperty("http://rdfs.org/ns/void#uriRegexPattern"); /** A vocabulary that is used in the dataset. */ public static final OntProperty VOCABULARY = m_model.createOntProperty("http://rdfs.org/ns/void#vocabulary"); // Vocabulary classes /////////////////////////// public static final OntClass DATASET = m_model.createClass("http://rdfs.org/ns/void#Dataset"); }