Here's our home-grown RDF schema: http://digital.library.wisc.edu/1711.dl/OWL-UWDC-RDFS-Relations-1.0
And here's a RELS-EXT datastream that includes one of these relations (note the last relation): <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:fedora="info:fedora/fedora-system:def/relations-external#" xmlns:uwdc="http://digital.library.wisc.edu/1711.dl/rdf/1.0/relations#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"> <rdf:Description rdf:about="info:fedora/1711.dl:ILWOQIDUDAFKC8X"> <hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelUWDCObject"></hasModel> <hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelCompositeObject"></hasModel> <hasModel xmlns="info:fedora/fedora-system:def/model#" rdf:resource="info:fedora/1711.dl:CModelFirstClassObject"></hasModel> <fedora:hasMember rdf:resource="info:fedora/1711.dl:DG5GFPUJ4KSYG8A"></fedora:hasMember> <fedora:isMemberOfCollection rdf:resource="info:fedora/1711.dl:CollectionAerialWI"></fedora:isMemberOfCollection> <uwdc:isMemberOfProject rdf:resource="hdl:1711.dl/AerialWisconsin"></uwdc:isMemberOfProject> </rdf:Description> </rdf:RDF> -- Scott On 04/25/2013 02:57 PM, Graham S Hukill wrote: > Thanks everyone for the replies and information, it has been every helpful. > > Perhaps most of all, it is nice to know that there is not a simple inverse - > or reverse - predicate to the standard RELS-EXT ones that we are missing, or > something frustrating like our query syntax was off. Knowing that, we can > begin to asses to what degree we would like to pursue that functionality, be > it digging into Mulgara more, modeling that parent-child relationship from > both sides, etc. > > Our use-case for the inverse predicates was, while browsing objects in a > front-end, to see what objects were related via "isMemberOfCollection" or > "isMemberOf" to a given object. It occurs to me now, that we could > alternatively run a triples query, something like "* > <fedora-rels-ext:isMemberOfCollection> <fedora:[COLLECTION_OBJECT:PID]>", > then parse out the constituent members that way. It is more complexity on > the access / query side, but seems to jive well with our current architecture > and approach to modeling object relationships. > > Either way, thanks again for the replies and thoughts. Also, while this will > likely address this particular problem, Scott, it would be great to take a > peek at anything home-grown, RDF related documents you would be willing to > share, thanks for the offer. Still early on in our implementation of Fedora, > we are definitely appreciative of any insight into how others are modeling > their resources. > > many thanks, > Graham > > > ----- Original Message ----- > From: [email protected] > To: "Support and info exchange list for Fedora users." > <[email protected]> > Sent: Thursday, April 25, 2013 11:34:06 AM > Subject: Re: [fcrepo-user] inverse predicates for RDF queries > > As Scott wisely indicates, you're perhaps asking a question about how your > physical data model is going to support your work. Fedora will happily record > almost any relationship you want, but different patterns of recordation are > going incur varying costs for different patterns of use. > > I welcome correction on the following point, but I believe that the SPARQL > endpoint supported by Mulgara (assuming you are using Mulgara) will support > the querying of "forward" properties as "reverse" properties via entailment > outside Fedora: > > http://docs.mulgara.org/inferencing/entailment.html > > That's _not_ something supported directly by Fedora Commons: you'd do best to > talk to the Mulgara folks about whether it might be a useful tool for you. > > > --- > A. Soroka > The University of Virginia Library > > On Apr 25, 2013, at 11:17 AM, Scott Prater wrote: > >> Graham, >> >> One of the more useful features of the resource index is that you can >> put anything you want into it. Generally, the suggested practice has >> been to reserve the RELS-EXT and RELS-INT datastreams for internal >> Fedora housekeeping relations and put other, more content-related >> relations into a separate datastream, and index that datastream in an >> external triple store. However, in this case, the relations you propose >> feel to me like useful additions to the standard Fedora object >> relations, and do belong in RELS-EXT. >> >> Our own practice is to put two-way pointer relations into our RELS-EXT: >> parents point to children, and children point to parents. The >> disadvantage of this approach is that you end maintaining duplicate >> relations; the advantage is that it enables you to easily identify >> orphaned children or parents unaware that their children have gone >> missing, and gives you multiple routes for walking a tree. >> >> We've also created our own RDF schema and namespace for our home-grown >> relations. I can pass that along to you (or post it to the list), if >> you're interested, as well as some sample RELS-EXT datastreams we've >> created. >> >> Another potential problem is if you have a parent object with hundreds, >> thousands, maybe even millions of direct descendants; the RDF list of >> "hasMember" relations can get very unwieldy in that case, and >> potentially cause performance problems. There's been some discussion of >> that on the forums in the past, and with some of the changes in recent >> versions of Fedora, there may be ways to ameliorate those problems >> (using an external triple store, storing the RELS-EXT as a managed >> datastream, etc.) I'll let others who have dealt with that issue >> address it in more detail. >> >> -- Scott >> >> >> On 04/25/2013 09:27 AM, Graham S Hukill wrote: >>> Good morning all, >>> >>> Perhaps a simple question here, but something that has been throwing us >>> for a loop. Is it possible to use inverse predicates for RDF queries? >>> >>> For example, in our relatively early stages of implementing Fedora >>> Commons we have primarily used RDF relationships such as >>> "isMemberOfCollection", "isMemberOf", and "hasContentModel". These have >>> been incredibly powerful to work with, and served us well so far. But >>> as we dig into developing front-ends for managing objects and discovery >>> layers, we are interested in leveraging RDF queries as much as possible. >>> Is it possible to use predicates such as, "hasMember" or >>> "hasMemberOfCollection"? And if it is not baked into FC, is it possible >>> to define these inverse relationships in such a way that we can query >>> using them? It looks like in some of the Spring XACML configurations >>> there are hints of this. >>> >>> I've also seen some chatter in RDF discussions about whether or not to >>> include this kind of inverse predicate logic, vs. adding triples that >>> explicitly state those relationships, but am not sure if FC provides >>> this functionality. Plus, we have been meaning to start utilizing this >>> listserv more, and this seemed like a good time to start; it has already >>> been of immense help to us, thanks to everyone for making their >>> questions and answers available to the community. >>> >>> >>> -Graham >>> >>> >>> Graham Hukill >>> Digital Publishing Librarian >>> Wayne State University Libraries >>> 313.577.5951 >>> [email protected] >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Try New Relic Now & We'll Send You this Cool Shirt >>> New Relic is the only SaaS-based application performance monitoring service >>> that delivers powerful full stack analytics. Optimize and monitor your >>> browser, app, & servers with just a few lines of code. Try New Relic >>> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr >>> >>> >>> >>> _______________________________________________ >>> Fedora-commons-users mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users >>> >> >> >> -- >> Scott Prater >> Shared Development Group >> General Library System >> University of Wisconsin - Madison >> [email protected] >> 5-5415 >> >> ------------------------------------------------------------------------------ >> Try New Relic Now & We'll Send You this Cool Shirt >> New Relic is the only SaaS-based application performance monitoring service >> that delivers powerful full stack analytics. Optimize and monitor your >> browser, app, & servers with just a few lines of code. Try New Relic >> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr >> _______________________________________________ >> Fedora-commons-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users > > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance monitoring service > that delivers powerful full stack analytics. Optimize and monitor your > browser, app, & servers with just a few lines of code. Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr > _______________________________________________ > Fedora-commons-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/fedora-commons-users > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance monitoring service > that delivers powerful full stack analytics. Optimize and monitor your > browser, app, & servers with just a few lines of code. Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr > _______________________________________________ > Fedora-commons-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/fedora-commons-users > -- Scott Prater Shared Development Group General Library System University of Wisconsin - Madison [email protected] 5-5415 ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr _______________________________________________ Fedora-commons-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
