[Nepomuk] RSS Ontology
Christian Mollekopf
chrigi_1 at fastmail.fm
Thu Jan 31 17:04:51 UTC 2013
On Wednesday 30 January 2013 18.38:47 Daniel Vrátil wrote:
> On Tuesday 22 of January 2013 16:10:46 Daniel Vrátil wrote:
> > Hi folks,
> >
> > I'm working on support for Nepomuk search in Akregator2. I have not found
> > any suitable ontology for indexing RSS articles, so I made an attempt to
> > write one myself.
>
> Hi,
>
Hey Dan,
> here's another version, with modifications as suggested by Joerg and
> Sebastian.
>
> I've renamed the ontology to NRSS, because I found out that there's already
> Nepomuk Sharing Ontology in SDO so the namespaces would conflict.
>
> I can't use nie:url in nrss:Article, because that's already used by Nepomuk
> Feeder (links to original Akonadi Item), so I have to keep some other
> property - I use nrss:articleUrl as a nfo:Website.
That is a misconception I think. Nothing can claim a property exlusively. The
point is that a property has a certain meaning and that's what we stick to, so
event if there was the need for a new property, you would exactly want to
convey the meaning that it is also a nie:url and therefore make
nrss:articleUrl a subproperty of nie:url. I don't think that this is useful
though, so would just use nie:url.
I can recommend reading this:
http://www.semanticdesktop.org/ontologies/nie/
If you write a new ontology, you generally should try to make it as small as
possible and use as many existing properties from nie and nfo (and possibly
other related ones) as possible. And if you specify a new property if it makes
any sense you should make it a subproperty of something existing.
The reason is, that I might i.e. store my rss articles in Files, or some
custom database. nfo allows me to represent that and I can link from the feed
my db object or my file.
If you used now your nrss:articleUrl, I could use your ontology only for rss
feeds stored somewhere on the web, while my query really wouldn't care where
they're stored, I just want to find all rss files related to some topic.
> I added
> nrss:enclosureUrl as nfo:WebDataObject, which if I understand correctly is
> better for data sources like streams, videos etc than nfo:Website. Does
> that make sense?
>
That should probably be nfo:RemoteDataObject.
> Once you say it's OK, I'll try to put the ontology to kdepimlibs and
> generate a vocabulary class so that it can be used globally.
>
> Cheers,
> Dan
>
>
I think this ontology is overspecified and doesn't reuse what's already there,
or is there a reason for that? I think the primary (and possibly only)
distinction between an rss feed and a document on my computer should be the
toplevel type. Quite possible that I'm just searching for a document with some
information, and I don't really care where it's coming from.
I quoted what I think could be removed, and added some comments for
replacements. Maybe there's even more to remove ;-)
nrss: {
> nrss:Element a rdfs:Class ;
> rdfs:label "Feed Element" ;
> rdfs:comment "Superclass for all elements related to RSS feeds" ;
> rdfs:subClassOf nie:InformationElement .
#what's the additional value of this over nie:informationElement?
nrss:Feed a rdfs:Class ;
rdfs:comment "Represents an RSS Feed" ;
rdfs:label "RSS Feed" ;
rdfs:subClassOf nrss:Element .
#accordingly nie:Element here
> nrss:Article a rdfs:Class ;
> rdfs:label "RSS Article" ;
> rdfs:comment "Represents a single article within an RSS Feed" ;
> rdfs:subClassOf nrss:Element .
#nfo:TextDocument?
> nrss:Enclosure a rdfs:Class ;
> rdfs:label "RSS Enclosure" ;
> rdfs:subClassOf nrss:Element .
>
> nrss:ImageEnclosure a rdfs:Class ;
> rdfs:label "RSS Image Enclosure" ;
> rdfs:subClassOf nrss:Enclosure .
>
> nrss:VideoEnclosure a rdfs:Class ;
> rdfs:label "RSS Video Enclosure" ;
> rdfs:subClassOf nrss:Enclosure .
>
> nrss:AudioEnclosure a rdfs:Class ;
> rdfs:label "RSS Audio Enclosure" ;
> rdfs:subClassOf nrss:Enclosure .
# nfo:attachment or maybe nie:hasPart and nfo:Audio
# Properties of nrss:Article
> Remove
> nrss:articleUrl a rdf:Property ;
> nrl:maxCardinality 1 ;
> rdfs:label "Article URL" ;
> rdfs:comment "URL of the article" ;
> rdfs:range nfo:Website ;
> rdfs:domain nrss:Element .
# change to nie:publicationDate once available
nrss:publishTime a rdf:Property ;
rdfs:label "Publish Time" ;
rdfs:comment "Date when the article was first published in the feed"
; rdfs:subPropertyOf dc:date ;
rdfs:range xsd:dateTime ;
rdfs:domain nrss:Article .
nrss:updateTime a rdf:Property ;
rdfs:label "Update Time" ;
rdfs:comment "Date when the article was last updated in the feed" ;
rdfs:subPropertyOf dc:date ;
rdfs:range xsd:dateTime ;
rdfs:domain nrss:Article .
> nrss:enclosure a rdf:Property ;
> rdfs:label "Enclosure" ;
> rdfs:comment "Enclosure related to the article" ;
> rdfs:range nrss:Enclosure ;
> rdfs:domain nrss:Article .
# nfo:Attachment?
nrss:isRead a rdf:Property ;
nrl:maxCardinality 1 ;
rdfs:label "Is Read" ;
rdfs:comment "A flag that state whether the item has been read" ;
rdfs:range xsd:boolean ;
rdfs:domain nrss:Article .
> # Properties of nrss:Enclosure
>
> nrss:enclosureUrl a rdf:Property ;
> nrl:maxCardinality 1 ;
> rdfs:label "Enclosure URL" ;
> rdfs:comment "URL of the enclosure object" ;
> rdfs:range nfo:WebDataObject ;
> rdfs:domain nrss:Enclosure .
}
<http://www.kde.org/ontologies/nrss_metadata#> {
<http://www.kde.org/ontologies/nrss_metadata#> a nrl:GraphMetadata ;
nrl:coreGraphMetadataFor nrss: .
nrss: a nrl:Ontology ;
nao:hasDefaultNamespace "http://www.kde.org/ontologies/nrss#" ;
nao:hasDefaultNamespaceAbbreviation "nrss" ;
nao:lastModified "2013-01-30T17:30:45.656Z" ;
nao:serializationLanguage "TriG" ;
nao:status "Unstable" ;
nao:updatable "0 " ;
nao:version "2" ;
nao:prefLabel "Nepomuk RSS Ontology" ;
nao:description "The Nepomuk RSS Ontology extends the Nepomuk
Information Element framework into the domain of RSS" .
}
Cheers,
Christian
More information about the Nepomuk
mailing list