User billroberts - Semantic Overflow most recent 30 from http://www.semanticoverflow.com 2010-03-22T11:59:20Z http://www.semanticoverflow.com/feeds/user/69 http://www.creativecommons.org/licenses/by-nc/2.5/rdf http://www.semanticoverflow.com/questions/505/what-ruby-library-do-you-use-for-working-with-rdf What Ruby library do you use for working with RDF? billroberts 2010-01-27T12:34:02Z 2010-02-08T16:31:37Z <p>There was some discussion of this question here: <a href="http://stackoverflow.com/questions/931548/the-state-of-rdf-in-ruby" rel="nofollow">http://stackoverflow.com/questions/931548/the-state-of-rdf-in-ruby</a> where Dave Beckett notes that the Ruby bindings for his Redland library have not been updated for a while (though probably still work). Can anyone comment on whether the Ruby Redland bindings work correctly in recent versions of Ruby?</p> <p>I've also been experimenting with RdfContext from Gregg Kellogg <a href="http://github.com/gkellogg/rdf_context" rel="nofollow">http://github.com/gkellogg/rdf_context</a></p> <p>What library do you use and what are its pros and cons?</p> http://www.semanticoverflow.com/questions/519/wrote-or-waswrittenby-about-connection-directionality/524#524 Answer by billroberts for wrote or wasWrittenBy ? about connection directionality billroberts 2010-02-01T19:55:11Z 2010-02-01T19:55:11Z <p>I would store only one of them (and it doesn't really matter which). As you say, if you specify that <code>&lt;wrote&gt;</code> is the inverse of <code>&lt;isWrittenBy&gt;</code> then a reasoner can create the other triple for you.</p> <p>I imagine the most common kind of queries you want to do are of the form: find me the user for this blogEntry, or find all the blogEntries for this user. Both of these are straightforward in SPARQL, and equally simple for <code>&lt;wrote&gt;</code> or <code>&lt;isWrittenBy&gt;</code>.</p> <p>I'm not an expert on SPARQL implementations and the relative performance of writing SPARQL queries in different ways and how that might be affected by the fact that you will have more blog entries than users, but unless you have a very large quantity of data, that's unlikely to be an issue.</p> http://www.semanticoverflow.com/questions/510/are-there-such-things-as-rdf-editors/515#515 Answer by billroberts for Are there such things as RDF editors? billroberts 2010-01-29T13:13:20Z 2010-01-29T13:13:20Z <p>For small chunks of RDF (or RDFS/OWL) I usually just use a text editor. For producing RDF in larger quantities I'm usually creating it programmatically based on data in a database or a file.</p> http://www.semanticoverflow.com/questions/464/who-offers-linked-data-training/474#474 Answer by billroberts for Who offers linked data training? billroberts 2010-01-11T10:27:18Z 2010-01-11T10:27:18Z <p>Not sure where you are based, but I read a few weeks back that Talis are running a series of 'Open Days' in the UK: <a href="http://blogs.talis.com/nodalities/2009/11/talis-platform-open-days.php" rel="nofollow">http://blogs.talis.com/nodalities/2009/11/talis-platform-open-days.php</a></p> http://www.semanticoverflow.com/questions/423/how-to-store-access-rights-use-w3c-acl-schema-or-not/424#424 Answer by billroberts for How to store access rights, use W3C ACL schema or not? billroberts 2009-12-17T07:44:37Z 2009-12-17T07:55:28Z <p>Because you are unlikely to want to share this information more widely, then there is no real advantage for communication in using any existing 'standard' approach. So I'd go for your homebrew approach as it is simpler.</p> <p>The W3C one looks like it is a direct translation to RDF of how you would do it in a relational database with :R1, :R2 etc being rows in a many-many linking table. But since RDF lets you use typed links, you can do it more simply as you have proposed.</p> <p>(I'm sure you've thought of this, but if you're also storing user-created data in the triple store, make sure you can keep the user stuff separate from the administrative data, for security reasons).</p> http://www.semanticoverflow.com/questions/386/where-to-find-the-most-common-rdf-xml-namespace-prefixes-base-urls-as-a-snippet/390#390 Answer by billroberts for Where to find the most common RDF/XML namespace prefixes/base URLs as a snippet? billroberts 2009-12-08T09:15:40Z 2009-12-13T16:42:49Z <p>This is the set of namespaces that I use most often, which might be of use:</p> <pre><code>xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:dc="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:dbp="http://dbpedia.org/dbprop/" xmlns:geo="http://www.geonames.org/ontology#" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:commerce="http://search.yahoo.com/searchmonkey/commerce/" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:cb="http://cb.semsol.org/ns#" </code>></pre> http://www.semanticoverflow.com/questions/364/how-do-i-communicate-an-rdf-structure-to-non-linked-data-developers/391#391 Answer by billroberts for How do I communicate an RDF structure to non-linked data developers? billroberts 2009-12-08T09:31:22Z 2009-12-08T09:31:22Z <p>I understand your wish to describe your system in common familiar technologies, but I think it will ultimately be a bad idea to invent your own syntax and you should just bite the bullet and use OWL and RDF. To help non-specialists understand it, provide lots of diagrams and explanations and examples. </p> <p>If you try to make your own serialisation of your RDF model, you will probably end up re-inventing something similar to an existing format, but it won't be a standard and will probably have some inconsistencies that have been ironed out of the standard formats through years of reviews and comments.</p> <p>(I know your main question was about how to communicate the data model rather than how to design it, but if you haven't already you might take a look at the 'Scholarly Event Ontology' (SEDE) <a href="http://www.eventography.org/index.php/Scholarly_Event_Ontology_%28SEDE%29" rel="nofollow">http://www.eventography.org/index.php/Scholarly_Event_Ontology_%28SEDE%29</a> - maybe some good ideas there).</p> http://www.semanticoverflow.com/questions/336/what-is-a-convenient-method-of-shopping-for-rdfs-owl-vocabularies/342#342 Answer by billroberts for What is a convenient method of shopping for RDFS/OWL vocabularies? billroberts 2009-11-24T09:30:23Z 2009-11-24T09:30:23Z <p>I'm not sure that there is a better, more systematic way of doing it, though I agree there should be!</p> <p>I have found this list useful: <a href="http://semanticweb.org/wiki/Ontologies" rel="nofollow">http://semanticweb.org/wiki/Ontologies</a></p> http://www.semanticoverflow.com/questions/300/using-dynamic-properties-for-object-mapping-in-dynamic-languages/302#302 Answer by billroberts for Using dynamic properties for object mapping in dynamic languages? billroberts 2009-11-17T07:53:51Z 2009-11-17T07:53:51Z <p>Every object in Ruby has a method called 'method_missing' which is called as a last resort if the interpreter can't find any declaration of a method call on an object.</p> <p>The implementation of ActiveRecord in Ruby on Rails makes heavy use of this to dynamically create methods according to some conventions it defines. This includes automatically creating methods corresponding to names of columns in database tables for subclasses of ActiveRecord.</p> <p>I don't know what is included in the C# dynamic language features, but this type of approach might be of some use to you.</p> <p>This explains some of it: <a href="http://weblog.jamisbuck.org/2006/12/1/under-the-hood-activerecord-base-find-part-3" rel="nofollow">http://weblog.jamisbuck.org/2006/12/1/under-the-hood-activerecord-base-find-part-3</a></p> <p>Eyal Oren and colleagues from DERI applied some of these ideas to develop ActiveRDF <a href="http://www.activerdf.org/" rel="nofollow">http://www.activerdf.org/</a> I'm not familiar with the details of how they have implemented this, but I'm sure it would be worth a look.</p> http://www.semanticoverflow.com/questions/260/what-are-the-ontologies-that-you-use/262#262 Answer by billroberts for What are the ontologies that you use? billroberts 2009-11-12T09:57:34Z 2009-11-12T09:57:34Z <p><strong>FOAF</strong></p> <p><a href="http://xmlns.com/foaf/0.1/" rel="nofollow">http://xmlns.com/foaf/0.1/</a> </p> <p>Together with Dublin Core, this is probably the best known and most widely used ontology. As well as relating people's identifiers and names, I often use foaf:depiction for images, foaf:primaryTopic and foaf:topic to relate a document to what it's about.</p> <p><strong>Geonames</strong></p> <p><a href="http://www.geonames.org/ontology#" rel="nofollow">http://www.geonames.org/ontology#</a></p> <p>For places, geographical features etc. Links in to the comprehensive Geonames database.</p> <p><strong>DBpedia</strong></p> <p><a href="http://wiki.dbpedia.org/Ontology" rel="nofollow">http://wiki.dbpedia.org/Ontology</a></p> <p>Since DBpedia is the de facto standard for finding URIs for many things, then sometimes it's handy to use its ontology too.</p> <p><strong>Event Ontology</strong></p> <p><a href="http://motools.sourceforge.net/event/event.html" rel="nofollow">http://motools.sourceforge.net/event/event.html</a></p> <p>A flexible and relatively simple ontology for describing the what/when/where/who of events.</p> http://www.semanticoverflow.com/questions/237/how-do-we-make-sure-linked-data-can-be-understood-and-used How do we make sure Linked Data can be understood and used? billroberts 2009-11-10T17:07:27Z 2009-11-11T14:33:56Z <p>This recent article by Stefano Mazzocchi <a href="http://www.betaversion.org/~stefano/linotype/news/351/" rel="nofollow">http://www.betaversion.org/~stefano/linotype/news/351/</a> points out that converting a dataset to RDF is not necessarily enough to make it understandable and useful.</p> <p>How do we make Linked Data as easy as possible to understand and re-use? Producing valid RDF is not the whole story.</p> <p>Using appropriate existing ontologies wherever possible? Lots of external links? Good old-fashioned documentation?</p> http://www.semanticoverflow.com/questions/228/how-do-i-make-my-homepage-personal-blog-semantic/234#234 Answer by billroberts for How do I make my homepage/personal blog semantic ? billroberts 2009-11-10T14:57:46Z 2009-11-10T14:57:46Z <p>I agree with other responders: embedding mark-up in the page using RDFa is a good approach and FOAF is the obvious place to start in terms of tags.</p> <p>When I was marking up our company About page with RDFa, I also used:</p> <p>GoodRelations <a href="http://purl.org/goodrelations/v1#" rel="nofollow">http://purl.org/goodrelations/v1#</a></p> <p>VCard <a href="http://www.w3.org/2006/vcard/ns#" rel="nofollow">http://www.w3.org/2006/vcard/ns#</a></p> <p>Yahoo Commerce <a href="http://search.yahoo.com/searchmonkey/commerce/" rel="nofollow">http://search.yahoo.com/searchmonkey/commerce/</a></p> <p>Semantic Crunchbase: <a href="http://cb.semsol.org/ns#" rel="nofollow">http://cb.semsol.org/ns#</a></p> <p>You can have a look at the resulting RDF here <a href="http://www.w3.org/2007/08/pyRdfa/extract?uri=http://www.swirrl.com/about" rel="nofollow">http://www.w3.org/2007/08/pyRdfa/extract?uri=http://www.swirrl.com/about</a></p> <p>I made up my own term to link to our twitter accounts, but I've been meaning to go back and use foaf:holdsAccount for that instead.</p> <p>For blogs, it would also be a good idea to mark up each post with title and author metadata, eg using Dublin Core <a href="http://dublincore.org/documents/dcmi-terms/" rel="nofollow">http://dublincore.org/documents/dcmi-terms/</a></p> <p>There is a Wordpress plug-in <a href="http://wordpress.org/extend/plugins/wp-rdfa/" rel="nofollow">http://wordpress.org/extend/plugins/wp-rdfa/</a> that does some of this, but I haven't used it myself. And I read that RDFa support built into Drupal is coming with version 7, though not released yet.</p> http://www.semanticoverflow.com/questions/182/marking-up-a-table-with-rdfa/183#183 Answer by billroberts for Marking up a table with RDFa billroberts 2009-11-06T11:48:26Z 2009-11-06T12:13:56Z <p>Hi Ian</p> <p>I wrote a blog post on this topic a couple of months back <a href="http://www.webofdatablog.com/articles/2009/08/25/publishing-table-based-data-as-rdfa" rel="nofollow">http://www.webofdatablog.com/articles/2009/08/25/publishing-table-based-data-as-rdfa</a> I was focusing on how to do the markup - I hadn't thought of your suggestion of using Javascript to allow operations on the data.</p> <p>From comments on that post and some further reading, I reckon that my N-ary relations approach is essentially the best bet, but using SCOVO would be an improvement over my initial experiment.</p> <p>My example was looking at time-varying data - as other responses to this question have shown, it probably doesn't need to be that complicated in the OP's example, as properties like the height and location of each tower could reasonably be taken to be constant in time.</p> http://www.semanticoverflow.com/questions/136/how-should-a-semantic-inheritance-chain-look-like/146#146 Answer by billroberts for How should a semantic inheritance chain look like? billroberts 2009-11-04T17:02:08Z 2009-11-04T17:02:08Z <p>The inference rules of OWL are a bit different to OO inheritance, so it can be a bit counter-intuitive at times if your brain is used to the OO approach. I think your statements and reasoner are correct. </p> <p>(I don't know much about which types of inference different triple stores actually apply - if you let us know which triple store you are using, someone more knowledgeable than me might be able to help on the details of that).</p> <p>Let me simplify your example a little (we only need two classes) and avoid the potentially confusing parent/child names.</p> <p>Let's have classes Car and MeansOfTransport. Car is a subclass of MeansOfTransport</p> <p>The main owl inference rule here is: if A is a Car, then A is also a MeansOfTransport.</p> <p>Now introduce some properties: <em>engineSize</em> with domain Car and <em>maximumSpeed</em> with domain MeansOfTransport.</p> <p>The owl inference rule for domains is: if (A engineSize B) then because the domain of engineSize is Car, then A is a Car.</p> <p>And we know that if A is a Car, then A is also a MeansOfTransport. So it is correct to say that the domain of engineSize is (also) MeansOfTransport: because if we know (A engineSize B) it is correct to conclude that A is a MeansOfTransport. If later you want to ask for all things in the class MeansOfTransport, you want the results to include A.</p> <p>if (C maximumSpeed D), then by the domain of maximumSpeed, we can infer that C is a MeansOfTransport. We can't say that C is a car - it might be some other kind of thing, like a bicycle.</p> <p>I think it is the direction of the inference that makes this confusing. In OWL, knowing the domain of the property lets you conclude things about the subjects. In Object Oriented programming, knowing the class of an object lets you conclude something about the methods it supports.</p> <p>Hope that helps! I agree it isn't obvious - I did some head-scratching to try to make sure I got this example right.</p> http://www.semanticoverflow.com/questions/112/does-the-linked-data-web-need-owl-rif-swrl-etc/123#123 Answer by billroberts for Does the linked data web need OWL/RIF/SWRL etc? billroberts 2009-11-03T19:14:01Z 2009-11-03T19:14:01Z <p>I like the idea of "RDFS plus" that Allemang and Hendler present in their excellent "Semantic Web for the Working Ontologist" - ie RDFS plus a few bits of OWL that cover most of the commonly used relationships.</p> <p>A little bit of OWL-powered inference can be very useful, eg subclasses, symmetric properties, inverse properties etc.</p> <p>So yes, I think we do need OWL.</p> <p>(And sorry, I don't know enough about RIF or SWRL to comment on those)</p> http://www.semanticoverflow.com/questions/74/what-are-the-benefits-of-the-semantic-web-to-publishers/77#77 Answer by billroberts for What are the benefits of the Semantic Web to Publishers? billroberts 2009-11-02T19:58:32Z 2009-11-02T20:15:57Z <p>OK I'll have a go at convincing you. What do you want as a publisher? Presumably you want as many as people as possible to read what you are publishing and to do that, you need to make it interesting or useful, preferably both. Suppose you are the publisher of "Gardener's Monthly" and as well as all your great articles, you've accumulated over time a heap of useful data about which plants grow well in different climates or soil types, how big they get, what colour the flowers are, what diseases they are susceptible to etc (I don't know much about gardening, so my example will probably not be very realistic!) </p> <p>This enables you to provide all kinds of useful stuff that your readers want to know. Maybe Fred thinks he fancies planting a shrub in the corner of his garden, but he doesn't know what kind to get. He's got a small garden so he wants one that won't get bigger than 3 feet tall and he likes purple flowers. You have all the information he needs, so how do you provide it to him, without him having to read through all the back issues one by one? </p> <p>Of course Fred isn't going to crank up curl and start dereferencing your URIs. Someone has to take this data and present it in a human friendly way. Maybe that's you as the owner of this great shrubbery database, maybe it's a plant retailer who decides to aggregate data from multiple sites. But someone can build some kind of browsing or search interface that helps Fred find his answer. Once he's narrowed his choice down to a rhododendron or an azalea, he can follow the links (rdf:seeAlso or whatever) back to regular articles on your site to find out more detailed information (even if ShrubSearch is operated by someone else).</p> <p>So you get to be known as the best source of data in your domain, you get lots of readers, you make millions in advertising from the seed and fertiliser companies. Job done.</p> <p>There are examples of companies making this work in practice with 'regular' data - for example IMDB. If I want to know something about a movie or an actor, I usually go straight to imdb.com, rather than to google or wikipedia. The advantage of doing this with linked data is that you don't necessarily have to build the user interface to the data yourself to get the benefits (though it might be a good idea to do that) - your data might be used in all sorts of unexpected ways, and by appropriate links and 'owning' the URIs for key things in your field, you still draw in readers. And you can merge your own data with other people's - you can pull in data from the National Plant Disease Research Centre (made up) or whatever to provide a better service to your readers.</p> <p>There are lots of things that publishers can do on the web that they couldn't do on paper - the successful publishers of the future will be the ones that recognise and exploit the new possibilities.</p> <p>Let me know if that has helped persuade you!</p> <p>Bill</p> http://www.semanticoverflow.com/questions/1/where-can-i-learn-about-the-semantic-web/71#71 Answer by billroberts for Where can I learn about the semantic web? billroberts 2009-11-02T17:48:47Z 2009-11-02T17:48:47Z <p>If you have enough time to listen to them, I reckon Paul Miller's series of podcasts with various interesting semwebby people is a very valuable resource. Published on the Nodalities blog: <a href="http://blogs.talis.com/nodalities/" rel="nofollow">http://blogs.talis.com/nodalities/</a></p> http://www.semanticoverflow.com/questions/10/semantic-search-ranking/70#70 Answer by billroberts for Semantic Search Ranking billroberts 2009-11-02T17:42:41Z 2009-11-02T17:42:41Z <p>I'm not aware of any direct effects of semantic tagging on the ranking methods of the big search engines. But I think there could be an indirect beneficial effect of adding semantic markup to your pages. If the RDF in your page is discovered and used by linked data consuming apps, then it is likely to lead to more people finding your website and linking to it, so increasing your search rank in the 'normal' way.</p> <p>This is just an extension of the "produce useful stuff" school of SEO.</p> http://www.semanticoverflow.com/questions/64/what-data-would-be-most-valuable-as-linked-data/65#65 Answer by billroberts for What data would be most valuable as Linked Data? billroberts 2009-11-02T16:04:13Z 2009-11-02T16:04:13Z <p>This could be a lot of work with current tools: but I'd love to see the basic who/what/when/where of newspaper stories as linked data. That would open up a huge number of interesting mash-up and research possibilities.</p> http://www.semanticoverflow.com/questions/53/what-are-good-semantic-apis-that-can-be-used-for-pulling-interesting-info-to-anot/61#61 Answer by billroberts for What are good semantic APIs that can be used for pulling interesting info to another website? billroberts 2009-11-02T14:29:31Z 2009-11-02T14:29:31Z <p>The great advantage of the semantic web and linked data in particular is that in principle there is just one common API - in the form of RDF accessed via HTTP. So any site that is providing linked data is a good candidate. In some cases you might want a SPARQL interface too, to allow you to query the data.</p> <p>dbpedia.org, an RDF version of the information in Wikipedia, is probably the best known/most frequently referenced linked data repository - and it's all accessible with the standard HTTP/RDF linked data API.</p> <p>Another example: the Talis Platform now hosts public data on a range of topics, accessible as RDF over HTTP (and via SPARQL). API documentation is at n2.talis.com/wiki/Platform_API </p> <p>api.talis.com/stores gives a list of the available data stores, though in practice (for any data set, not just Talis-hosted stuff) it is much easier to explore a data store if there is also some documentation on what is in there and how it is organised.</p> <p>(Aside to the designers of semanticoverflow: a forum about the semantic web where you can't post URIs can be rather limiting!)</p> http://www.semanticoverflow.com/questions/386/where-to-find-the-most-common-rdf-xml-namespace-prefixes-base-urls-as-a-snippet/390#390 Comment by billroberts billroberts 2009-12-13T16:49:35Z 2009-12-13T16:49:35Z I've just corrected a typo in the owl namespace. Sorry about that. http://www.semanticoverflow.com/questions/237/how-do-we-make-sure-linked-data-can-be-understood-and-used Comment by billroberts billroberts 2009-11-19T11:09:25Z 2009-11-19T11:09:25Z This recent post from Mike Bergman and Fred Giasson is very relevant to this question: <a href="http://www.mkbergman.com/846/when-linked-data-rules-fail/" rel="nofollow">mkbergman.com/846/when-linked-data-rules-fail</a> http://www.semanticoverflow.com/questions/136/how-should-a-semantic-inheritance-chain-look-like/146#146 Comment by billroberts billroberts 2009-11-05T14:07:23Z 2009-11-05T14:07:23Z You're welcome! I recommend reading Allemang and Hendler &quot;Semantic web for the working ontologist&quot;. They explain this stuff very well.