Hi, Ian and Andy thank you for your answer and your attention.
Excuse me for this long post. I am working on your suggestions. Let me explain the whole problem and motivation. As matter of fact I am sure that the terminus node must be a resource. The test ontology I made is composed by concepts linked by a simple relationship. In the ontology these relationships are the conventional "subclass of", and depends on, so I generated a shortest path from ontTools in order to define a "learning path", or better a chain of dependent concepts. So the terminus node is a concept, as the target concept to be learned. If I understood correctly, as the "filter ANY" is used in the pathfinding algorithm, the kind of relationship between concepts is irrelevant, isn't it? So all things will behave as if we were walking in a simple directed graph. I suppose this assumption is correct, although we cannot say that a RDF graph (and OWL?) is just like a simple graph. For example Hayes says the best model for RDF would be a bipartite graph (it is in the attached file). (Is this also true for OWL graphs? I think it is.) However as I am working with a very simple ontology, may be these issues are not relevant. So I would state the problem as: (a) given a domain ontology how could a sequence of concepts be extracted to be used as a learning path? I tried to answer this question looking for a shortest path from the ontology as a suggestion of this "learning path". (b) Taken as granted that this path can be extracted (I think it is possible, I extracted one), for each concept in the path, I must find some learning resources from a RDF metadata stored in the triple store (as I wrote a test metadata document is in a SDB database to be used with Joseki as a SPARQL end point). Things behave as a mapping of concepts in the path to a (finite and small) set of resources described in a RDF matadata document. A SPARQL query is to be done on this metadata document in SDB database to find the physical location of resources (for instance, in a file system). Since this system is supposed to be web based, I designed a MVC web application so that users, for instance, in a university, could access resources as learning material matching his/her learning strategy. Well, excuse me for the long post. This is the whole history. 2011/7/21 Ian Dickinson <[email protected]> > On 21/07/11 13:01, I wrote: > >> OntTools.Path path = findShortestPath( ... ); >> List<Resource> resources = new ArrayList<Resource>(); >> for (Statement s: path) { >> resources.add( s.getResource() ); >> } >> > > Actually, given that the terminus node can be a literal, it would be better > as: > > OntTools.Path path = findShortestPath( ... ); > List<RDFNode> nodes = new ArrayList<RDFNode>(); > for (Statement s: path) { > nodes.add( s.getObject() ); > } > > Unless you know from your data that the path will end on a resource. > > Ian > -- Herli Menezes *Per Astra ad aspera.*
