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 _______________________________________________ Nepomuk mailing list [email protected] https://mail.kde.org/mailman/listinfo/nepomuk
