Hi Daniel,

some comments:
- I dont think you need special description and title properties. Just use the ones in NIE - Try reusing publisher and author from other ontos like NMM or the publishing onto from Jörg
- Can't you create sub-classes to nso:Enclosure instead of using nso:type?

Also note that the semantic web uses atom[1] and sioc[2] for feeds.

Cheers,
Sebastian

[1] http://bblfish.net/work/atom-owl/2006-06-06/AtomOwl.html
[2] http://sioc-project.org/ontology

On 01/22/2013 04:10 PM, 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.

I have no previous experience with writing ontologies, so I would appreciate
if you could take a look and review the ontology:


@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix nao:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
@prefix nco:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nco#> .
@prefix nrl:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
@prefix nie:     <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> .
@prefix nmo:     <http://www.semanticdesktop.org/ontologies/2007/01/19/nmo#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix nso:     <http://www.kde.org/ontologies/nso#> .

nso: {

     nso:Element a rdfs:Class ;
         rdfs:label "Feed Element" ;
         rdfs:comment "Superclass for all elements related to RSS feeds" ;
         rdfs:subClassOf nie:InformationElement .

     nso:Feed a rdfs:Class ;
         rdfs:comment "Represents an RSS Feed" ;
         rdfs:label "RSS Feed" ;
         rdfs:subClassOf nso:Element .

     nso:Article a rdfs:Class ;
         rdfs:label "RSS Article" ;
         rdfs:comment "Represents a single article within an RSS Feed" ;
         rdfs:subClassOf nso:Element .

     nso:Enclosure a rdfs:Class ;
         rdfs:label "RSS Enclosure" ;
         rdfs:subClassOf nso:Element .

# Properties of nso:Element

     nso:sourceUrl a rdf:Property ;
         rdfs:label "Source URL" ;
         rdfs:comment "URL of the source" ;
         rdfs:subPropertyOf dc:source ;
         rdfs:range xsd:string ;
         rdfs:domain nso:Element .

     nso:title a rdf:Property ;
         rdfs:label "Title" ;
         rdfs:comment "Title of the element" ;
         rdfs:subPropertyOf nie:title ;
         rdfs:range xsd:string ;
         rdfs:domain nso:Element .

# Properties of nso:Feed

     nso:publisher a rdf:Property ;
         rdfs:label "Publisher" ;
         rdfs:comment "Publisher of the feed" ;
         rdfs:range nco:Contact ;
         rdfs:domain nso:Feed .

# Properties of nso:Article

     nso:content a rdf:Property ;
         rdfs:label "Content" ;
         rdfs:comment "Content of the article" ;
         rdfs:subPropertyOf nie:htmlContent ;
         rdfs:range xsd:stirng ;
         rdfs:domain nso:Article .

     nso:description a rdf:Property ;
         rdfs:label "Description" ;
         rdfs:comment "Description of article content" ;
         rdfs:subPropertyOf nie:description ;
         rdfs:range xsd:string ;
         rdfs:domain nso:Article .

     nso: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 nso:Article .

     nso: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 nso:Article .

     nso:author a rdf:Property ;
         rdfs:label "Author" ;
         rdfs:comment "Author of the article" ;
         rdfs:range nco:Contact ;
         rdfs:domain nso:Article .

     nso:enclosure a rdf:Property ;
         rdfs:label "Enclosure" ;
         rdfs:comment "Enclosure related to the article" ;
         rdfs:range nso:Enclosure ;
         rdfs:domain nso:Article .

     nso: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 nso:Article .

# Properties of nso:Enclosure

     nso:type a rdf:Property ;
         nrl:maxCardinality "1" ;
         rdfs:label "Enclosure type" ;
         rdfs:comment "Describes type of the enclosure" ;
         rdfs:range xsd:string ;
         rdfs:domain nso:Enclosure .

     nso:length a rdf:Property ;
         nrl:maxCardinality "1" ;
         rdfs:label "Length" ;
         rdfs:comment "Length of audio enclosure (podcast)" ;
         rdfs:range xsd:integer ;
         rdfs:domain nso:Enclosure .

}

<http://www.kde.org/ontologies/nso_metadata#> {
     <http://www.kde.org/ontologies/nso_metadata#> a nrl:GraphMetadata ;
           nrl:coreGraphMetadataFor nso: .

     nso:  a nrl:Ontology ;
         nao:hasDefaultNamespace "http://www.kde.org/ontologies/nso#"; ;
         nao:hasDefaultNamespaceAbbreviation "nso" ;
         nao:lastModified "2013-01-20T22:57:45.656Z" ;
         nao:serializationLanguage "TriG" ;
         nao:status "Unstable" ;
         nao:updatable "0 " ;
         nao:version "2" ;
         nao:prefLabel "Nepomuk Syndication Ontology" ;
         nao:description "The Nepomuk Syndication Ontology extends the Nepomuk
Information Element framework into the domain of Web Syndication" .
}


Thanks

Dan



_______________________________________________
Nepomuk mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/nepomuk

_______________________________________________
Nepomuk mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/nepomuk

Reply via email to