Some thoughts on rNews

Some thoughts on rNews

IPTC are working an ontology known as rNews which aims to standardise (and encourage the adoption of) RDFa in news articles.

This is a very, very good idea – it should allow for better content discovery, new ways to aggregate news stories about people, places or subjects and generally allow computers to help people process some of the structured information behind a story.

rNews is still in draft. At the time of writing the published spec is at version 0.1, there are clearly ambitions to built out on this work and it will be interesting to see where it goes.

Although I’m sure much of this has been thought about before I thought I would jot down my initial thoughts on this early draft.

More URIs please

The current spec makes extensive use of xsd:string and xsd:double to assign attributes to a class. For example, the Location Class includes attributes for longitude, latitude and altitude but no URIs for places.

Using URIs to name places (and people, subjects, organisations etc.) would allow for much more interesting things to be done with the data.

It would make it easier to aggregate content from more than one news outlet and generally link things together by location, person and area of interest.

There’s obviously an issue here – there needs to be a good source of URI for places – but in reality there are lots of candidates out there from dbpedia to geonames.

Greater reuse of existing vocabularies

There are existing vocabularies that describe the some of the classes described in rNew – notably FOAF and Dublin Core.

I would prefer rNews reusing those vocabularies or at least linking (owl:sameAS) to them.

I’m not a fan of tags

I don’t really like “tagging” it lack semantics and is extremely ambiguous.

If I tag a news story am I claiming it’s primarily about that thing, features that thing, also about that thing, what? And whatever you think it means I guarantee I can find someone else who disagrees!

I would rather see more defined predicates such as primarilyAbout etc. I recognise this would add a bit of complexity but it would also increase the utility of the vocabulary.

If the intention is to aid discoverability through categorisation then use SKOS.

Explicit predicates for source materials

I think it’s really important to explicitly link to source material, especially for science and medicine (it’s why Nature News and has always done so).

A simple set of predicates for the DOI, abstract URI, scientist/researcher of the original research and/or a URI for the raw data should suffice.

Again, it would also help if there was a handy source of URIs for scientists.

Should the story be at the heart of the ontology?

I’ve always thought of news stories as metadata about real world events.

If you reframe the problem in this way then what you really want are predicates to describe the relationship of the story (article, photo, video) to the event. You also then want links between people & places and those events (which could be inferred through the various news stories).

Building the ontology this way round would allow for some very powerful analysis and discovery of stories.

Anyway – I’ll be really interested to see how the ontology develops and how widely it gets adopted.

Science ontology — take three

Paul, Michael and Silver have done a bit more work refining the nascent science ontology — unfortunately I was caught up doing something a lot less interesting so this version is all their work and not mine, and it is all the better for it.

The big change to this version is the removal of much of the publication specific stuff since this is handled elsewhere otherwise otherwise it should look like a fairly obvious evolution from the previous versions.

Version 3 of the science domain model

And here’s a N3 serialisation of the model. There’s still lots to do, it needs checking against what happens when there are multiple ranges are given for a property, we need to write proper definitions, add namespaces, look for existing ontology reuse etc.

<!-- Science Ontology - First version! Still to do: Declare namespaces Define ontology (name, author etc) Finish definitions Look for existing ontologies for reuse etc. Publish! -->

<!-- Classes -->

so:Observation a owl:Class;
	rdfs:label "Observation";
	rdfs:comment "Definition goes here" .

so:Hypothesis a owl:Class;
	rdfs:label "Hypothesis";
	rdfs:comment "Definition goes here" .

so:Experiment a owl:Class;
	rdfs:label "Experiment";
	rdfs:comment "Definition goes here" .

so:Equipment a owl:Class;
	rdfs:label "Equipment";
	rdfs:comment "Definition goes here" .

so:Method a owl:Class;
	rdfs:label "Method";
	rdfs:comment "Definition goes here" .

so:Collaboration a owl:Class;
	rdfs:label "Collaboration";
	rdfs:comment "Definition goes here" .

so:ExperimentalObservation a owl:Class;
	rdfs:label "Experimental Observation";
	rdfs:comment "Definition goes here";
	rdfs:subClassOf so:Observation .

so:Data a owl:Class;
	rdfs:label "Data";
	rdfs:comment "Definition goes here" .

so:Analysis a owl:Class;
	rdfs:label "Analysis";
	rdfs:comment "Definition goes here" .

so:Publication a owl:Class;
	rdfs:label "Publication";
	rdfs:comment "Definition goes here" .

so:Theory a owl:Class;
	rdfs:label "Theory";
	rdfs:comment "Definition goes here" .

so:Prediction a owl:Class;
	rdfs:label "Prediction";
	rdfs:comment "Definition goes here" .

so:Agent a owl:Class;
	rdfs:label "Agent";
	rdfs:comment "Definition goes here"
	rdfs:subClassOf foaf:Agent .

<!-- Properties -->

so:inspiredBy a owl:ObjectProperty;
	rdfs:label "inspiredBy";
	rdfs:comment "definition goes here - but what happens with multiple ranges? hypotheses can be inspired by Observations, Theories and Predictions...";
	rdfs:domain so:Hypothesis;
	rdfs:range so:Observation;
	rdfs:range so:Theory;
	rdfs:range so:Prediction .

so:makes a owl:ObjectProperty;
	rdfs:label "makes";
	rdfs:comment "definition goes here";
	rdfs:domain so:Theory;
	rdfs:range so:Prediction .

so:tests a owl:ObjectProperty;
	rdfs:label "tests";
	rdfs:comment "definition goes here";
	rdfs:domain so:Experiment;
	rdfs:range so:Hypothesis .

so:equipment a owl:ObjectProperty;
	rdfs:label "equipment";
	rdfs:comment "Relates a piece of equipment to an experiment it is used in.";
	rdfs:domain so:Experiment;
	rdfs:range so:Equipment .

so:method a owl:ObjectProperty;
	rdfs:label "method";
	rdfs:comment "Relates a method to an experiment it was used in.";
	rdfs:domain so:Experiment;
	rdfs:range so:Method .

so:experimentalObservation a owl:ObjectProperty;
	rdfs:label "experimental observation";
	rdfs:comment "Relates an observation made as a result of an experiment to the experiment it was made in.";
	rdfs:domain so:Experiment;
	rdfs:range so:ExperimentalObservation .

so:captures a owl:ObjectProperty;
	rdfs:label "captures";
	rdfs:comment "Relates data to an experimental observation it was captured in.";
	rdfs:domain so:ExperimentalObservation;
	rdfs:range so:Data .

so:analyses a owl:ObjectProperty;
	rdfs:label "analyses";
	rdfs:comment "Definition goes here";
	rdfs:domain so:Analysis;
	rdfs:range so:Data .

so:published a owl:ObjectProperty;
	rdfs:label "published";
	rdfs:comment "Relates an Analysis to a Publication it was published in.";
	rdfs:domain so:Analysis;
	rdfs:range so:Publication .

<!-- Analysis to Theory -->

so:establishes a owl:ObjectProperty;
	rdfs:label "establishes";
	rdfs:comment "Definition goes here";
	rdfs:domain so:Analysis;
	rdfs:range so:Theory .

so:validates a owl:ObjectProperty;
	rdfs:label "validates";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Analysis;
	rdfs:range so:Theory .

so:modifies a owl:ObjectProperty;
	rdfs:label "modifies";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Analysis;
	rdfs:range so:Theory .

so:contradicts a owl:ObjectProperty;
	rdfs:label "contradicts";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Analysis;
	rdfs:range so:Theory .

<!-- Analysis to Hypothesis -->

so:supports a owl:ObjectProperty;
	rdfs:label "supports";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Analysis;
	rdfs:range so:Hypothesis .

so:modifies a owl:ObjectProperty;
	rdfs:label "modifies";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Analysis;
	rdfs:range so:Hypothesis .

so:disproves a owl:ObjectProperty;
	rdfs:label "disproves";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Analysis;
	rdfs:range so:Hypothesis .

<!-- Agent properties -->

so:proposes a owl:ObjectProperty;
	rdfs:label "proposes";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Hypothesis .

so:collaborates a owl:ObjectProperty;
	rdfs:label "collaborates";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Collaboration .

so:funds a owl:ObjectProperty;
	rdfs:label "funds";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Experiment .

so:performs a owl:ObjectProperty;
	rdfs:label "performs";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Experiment .

so:observes a owl:ObjectProperty;
	rdfs:label "proposes";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Observation .

so:forms a owl:ObjectProperty;
	rdfs:label "forms";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Analysis .

so:creates a owl:ObjectProperty;
	rdfs:label "creates";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Publication .

so:creditedWith a owl:ObjectProperty;
	rdfs:label "credited with";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Theory .

so:participates a owl:ObjectProperty;
	rdfs:label "participates";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Agent;
	rdfs:range so:Agent .

so:collaboratesOn a owl:ObjectProperty;
	rdfs:label "proposes";
	rdfs:comment "Definition goes here.";
	rdfs:domain so:Collaboration;
	rdfs:range so:Experiment;
	rdfs:range so:Hypothesis .

A science ontology version 2

Michael, Silver, Paul and myself have had another go at a science ontology. We’ve tried to take onboard the comments from the previous version – many thanks to those that commented.

Simple ontology to model the scientific process
Second attempt at a science ontology

A few things worth highlighting: Continue reading “A science ontology version 2”