本文整理汇总了C++中soprano::QueryResultIterator::binding方法的典型用法代码示例。如果您正苦于以下问题:C++ QueryResultIterator::binding方法的具体用法?C++ QueryResultIterator::binding怎么用?C++ QueryResultIterator::binding使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类soprano::QueryResultIterator
的用法示例。
在下文中一共展示了QueryResultIterator::binding方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: KoRdfSemanticItem
KoRdfLocation::KoRdfLocation(QObject *parent, const KoDocumentRdf *rdf, Soprano::QueryResultIterator &it, bool isGeo84)
: KoRdfSemanticItem(parent, rdf, it)
{
m_linkSubject = it.binding("geo");
m_dlong = KoTextRdfCore::optionalBindingAsString(it, "long", "0").toDouble();
m_dlat = KoTextRdfCore::optionalBindingAsString(it, "lat", "0").toDouble();
m_name = QString("%1,%2").arg(m_dlong).arg(m_dlat);
m_joiner = it.binding("joiner");
m_isGeo84 = isGeo84;
}
示例2: KoRdfSemanticItem
KoRdfFoaF::KoRdfFoaF(QObject *parent, const KoDocumentRdf *rdf, Soprano::QueryResultIterator &it)
: KoRdfSemanticItem(parent, rdf, it)
{
m_uri = it.binding("person").toString();
m_name = it.binding("name").toString();
m_nick = KoTextRdfCore::optionalBindingAsString(it, "nick");
m_homePage = KoTextRdfCore::optionalBindingAsString(it, "homepage");
m_imageUrl = KoTextRdfCore::optionalBindingAsString(it, "img");
m_phone = KoTextRdfCore::optionalBindingAsString(it, "phone");
kDebug(30015) << "+++xmlid:" << it.binding("xmlid").toString();
}
示例3: if
bool Nepomuk::Types::EntityPrivate::load()
{
const QString query = QString::fromLatin1( "select ?p ?o where { "
"graph ?g { <%1> ?p ?o . } . "
"{ ?g a %2 . } UNION { ?g a %3 . } . }" )
.arg( QString::fromAscii( uri.toEncoded() ),
Soprano::Node::resourceToN3( Soprano::Vocabulary::NRL::Ontology() ),
Soprano::Node::resourceToN3( Soprano::Vocabulary::NRL::KnowledgeBase() ) );
Soprano::QueryResultIterator it
= ResourceManager::instance()->mainModel()->executeQuery( query, Soprano::Query::QueryLanguageSparql );
while ( it.next() ) {
QUrl property = it.binding( "p" ).uri();
Soprano::Node value = it.binding( "o" );
if ( property == Soprano::Vocabulary::RDFS::label() ) {
if ( value.language().isEmpty() ) {
label = value.toString();
}
else if( value.language() == KGlobal::locale()->language() ) {
l10nLabel = value.toString();
}
}
else if ( property == Soprano::Vocabulary::RDFS::comment() ) {
if ( value.language().isEmpty() ) {
comment = value.toString();
}
else if( value.language() == KGlobal::locale()->language() ) {
l10nComment = value.toString();
}
}
else if ( property == Soprano::Vocabulary::NAO::hasSymbol() ) {
icon = KIcon( value.toString() );
}
else if ( property == Soprano::Vocabulary::NAO::userVisible() ) {
userVisible = value.literal().toBool();
}
else {
addProperty( property, value );
}
}
return !it.lastError();
}
示例4: QObject
KoRdfBasicSemanticItem::KoRdfBasicSemanticItem(QObject *parent, const KoDocumentRdf *rdf, Soprano::QueryResultIterator &it)
: QObject(parent)
, m_rdf(rdf)
{
m_context = it.binding("graph");
kDebug(30015) << "KoRdfBasicSemanticItem() context:" << m_context.toString();
}
示例5: query
void Nepomuk::ResourceCompletion::makeCompletion( const QString& string )
{
kDebug() << string;
if ( string.length() > 3 ) {
Query::AndTerm term;
term.addSubTerm( Query::LiteralTerm( string + '*' ) );
if ( d->type.isValid() && d->type != Soprano::Vocabulary::RDFS::Resource() )
term.addSubTerm( Query::ResourceTypeTerm( d->type ) );
Query::Query query(term);
query.setLimit( 10 );
kDebug() << query.toSparqlQuery();
Soprano::QueryResultIterator it
= ResourceManager::instance()->mainModel()->executeQuery( query.toSparqlQuery(),
Soprano::Query::QueryLanguageSparql );
while ( it.next() ) {
Resource res( it.binding( 0 ).uri() );
double score = 1.0; //it[1].literal().toDouble();
kDebug() << "Match for input" << string << res.uri();
addCompletion( KCompletionItem( res.genericLabel(),
QString( "%1 (%2)" ).arg( res.genericLabel() ).arg( Types::Class( res.type() ).label() ),
res.genericDescription(),
KIcon( res.genericIcon() ),
score,
res.resourceUri() ) );
}
}
}
示例6: queryTag
void moviemanager::queryTag(QString userTag)
{
//This module is not working
//get help from pnh for debugging
//pnh code
Nepomuk::Tag myTag;
myTag.setLabel(userTag);
QString query
= QString("select distinct ?r where { ?r %1 %2 . ?r a %3 }")
.arg( Soprano::Node::resourceToN3(Soprano::Vocabulary::NAO::hasTag()) )
.arg( Soprano::Node::resourceToN3(myTag.resourceUri()) )
.arg( Soprano::Node::resourceToN3(Nepomuk::Vocabulary::NFO::Video()) );
QList<Nepomuk::Resource> myResourceList;
Soprano::Model *model = Nepomuk::ResourceManager::instance()->mainModel();
Soprano::QueryResultIterator it = model->executeQuery( query, Soprano::Query::QueryLanguageSparql );
while( it.next() ) {
qDebug() << "looping";
myResourceList << Nepomuk::Resource( it.binding( "r" ).uri() );
}
Q_FOREACH (const Nepomuk::Resource& r, myResourceList)
{
mainMovieList->addItem(r.property(Nepomuk::Vocabulary::NFO::fileName()).toString());
//if(r.tags().contains(new Nepomuk:Tag("video"))) newList.append(r)
}
示例7: loadDuplicates
void RemoveDuplicates::loadDuplicates()
{
Soprano::Model* model = Nepomuk::ResourceManager::instance()->mainModel();
QString query
= QString( "select distinct ?u1 where { "
"?r1 a %1 . ?r2 a %1. ?r1 %2 ?h. ?r2 %2 ?h. "
"?r1 %3 ?u1. ?r2 %3 ?u2. filter(?r1!=?r2) . }order by ?h limit 50")
.arg( Soprano::Node::resourceToN3(Nepomuk::Vocabulary::NFO::FileDataObject()))
.arg( Soprano::Node::resourceToN3(Nepomuk::Vocabulary::NFO::hasHash()))
.arg( Soprano::Node::resourceToN3(Nepomuk::Vocabulary::NIE::url()));
Soprano::QueryResultIterator it
= model->executeQuery( query,
Soprano::Query::QueryLanguageSparql );
Nepomuk::File tempRsc;
while( it.next() ) {
tempRsc = it.binding("u1").uri() ;
QString usagecount = QString::number(tempRsc.usageCount());
QListWidgetItem* item = new QListWidgetItem(tempRsc.genericLabel() + ":: Usage Count:" + usagecount,m_resourceList);
item->setCheckState(Qt::Unchecked);
item->setToolTip(tempRsc.url().path());
qDebug()<<tempRsc.url().path();
}
}
示例8: query
void MainWindow::query()
{
if (tag->text().isEmpty() && text->toPlainText().isEmpty())
return;
static Soprano::Model *model = Nepomuk2::ResourceManager::instance()->mainModel();
Nepomuk2::Query::ComparisonTerm tag_term;
Nepomuk2::Query::LiteralTerm text_term;
if (!tag->text().isEmpty())
tag_term = Nepomuk2::Query::ComparisonTerm(Soprano::Vocabulary::NAO::hasTag(), Nepomuk2::Query::LiteralTerm(tag->text()));
if (!text->toPlainText().isEmpty())
text_term = Nepomuk2::Query::LiteralTerm(text->toPlainText());
Nepomuk2::Query::Query query(Nepomuk2::Query::AndTerm(tag_term, text_term));
url->setText(query.toSearchUrl().url());
Soprano::QueryResultIterator it = model->executeQuery(query.toSparqlQuery(), Soprano::Query::QueryLanguageSparql);
QString text_result;
while(it.next())
{
for (int i=0; i< it.bindingCount(); ++i)
{
text_result += it.binding(i).toString();
text_result += "<br>";
}
}
result->setText(text_result);
}
示例9: while
bool Nepomuk::Types::EntityPrivate::loadAncestors()
{
const QString query = QString::fromLatin1( "select ?s ?p where { "
"graph ?g { ?s ?p <%1> . } . "
"{ ?g a %2 . } UNION { ?g a %3 . } . }" )
.arg( QString::fromAscii( uri.toEncoded() ),
Soprano::Node::resourceToN3( Soprano::Vocabulary::NRL::Ontology() ),
Soprano::Node::resourceToN3( Soprano::Vocabulary::NRL::KnowledgeBase() ) );
Soprano::QueryResultIterator it
= ResourceManager::instance()->mainModel()->executeQuery( query, Soprano::Query::QueryLanguageSparql );
while ( it.next() ) {
addAncestorProperty( it.binding( "s" ).uri(), it.binding( "p" ).uri() );
}
return !it.lastError();
}
示例10: updateSemanticItems
void KoEventSemanticItemFactory::updateSemanticItems(QList<hKoRdfBasicSemanticItem> &semanticItems, const KoDocumentRdf *rdf, QSharedPointer<Soprano::Model> m)
{
const QString sparqlQuery = QLatin1String(
" prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
" prefix cal: <http://www.w3.org/2002/12/cal/icaltzd#> \n"
" select distinct ?graph ?ev ?uid ?dtstart ?dtend ?summary ?location ?geo ?long ?lat \n"
" where { \n"
" GRAPH ?graph { \n"
" ?ev rdf:type cal:Vevent . \n"
" ?ev cal:uid ?uid . \n"
" ?ev cal:dtstart ?dtstart . \n"
" ?ev cal:dtend ?dtend \n"
" OPTIONAL { ?ev cal:summary ?summary } \n"
" OPTIONAL { ?ev cal:location ?location } \n"
" OPTIONAL { \n"
" ?ev cal:geo ?geo . \n"
" ?geo rdf:first ?lat . \n"
" ?geo rdf:rest ?joiner . \n"
" ?joiner rdf:first ?long \n"
" } \n"
" } \n"
" } \n");
Soprano::QueryResultIterator it =
m->executeQuery(sparqlQuery,
Soprano::Query::QueryLanguageSparql);
QList<hKoRdfBasicSemanticItem> oldSemanticItems = semanticItems;
// uniqfilter is needed because soprano is not honouring
// the DISTINCT sparql keyword
QSet<QString> uniqfilter;
while (it.next()) {
const QString name = it.binding("uid").toString();
if (uniqfilter.contains(name)) {
continue;
}
uniqfilter += name;
hKoRdfBasicSemanticItem newSemanticItem(new KoRdfCalendarEvent(0, rdf, it));
const QString newSemanticItemLinkingSubject = newSemanticItem->linkingSubject().toString();
foreach (hKoRdfBasicSemanticItem semItem, oldSemanticItems) {
if (newSemanticItemLinkingSubject == semItem->linkingSubject().toString()) {
oldSemanticItems.removeAll(semItem);
newSemanticItem = 0;
break;
}
}
if (newSemanticItem) {
semanticItems << newSemanticItem;
}
}
foreach (hKoRdfBasicSemanticItem semItem, oldSemanticItems) {
semanticItems.removeAll(semItem);
}
示例11: KoRdfSemanticItem
KoRdfCalendarEvent::KoRdfCalendarEvent(QObject *parent, const KoDocumentRdf *rdf, Soprano::QueryResultIterator &it)
: KoRdfSemanticItem(parent, rdf, it)
{
m_location = KoTextRdfCore::optionalBindingAsString(it, "location");
m_summary = KoTextRdfCore::optionalBindingAsString(it, "summary");
m_uid = KoTextRdfCore::optionalBindingAsString(it, "uid");
m_linkSubject = it.binding("ev");
// floating time is the default
m_startTimespec = KSystemTimeZones::local();
m_endTimespec = KSystemTimeZones::local();
// check for timezones in the type of each date-time binding.
m_startTimespec = toKTimeZone(it.binding("dtstart"));
m_endTimespec = toKTimeZone(it.binding("dtend"));
m_dtstart = VEventDateTimeToKDateTime(it.binding("dtstart").toString(),
m_startTimespec);
m_dtend = VEventDateTimeToKDateTime(it.binding("dtend").toString(),
m_endTimespec);
kDebug(30015) << "KoRdfCalendarEvent() start:" << m_dtstart.toString()
<< " end:" << m_dtend.toString();
kDebug(30015) << "KoRdfCalendarEvent() long:" << KoTextRdfCore::optionalBindingAsString(it, "long")
<< " lat:" << KoTextRdfCore::optionalBindingAsString(it, "lat");
kDebug(30015) << "KoRdfCalendarEvent() context-direct:" << it.binding("graph").toString();
kDebug(30015) << "KoRdfCalendarEvent() context():" << context().toString();
kDebug(30015) << "m_startTimespec.offset:" << m_startTimespec.timeZone().currentOffset();
kDebug(30015) << "dtstart:" << m_dtstart.date();
kDebug(30015) << "dtstart:" << m_dtstart.time();
kDebug(30015) << "dtend:" << m_dtend.date();
kDebug(30015) << "dtend:" << m_dtend.time();
}
示例12: updateSemanticItems
//TODO: next functions look like the ones from CAuSectionRdf. Maybe there is anyway to share code?
void CAuActorSemanticItemFactory::updateSemanticItems(
QList<hKoRdfBasicSemanticItem> &semanticItems,
const KoDocumentRdf *rdf,
QSharedPointer<Soprano::Model> m)
{
const QString sparqlQuery = CAuActorRdf::QUERY;
Soprano::QueryResultIterator it = m->executeQuery(
sparqlQuery,
Soprano::Query::QueryLanguageSparql
);
QList<hKoRdfBasicSemanticItem> oldSemanticItems = semanticItems;
// uniqfilter is needed because soprano is not honouring
// the DISTINCT sparql keyword
QSet<QString> uniqfilter;
while (it.next()) {
QString magicid = it.binding("magicid").toString();
if (uniqfilter.contains(magicid)) {
continue;
}
uniqfilter += magicid;
hKoRdfBasicSemanticItem newSemanticItem(new CAuActorRdf(0, rdf, it));
const QString newItemLs = newSemanticItem->linkingSubject().toString();
foreach (hKoRdfBasicSemanticItem semItem, oldSemanticItems) {
if (newItemLs == semItem->linkingSubject().toString()) {
oldSemanticItems.removeAll(semItem);
newSemanticItem = 0;
break;
}
}
if (newSemanticItem) {
semanticItems << newSemanticItem;
}
}
foreach (hKoRdfBasicSemanticItem semItem, oldSemanticItems) {
semanticItems.removeAll(semItem);
}
示例13: start
void OntologyUpdater::start()
{
QApplication::processEvents();
Soprano::Model *m_mainModel;
bool m_nepomukInited = Utilities::nepomukInited();
if (m_nepomukInited) {
m_mainModel = Nepomuk2::ResourceManager::instance()->mainModel();
} else {
return;
}
m_stopUpdate = false;
MediaVocabulary mediaVocabulary;
//Update audio
QString queryPrefix = QString("PREFIX xesam: <%1> "
"PREFIX rdf: <%2> "
"PREFIX xls: <%3> "
"PREFIX nmm: <http://www.semanticdesktop.org/ontologies/nmm#> "
"PREFIX nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> "
"PREFIX nfo: <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> ")
.arg(Soprano::Vocabulary::Xesam::xesamNamespace().toString())
.arg(Soprano::Vocabulary::RDF::rdfNamespace().toString())
.arg(Soprano::Vocabulary::XMLSchema::xsdNamespace().toString());
QString queryStr = queryPrefix + QString("SELECT ?r "
"WHERE { {?r rdf:type <http://www.semanticdesktop.org/ontologies/nfo#Audio>} "
"UNION "
"{?r rdf:type <http://www.semanticdesktop.org/ontologies/nmm#MusicPiece>} "
"UNION "
"{?r rdf:type <http://www.semanticdesktop.org/ontologies/nmm#DigitalRadio>} "
"UNION "
"{?r rdf:type <http://www.semanticdesktop.org/ontologies/nmm#MusicAlbum>} "
"UNION "
"{?r rdf:type <%1>} "
"UNION "
"{?r rdf:type <%2>} "
"UNION "
"{?r rdf:type <%3>} }")
.arg(mediaVocabulary.typeAudio().toString())
.arg(mediaVocabulary.typeAudioMusic().toString())
.arg(mediaVocabulary.typeMediaStream().toString());
Soprano::QueryResultIterator it = m_mainModel->executeQuery(queryStr, Soprano::Query::QueryLanguageSparql);
emit infoMessage(i18n("<b>Updating audio types and properties</b><br>0 items updated..."));
QApplication::processEvents();
int i = 0;
while( it.next() && !m_stopUpdate) {
QApplication::processEvents();
i++;
Nepomuk2::Resource resource = Nepomuk2::Resource(it.binding("r").uri());
//Update types
QUrl type = QUrl("http://www.semanticdesktop.org/ontologies/nfo#Audio");
if (resource.hasType(type)) {
removeType(resource, type);
if (!resource.hasType(mediaVocabulary.typeAudio())) {
resource.addType(mediaVocabulary.typeAudio());
}
}
type = QUrl("http://www.semanticdesktop.org/ontologies/nmm#MusicPiece");
if (resource.hasType(type)) {
removeType(resource, type);
if (!resource.hasType(mediaVocabulary.typeAudioMusic())) {
resource.addType(mediaVocabulary.typeAudioMusic());
}
//Update properties
QUrl property = QUrl("http://www.semanticdesktop.org/ontologies/nmm#musicAlbum");
if (resource.hasProperty(property)) {
Nepomuk2::Variant value = resource.property(property);
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.musicAlbum(), value);
}
property = QUrl("http://www.semanticdesktop.org/ontologies/nmm#trackNumber");
if (resource.hasProperty(property)) {
Nepomuk2::Variant value = resource.property(property);
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.musicTrackNumber(), value);
}
}
type = QUrl("http://www.semanticdesktop.org/ontologies/nmm#DigitalRadio");
if (resource.hasType(type)) {
removeType(resource, type);
if (!resource.hasType(mediaVocabulary.typeMediaStream())) {
resource.addType(mediaVocabulary.typeMediaStream());
}
}
type = QUrl("http://www.semanticdesktop.org/ontologies/nmm#MusicAlbum");
if (resource.hasType(type)) {
removeType(resource, type);
if (!resource.hasType(mediaVocabulary.typeMusicAlbum())) {
resource.addType(mediaVocabulary.typeMusicAlbum());
}
}
//Update common properties
QUrl property = QUrl("http://www.semanticdesktop.org/ontologies/nfo#duration");
if (resource.hasProperty(property)) {
Nepomuk2::Variant value = resource.property(property);
resource.removeProperty(property);
resource.setProperty(mediaVocabulary.duration(), value);
//.........这里部分代码省略.........
示例14: run
void SemanticsListEngine::run()
{
QThread::setTerminationEnabled(true);
m_stop = false;
if (m_updateSourceInfo || m_removeSourceInfo) {
NepomukListEngine::run();
return;
}
//Create media list based on engine argument and filter
QList<MediaItem> mediaList;
MediaVocabulary mediaVocabulary = MediaVocabulary();
QString engineArg = m_mediaListProperties.engineArg();
QString engineFilter = m_mediaListProperties.engineFilter();
QStringList engineFilterList = m_mediaListProperties.engineFilterList();
//Parse filter
QString mediaType;
QString groupByCategoryType;
QString groupByField;
QString limitFilter;
int originalGenreLimit = 0;
if (engineFilterList.count() != 0) {
mediaType = engineFilterList.at(0);
if (engineFilterList.filter("groupBy=").count() != 0) {
QString groupByFilter = engineFilterList.filter("groupBy=").at(0);
groupByField = groupByFilter.remove("groupBy=").trimmed();
if (groupByField == "artist") {
groupByCategoryType = "Artist";
} else if (groupByField == "album") {
groupByCategoryType = "Album";
} else if (groupByField == "genre") {
if (mediaType == "audio") {
groupByCategoryType = "AudioGenre";
} else if (mediaType == "video") {
groupByCategoryType = "VideoGenre";
}
} else if (groupByField == "seriesName") {
groupByCategoryType = "TV Series";
} else if (groupByField == "actor") {
groupByCategoryType = "Actor";
} else if (groupByField == "director") {
groupByCategoryType = "Director";
} else if (groupByField == "tag") {
if (mediaType == "audio") {
groupByCategoryType = "AudioTag";
} else if (mediaType == "video") {
groupByCategoryType = "VideoTag";
}
}
}
if (engineFilterList.filter("limit=").count() !=0) {
limitFilter = engineFilterList.filter("limit=").at(0);
if (groupByField == "genre") {
originalGenreLimit = m_mediaListProperties.filterValue(limitFilter).trimmed().toInt();
int originalFilterIndex = engineFilterList.indexOf(limitFilter);
limitFilter = QString("%1%2%3").arg(m_mediaListProperties.filterField(limitFilter))
.arg(m_mediaListProperties.filterOperator(limitFilter))
.arg(m_mediaListProperties.filterValue(limitFilter).trimmed().toInt()*3);
engineFilterList.replace(originalFilterIndex, limitFilter);
}
}
}
if (m_nepomukInited) {
if (engineArg.toLower() == "frequent") {
mediaList.clear();
if (mediaType == "audio" || mediaType == "video") {
MediaQuery query;
bool ignoreZeros = false;
if (groupByCategoryType.isEmpty()) {
QStringList bindings;
bindings.append(mediaVocabulary.mediaResourceBinding());
bindings.append(mediaVocabulary.mediaResourceUrlBinding());
bindings.append(mediaVocabulary.playCountBinding());
query.select(bindings, MediaQuery::Distinct);
query.startWhere();
if (mediaType == "audio") {
query.addCondition(mediaVocabulary.hasTypeAnyAudio(MediaQuery::Required));
} else if (mediaType == "video") {
query.addCondition(mediaVocabulary.hasTypeAnyVideo(MediaQuery::Required));
}
query.addLRIFilterConditions(engineFilterList, mediaVocabulary);
if (m_mediaListProperties.filterForField("playCount").isEmpty()) {
query.addCondition(mediaVocabulary.hasPlayCount(MediaQuery::Required, 0, MediaQuery::GreaterThan));
ignoreZeros = true;
}
query.addCondition(mediaVocabulary.hasLastPlayed(MediaQuery::Optional));
query.endWhere();
QStringList orderByBindings;
QList<MediaQuery::Order> order;
orderByBindings.append(mediaVocabulary.playCountBinding());
order.append(MediaQuery::Descending);
orderByBindings.append(mediaVocabulary.lastPlayedBinding());
order.append(MediaQuery::Descending);
query.orderBy(orderByBindings, order);
} else {
QStringList bindings;
//.........这里部分代码省略.........